Network Working Group                                      C. Daboo, Ed.
Request for Comments: 5546                                    Apple Inc.
Obsoletes: 2446                                            December 2009
Updates: 5545
Category: Standards Track
        
Network Working Group                                      C. Daboo, Ed.
Request for Comments: 5546                                    Apple Inc.
Obsoletes: 2446                                            December 2009
Updates: 5545
Category: Standards Track
        

iCalendar Transport-Independent Interoperability Protocol (iTIP)

iCalendar传输独立互操作性协议(iTIP)

Abstract

摘要

This document specifies a protocol that uses the iCalendar object specification to provide scheduling interoperability between different calendaring systems. This is done without reference to a specific transport protocol so as to allow multiple methods of communication between systems. Subsequent documents will define profiles of this protocol that use specific, interoperable methods of communication between systems.

本文档指定了一个协议,该协议使用iCalendar对象规范来提供不同日历系统之间的调度互操作性。这是在不参考特定传输协议的情况下完成的,以便允许系统之间的多种通信方法。随后的文档将定义该协议的概要文件,该协议使用系统间特定的、可互操作的通信方法。

The iCalendar Transport-Independent Interoperability Protocol (iTIP) complements the iCalendar object specification by adding semantics for group scheduling methods commonly available in current calendaring systems. These scheduling methods permit two or more calendaring systems to perform transactions such as publishing, scheduling, rescheduling, responding to scheduling requests, negotiating changes, or canceling.

iCalendar传输独立互操作性协议(iTIP)通过为当前日历系统中常见的组调度方法添加语义来补充iCalendar对象规范。这些调度方法允许两个或多个日历系统执行事务,例如发布、调度、重新调度、响应调度请求、协商更改或取消。

Status of This Memo

关于下段备忘

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

本文件规定了互联网社区的互联网标准跟踪协议,并要求进行讨论和提出改进建议。有关本协议的标准化状态和状态,请参考当前版本的“互联网官方协议标准”(STD 1)。本备忘录的分发不受限制。

Copyright Notice

版权公告

Copyright (c) 2009 IETF Trust and the persons identified as the document authors. All rights reserved.

版权所有(c)2009 IETF信托基金和确定为文件作者的人员。版权所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must

本文件受BCP 78和IETF信托有关IETF文件的法律规定的约束(http://trustee.ietf.org/license-info)自本文件出版之日起生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。从该文档中提取的代码组件必须

include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the BSD License.

包括信托法律条款第4.e节所述的简化BSD许可证文本,且不提供BSD许可证中所述的担保。

This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English.

本文件可能包含2008年11月10日之前发布或公开的IETF文件或IETF贡献中的材料。控制某些材料版权的人员可能未授予IETF信托允许在IETF标准流程之外修改此类材料的权利。在未从控制此类材料版权的人员处获得充分许可的情况下,不得在IETF标准流程之外修改本文件,也不得在IETF标准流程之外创建其衍生作品,除了将其格式化以RFC形式发布或将其翻译成英语以外的其他语言。

Table of Contents

目录

   1. Introduction and Overview .......................................5
      1.1. Formatting Conventions .....................................5
      1.2. Related Documents ..........................................6
      1.3. Roles ......................................................6
      1.4. Methods ....................................................7
   2. Interoperability Models .........................................9
      2.1. Application Protocol ......................................10
           2.1.1. Scheduling State ...................................10
           2.1.2. Delegation .........................................10
           2.1.3. Acting on Behalf of Other Calendar Users ...........11
           2.1.4. Component Revisions ................................11
           2.1.5. Message Sequencing .................................12
   3. Application Protocol Elements ..................................13
      3.1. Common Component Restriction Tables .......................15
           3.1.1. VCALENDAR ..........................................15
           3.1.2. VTIMEZONE ..........................................15
           3.1.3. VALARM .............................................17
      3.2. Methods for VEVENT Calendar Components ....................17
           3.2.1. PUBLISH ............................................18
           3.2.2. REQUEST ............................................20
           3.2.3. REPLY ..............................................25
           3.2.4. ADD ................................................27
           3.2.5. CANCEL .............................................29
           3.2.6. REFRESH ............................................31
           3.2.7. COUNTER ............................................33
           3.2.8. DECLINECOUNTER .....................................35
      3.3. Methods for VFREEBUSY Components ..........................37
           3.3.1. PUBLISH ............................................37
           3.3.2. REQUEST ............................................40
           3.3.3. REPLY ..............................................42
        
   1. Introduction and Overview .......................................5
      1.1. Formatting Conventions .....................................5
      1.2. Related Documents ..........................................6
      1.3. Roles ......................................................6
      1.4. Methods ....................................................7
   2. Interoperability Models .........................................9
      2.1. Application Protocol ......................................10
           2.1.1. Scheduling State ...................................10
           2.1.2. Delegation .........................................10
           2.1.3. Acting on Behalf of Other Calendar Users ...........11
           2.1.4. Component Revisions ................................11
           2.1.5. Message Sequencing .................................12
   3. Application Protocol Elements ..................................13
      3.1. Common Component Restriction Tables .......................15
           3.1.1. VCALENDAR ..........................................15
           3.1.2. VTIMEZONE ..........................................15
           3.1.3. VALARM .............................................17
      3.2. Methods for VEVENT Calendar Components ....................17
           3.2.1. PUBLISH ............................................18
           3.2.2. REQUEST ............................................20
           3.2.3. REPLY ..............................................25
           3.2.4. ADD ................................................27
           3.2.5. CANCEL .............................................29
           3.2.6. REFRESH ............................................31
           3.2.7. COUNTER ............................................33
           3.2.8. DECLINECOUNTER .....................................35
      3.3. Methods for VFREEBUSY Components ..........................37
           3.3.1. PUBLISH ............................................37
           3.3.2. REQUEST ............................................40
           3.3.3. REPLY ..............................................42
        
      3.4. Methods for VTODO Components ..............................44
           3.4.1. PUBLISH ............................................44
           3.4.2. REQUEST ............................................46
           3.4.3. REPLY ..............................................51
           3.4.4. ADD ................................................53
           3.4.5. CANCEL .............................................55
           3.4.6. REFRESH ............................................57
           3.4.7. COUNTER ............................................59
           3.4.8. DECLINECOUNTER .....................................61
      3.5. Methods for VJOURNAL Components ...........................62
           3.5.1. PUBLISH ............................................63
           3.5.2. ADD ................................................64
           3.5.3. CANCEL .............................................66
      3.6. Status Replies ............................................68
      3.7. Implementation Considerations .............................77
           3.7.1. Working With Recurrence Instances ..................77
           3.7.2. Attendee Property Considerations ...................78
           3.7.3. Extension Tokens ...................................79
   4. Examples .......................................................79
      4.1. Published Event Examples ..................................79
           4.1.1. A Minimal Published Event ..........................80
           4.1.2. Changing a Published Event .........................80
           4.1.3. Canceling a Published Event ........................81
           4.1.4. A Rich Published Event .............................81
           4.1.5. Anniversaries or Events Attached to Entire Days ....83
      4.2. Group Event Examples ......................................83
           4.2.1. A Group Event Request ..............................84
           4.2.2. Reply to a Group Event Request .....................85
           4.2.3. Update an Event ....................................85
           4.2.4. Countering an Event Proposal .......................86
           4.2.5. Delegating an Event ................................88
           4.2.6. Delegate Accepts the Meeting .......................90
           4.2.7. Delegate Declines the Meeting ......................91
           4.2.8. Forwarding an Event Request ........................92
           4.2.9. Cancel a Group Event ...............................92
           4.2.10. Removing Attendees ................................93
           4.2.11. Replacing the Organizer ...........................95
      4.3. Busy Time Examples ........................................96
           4.3.1. Publish Busy Time ..................................96
           4.3.2. Request Busy Time ..................................96
           4.3.3. Reply to a Busy Time Request .......................97
      4.4. Recurring Event and Time Zone Examples ....................98
           4.4.1. A Recurring Event Spanning Time Zones ..............98
           4.4.2. Modify a Recurring Instance ........................99
           4.4.3. Cancel an Instance ................................101
           4.4.4. Cancel a Recurring Event ..........................101
           4.4.5. Change All Future Instances .......................102
           4.4.6. Add a New Instance to a Recurring Event ...........102
        
      3.4. Methods for VTODO Components ..............................44
           3.4.1. PUBLISH ............................................44
           3.4.2. REQUEST ............................................46
           3.4.3. REPLY ..............................................51
           3.4.4. ADD ................................................53
           3.4.5. CANCEL .............................................55
           3.4.6. REFRESH ............................................57
           3.4.7. COUNTER ............................................59
           3.4.8. DECLINECOUNTER .....................................61
      3.5. Methods for VJOURNAL Components ...........................62
           3.5.1. PUBLISH ............................................63
           3.5.2. ADD ................................................64
           3.5.3. CANCEL .............................................66
      3.6. Status Replies ............................................68
      3.7. Implementation Considerations .............................77
           3.7.1. Working With Recurrence Instances ..................77
           3.7.2. Attendee Property Considerations ...................78
           3.7.3. Extension Tokens ...................................79
   4. Examples .......................................................79
      4.1. Published Event Examples ..................................79
           4.1.1. A Minimal Published Event ..........................80
           4.1.2. Changing a Published Event .........................80
           4.1.3. Canceling a Published Event ........................81
           4.1.4. A Rich Published Event .............................81
           4.1.5. Anniversaries or Events Attached to Entire Days ....83
      4.2. Group Event Examples ......................................83
           4.2.1. A Group Event Request ..............................84
           4.2.2. Reply to a Group Event Request .....................85
           4.2.3. Update an Event ....................................85
           4.2.4. Countering an Event Proposal .......................86
           4.2.5. Delegating an Event ................................88
           4.2.6. Delegate Accepts the Meeting .......................90
           4.2.7. Delegate Declines the Meeting ......................91
           4.2.8. Forwarding an Event Request ........................92
           4.2.9. Cancel a Group Event ...............................92
           4.2.10. Removing Attendees ................................93
           4.2.11. Replacing the Organizer ...........................95
      4.3. Busy Time Examples ........................................96
           4.3.1. Publish Busy Time ..................................96
           4.3.2. Request Busy Time ..................................96
           4.3.3. Reply to a Busy Time Request .......................97
      4.4. Recurring Event and Time Zone Examples ....................98
           4.4.1. A Recurring Event Spanning Time Zones ..............98
           4.4.2. Modify a Recurring Instance ........................99
           4.4.3. Cancel an Instance ................................101
           4.4.4. Cancel a Recurring Event ..........................101
           4.4.5. Change All Future Instances .......................102
           4.4.6. Add a New Instance to a Recurring Event ...........102
        
           4.4.7. Add a New Series of Instances to a
                  Recurring Event ...................................103
           4.4.8. Refreshing a Recurring Event ......................104
           4.4.9. Counter an Instance of a Recurring Event ..........106
           4.4.10. Error Reply to a Request .........................107
      4.5. Group To-Do Examples .....................................108
           4.5.1. A VTODO Request ...................................109
           4.5.2. A VTODO Reply .....................................110
           4.5.3. A VTODO Request for Updated Status ................110
           4.5.4. A Reply: Percent-Complete .........................111
           4.5.5. A Reply: Completed ................................111
           4.5.6. An Updated VTODO Request ..........................112
           4.5.7. Recurring VTODOs ..................................112
      4.6. Journal Examples .........................................113
      4.7. Other Examples ...........................................114
           4.7.1. Event Refresh .....................................114
           4.7.2. Bad RECURRENCE-ID .................................114
   5. Application Protocol Fallbacks ................................116
      5.1. Partial Implementation ...................................116
           5.1.1. Event-Related Fallbacks ...........................117
           5.1.2. Free/Busy-Related Fallbacks .......................119
           5.1.3. To-Do-Related Fallbacks ...........................120
           5.1.4. Journal-Related Fallbacks .........................122
      5.2. Latency Issues ...........................................123
           5.2.1. Cancellation of an Unknown Calendar Component .....123
           5.2.2. Unexpected Reply from an Unknown Delegate .........124
      5.3. Sequence Number ..........................................124
   6. Security Considerations .......................................124
      6.1. Security Threats .........................................124
           6.1.1. Spoofing the Organizer ............................124
           6.1.2. Spoofing the Attendee .............................124
           6.1.3. Unauthorized Replacement of the Organizer .........125
           6.1.4. Eavesdropping and Data Integrity ..................125
           6.1.5. Flooding a Calendar ...............................125
           6.1.6. Unauthorized REFRESH Requests .....................125
      6.2. Recommendations ..........................................125
           6.2.1. Securing iTIP transactions ........................125
           6.2.2. Implementation Controls ...........................126
           6.2.3. Access Controls and Filtering .....................126
      6.3. Privacy Issues ...........................................126
   7. IANA Considerations ...........................................127
      7.1. Registration Template for REQUEST-STATUS Values ..........127
      7.2. Additions to iCalendar METHOD Registry ...................127
      7.3. REQUEST-STATUS Value Registry ............................129
   8. Acknowledgments ...............................................130
   9. References ....................................................131
      9.1. Normative References .....................................131
      9.2. Informative References ...................................131
        
           4.4.7. Add a New Series of Instances to a
                  Recurring Event ...................................103
           4.4.8. Refreshing a Recurring Event ......................104
           4.4.9. Counter an Instance of a Recurring Event ..........106
           4.4.10. Error Reply to a Request .........................107
      4.5. Group To-Do Examples .....................................108
           4.5.1. A VTODO Request ...................................109
           4.5.2. A VTODO Reply .....................................110
           4.5.3. A VTODO Request for Updated Status ................110
           4.5.4. A Reply: Percent-Complete .........................111
           4.5.5. A Reply: Completed ................................111
           4.5.6. An Updated VTODO Request ..........................112
           4.5.7. Recurring VTODOs ..................................112
      4.6. Journal Examples .........................................113
      4.7. Other Examples ...........................................114
           4.7.1. Event Refresh .....................................114
           4.7.2. Bad RECURRENCE-ID .................................114
   5. Application Protocol Fallbacks ................................116
      5.1. Partial Implementation ...................................116
           5.1.1. Event-Related Fallbacks ...........................117
           5.1.2. Free/Busy-Related Fallbacks .......................119
           5.1.3. To-Do-Related Fallbacks ...........................120
           5.1.4. Journal-Related Fallbacks .........................122
      5.2. Latency Issues ...........................................123
           5.2.1. Cancellation of an Unknown Calendar Component .....123
           5.2.2. Unexpected Reply from an Unknown Delegate .........124
      5.3. Sequence Number ..........................................124
   6. Security Considerations .......................................124
      6.1. Security Threats .........................................124
           6.1.1. Spoofing the Organizer ............................124
           6.1.2. Spoofing the Attendee .............................124
           6.1.3. Unauthorized Replacement of the Organizer .........125
           6.1.4. Eavesdropping and Data Integrity ..................125
           6.1.5. Flooding a Calendar ...............................125
           6.1.6. Unauthorized REFRESH Requests .....................125
      6.2. Recommendations ..........................................125
           6.2.1. Securing iTIP transactions ........................125
           6.2.2. Implementation Controls ...........................126
           6.2.3. Access Controls and Filtering .....................126
      6.3. Privacy Issues ...........................................126
   7. IANA Considerations ...........................................127
      7.1. Registration Template for REQUEST-STATUS Values ..........127
      7.2. Additions to iCalendar METHOD Registry ...................127
      7.3. REQUEST-STATUS Value Registry ............................129
   8. Acknowledgments ...............................................130
   9. References ....................................................131
      9.1. Normative References .....................................131
      9.2. Informative References ...................................131
        
   Appendix A.  Differences from RFC 2446 ...........................132
     A.1.  Changed Restrictions .....................................132
     A.2.  Deprecated Features ......................................133
        
   Appendix A.  Differences from RFC 2446 ...........................132
     A.1.  Changed Restrictions .....................................132
     A.2.  Deprecated Features ......................................133
        
1. Introduction and Overview
1. 导言和概述

This document specifies how calendaring systems use iCalendar [RFC5545] objects to interoperate with other calendaring systems. In particular, it specifies how to schedule events, to-dos, or daily journal entries. It further specifies how to search for available busy time information. It does so in a general way, without specifying how communication between different systems actually takes place. Subsequent documents will specify transport bindings between systems that use this protocol.

本文档指定了日历系统如何使用iCalendar[RFC5545]对象与其他日历系统进行互操作。特别是,它指定了如何安排事件、待办事项或每日日记账分录。它进一步指定了如何搜索可用的繁忙时间信息。它以一种通用的方式进行,而不指定不同系统之间的通信实际上是如何发生的。后续文档将指定使用此协议的系统之间的传输绑定。

This protocol is based on messages sent from an originator to one or more recipients. For certain types of messages, a recipient may reply in order to update their status and may also return transaction/request status information. The protocol supports the ability for the message originator to modify or cancel the original message. The protocol also supports the ability for recipients to suggest changes to the originator of a message. The elements of the protocol also define the user roles for its transactions.

此协议基于发起者向一个或多个收件人发送的消息。对于某些类型的邮件,收件人可以回复以更新其状态,还可以返回事务/请求状态信息。协议支持消息发起人修改或取消原始消息的能力。该协议还支持收件人向消息的原始发件人建议更改的功能。协议的元素还定义了其事务的用户角色。

This specification obsoletes RFC 2446 - a list of important changes is provided in Appendix A.

本规范废除了RFC 2446-附录a中提供了重要变更列表。

1.1. Formatting Conventions
1.1. 格式约定

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

本文件中的关键词“必须”、“不得”、“必需”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照[RFC2119]中所述进行解释。

Calendaring and scheduling roles are referred to in quoted-strings of text with the first character of each word in upper case. For example, "Organizer" refers to a role of a "Calendar User" (CU) within the scheduling protocol.

日历和日程安排角色在带引号的文本字符串中引用,每个单词的第一个字符用大写字母表示。例如,“组织者”指调度协议中的“日历用户”(CU)角色。

Calendar components defined by [RFC5545] are referred to with capitalized, quoted-strings of text. All calendar components start with the letter "V". For example, "VEVENT" refers to the event calendar component, "VTODO" refers to the to-do calendar component, and "VJOURNAL" refers to the daily journal calendar component.

[RFC5545]定义的日历组件使用大写、带引号的文本字符串表示。所有日历组件都以字母“V”开头。例如,“VEVENT”指的是事件日历组件,“VTODO”指的是待办日历组件,“VJOURNAL”指的是每日日志日历组件。

Scheduling methods are referred to with capitalized, quoted-strings of text. For example, "REQUEST" refers to the method for requesting a scheduling calendar component be created or modified; "REPLY" refers to the method a recipient of a request uses to update their status with the "Organizer" of the calendar component.

调度方法是指带有大写引号的文本字符串。例如,“请求”是指用于请求创建或修改调度日历组件的方法;“回复”是指请求的收件人使用日历组件的“组织者”更新其状态的方法。

Properties defined by [RFC5545] are referred to with capitalized, quoted-strings of text, followed by the word "property". For example, "ATTENDEE" property refers to the iCalendar property used to convey the calendar address of a "Calendar User".

[RFC5545]定义的属性用大写、带引号的文本字符串表示,后跟“属性”一词。例如,“ATTENDEE”属性指用于传递“日历用户”日历地址的iCalendar属性。

Property parameters defined by this specification are referred to with capitalized, quoted-strings of text, followed by the word "parameter". For example, "VALUE" parameter refers to the iCalendar property parameter used to override the default data type for a property value.

本规范定义的属性参数使用大写、带引号的文本字符串表示,后跟单词“parameter”。例如,“值”参数是指用于替代特性值的默认数据类型的iCalendar特性参数。

Enumerated values defined by this specification are referred to with capitalized text, either alone or followed by the word "value".

本规范定义的枚举值用大写文本表示,单独使用或后跟“值”一词。

In tables, the quoted-string text is specified without quotes in order to minimize the table length.

在表格中,为了最小化表格长度,指定带引号的字符串文本时不带引号。

1.2. Related Documents
1.2. 相关文件

Implementers will need to be familiar with several other specifications that, along with this one, describe the Internet calendaring and scheduling standards. The related documents are:

实现者需要熟悉其他几个规范,这些规范与本规范一起描述Internet日历和日程安排标准。有关文件包括:

[RFC5545] - specifies the objects, data types, properties, and property parameters used in the protocols, along with the methods for representing and encoding them.

[RFC5545]-指定协议中使用的对象、数据类型、属性和属性参数,以及表示和编码它们的方法。

[iMIP] - specifies an Internet email binding for iTIP.

[iMIP]-指定iTIP的Internet电子邮件绑定。

This specification does not attempt to repeat the concepts or definitions from these other specifications. Where possible, explicit references are made to the other specifications.

本规范不试图重复这些其他规范中的概念或定义。在可能的情况下,明确参考其他规范。

1.3. Roles
1.3. 角色

Exchanges of iCalendar objects for the purposes of group calendaring and scheduling occur between "Calendar Users" (CUs). CUs take on several roles in iTIP:

在“日历用户”(CU)之间交换iCalendar对象以进行组日历和调度。CU在iTIP中扮演多个角色:

   +-----------+-------------------------------------------------------+
   | Role      | Description                                           |
   +-----------+-------------------------------------------------------+
   | Organizer | The CU who initiates an exchange takes on the role of |
   |           | Organizer.  For example, the CU who proposes a group  |
   |           | meeting is the Organizer.                             |
   |           |                                                       |
   | Attendee  | CUs who are included in the scheduling message as     |
   |           | possible recipients of that scheduling message.  For  |
   |           | example, the CUs asked to participate in a group      |
   |           | meeting by the Organizer take on the role of          |
   |           | Attendee.                                             |
   |           |                                                       |
   | Other CU  | A CU that is not explicitly included in a scheduling  |
   |           | message, i.e., not the Organizer or an Attendee.      |
   +-----------+-------------------------------------------------------+
        
   +-----------+-------------------------------------------------------+
   | Role      | Description                                           |
   +-----------+-------------------------------------------------------+
   | Organizer | The CU who initiates an exchange takes on the role of |
   |           | Organizer.  For example, the CU who proposes a group  |
   |           | meeting is the Organizer.                             |
   |           |                                                       |
   | Attendee  | CUs who are included in the scheduling message as     |
   |           | possible recipients of that scheduling message.  For  |
   |           | example, the CUs asked to participate in a group      |
   |           | meeting by the Organizer take on the role of          |
   |           | Attendee.                                             |
   |           |                                                       |
   | Other CU  | A CU that is not explicitly included in a scheduling  |
   |           | message, i.e., not the Organizer or an Attendee.      |
   +-----------+-------------------------------------------------------+
        

Note that "ROLE" is also a descriptive parameter to the iCalendar "ATTENDEE" property. Its use is to convey descriptive context about an "Attendee" -- such as "chair", "required participant", or "non-required participant" -- and has nothing to do with the calendaring workflow.

请注意,“角色”也是iCalendar“ATTENDEE”属性的一个描述性参数。它的用途是传达关于“与会者”的描述性上下文,如“主席”、“必需的参与者”或“非必需的参与者”,与日历工作流无关。

1.4. Methods
1.4. 方法

The iTIP methods are listed below and their usage and semantics are defined in Section 3 of this document.

iTIP方法如下所示,其用法和语义在本文档第3节中进行了定义。

   +----------------+--------------------------------------------------+
   | Method         | Description                                      |
   +----------------+--------------------------------------------------+
   | PUBLISH        | Used to publish an iCalendar object to one or    |
   |                | more "Calendar Users".  There is no              |
   |                | interactivity between the publisher and any      |
   |                | other "Calendar User".  An example might include |
   |                | a baseball team publishing its schedule to the   |
   |                | public.                                          |
   |                |                                                  |
   | REQUEST        | Used to schedule an iCalendar object with other  |
   |                | "Calendar Users".  Requests are interactive in   |
   |                | that they require the receiver to respond using  |
   |                | the reply methods.  Meeting requests, busy-time  |
   |                | requests, and the assignment of tasks to other   |
   |                | "Calendar Users" are all examples.  Requests are |
   |                | also used by the Organizer to update the status  |
   |                | of an iCalendar object.                          |
   |                |                                                  |
   | REPLY          | A reply is used in response to a request to      |
   |                | convey Attendee status to the Organizer.         |
   |                | Replies are commonly used to respond to meeting  |
   |                | and task requests.                               |
   |                |                                                  |
   | ADD            | Add one or more new instances to an existing     |
   |                | recurring iCalendar object.                      |
   |                |                                                  |
   | CANCEL         | Cancel one or more instances of an existing      |
   |                | iCalendar object.                                |
   |                |                                                  |
   | REFRESH        | Used by an Attendee to request the latest        |
   |                | version of an iCalendar object.                  |
   |                |                                                  |
   | COUNTER        | Used by an Attendee to negotiate a change in an  |
   |                | iCalendar object.  Examples include the request  |
   |                | to change a proposed event time or change the    |
   |                | due date for a task.                             |
   |                |                                                  |
   | DECLINECOUNTER | Used by the Organizer to decline the proposed    |
   |                | counter proposal.                                |
   +----------------+--------------------------------------------------+
        
   +----------------+--------------------------------------------------+
   | Method         | Description                                      |
   +----------------+--------------------------------------------------+
   | PUBLISH        | Used to publish an iCalendar object to one or    |
   |                | more "Calendar Users".  There is no              |
   |                | interactivity between the publisher and any      |
   |                | other "Calendar User".  An example might include |
   |                | a baseball team publishing its schedule to the   |
   |                | public.                                          |
   |                |                                                  |
   | REQUEST        | Used to schedule an iCalendar object with other  |
   |                | "Calendar Users".  Requests are interactive in   |
   |                | that they require the receiver to respond using  |
   |                | the reply methods.  Meeting requests, busy-time  |
   |                | requests, and the assignment of tasks to other   |
   |                | "Calendar Users" are all examples.  Requests are |
   |                | also used by the Organizer to update the status  |
   |                | of an iCalendar object.                          |
   |                |                                                  |
   | REPLY          | A reply is used in response to a request to      |
   |                | convey Attendee status to the Organizer.         |
   |                | Replies are commonly used to respond to meeting  |
   |                | and task requests.                               |
   |                |                                                  |
   | ADD            | Add one or more new instances to an existing     |
   |                | recurring iCalendar object.                      |
   |                |                                                  |
   | CANCEL         | Cancel one or more instances of an existing      |
   |                | iCalendar object.                                |
   |                |                                                  |
   | REFRESH        | Used by an Attendee to request the latest        |
   |                | version of an iCalendar object.                  |
   |                |                                                  |
   | COUNTER        | Used by an Attendee to negotiate a change in an  |
   |                | iCalendar object.  Examples include the request  |
   |                | to change a proposed event time or change the    |
   |                | due date for a task.                             |
   |                |                                                  |
   | DECLINECOUNTER | Used by the Organizer to decline the proposed    |
   |                | counter proposal.                                |
   +----------------+--------------------------------------------------+
        

Group scheduling in iTIP is accomplished using the set of "request" and "response" methods described above. The following table shows the methods broken down by who can send them.

iTIP中的组调度是使用上述一组“请求”和“响应”方法完成的。下表显示了按谁可以发送这些方法细分的方法。

   +------------+------------------------------------------------------+
   | Originator | Methods                                              |
   +------------+------------------------------------------------------+
   | Organizer  | PUBLISH, REQUEST, ADD, CANCEL, DECLINECOUNTER        |
   |            |                                                      |
   | Attendee   | REPLY, REFRESH, COUNTER, REQUEST (only when          |
   |            | delegating)                                          |
   +------------+------------------------------------------------------+
        
   +------------+------------------------------------------------------+
   | Originator | Methods                                              |
   +------------+------------------------------------------------------+
   | Organizer  | PUBLISH, REQUEST, ADD, CANCEL, DECLINECOUNTER        |
   |            |                                                      |
   | Attendee   | REPLY, REFRESH, COUNTER, REQUEST (only when          |
   |            | delegating)                                          |
   +------------+------------------------------------------------------+
        

Note that for some calendar component types, the allowable methods are a subset of the above set. In addition, apart from "VTIMEZONE" iCalendar components, only one component type is allowed in a single iTIP message.

请注意,对于某些日历组件类型,允许的方法是上述集合的子集。此外,除了“VTIMEZONE”iCalendar组件外,单个iTIP消息中只允许使用一种组件类型。

2. Interoperability Models
2. 互操作性模型

There are two distinct protocols relevant to interoperability: an "application protocol" and a "transport protocol". The application protocol defines the content of the iCalendar objects sent between sender and receiver to accomplish the scheduling transactions listed above. The transport protocol defines how the iCalendar objects are sent between the sender and receiver. This document focuses on the application protocol. Binding documents such as [iMIP] focus on the transport protocol.

有两个与互操作性相关的不同协议:“应用程序协议”和“传输协议”。应用程序协议定义发送方和接收方之间发送的iCalendar对象的内容,以完成上面列出的调度事务。传输协议定义了如何在发送方和接收方之间发送iCalendar对象。本文档重点介绍应用程序协议。像[iMIP]这样的具有约束力的文档侧重于传输协议。

The connection between sender and receiver in the diagram below refers to the application protocol. The iCalendar objects passed from the sender to the receiver are presented in Section 3, "Application Protocol Elements".

下图中发送方和接收方之间的连接指的是应用程序协议。第3节“应用程序协议元素”介绍了从发送方传递到接收方的iCalendar对象。

           +----------+                +----------+
           |          |      iTIP      |          |
           |  Sender  |<-------------->| Receiver |
           |          |                |          |
           +----------+                +----------+
        
           +----------+                +----------+
           |          |      iTIP      |          |
           |  Sender  |<-------------->| Receiver |
           |          |                |          |
           +----------+                +----------+
        

There are several variations of this diagram in which the sender and receiver take on various roles of a "Calendar User Agent" (CUA) or a "Calendar Service" (CS).

此图有几种变体,其中发送方和接收方扮演“日历用户代理”(CUA)或“日历服务”(CS)的各种角色。

The architecture of iTIP is depicted in the diagram below. An application written to this specification may work with bindings for the store-and-forward transport, the real-time transport, or both. Also note that iTIP could be bound to other transports.

iTIP的体系结构如下图所示。根据本规范编写的应用程序可以使用存储转发传输、实时传输或两者的绑定。还请注意,iTIP可以绑定到其他传输。

      +--------------------------------------------------------+
      |                     iTIP Protocol                      |
      +--------------------------------------------------------+
      |                       Transport                        |
      +  -  -  -  -  -  +  -  -  -  -  -  -  +  -  -  -  -  -  +
      | Real-Time       | Store-and-Forward  | Others          |
      +-----------------+--------------------+-----------------+
        
      +--------------------------------------------------------+
      |                     iTIP Protocol                      |
      +--------------------------------------------------------+
      |                       Transport                        |
      +  -  -  -  -  -  +  -  -  -  -  -  -  +  -  -  -  -  -  +
      | Real-Time       | Store-and-Forward  | Others          |
      +-----------------+--------------------+-----------------+
        
2.1. Application Protocol
2.1. 应用协议

In the iTIP model, an iCalendar object is created and managed by an "Organizer". The "Organizer" interacts with other CUs by sending one or more of the iTIP messages listed above. "Attendees" use the "REPLY" method to communicate their status. "Attendees" do not make direct changes to the master iCalendar object. They can, however, use the "COUNTER" method to suggest changes to the "Organizer". In any case, the "Organizer" has complete control over the master iCalendar object.

在iTIP模型中,iCalendar对象由“组织者”创建和管理。“组织者”通过发送上面列出的一条或多条iTIP消息与其他CU进行交互。“与会者”使用“回复”方法传达其状态。“与会者”不会直接更改主iCalendar对象。但是,他们可以使用“计数器”方法建议对“组织者”进行更改。在任何情况下,“组织者”都可以完全控制主iCalendar对象。

2.1.1. Scheduling State
2.1.1. 调度状态

There are two distinct states relevant to iCalendar objects used in scheduling: the overall state of the iCalendar object and the state associated with an "Attendee" in that iCalendar object.

有两种与调度中使用的iCalendar对象相关的不同状态:iCalendar对象的总体状态和与该iCalendar对象中的“与会者”关联的状态。

The state of an iCalendar object is defined by the "STATUS" property and is controlled by the "Organizer." There is no default value for the "STATUS" property. The "Organizer" sets the "STATUS" property to the appropriate value for each iCalendar object.

iCalendar对象的状态由“STATUS”属性定义,并由“Organizer”控制。“STATUS”属性没有默认值。“组织者”将每个iCalendar对象的“状态”属性设置为适当的值。

The state of a particular "Attendee" relative to an iCalendar object used for scheduling is defined by the "PARTSTAT" parameter in the "ATTENDEE" property for each "Attendee". When an "Organizer" issues the initial iCalendar object, "Attendee" status is typically unknown. The "Organizer" specifies this by setting the "PARTSTAT" parameter to "NEEDS-ACTION". Each "Attendee" modifies their "ATTENDEE" property "PARTSTAT" parameter to an appropriate value as part of a "REPLY" message sent back to the "Organizer".

特定“Attendee”相对于用于调度的iCalendar对象的状态由每个“Attendee”的“Attendee”属性中的“PARTSTAT”参数定义。当“组织者”发出初始iCalendar对象时,“与会者”状态通常未知。“组织者”通过将“PARTSTAT”参数设置为“NEEDS-ACTION”来指定这一点。作为发送回“组织者”的“回复”消息的一部分,每个“与会者”将其“与会者”属性“PARTSTAT”参数修改为适当的值。

2.1.2. Delegation
2.1.2. 代表团

Delegation is defined as the process by which an "Attendee" grants another CU (or several CUs) the right to attend on their behalf. The "Organizer" is made aware of this change because the delegating "Attendee" informs the "Organizer". These steps are detailed in the "REQUEST" method sections for the appropriate components.

委派被定义为“与会者”授予另一个CU(或多个CU)代表其出席的权利的过程。“组织者”知道此更改,因为委派“与会者”通知“组织者”。这些步骤在相应组件的“请求”方法部分中有详细说明。

2.1.3. Acting on Behalf of Other Calendar Users
2.1.3. 代表其他日历用户行事

In many organizations, one user will act on behalf of another to organize and/or respond to meeting requests. iTIP provides two mechanisms that support these activities.

在许多组织中,一个用户将代表另一个用户组织和/或响应会议请求。iTIP提供了两种支持这些活动的机制。

First, the "Organizer" is treated as a special entity, separate from "Attendees". All responses from "Attendees" flow to the "Organizer", making it easy to separate a "Calendar User" organizing a meeting from "Calendar Users" attending the meeting. Additionally, iCalendar provides descriptive roles for each "Attendee". For instance, a role of "chair" may be ascribed to one or more "Attendees". The "chair" and the "Organizer" may or may not be the same "Calendar User". This maps well to scenarios where an assistant may manage meeting logistics for another individual who chairs a meeting.

首先,“组织者”被视为一个特殊实体,与“与会者”分开。“与会者”的所有回复都会流向“组织者”,这样就可以很容易地将组织会议的“日历用户”与出席会议的“日历用户”区分开来。此外,iCalendar还为每个“与会者”提供描述性角色。例如,“主席”的角色可归因于一个或多个“与会者”。“主席”和“组织者”可能是也可能不是同一个“日历用户”。这很好地映射到助理可能为主持会议的另一个人管理会议后勤的场景。

Second, a "SENT-BY" parameter may be specified in either the "Organizer" or "Attendee" properties. When specified, the "SENT-BY" parameter indicates that the responding CU acted on behalf of the specified "Attendee" or "Organizer".

其次,可以在“组织者”或“与会者”属性中指定“发送人”参数。指定时,“发送人”参数表示响应CU代表指定的“与会者”或“组织者”行事。

2.1.4. Component Revisions
2.1.4. 组件修订

The "SEQUENCE" property is used by the "Organizer" to indicate revisions to the calendar component. When the "Organizer" makes changes to one of the following properties, the sequence number MUST be incremented:

“组织者”使用“序列”属性来指示对日历组件的修订。当“组织者”更改下列属性之一时,序列号必须递增:

o "DTSTART"

o “DTSTART”

o "DTEND"

o “数据终端”

o "DURATION"

o “持续时间”

o "DUE"

o “到期”

o "RRULE"

o “腐败”

o "RDATE"

o “RDATE”

o "EXDATE"

o “出厂日期”

o "STATUS"

o “地位”

In addition, changes made by the "Organizer" to other properties MAY also require the sequence number to be incremented. The "Organizer" CUA MUST increment the sequence number whenever it makes changes to properties in the calendar component that the "Organizer" deems will

此外,“组织者”对其他属性所做的更改也可能需要增加序列号。每当“组织者”认为日历组件中的属性发生更改时,“组织者”CUA必须增加序号

jeopardize the validity of the participation status of the "Attendees". For example, changing the location of a meeting from one location to another distant location could effectively impact the participation status of the "Attendees".

危及“与会者”参与状态的有效性。例如,将会议地点从一个地点更改为另一个遥远的地点可能会有效地影响“与会者”的参与状态。

Depending on the "METHOD", the "SEQUENCE" property MUST follow these rules in the context of iTIP:

根据“方法”,“顺序”属性在iTIP上下文中必须遵循以下规则:

o For the "PUBLISH" and "REQUEST" methods, the "SEQUENCE" property value is incremented according to the rules stated above.

o 对于“PUBLISH”和“REQUEST”方法,“SEQUENCE”属性值根据上述规则递增。

o The "SEQUENCE" property value MUST be incremented each time the "Organizer" uses the "ADD" or "CANCEL" methods.

o 每次“组织者”使用“添加”或“取消”方法时,“序列”属性值必须递增。

o The "SEQUENCE" property value MUST NOT be incremented when using "REPLY", "REFRESH", "COUNTER", "DECLINECOUNTER", or when sending a delegation "REQUEST".

o 使用“回复”、“刷新”、“计数器”、“DECLINECOUNTER”或发送委托“请求”时,不得增加“序列”属性值。

In some circumstances, the "Organizer" may not have received responses to the final revision sent out. In this situation, the "Organizer" may wish to send an update "REQUEST" and set "RSVP=TRUE" for all "Attendees" so that current responses can be collected.

在某些情况下,“组织者”可能没有收到对发出的最终修订的回复。在这种情况下,“组织者”可能希望发送更新“请求”,并为所有“与会者”设置“RSVP=TRUE”,以便收集当前响应。

The value of the "SEQUENCE" property contained in a response from an "Attendee" may not always match the "Organizer's" revision. Implementations may choose to have the CUA indicate to the CU that the response is to an iCalendar object that has been revised, and allow the CU to decide whether or not to accept the response.

“与会者”响应中包含的“序列”属性的值可能并不总是与“组织者”的修订版匹配。实现可以选择让CUA向CU指示响应是对已修改的iCalendar对象的,并允许CU决定是否接受响应。

Whilst a change in sequence number is indicative of a significant change to a previously scheduled item, "Attendee" CUAs SHOULD NOT rely solely on a change in sequence number as a means of detecting a significant change. Instead, CUAs SHOULD compare the old and new versions of the calendar components, determine the exact nature of the changes, and make decisions -- possibly based on "Calendar User" preferences -- as to whether the user needs to be explicitly informed of the change.

虽然序列号的变化表明先前计划的项目发生了重大变化,“与会者”CUA不应仅依赖序列号的变化作为检测重大变化的手段。相反,CUAs应该比较日历组件的新旧版本,确定更改的确切性质,并做出决定——可能基于“日历用户”偏好——决定是否需要明确通知用户更改。

2.1.5. Message Sequencing
2.1.5. 消息排序

CUAs that handle the iTIP application protocol must often correlate a component in a calendar store with a component received in the iTIP message. For example, an event may be updated with a later revision of the same event. To accomplish this, a CUA must correlate the version of the event already in its calendar store with the version sent in the iTIP message. In addition to this correlation, there are several factors that can cause iTIP messages to arrive in an unexpected order. That is, an "Organizer" could receive a reply to

处理iTIP应用程序协议的CUA通常必须将日历存储中的组件与iTIP消息中接收到的组件相关联。例如,可以使用同一事件的更高版本更新事件。为此,CUA必须将其日历存储中已存在的事件版本与iTIP消息中发送的版本相关联。除了这种相关性之外,还有几个因素会导致iTIP消息以意外的顺序到达。也就是说,一个“组织者”可以收到一个回复

an earlier revision of a component after receiving a reply to a later revision.

收到对后续修订的回复后,组件的早期修订。

To maximize interoperability and to handle messages that arrive in an unexpected order, use the following rules:

要最大限度地提高互操作性并处理以意外顺序到达的消息,请使用以下规则:

1. The primary key for referencing a particular iCalendar component is the "UID" property value. To reference an instance of a recurring component, the primary key is composed of the "UID" and the "RECURRENCE-ID" properties.

1. 引用特定iCalendar组件的主键是“UID”属性值。要引用定期组件的实例,主键由“UID”和“RECURRENCE-ID”属性组成。

2. The secondary key for referencing a component is the "SEQUENCE" property value. For components where the "UID" and "RECURRENCE-ID" property values are the same, the component with the highest numeric value for the "SEQUENCE" property obsoletes all other revisions of the component with lower values.

2. 引用组件的辅助键是“序列”属性值。对于“UID”和“RECURRENCE-ID”属性值相同的组件,“SEQUENCE”属性具有最高数值的组件将淘汰具有较低值的组件的所有其他版本。

3. "Attendees" send "REPLY" messages to the "Organizer". For replies where the "UID" and "RECURRENCE-ID" property values are the same, the value of the "SEQUENCE" property indicates the revision of the component to which the "Attendee" is replying. The reply with the highest numeric value for the "SEQUENCE" property obsoletes all other replies with lower values.

3. “与会者”向“组织者”发送“回复”消息。对于“UID”和“RECURRENCE-ID”属性值相同的答复,“SEQUENCE”属性的值表示“Attendee”答复的组件的版本。对于“SEQUENCE”属性,具有最高数值的回复将废弃所有其他具有较低值的回复。

4. In situations where the "UID", "RECURRENCE-ID", and "SEQUENCE" property values match, the "DTSTAMP" property is used as the tie-breaker. The component with the latest "DTSTAMP" overrides all others. Similarly, for "Attendee" responses where the "UID", "RECURRENCE-ID", and "SEQUENCE" property values match, the response with the latest "DTSTAMP" overrides all others.

4. 在“UID”、“RECURRENCE-ID”和“SEQUENCE”属性值匹配的情况下,“DTSTAMP”属性将用作连接断路器。具有最新“DTSTAMP”的组件将覆盖所有其他组件。类似地,对于“与会者”响应,如果“UID”、“RECURRENCE-ID”和“SEQUENCE”属性值匹配,则具有最新“DTSTAMP”的响应将覆盖所有其他响应。

Hence, CUAs will need to persist the following component properties in order to correctly process iTIP messages: "UID", "RECURRENCE-ID", "SEQUENCE", and "DTSTAMP". Furthermore, for each "ATTENDEE" property of a component, "Organizer" CUAs will need to persist the "SEQUENCE" and "DTSTAMP" property values associated with the "Attendee's" last response, so that any earlier responses from an "Attendee" that are received out of order (e.g., due to a delay in the transport) can be correctly discarded.

因此,CUAs需要保留以下组件属性,以便正确处理iTIP消息:“UID”、“RECURRENCE-ID”、“SEQUENCE”和“DTSTAMP”。此外,对于组件的每个“与会者”属性,“组织者”CUA将需要保留与“与会者”最后一次响应相关联的“序列”和“DTSTAMP”属性值,以便可以正确丢弃无序接收的“与会者”的任何早期响应(例如,由于传输延迟)。

3. Application Protocol Elements
3. 应用程序协议元素

iTIP messages are "text/calendar" MIME entities that contain calendaring and scheduling information. The particular type of iCalendar message is referred to as the "method type". Each method type is identified by a "METHOD" property specified as part of the "text/calendar" content type. The table below shows various

iTIP消息是包含日历和日程安排信息的“文本/日历”MIME实体。iCalendar消息的特定类型称为“方法类型”。每个方法类型都由一个“方法”属性标识,该属性指定为“文本/日历”内容类型的一部分。下表显示了各种

combinations of calendar components and the method types that this specification supports.

日历组件和本规范支持的方法类型的组合。

        +----------------+--------+-------+----------+-----------+
        |                | VEVENT | VTODO | VJOURNAL | VFREEBUSY |
        +----------------+--------+-------+----------+-----------+
        | PUBLISH        | Yes    | Yes   | Yes      | Yes       |
        | REQUEST        | Yes    | Yes   | No       | Yes       |
        | REFRESH        | Yes    | Yes   | No       | No        |
        | CANCEL         | Yes    | Yes   | Yes      | No        |
        | ADD            | Yes    | Yes   | Yes      | No        |
        | REPLY          | Yes    | Yes   | No       | Yes       |
        | COUNTER        | Yes    | Yes   | No       | No        |
        | DECLINECOUNTER | Yes    | Yes   | No       | No        |
        +----------------+--------+-------+----------+-----------+
        
        +----------------+--------+-------+----------+-----------+
        |                | VEVENT | VTODO | VJOURNAL | VFREEBUSY |
        +----------------+--------+-------+----------+-----------+
        | PUBLISH        | Yes    | Yes   | Yes      | Yes       |
        | REQUEST        | Yes    | Yes   | No       | Yes       |
        | REFRESH        | Yes    | Yes   | No       | No        |
        | CANCEL         | Yes    | Yes   | Yes      | No        |
        | ADD            | Yes    | Yes   | Yes      | No        |
        | REPLY          | Yes    | Yes   | No       | Yes       |
        | COUNTER        | Yes    | Yes   | No       | No        |
        | DECLINECOUNTER | Yes    | Yes   | No       | No        |
        +----------------+--------+-------+----------+-----------+
        

Each method type is defined in terms of its associated components and properties. Some components and properties are required, some are optional, and others are excluded. The restrictions are expressed in this document using a simple "restriction table". The first column indicates the name of a component or property. Properties of the iCalendar object are not indented. Properties of a component are indented. The second column (the "Presence" column) indicates whether or not a component or property should be present and, if present, how many times it can occur. The third column contains comments for further clarification.

每个方法类型都是根据其关联的组件和属性定义的。有些组件和属性是必需的,有些是可选的,而另一些则被排除在外。本文件使用简单的“限制表”表示限制。第一列指示组件或属性的名称。iCalendar对象的属性不缩进。组件的属性是缩进的。第二列(“存在”列)指示组件或属性是否应存在,以及如果存在,它可以出现多少次。第三栏载有进一步澄清的意见。

The presence column uses the following values to assert whether a property is required or optional, and the number of times it may appear in the iCalendar object.

“状态”列使用以下值来断言属性是必需的还是可选的,以及它在iCalendar对象中出现的次数。

   +----------------+--------------------------------------------------+
   | Presence Value | Description                                      |
   +----------------+--------------------------------------------------+
   | 1              | One instance MUST be present.                    |
   | 1+             | At least one instance MUST be present.           |
   | 0              | Instances of this property MUST NOT be present.  |
   | 0+             | Multiple instances MAY be present.               |
   | 0 or 1         | Up to 1 instance of this property MAY be         |
   |                | present.                                         |
   +----------------+--------------------------------------------------+
        
   +----------------+--------------------------------------------------+
   | Presence Value | Description                                      |
   +----------------+--------------------------------------------------+
   | 1              | One instance MUST be present.                    |
   | 1+             | At least one instance MUST be present.           |
   | 0              | Instances of this property MUST NOT be present.  |
   | 0+             | Multiple instances MAY be present.               |
   | 0 or 1         | Up to 1 instance of this property MAY be         |
   |                | present.                                         |
   +----------------+--------------------------------------------------+
        

The tables also call out "IANA-PROPERTY", "X-PROPERTY", "IANA-COMPONENT", and "X-COMPONENT" to show where registered and experimental property and component extensions can appear. The tables do not lay out the restrictions of property parameters. Those restrictions are defined in [RFC5545].

这些表还调用了“IANA-PROPERTY”、“X-PROPERTY”、“IANA-COMPONENT”和“X-COMPONENT”,以显示注册和实验属性以及组件扩展可以出现的位置。这些表没有列出特性参数的限制。这些限制在[RFC5545]中有定义。

3.1. Common Component Restriction Tables
3.1. 通用组件限制表
3.1.1. VCALENDAR
3.1.1. 瓦卡伦达

The restriction table below applies to properties of the iCalendar object. That is, the properties at the outermost scope.

下面的限制表适用于iCalendar对象的属性。即,位于最外层范围的属性。

          +-----------------------------------------------------+
          | Constraints for Properties in a VCALENDAR Component |
          +-----------------------------------------------------+
        
          +-----------------------------------------------------+
          | Constraints for Properties in a VCALENDAR Component |
          +-----------------------------------------------------+
        
          +--------------------+----------+--------------------+
          | Component/Property | Presence | Comment            |
          +--------------------+----------+--------------------+
          | CALSCALE           | 0 or 1   |                    |
          | PRODID             | 1        |                    |
          | VERSION            | 1        | Value MUST be 2.0. |
          | IANA-PROPERTY      | 0+       |                    |
          | X-PROPERTY         | 0+       |                    |
          +--------------------+----------+--------------------+
        
          +--------------------+----------+--------------------+
          | Component/Property | Presence | Comment            |
          +--------------------+----------+--------------------+
          | CALSCALE           | 0 or 1   |                    |
          | PRODID             | 1        |                    |
          | VERSION            | 1        | Value MUST be 2.0. |
          | IANA-PROPERTY      | 0+       |                    |
          | X-PROPERTY         | 0+       |                    |
          +--------------------+----------+--------------------+
        
3.1.2. VTIMEZONE
3.1.2. VTIMEZONE

"VTIMEZONE" components may be referred to by other components via a "TZID" parameter on a "DATETIME" value type. The property restrictions in the table below apply to any "VTIMEZONE" component in an iTIP message.

“VTIMEZONE”组件可由其他组件通过“DATETIME”值类型上的“TZID”参数引用。下表中的属性限制适用于iTIP消息中的任何“VTIMEZONE”组件。

                 +--------------------------------------+
                 | Constraints for VTIMEZONE Components |
                 +--------------------------------------+
        
                 +--------------------------------------+
                 | Constraints for VTIMEZONE Components |
                 +--------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to timezone.               |
   |   DAYLIGHT         | 0+       | MUST be one or more of either     |
   |                    |          | STANDARD or DAYLIGHT.             |
   |     COMMENT        | 0+       |                                   |
   |     DTSTART        | 1        | MUST be local time format.        |
   |     RDATE          | 0+       |                                   |
   |     RRULE          | 0 or 1   |                                   |
   |     TZNAME         | 0+       |                                   |
   |     TZOFFSETFROM   | 1        |                                   |
   |     TZOFFSETTO     | 1        |                                   |
   |     IANA-PROPERTY  | 0+       |                                   |
   |     X-PROPERTY     | 0+       |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   STANDARD         | 0+       | MUST be one or more of either     |
   |                    |          | STANDARD or DAYLIGHT.             |
   |     COMMENT        | 0+       |                                   |
   |     DTSTART        | 1        | MUST be local time format.        |
   |     RDATE          | 0+       | If present, RRULE MUST NOT be     |
   |                    |          | present.                          |
   |     RRULE          | 0 or 1   | If present, RDATE MUST NOT be     |
   |                    |          | present.                          |
   |     TZNAME         | 0+       |                                   |
   |     TZOFFSETFROM   | 1        |                                   |
   |     TZOFFSETTO     | 1        |                                   |
   |     IANA-PROPERTY  | 0+       |                                   |
   |     X-PROPERTY     | 0+       |                                   |
   |   TZID             | 1        |                                   |
   |   TZURL            | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   +--------------------+----------+-----------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to timezone.               |
   |   DAYLIGHT         | 0+       | MUST be one or more of either     |
   |                    |          | STANDARD or DAYLIGHT.             |
   |     COMMENT        | 0+       |                                   |
   |     DTSTART        | 1        | MUST be local time format.        |
   |     RDATE          | 0+       |                                   |
   |     RRULE          | 0 or 1   |                                   |
   |     TZNAME         | 0+       |                                   |
   |     TZOFFSETFROM   | 1        |                                   |
   |     TZOFFSETTO     | 1        |                                   |
   |     IANA-PROPERTY  | 0+       |                                   |
   |     X-PROPERTY     | 0+       |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   STANDARD         | 0+       | MUST be one or more of either     |
   |                    |          | STANDARD or DAYLIGHT.             |
   |     COMMENT        | 0+       |                                   |
   |     DTSTART        | 1        | MUST be local time format.        |
   |     RDATE          | 0+       | If present, RRULE MUST NOT be     |
   |                    |          | present.                          |
   |     RRULE          | 0 or 1   | If present, RDATE MUST NOT be     |
   |                    |          | present.                          |
   |     TZNAME         | 0+       |                                   |
   |     TZOFFSETFROM   | 1        |                                   |
   |     TZOFFSETTO     | 1        |                                   |
   |     IANA-PROPERTY  | 0+       |                                   |
   |     X-PROPERTY     | 0+       |                                   |
   |   TZID             | 1        |                                   |
   |   TZURL            | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   +--------------------+----------+-----------------------------------+
        
3.1.3. VALARM
3.1.3. 瓦勒姆

The property restrictions in the table below apply to any "VALARM" component in an iTIP message.

下表中的属性限制适用于iTIP消息中的任何“VALARM”组件。

                   +-----------------------------------+
                   | Constraints for VALARM Components |
                   +-----------------------------------+
        
                   +-----------------------------------+
                   | Constraints for VALARM Components |
                   +-----------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | VALARM             | 0+       |                                   |
   |   ACTION           | 1        |                                   |
   |   ATTACH           | 0+       |                                   |
   |   ATTENDEE         | 0+       |                                   |
   |   DESCRIPTION      | 0 or 1   |                                   |
   |   DURATION         | 0 or 1   | If present, REPEAT MUST be        |
   |                    |          | present.                          |
   |   REPEAT           | 0 or 1   | If present, DURATION MUST be      |
   |                    |          | present.                          |
   |   SUMMARY          | 0 or 1   |                                   |
   |   TRIGGER          | 1        |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   +--------------------+----------+-----------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | VALARM             | 0+       |                                   |
   |   ACTION           | 1        |                                   |
   |   ATTACH           | 0+       |                                   |
   |   ATTENDEE         | 0+       |                                   |
   |   DESCRIPTION      | 0 or 1   |                                   |
   |   DURATION         | 0 or 1   | If present, REPEAT MUST be        |
   |                    |          | present.                          |
   |   REPEAT           | 0 or 1   | If present, DURATION MUST be      |
   |                    |          | present.                          |
   |   SUMMARY          | 0 or 1   |                                   |
   |   TRIGGER          | 1        |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   +--------------------+----------+-----------------------------------+
        
3.2. Methods for VEVENT Calendar Components
3.2. VEVENT日历组件的方法

This section defines the property set restrictions for the method types that are applicable to the "VEVENT" calendar component. Each method is defined using a table that clarifies the property constraints that define the particular method.

本节定义了适用于“VEVENT”日历组件的方法类型的属性集限制。每个方法都使用一个表来定义,该表澄清了定义特定方法的属性约束。

The following summarizes the methods that are defined for the "VEVENT" calendar component.

下面总结了为“VEVENT”日历组件定义的方法。

   +----------------+--------------------------------------------------+
   | Method         | Description                                      |
   +----------------+--------------------------------------------------+
   | PUBLISH        | Post notification of an event.  Used primarily   |
   |                | as a method of advertising the existence of an   |
   |                | event.                                           |
   |                |                                                  |
   | REQUEST        | Make a request for an event.  This is an         |
   |                | explicit invitation to one or more Attendees.    |
   |                | Event requests are also used to update or change |
   |                | an existing event.  Clients that cannot handle   |
   |                | REQUEST MAY degrade the event to view it as a    |
   |                | PUBLISH.                                         |
   |                |                                                  |
   | REPLY          | Reply to an event request.  Clients may set      |
   |                | their status (PARTSTAT) to ACCEPTED, DECLINED,   |
   |                | TENTATIVE, or DELEGATED.                         |
   |                |                                                  |
   | ADD            | Add one or more instances to an existing event.  |
   |                |                                                  |
   | CANCEL         | Cancel one or more instances of an existing      |
   |                | event.                                           |
   |                |                                                  |
   | REFRESH        | A request is sent to an Organizer by an Attendee |
   |                | asking for the latest version of an event to be  |
   |                | resent to the requester.                         |
   |                |                                                  |
   | COUNTER        | Counter a REQUEST with an alternative proposal.  |
   |                | Sent by an Attendee to the Organizer.            |
   |                |                                                  |
   | DECLINECOUNTER | Decline a counter proposal.  Sent to an Attendee |
   |                | by the Organizer.                                |
   +----------------+--------------------------------------------------+
        
   +----------------+--------------------------------------------------+
   | Method         | Description                                      |
   +----------------+--------------------------------------------------+
   | PUBLISH        | Post notification of an event.  Used primarily   |
   |                | as a method of advertising the existence of an   |
   |                | event.                                           |
   |                |                                                  |
   | REQUEST        | Make a request for an event.  This is an         |
   |                | explicit invitation to one or more Attendees.    |
   |                | Event requests are also used to update or change |
   |                | an existing event.  Clients that cannot handle   |
   |                | REQUEST MAY degrade the event to view it as a    |
   |                | PUBLISH.                                         |
   |                |                                                  |
   | REPLY          | Reply to an event request.  Clients may set      |
   |                | their status (PARTSTAT) to ACCEPTED, DECLINED,   |
   |                | TENTATIVE, or DELEGATED.                         |
   |                |                                                  |
   | ADD            | Add one or more instances to an existing event.  |
   |                |                                                  |
   | CANCEL         | Cancel one or more instances of an existing      |
   |                | event.                                           |
   |                |                                                  |
   | REFRESH        | A request is sent to an Organizer by an Attendee |
   |                | asking for the latest version of an event to be  |
   |                | resent to the requester.                         |
   |                |                                                  |
   | COUNTER        | Counter a REQUEST with an alternative proposal.  |
   |                | Sent by an Attendee to the Organizer.            |
   |                |                                                  |
   | DECLINECOUNTER | Decline a counter proposal.  Sent to an Attendee |
   |                | by the Organizer.                                |
   +----------------+--------------------------------------------------+
        
3.2.1. PUBLISH
3.2.1. 出版

The "PUBLISH" method in a "VEVENT" calendar component is an unsolicited posting of an iCalendar object. Any CU may add published components to their calendar. The "Organizer" MUST be present in a published iCalendar component. "Attendees" MUST NOT be present. Its expected usage is for encapsulating an arbitrary event as an iCalendar object. The "Organizer" may subsequently update (with another "PUBLISH" method), add instances to (with an "ADD" method), or cancel (with a "CANCEL" method) a previously published "VEVENT" calendar component.

“VEVENT”日历组件中的“PUBLISH”方法是对iCalendar对象的主动发布。任何CU都可以将发布的组件添加到其日历中。“组织者”必须出现在已发布的iCalendar组件中。“与会者”不得出席。它的预期用途是将任意事件封装为iCalendar对象。“组织者”可以随后更新(使用另一个“发布”方法)、向(使用“添加”方法)或取消(使用“取消”方法)先前发布的“VEVENT”日历组件添加实例。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

             +----------------------------------------------+
             | Constraints for a METHOD:PUBLISH of a VEVENT |
             +----------------------------------------------+
        
             +----------------------------------------------+
             | Constraints for a METHOD:PUBLISH of a VEVENT |
             +----------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST equal PUBLISH.               |
   |                    |          |                                   |
   | VEVENT             | 1+       |                                   |
   |   DTSTAMP          | 1        |                                   |
   |   DTSTART          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   SUMMARY          | 1        | Can be null.                      |
   |   UID              | 1        |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   SEQUENCE         | 0 or 1   | MUST be present if value is       |
   |                    |          | greater than 0; MAY be present if |
   |                    |          | 0.                                |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0 or 1   |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   | Can be null.                      |
   |   DTEND            | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DURATION         | 0 or 1   | If present, DTEND MUST NOT be     |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PRIORITY         | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RELATED-TO       | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | TENTATIVE/CONFIRMED/CANCELLED.    |
   |   TRANSP           | 0 or 1   |                                   |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST equal PUBLISH.               |
   |                    |          |                                   |
   | VEVENT             | 1+       |                                   |
   |   DTSTAMP          | 1        |                                   |
   |   DTSTART          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   SUMMARY          | 1        | Can be null.                      |
   |   UID              | 1        |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   SEQUENCE         | 0 or 1   | MUST be present if value is       |
   |                    |          | greater than 0; MAY be present if |
   |                    |          | 0.                                |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0 or 1   |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   | Can be null.                      |
   |   DTEND            | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DURATION         | 0 or 1   | If present, DTEND MUST NOT be     |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PRIORITY         | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RELATED-TO       | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | TENTATIVE/CONFIRMED/CANCELLED.    |
   |   TRANSP           | 0 or 1   |                                   |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
        
   |   ATTENDEE         | 0        |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0+       |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   +--------------------+----------+-----------------------------------+
        
   |   ATTENDEE         | 0        |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0+       |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   +--------------------+----------+-----------------------------------+
        
3.2.2. REQUEST
3.2.2. 要求

The "REQUEST" method in a "VEVENT" component provides the following scheduling functions:

“VEVENT”组件中的“请求”方法提供以下调度功能:

o Invite "Attendees" to an event.

o 邀请“与会者”参加活动。

o Reschedule an existing event.

o 重新安排现有事件。

o Response to a "REFRESH" request.

o 对“刷新”请求的响应。

o Update the details of an existing event, without rescheduling it.

o 更新现有事件的详细信息,而无需重新安排。

o Update the status of "Attendees" of an existing event, without rescheduling it.

o 更新现有活动的“与会者”状态,无需重新安排。

o Reconfirm an existing event, without rescheduling it.

o 重新确认现有事件,无需重新安排。

o Forward a "VEVENT" to another uninvited CU.

o 将“VEVENT”转发给另一个未邀请的CU。

o For an existing "VEVENT" calendar component, delegate the role of "Attendee" to another CU.

o 对于现有的“VEVENT”日历组件,将“与会者”角色委派给其他CU。

o For an existing "VEVENT" calendar component, change the role of "Organizer" to another CU.

o 对于现有的“VEVENT”日历组件,将“组织者”角色更改为其他CU。

The "Organizer" originates the "REQUEST". The recipients of the "REQUEST" method are the CUs invited to the event, the "Attendees". "Attendees" use the "REPLY" method to convey attendance status to the "Organizer".

“组织者”发起“请求”。“请求”方法的接收者是被邀请参加活动的CU,即“与会者”。“与会者”使用“回复”方法向“组织者”传达出席状态。

The "UID" and "SEQUENCE" properties are used to distinguish the various uses of the "REQUEST" method. If the "UID" property value in the "REQUEST" is not found on the recipient's calendar, then the "REQUEST" is for a new "VEVENT" calendar component. If the "UID" property value is found on the recipient's calendar, then the "REQUEST" is for a rescheduling, an update, or a reconfirmation of the "VEVENT" calendar component.

“UID”和“SEQUENCE”属性用于区分“REQUEST”方法的各种用途。如果在收件人的日历上找不到“请求”中的“UID”属性值,则“请求”是针对新的“VEVENT”日历组件的。如果在收件人的日历上找到“UID”属性值,则“请求”用于重新安排、更新或重新确认“VEVENT”日历组件。

For the "REQUEST" method, multiple "VEVENT" components in a single iCalendar object are only permitted for components with the same "UID" property. That is, a series of recurring events may have instance-specific information. In this case, multiple "VEVENT" components are needed to express the entire series.

对于“请求”方法,单个iCalendar对象中的多个“VEVENT”组件仅允许用于具有相同“UID”属性的组件。也就是说,一系列重复发生的事件可能具有特定于实例的信息。在这种情况下,需要多个“VEVENT”组件来表示整个系列。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

             +----------------------------------------------+
             | Constraints for a METHOD:REQUEST of a VEVENT |
             +----------------------------------------------+
        
             +----------------------------------------------+
             | Constraints for a METHOD:REQUEST of a VEVENT |
             +----------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be REQUEST.                  |
   |                    |          |                                   |
   | VEVENT             | 1+       | All components MUST have the same |
   |                    |          | UID.                              |
   |   ATTENDEE         | 1+       |                                   |
   |   DTSTAMP          | 1        |                                   |
   |   DTSTART          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   SEQUENCE         | 0 or 1   | MUST be present if value is       |
   |                    |          | greater than 0; MAY be present if |
   |                    |          | 0.                                |
   |   SUMMARY          | 1        | Can be null.                      |
   |   UID              | 1        |                                   |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   | Can be null.                      |
   |   DTEND            | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be REQUEST.                  |
   |                    |          |                                   |
   | VEVENT             | 1+       | All components MUST have the same |
   |                    |          | UID.                              |
   |   ATTENDEE         | 1+       |                                   |
   |   DTSTAMP          | 1        |                                   |
   |   DTSTART          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   SEQUENCE         | 0 or 1   | MUST be present if value is       |
   |                    |          | greater than 0; MAY be present if |
   |                    |          | 0.                                |
   |   SUMMARY          | 1        | Can be null.                      |
   |   UID              | 1        |                                   |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   | Can be null.                      |
   |   DTEND            | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
        
   |   DURATION         | 0 or 1   | If present, DTEND MUST NOT be     |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PRIORITY         | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   RELATED-TO       | 0+       |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | TENTATIVE/CONFIRMED.              |
   |   TRANSP           | 0 or 1   |                                   |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |                    |          |                                   |
   |   VALARM           | 0+       |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   |   DURATION         | 0 or 1   | If present, DTEND MUST NOT be     |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PRIORITY         | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   RELATED-TO       | 0+       |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | TENTATIVE/CONFIRMED.              |
   |   TRANSP           | 0 or 1   |                                   |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |                    |          |                                   |
   |   VALARM           | 0+       |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.2.2.1. Rescheduling an Event
3.2.2.1. 重新安排活动

The "REQUEST" method may be used to reschedule an event. A rescheduled event involves a change to the existing event in terms of its time or recurrence intervals and possibly the location or description. If the recipient CUA of a "REQUEST" method finds that the "UID" property value already exists on the calendar but that the "SEQUENCE" (or "DTSTAMP") property value in the "REQUEST" method is greater than the value for the existing event, then the "REQUEST" method describes a rescheduling of the event.

“请求”方法可用于重新安排事件。重新安排的事件涉及更改现有事件的时间或重复间隔,以及可能的位置或描述。如果“REQUEST”方法的接收方CUA发现日历上已经存在“UID”属性值,但“REQUEST”方法中的“SEQUENCE”(或“DTSTAMP”)属性值大于现有事件的值,则“REQUEST”方法描述事件的重新调度。

3.2.2.2. Updating or Reconfirmation of an Event
3.2.2.2. 事件的更新或再确认

The "REQUEST" method may be used to update or reconfirm an event. An update to an existing event does not involve changes to the time or recurrence intervals, and might not involve a change to the location or description for the event. If the recipient CUA of a "REQUEST" method finds that the "UID" property value already exists on the calendar and that the "SEQUENCE" property value in the "REQUEST" is the same as the value for the existing event, then the "REQUEST" method describes an update of the event details, but not a rescheduling of the event.

“请求”方法可用于更新或重新确认事件。对现有事件的更新不涉及时间或重复间隔的更改,也可能不涉及事件位置或描述的更改。如果“请求”方法的收件人CUA发现日历上已经存在“UID”属性值,并且“请求”中的“序列”属性值与现有事件的值相同,则“请求”方法描述事件详细信息的更新,而不是事件的重新安排。

The update "REQUEST" method is the appropriate response to a "REFRESH" method sent from an "Attendee" to the "Organizer" of an event.

更新“请求”方法是对事件“参与者”发送给“组织者”的“刷新”方法的适当响应。

The "Organizer" of an event may also send unsolicited "REQUEST" methods. The unsolicited "REQUEST" methods may be used to update the details of the event without rescheduling it, to update the "PARTSTAT" parameter of "Attendees", or to reconfirm the event.

活动的“组织者”也可以发送未经请求的“请求”方法。非请求的“请求”方法可用于在不重新安排的情况下更新事件的详细信息,更新“与会者”的“PARTSTAT”参数,或重新确认事件。

3.2.2.3. Delegating an Event to Another CU
3.2.2.3. 将事件委派给另一个CU

Some calendar and scheduling systems allow "Attendees" to delegate their presence at an event to another "Calendar User". iTIP supports this concept using the following workflow. Any "Attendee" may delegate their right to participate in a calendar "VEVENT" to another CU. The implication is that the delegate participates in lieu of the original "Attendee", NOT in addition to the "Attendee". The delegator MUST notify the "Organizer" of this action using the steps outlined below. Implementations may support or restrict delegation as they see fit. For instance, some implementations may restrict a delegate from delegating a "REQUEST" to another CU.

一些日历和日程安排系统允许“与会者”将其出席活动的时间委派给另一个“日历用户”。iTIP使用以下工作流支持此概念。任何“与会者”均可将其参加日历“活动”的权利委托给其他CU。这意味着该代表将代替原来的“与会者”参与,而不是在“与会者”之外参与。授权人必须按照以下步骤通知“组织者”。实现可以支持或限制他们认为合适的委托。例如,一些实现可能会限制委托将“请求”委托给另一个CU。

The "Delegator" of an event forwards the existing "REQUEST" to the "Delegate". The "REQUEST" method MUST include an "ATTENDEE" property with the calendar address of the "Delegate". The "Delegator" MUST also send a "REPLY" method to the "Organizer" with the "Delegator's" "ATTENDEE" property "PARTSTAT" parameter value set to "DELEGATED". In addition, the "DELEGATED-TO" parameter MUST be included with the calendar address of the "Delegate". Also, a new "ATTENDEE" property for the "Delegate" MUST be included and must specify the calendar user address set in the "DELEGATED-TO" parameter, as above.

事件的“委托人”将现有的“请求”转发给“委托人”。“请求”方法必须包含一个带有“代表”日历地址的“与会者”属性。“Delegator”还必须向“Organizer”发送“REPLY”方法,并将“Delegator的”“ATTENDEE”属性“PARTSTAT”参数值设置为“DELEGATED”。此外,“委托人”参数必须包含在“委托人”的日历地址中。此外,必须包括“委派”的新“与会者”属性,并且必须指定在“委派到”参数中设置的日历用户地址,如上所述。

In response to the request, the "Delegate" MUST send a "REPLY" method to the "Organizer", and optionally to the "Delegator". The "REPLY" method SHOULD include the "ATTENDEE" property with the "DELEGATED-FROM" parameter value of the "Delegator's" calendar address.

为了响应请求,“代表”必须向“组织者”和“代表人”发送“回复”方法。“REPLY”方法应包括“ATTENDEE”属性以及“Delegate-FROM”日历地址的“Delegate-FROM”参数值。

The "Delegator" may continue to receive updates to the event even though they will not be attending. This is accomplished by the "Delegator" setting their "role" attribute to "NON-PARTICIPANT" in the "REPLY" to the "Organizer".

“授权人”可能会继续收到活动的更新,即使他们不出席。这是通过“委托人”在对“组织者”的“回复”中将其“角色”属性设置为“非参与者”来实现的。

3.2.2.4. Changing the Organizer
3.2.2.4. 更改组织者

The situation may arise where the "Organizer" of a "VEVENT" is no longer able to perform the "Organizer" role and abdicates without passing on the "Organizer" role to someone else. When this occurs, the "Attendees" of the "VEVENT" may use out-of-band mechanisms to communicate the situation and agree upon a new "Organizer". The new "Organizer" should then send out a new "REQUEST" with a modified version of the "VEVENT" in which the "SEQUENCE" number has been incremented and the "ORGANIZER" property has been changed to the new "Organizer".

可能会出现这样的情况,“VEVENT”的“组织者”不再能够执行“组织者”角色,并且在没有将“组织者”角色传递给其他人的情况下退位。发生这种情况时,“VEVENT”的“与会者”可以使用带外机制来沟通情况,并商定新的“组织者”。然后,新的“组织者”应发送一个新的“请求”,其中“事件”的修改版本中的“序列”号已递增,“组织者”属性已更改为新的“组织者”。

3.2.2.5. Sending on Behalf of the Organizer
3.2.2.5. 代表主办方发送

There are a number of scenarios that support the need for a "Calendar User" to act on behalf of the "Organizer" without explicit role changing. This might be the case if the CU designated as "Organizer" is sick or unable to perform duties associated with that function. In these cases, iTIP supports the notion of one CU acting on behalf of another. Using the "SENT-BY" parameter, a "Calendar User" could send an updated "VEVENT" "REQUEST". In the case where one CU sends on behalf of another CU, the "Attendee" responses are still directed back towards the CU designated as "Organizer".

有许多场景支持“日历用户”代表“组织者”行事,而无需明确更改角色。如果指定为“组织者”的CU生病或无法履行与该职能相关的职责,则可能会出现这种情况。在这些情况下,iTIP支持一个CU代表另一个CU的概念。使用“发送人”参数,“日历用户”可以发送更新的“VEVENT”请求。在一个CU代表另一个CU发送的情况下,“与会者”响应仍然指向指定为“组织者”的CU。

3.2.2.6. Forwarding to an Uninvited CU
3.2.2.6. 转发给未经邀请的CU

An "Attendee" invited to a "VEVENT" calendar component may send the "VEVENT" calendar component to another new CU not previously associated with the "VEVENT" calendar component. The current "Attendee" invited to the "VEVENT" calendar component does this by forwarding the original "REQUEST" method to the new CU. The new CU can send a "REPLY" to the "Organizer" of the "VEVENT" calendar component. The reply contains an "ATTENDEE" property for the new CU.

被邀请参加“VEVENT”日历组件的“与会者”可以将“VEVENT”日历组件发送给之前未与“VEVENT”日历组件关联的另一个新CU。被邀请到“VEVENT”日历组件的当前“与会者”通过将原始“请求”方法转发到新CU来完成此操作。新CU可以向“VEVENT”日历组件的“组织者”发送“回复”。回复包含新CU的“ATTENDEE”属性。

The "Organizer" ultimately decides whether or not the new CU becomes part of the event and is not obligated to do anything with a "REPLY" from a new (uninvited) CU. If the "Organizer" does not want the new CU to be part of the event, the new "ATTENDEE" property is not added to the "VEVENT" calendar component. The "Organizer" MAY send the CU a "CANCEL" message to indicate that they will not be added to the event. If the "Organizer" decides to add the new CU, the new "ATTENDEE" property is added to the "VEVENT" calendar component. Furthermore, the "Organizer" is free to change any "ATTENDEE"

“组织者”最终决定新CU是否成为活动的一部分,并且没有义务对新(未邀请的)CU的“回复”进行任何处理。如果“组织者”不希望新CU成为活动的一部分,则新的“与会者”属性不会添加到“VEVENT”日历组件中。“组织者”可能会向CU发送一条“取消”消息,表示他们不会被添加到活动中。如果“组织者”决定添加新CU,则新的“与会者”属性将添加到“VEVENT”日历组件中。此外,“组织者”可以自由更改任何“与会者”

property parameter from the values supplied by the new CU to something the "Organizer" considers appropriate. The "Organizer" SHOULD send the new CU a "REQUEST" message to inform them that they have been added.

从新CU提供的值到“组织者”认为合适的值的属性参数。“组织者”应向新CU发送“请求”消息,通知其已添加。

When forwarding a "REQUEST" to another CU, the forwarding "Attendee" MUST NOT make changes to the original message.

将“请求”转发给其他CU时,转发“与会者”不得更改原始邮件。

3.2.2.7. Updating Attendee Status
3.2.2.7. 更新与会者状态

The "Organizer" of an event may also request updated status from one or more "Attendees". The "Organizer" sends a "REQUEST" method to the "Attendee" and sets the "ATTENDEE;RSVP=TRUE" property parameter. The "SEQUENCE" property for the event is not changed from its previous value. A recipient will determine that the only change in the "REQUEST" is that their "RSVP" property parameter indicates a request for updated status. The recipient SHOULD respond with a "REPLY" method indicating their current status with respect to the "REQUEST".

活动的“组织者”还可以向一个或多个“参与者”请求更新状态。“组织者”向“与会者”发送“请求”方法,并设置“Attendee;RSVP=TRUE”属性参数。事件的“序列”属性与其以前的值相同。收件人将确定“请求”中唯一的更改是其“RSVP”属性参数指示更新状态的请求。收件人应使用“回复”方法进行回复,表明其当前在“请求”方面的状态。

3.2.3. REPLY
3.2.3. 回复

The "REPLY" method in a "VEVENT" calendar component is used to respond (e.g., accept or decline) to a "REQUEST" or to reply to a delegation "REQUEST". When used to provide a delegation response, the "Delegator" SHOULD include the calendar address of the "Delegate" on the "DELEGATED-TO" property parameter of the "Delegator's" "ATTENDEE" property. The "Delegate" SHOULD include the calendar address of the "Delegator" on the "DELEGATED-FROM" property parameter of the "Delegate's" "ATTENDEE" property.

“VEVENT”日历组件中的“REPLY”方法用于响应(例如,接受或拒绝)“请求”或答复委托“请求”。用于提供委派响应时,“委派者”应在“委派者的”“与会者”属性的“委派对象”属性参数中包含“委派者”的日历地址。“代理人”应在“代理人的”“与会者”属性的“Delegate-FROM”属性参数中包含“代理人”的日历地址。

The "REPLY" method is also used when processing of a "REQUEST" fails. Depending on the value of the "REQUEST-STATUS" property, no scheduling action may have been performed.

当处理“请求”失败时,也使用“回复”方法。根据“REQUEST-STATUS”属性的值,可能未执行任何调度操作。

The "Organizer" of an event may receive the "REPLY" method from a CU not in the original "REQUEST". For example, a "REPLY" may be received from a "Delegate" to an event. In addition, the "REPLY" method may be received from an unknown CU (a "Party Crasher"). This uninvited "Attendee" may be accepted, or the "Organizer" may cancel the event for the uninvited "Attendee" by sending a "CANCEL" method to the uninvited "Attendee".

活动的“组织者”可能会收到来自CU的“回复”方法,而该CU不在原始“请求”中。例如,可以从事件的“委托人”处收到“回复”。此外,可以从未知CU(“一方破坏者”)接收“回复”方法。此未邀请的“与会者”可能会被接受,或者“组织者”可以通过向未邀请的“与会者”发送“取消”方法来取消未邀请的“与会者”的活动。

An "Attendee" MAY include a message to the "Organizer" using the "COMMENT" property. For example, if the user indicates tentative acceptance and wants to let the "Organizer" know why, the reason can be expressed in the "COMMENT" property value.

“与会者”可以使用“评论”属性向“组织者”发送消息。例如,如果用户表示暂时接受,并希望让“组织者”知道原因,则可以在“评论”属性值中表示原因。

The "Organizer" may also receive a "REPLY" from one CU on behalf of another. Like the scenario enumerated above for the "Organizer", "Attendees" may have another CU respond on their behalf. This is done using the "SENT-BY" parameter.

“组织者”还可以从一个CU代表另一个CU收到“回复”。与上面列举的“组织者”场景类似,“与会者”可能会有另一个CU代表他们进行响应。这是使用“SENT-BY”参数完成的。

The optional properties listed in the table below (those listed as "0+" or "0 or 1") MUST NOT be changed from those of the original request. If property changes are desired, the "COUNTER" message must be used.

下表中列出的可选属性(列为“0+”或“0或1”)不得更改为原始请求的属性。如果需要更改属性,则必须使用“计数器”消息。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

              +--------------------------------------------+
              | Constraints for a METHOD:REPLY of a VEVENT |
              +--------------------------------------------+
        
              +--------------------------------------------+
              | Constraints for a METHOD:REPLY of a VEVENT |
              +--------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be REPLY.                    |
   |                    |          |                                   |
   | VEVENT             | 1+       | All components MUST have the same |
   |                    |          | UID.                              |
   |   ATTENDEE         | 1        | MUST be the address of the        |
   |                    |          | Attendee replying.                |
   |   DTSTAMP          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   UID              | 1        | MUST be the UID of the original   |
   |                    |          | REQUEST.                          |
   |   SEQUENCE         | 0 or 1   | If non-zero, MUST be the sequence |
   |                    |          | number of the original REQUEST.   |
   |                    |          | MAY be present if 0.              |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   |                                   |
   |   DTEND            | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DTSTART          | 0 or 1   |                                   |
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be REPLY.                    |
   |                    |          |                                   |
   | VEVENT             | 1+       | All components MUST have the same |
   |                    |          | UID.                              |
   |   ATTENDEE         | 1        | MUST be the address of the        |
   |                    |          | Attendee replying.                |
   |   DTSTAMP          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   UID              | 1        | MUST be the UID of the original   |
   |                    |          | REQUEST.                          |
   |   SEQUENCE         | 0 or 1   | If non-zero, MUST be the sequence |
   |                    |          | number of the original REQUEST.   |
   |                    |          | MAY be present if 0.              |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   |                                   |
   |   DTEND            | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DTSTART          | 0 or 1   |                                   |
        
   |   DURATION         | 0 or 1   | If present, DTEND MUST NOT be     |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PRIORITY         | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RELATED-TO       | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   REQUEST-STATUS   | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   |                                   |
   |   SUMMARY          | 0 or 1   |                                   |
   |   TRANSP           | 0 or 1   |                                   |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0 or 1   | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   |   DURATION         | 0 or 1   | If present, DTEND MUST NOT be     |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PRIORITY         | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RELATED-TO       | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   REQUEST-STATUS   | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   |                                   |
   |   SUMMARY          | 0 or 1   |                                   |
   |   TRANSP           | 0 or 1   |                                   |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0 or 1   | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.2.4. ADD
3.2.4. 添加

The "ADD" method allows the "Organizer" to add one or more new instances to an existing "VEVENT" using a single iTIP message without having to send the entire "VEVENT" with all the existing instance data, as it would have to do if the "REQUEST" method were used.

“添加”方法允许“组织者”使用单个iTIP消息向现有“VEVENT”添加一个或多个新实例,而不必发送包含所有现有实例数据的整个“VEVENT”,如果使用“请求”方法,则必须这样做。

The "UID" must be that of the existing event. If the "UID" property value in the "ADD" is not found on the recipient's calendar, then the recipient SHOULD send a "REFRESH" to the "Organizer" in order to be updated with the latest version of the "VEVENT". If an "Attendee" implementation does not support the "ADD" method, it should respond with a "REQUEST-STATUS" value of 3.14 and ask for a "REFRESH".

“UID”必须是现有事件的UID。如果在收件人的日历上未找到“添加”中的“UID”属性值,则收件人应向“组织者”发送“刷新”,以便使用“VEVENT”的最新版本进行更新。如果“Attendee”实现不支持“ADD”方法,则应使用“REQUEST-STATUS”值3.14进行响应,并请求“刷新”。

When handling an "ADD" message, the "Attendee" treats each component in the "ADD" message as if it were referenced via an "RDATE" in the main component.

处理“添加”消息时,“与会者”将“添加”消息中的每个组件视为通过主组件中的“RDATE”引用。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

               +------------------------------------------+
               | Constraints for a METHOD:ADD of a VEVENT |
               +------------------------------------------+
        
               +------------------------------------------+
               | Constraints for a METHOD:ADD of a VEVENT |
               +------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be ADD.                      |
   |                    |          |                                   |
   | VEVENT             | 1        |                                   |
   |   DTSTAMP          | 1        |                                   |
   |   DTSTART          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   SEQUENCE         | 1        | MUST be greater than 0.           |
   |   SUMMARY          | 1        | Can be null.                      |
   |   UID              | 1        | MUST match that of the original   |
   |                    |          | event.                            |
   |   ATTACH           | 0+       |                                   |
   |   ATTENDEE         | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   | Can be null.                      |
   |   DTEND            | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DURATION         | 0 or 1   | If present, DTEND MUST NOT be     |
   |                    |          | present.                          |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PRIORITY         | 0 or 1   |                                   |
   |   RELATED-TO       | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | TENTATIVE/CONFIRMED.              |
   |   TRANSP           | 0 or 1   |                                   |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be ADD.                      |
   |                    |          |                                   |
   | VEVENT             | 1        |                                   |
   |   DTSTAMP          | 1        |                                   |
   |   DTSTART          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   SEQUENCE         | 1        | MUST be greater than 0.           |
   |   SUMMARY          | 1        | Can be null.                      |
   |   UID              | 1        | MUST match that of the original   |
   |                    |          | event.                            |
   |   ATTACH           | 0+       |                                   |
   |   ATTENDEE         | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   | Can be null.                      |
   |   DTEND            | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DURATION         | 0 or 1   | If present, DTEND MUST NOT be     |
   |                    |          | present.                          |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PRIORITY         | 0 or 1   |                                   |
   |   RELATED-TO       | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | TENTATIVE/CONFIRMED.              |
   |   TRANSP           | 0 or 1   |                                   |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
        
   |   EXDATE           | 0        |                                   |
   |   RECURRENCE-ID    | 0        |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |   RDATE            | 0        |                                   |
   |   RRULE            | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0+       |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   |   EXDATE           | 0        |                                   |
   |   RECURRENCE-ID    | 0        |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |   RDATE            | 0        |                                   |
   |   RRULE            | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0+       |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.2.5. CANCEL
3.2.5. 取消

The "CANCEL" method in a "VEVENT" calendar component is used to send a cancellation notice of an existing event request to the affected "Attendees". The message is sent by the "Organizer" of the event. For a recurring event, either the whole event or instances of an event may be cancelled. To cancel the complete range of a recurring event, the "UID" property value for the event MUST be specified and a "RECURRENCE-ID" MUST NOT be specified in the "CANCEL" method. In order to cancel an individual instance of the event, the "RECURRENCE-ID" property value for the event MUST be specified in the "CANCEL" method.

“VEVENT”日历组件中的“取消”方法用于向受影响的“与会者”发送现有活动请求的取消通知。该消息由活动的“组织者”发送。对于重复发生的事件,可以取消整个事件或事件的实例。要取消定期事件的完整范围,必须指定事件的“UID”属性值,并且在“取消”方法中不得指定“RECURRENCE-ID”。要取消事件的单个实例,必须在“cancel”方法中指定事件的“RECURRENCE-ID”属性值。

There are two options for canceling a sequence of instances of a recurring "VEVENT" calendar component:

有两个选项可用于取消周期性“VEVENT”日历组件的一系列实例:

a. The "RECURRENCE-ID" property for an instance in the sequence MUST be specified with the "RANGE" property parameter value of "THISANDFUTURE" to indicate cancellation of the specified "VEVENT" calendar component and all instances after.

a. 序列中实例的“RECURRENCE-ID”属性必须使用“RANGE”属性参数值“THISANDFUTURE”指定,以指示取消指定的“VEVENT”日历组件和之后的所有实例。

b. Individual recurrence instances may be cancelled by specifying multiple "VEVENT" components each with a "RECURRENCE-ID" property corresponding to one of the instances to be cancelled.

b. 可以通过指定多个“VEVENT”组件来取消各个重复实例,每个组件都具有与要取消的实例之一对应的“recurrence-ID”属性。

The "Organizer" MUST send a "CANCEL" message to each "Attendee" affected by the cancellation. This can be done using a single "CANCEL" message for all "Attendees" or by using multiple messages with different subsets of the affected "Attendees" in each.

“组织者”必须向每个受取消影响的“与会者”发送“取消”消息。这可以通过为所有“与会者”发送一条“取消”消息来完成,也可以使用多条消息来完成,每条消息中包含受影响的“与会者”的不同子集。

When a "VEVENT" is cancelled, the "SEQUENCE" property value MUST be incremented as described in Section 2.1.4.

取消“VEVENT”时,“序列”属性值必须按照第2.1.4节所述递增。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

              +---------------------------------------------+
              | Constraints for a METHOD:CANCEL of a VEVENT |
              +---------------------------------------------+
        
              +---------------------------------------------+
              | Constraints for a METHOD:CANCEL of a VEVENT |
              +---------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be CANCEL.                   |
   |                    |          |                                   |
   | VEVENT             | 1+       | All must have the same UID.       |
   |   ATTENDEE         | 0+       | MUST include some or all          |
   |                    |          | Attendees being removed from the  |
   |                    |          | event.  MUST include some or all  |
   |                    |          | Attendees if the entire event is  |
   |                    |          | cancelled.                        |
   |   DTSTAMP          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   SEQUENCE         | 1        |                                   |
   |   UID              | 1        | MUST be the UID of the original   |
   |                    |          | REQUEST.                          |
   |   COMMENT          | 0+       |                                   |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   |                                   |
   |   DTEND            | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DTSTART          | 0 or 1   |                                   |
   |   DURATION         | 0 or 1   | If present, DTEND MUST NOT be     |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PRIORITY         | 0 or 1   |                                   |
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be CANCEL.                   |
   |                    |          |                                   |
   | VEVENT             | 1+       | All must have the same UID.       |
   |   ATTENDEE         | 0+       | MUST include some or all          |
   |                    |          | Attendees being removed from the  |
   |                    |          | event.  MUST include some or all  |
   |                    |          | Attendees if the entire event is  |
   |                    |          | cancelled.                        |
   |   DTSTAMP          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   SEQUENCE         | 1        |                                   |
   |   UID              | 1        | MUST be the UID of the original   |
   |                    |          | REQUEST.                          |
   |   COMMENT          | 0+       |                                   |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   |                                   |
   |   DTEND            | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DTSTART          | 0 or 1   |                                   |
   |   DURATION         | 0 or 1   | If present, DTEND MUST NOT be     |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PRIORITY         | 0 or 1   |                                   |
        
   |   RDATE            | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   RELATED-TO       | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   | MUST be set to CANCELLED to       |
   |                    |          | cancel the entire event.  If      |
   |                    |          | uninviting specific Attendees,    |
   |                    |          | then MUST NOT be included.        |
   |   SUMMARY          | 0 or 1   |                                   |
   |   TRANSP           | 0 or 1   |                                   |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   |   RDATE            | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   RELATED-TO       | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   | MUST be set to CANCELLED to       |
   |                    |          | cancel the entire event.  If      |
   |                    |          | uninviting specific Attendees,    |
   |                    |          | then MUST NOT be included.        |
   |   SUMMARY          | 0 or 1   |                                   |
   |   TRANSP           | 0 or 1   |                                   |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.2.6. REFRESH
3.2.6. 刷新

The "REFRESH" method in a "VEVENT" calendar component is used by "Attendees" of an existing event to request an updated description from the event "Organizer". The "REFRESH" method must specify the "UID" property of the event to update. A recurrence instance of an event may be requested by specifying the "RECURRENCE-ID" property corresponding to the associated event. The "Organizer" responds with the latest description and version of the event.

“VEVENT”日历组件中的“刷新”方法由现有事件的“与会者”使用,以向事件“组织者”请求更新的描述。“REFRESH”方法必须指定要更新的事件的“UID”属性。可以通过指定与关联事件对应的“recurrence-ID”属性来请求事件的重复实例。“组织者”以事件的最新描述和版本作出回应。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

             +----------------------------------------------+
             | Constraints for a METHOD:REFRESH of a VEVENT |
             +----------------------------------------------+
        
             +----------------------------------------------+
             | Constraints for a METHOD:REFRESH of a VEVENT |
             +----------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be REFRESH.                  |
   |                    |          |                                   |
   | VEVENT             | 1        |                                   |
   |   ATTENDEE         | 1        | MUST be the address of requester. |
   |   DTSTAMP          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   UID              | 1        | MUST be the UID associated with   |
   |                    |          | original REQUEST.                 |
   |   COMMENT          | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   ATTACH           | 0        |                                   |
   |   CATEGORIES       | 0        |                                   |
   |   CLASS            | 0        |                                   |
   |   CONTACT          | 0        |                                   |
   |   CREATED          | 0        |                                   |
   |   DESCRIPTION      | 0        |                                   |
   |   DTEND            | 0        |                                   |
   |   DTSTART          | 0        |                                   |
   |   DURATION         | 0        |                                   |
   |   EXDATE           | 0        |                                   |
   |   GEO              | 0        |                                   |
   |   LAST-MODIFIED    | 0        |                                   |
   |   LOCATION         | 0        |                                   |
   |   PRIORITY         | 0        |                                   |
   |   RDATE            | 0        |                                   |
   |   RELATED-TO       | 0        |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |   RESOURCES        | 0        |                                   |
   |   RRULE            | 0        |                                   |
   |   SEQUENCE         | 0        |                                   |
   |   STATUS           | 0        |                                   |
   |   SUMMARY          | 0        |                                   |
   |   TRANSP           | 0        |                                   |
   |   URL              | 0        |                                   |
   |                    |          |                                   |
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be REFRESH.                  |
   |                    |          |                                   |
   | VEVENT             | 1        |                                   |
   |   ATTENDEE         | 1        | MUST be the address of requester. |
   |   DTSTAMP          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   UID              | 1        | MUST be the UID associated with   |
   |                    |          | original REQUEST.                 |
   |   COMMENT          | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   ATTACH           | 0        |                                   |
   |   CATEGORIES       | 0        |                                   |
   |   CLASS            | 0        |                                   |
   |   CONTACT          | 0        |                                   |
   |   CREATED          | 0        |                                   |
   |   DESCRIPTION      | 0        |                                   |
   |   DTEND            | 0        |                                   |
   |   DTSTART          | 0        |                                   |
   |   DURATION         | 0        |                                   |
   |   EXDATE           | 0        |                                   |
   |   GEO              | 0        |                                   |
   |   LAST-MODIFIED    | 0        |                                   |
   |   LOCATION         | 0        |                                   |
   |   PRIORITY         | 0        |                                   |
   |   RDATE            | 0        |                                   |
   |   RELATED-TO       | 0        |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |   RESOURCES        | 0        |                                   |
   |   RRULE            | 0        |                                   |
   |   SEQUENCE         | 0        |                                   |
   |   STATUS           | 0        |                                   |
   |   SUMMARY          | 0        |                                   |
   |   TRANSP           | 0        |                                   |
   |   URL              | 0        |                                   |
   |                    |          |                                   |
        
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       |                                   |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       |                                   |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.2.7. COUNTER
3.2.7. 柜台

The "COUNTER" method for a "VEVENT" calendar component is used by an "Attendee" of an existing event to submit to the "Organizer" a counter proposal to the event. The "Attendee" sends this message to the "Organizer" of the event.

“VEVENT”日历组件的“计数器”方法由现有活动的“与会者”使用,以向“组织者”提交活动的计数器提案。“与会者”将此消息发送给活动的“组织者”。

The counter proposal is an iCalendar object consisting of a "VEVENT" calendar component that provides the complete description of the alternate event.

反提案是一个iCalendar对象,由“VEVENT”日历组件组成,该组件提供备用事件的完整描述。

The "Organizer" rejects the counter proposal by sending the "Attendee" a "DECLINECOUNTER" method. The "Organizer" accepts the counter proposal by rescheduling the event as described in Section 3.2.2.1, "Rescheduling an Event". The "Organizer's" CUA SHOULD send a "REQUEST" message to all "Attendees" affected by any change triggered by an accepted "COUNTER".

“组织者”通过向“与会者”发送“DECLINECOUNTER”方法拒绝反提案。“组织者”通过按照第3.2.2.1节“重新安排活动”所述重新安排活动,接受反建议。“组织者”CUA应向受接受的“计数器”触发的任何更改影响的所有“与会者”发送“请求”消息。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

             +----------------------------------------------+
             | Constraints for a METHOD:COUNTER of a VEVENT |
             +----------------------------------------------+
        
             +----------------------------------------------+
             | Constraints for a METHOD:COUNTER of a VEVENT |
             +----------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be COUNTER.                  |
   |                    |          |                                   |
   | VEVENT             | 1        |                                   |
   |   DTSTAMP          | 1        |                                   |
   |   DTSTART          | 1        |                                   |
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be COUNTER.                  |
   |                    |          |                                   |
   | VEVENT             | 1        |                                   |
   |   DTSTAMP          | 1        |                                   |
   |   DTSTART          | 1        |                                   |
        
   |   ORGANIZER        | 1        | MUST be the Organizer of the      |
   |                    |          | original event.                   |
   |   SEQUENCE         | 1        | MUST echo the original SEQUENCE   |
   |                    |          | number.  MUST be present if       |
   |                    |          | non-zero.  MAY be present if      |
   |                    |          | zero.                             |
   |   SUMMARY          | 1        | Can be null.                      |
   |   UID              | 1        | MUST be the UID associated with   |
   |                    |          | the REQUEST being countered.      |
   |   ATTACH           | 0+       |                                   |
   |   ATTENDEE         | 0+       | Can also be used to propose other |
   |                    |          | Attendees.                        |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   |                                   |
   |   DTEND            | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DURATION         | 0 or 1   | If present, DTEND MUST NOT be     |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PRIORITY         | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   RELATED-TO       | 0+       |                                   |
   |   REQUEST-STATUS   | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   | Value must be one of              |
   |                    |          | CONFIRMED/TENATIVE/CANCELLED.     |
   |   TRANSP           | 0 or 1   |                                   |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |                    |          |                                   |
   |   VALARM           | 0+       |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
        
   |   ORGANIZER        | 1        | MUST be the Organizer of the      |
   |                    |          | original event.                   |
   |   SEQUENCE         | 1        | MUST echo the original SEQUENCE   |
   |                    |          | number.  MUST be present if       |
   |                    |          | non-zero.  MAY be present if      |
   |                    |          | zero.                             |
   |   SUMMARY          | 1        | Can be null.                      |
   |   UID              | 1        | MUST be the UID associated with   |
   |                    |          | the REQUEST being countered.      |
   |   ATTACH           | 0+       |                                   |
   |   ATTENDEE         | 0+       | Can also be used to propose other |
   |                    |          | Attendees.                        |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   |                                   |
   |   DTEND            | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DURATION         | 0 or 1   | If present, DTEND MUST NOT be     |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PRIORITY         | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   RELATED-TO       | 0+       |                                   |
   |   REQUEST-STATUS   | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   | Value must be one of              |
   |                    |          | CONFIRMED/TENATIVE/CANCELLED.     |
   |   TRANSP           | 0 or 1   |                                   |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |                    |          |                                   |
   |   VALARM           | 0+       |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
        
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.2.8. DECLINECOUNTER
3.2.8. 下线计数器

The "DECLINECOUNTER" method in a "VEVENT" calendar component is used by the "Organizer" of an event to reject a counter proposal submitted by an "Attendee". The "Organizer" must send the "DECLINECOUNTER" message to the "Attendee" that sent the "COUNTER" method to the "Organizer".

“VEVENT”日历组件中的“DECLINECOUNTER”方法由活动的“组织者”用于拒绝“与会者”提交的反提案。“组织者”必须将“DECLINECOUNTER”消息发送给向“组织者”发送“COUNTER”方法的“与会者”。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

          +-----------------------------------------------------+
          | Constraints for a METHOD:DECLINECOUNTER of a VEVENT |
          +-----------------------------------------------------+
        
          +-----------------------------------------------------+
          | Constraints for a METHOD:DECLINECOUNTER of a VEVENT |
          +-----------------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be DECLINECOUNTER.           |
   |                    |          |                                   |
   | VEVENT             | 1+       | All components MUST have the same |
   |                    |          | UID.                              |
   |   ATTENDEE         | 1+       | MUST for all Attendees.           |
   |   DTSTAMP          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   SEQUENCE         | 1        | MUST echo the original SEQUENCE   |
   |                    |          | number.                           |
   |   UID              | 1        | MUST echo original UID.           |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   | Can be null.                      |
   |   DTSTART          | 0 or 1   |                                   |
   |   DTEND            | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be DECLINECOUNTER.           |
   |                    |          |                                   |
   | VEVENT             | 1+       | All components MUST have the same |
   |                    |          | UID.                              |
   |   ATTENDEE         | 1+       | MUST for all Attendees.           |
   |   DTSTAMP          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   SEQUENCE         | 1        | MUST echo the original SEQUENCE   |
   |                    |          | number.                           |
   |   UID              | 1        | MUST echo original UID.           |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   | Can be null.                      |
   |   DTSTART          | 0 or 1   |                                   |
   |   DTEND            | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
        
   |   DURATION         | 0 or 1   | If present, DTEND MUST NOT be     |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PRIORITY         | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   RELATED-TO       | 0+       |                                   |
   |   REQUEST-STATUS   | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | TENTATIVE/CONFIRMED.              |
   |   SUMMARY          | 0 or 1   | Can be null.                      |
   |   TRANSP           | 0 or 1   |                                   |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |                    |          |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   | VFREEBUSY          | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   |   DURATION         | 0 or 1   | If present, DTEND MUST NOT be     |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PRIORITY         | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   RELATED-TO       | 0+       |                                   |
   |   REQUEST-STATUS   | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | TENTATIVE/CONFIRMED.              |
   |   SUMMARY          | 0 or 1   | Can be null.                      |
   |   TRANSP           | 0 or 1   |                                   |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |                    |          |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   | VFREEBUSY          | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.3. Methods for VFREEBUSY Components
3.3. VFREEBUSY组件的方法

This section defines the property set for the methods that are applicable to the "VFREEBUSY" calendar component. Each of the methods is defined using a restriction table.

本节定义适用于“VFREEBUSY”日历组件的方法的属性集。每个方法都是使用限制表定义的。

This document only addresses the transfer of busy time information. Applications desiring free time information MUST infer this from available busy time information.

本文档仅涉及忙时信息的传输。需要空闲时间信息的应用程序必须从可用的繁忙时间信息中推断出来。

The "FREEBUSY" property value MAY include a list of values, separated by the COMMA character (US-ASCII decimal 44). Alternately, multiple busy time periods MAY be specified with multiple instances of the "FREEBUSY" property. Both forms MUST be supported by implementations conforming to this document. Duplicate busy time periods SHOULD NOT be specified in an iCalendar object. However, two different busy time periods MAY overlap.

“FREEBUSY”属性值可能包括一个值列表,由逗号字符(US-ASCII十进制44)分隔。或者,可以使用“FREEBUSY”属性的多个实例指定多个繁忙时间段。这两种形式都必须有符合本文件要求的实施支持。不应在iCalendar对象中指定重复的忙时段。但是,两个不同的繁忙时间段可能重叠。

"FREEBUSY" properties SHOULD be sorted such that their values are in ascending order, based on the start time and then the end time, with the earliest periods first. For example, today's busy time information should appear after yesterday's busy time information. And the busy time for this half-hour should appear after the busy time for earlier today. Busy time periods can also span a day boundary.

“FREEBUSY”属性的排序应确保其值按升序排列,先是开始时间,然后是结束时间,先是最早的时段。例如,今天的繁忙时间信息应显示在昨天的繁忙时间信息之后。这半小时的繁忙时间应该在今天早些时候的繁忙时间之后出现。繁忙时间段也可以跨越一天的边界。

The following summarizes the methods that are defined for the "VFREEBUSY" calendar component.

下面总结了为“VFREEBUSY”日历组件定义的方法。

             +---------+-------------------------------------+
             | Method  | Description                         |
             +---------+-------------------------------------+
             | PUBLISH | Publish unsolicited busy time data. |
             |         |                                     |
             | REQUEST | Request busy time data.             |
             |         |                                     |
             | REPLY   | Reply to a busy time request.       |
             +---------+-------------------------------------+
        
             +---------+-------------------------------------+
             | Method  | Description                         |
             +---------+-------------------------------------+
             | PUBLISH | Publish unsolicited busy time data. |
             |         |                                     |
             | REQUEST | Request busy time data.             |
             |         |                                     |
             | REPLY   | Reply to a busy time request.       |
             +---------+-------------------------------------+
        
3.3.1. PUBLISH
3.3.1. 出版

The "PUBLISH" method in a "VFREEBUSY" calendar component is used to publish busy time data. The method may be sent from one CU to any other. The purpose of the method is to provide a way to send unsolicited busy time data. That is, the busy time data is not being sent as a "REPLY" to the receipt of a "REQUEST" method.

“vfreebush”日历组件中的“PUBLISH”方法用于发布繁忙时间数据。该方法可以从一个CU发送到任何其他CU。该方法的目的是提供一种发送非请求繁忙时间数据的方法。也就是说,繁忙时间数据不是作为对“请求”方法的接收的“回复”发送的。

The "ORGANIZER" property MUST be specified in the busy time information. The value is the CU address of the originator of the busy time information.

必须在繁忙时间信息中指定“组织者”属性。该值是繁忙时间信息发起者的CU地址。

The busy time information within the iCalendar object MAY be grouped into more than one "VFREEBUSY" calendar component. This capability allows busy time periods to be grouped according to some common periodicity, such as a calendar week, month, or year. In this case, each "VFREEBUSY" calendar component MUST include the "ORGANIZER", "DTSTART", and "DTEND" properties in order to specify the source of the busy time information and the date and time interval over which the busy time information covers.

iCalendar对象中的忙时信息可以分组到多个“VFREEBUSY”日历组件中。此功能允许根据某些常见周期(如日历周、月或年)对繁忙时间段进行分组。在这种情况下,每个“VFREEBUSY”日历组件必须包括“ORGANIZER”、“DTSTART”和“DTEND”属性,以便指定繁忙时间信息的来源以及繁忙时间信息覆盖的日期和时间间隔。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

            +-------------------------------------------------+
            | Constraints for a METHOD:PUBLISH of a VFREEBUSY |
            +-------------------------------------------------+
        
            +-------------------------------------------------+
            | Constraints for a METHOD:PUBLISH of a VFREEBUSY |
            +-------------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be PUBLISH.                  |
   |                    |          |                                   |
   | VFREEBUSY          | 1+       |                                   |
   |   DTSTAMP          | 1        |                                   |
   |   DTSTART          | 1        | DateTime values must be in UTC.   |
   |   DTEND            | 1        | DateTime values must be in UTC.   |
   |   FREEBUSY         | 0+       | MUST be BUSYTIME.  Multiple       |
   |                    |          | instances are allowed.  Multiple  |
   |                    |          | instances SHOULD be sorted in     |
   |                    |          | ascending order.                  |
   |   ORGANIZER        | 1        | MUST contain the address of       |
   |                    |          | originator of busy time data.     |
   |   UID              | 1        |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   URL              | 0 or 1   | Specifies busy time URL.          |
   |   ATTENDEE         | 0        |                                   |
   |   DURATION         | 0        |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be PUBLISH.                  |
   |                    |          |                                   |
   | VFREEBUSY          | 1+       |                                   |
   |   DTSTAMP          | 1        |                                   |
   |   DTSTART          | 1        | DateTime values must be in UTC.   |
   |   DTEND            | 1        | DateTime values must be in UTC.   |
   |   FREEBUSY         | 0+       | MUST be BUSYTIME.  Multiple       |
   |                    |          | instances are allowed.  Multiple  |
   |                    |          | instances SHOULD be sorted in     |
   |                    |          | ascending order.                  |
   |   ORGANIZER        | 1        | MUST contain the address of       |
   |                    |          | originator of busy time data.     |
   |   UID              | 1        |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   URL              | 0 or 1   | Specifies busy time URL.          |
   |   ATTENDEE         | 0        |                                   |
   |   DURATION         | 0        |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.3.2. REQUEST
3.3.2. 要求

The "REQUEST" method in a "VFREEBUSY" calendar component is used to ask a "Calendar User" for their busy time information. The request may be for a busy time information bounded by a specific date and time interval.

“vfreebush”日历组件中的“REQUEST”方法用于询问“日历用户”的忙时信息。该请求可以是对由特定日期和时间间隔限定的忙时信息的请求。

This message only permits requests for busy time information. The message is sent from a "Calendar User" requesting the busy time information of one or more intended recipients.

此消息仅允许请求繁忙时间信息。该消息由“日历用户”发送,请求一个或多个预期收件人的忙时信息。

If the originator of the "REQUEST" method is not authorized to make a busy time request on the recipient's calendar system, then an exception message SHOULD be returned in a "REPLY" method, but no busy time data need be returned.

如果“请求”方法的发起人未被授权在收件人的日历系统上发出繁忙时间请求,则应在“回复”方法中返回异常消息,但无需返回繁忙时间数据。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

            +-------------------------------------------------+
            | Constraints for a METHOD:REQUEST of a VFREEBUSY |
            +-------------------------------------------------+
        
            +-------------------------------------------------+
            | Constraints for a METHOD:REQUEST of a VFREEBUSY |
            +-------------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be REQUEST.                  |
   |                    |          |                                   |
   | VFREEBUSY          | 1        |                                   |
   |   ATTENDEE         | 1+       | Contains the calendar user        |
   |                    |          | addresses of the "Calendar Users" |
   |                    |          | whose freebusy is being           |
   |                    |          | requested.                        |
   |   DTEND            | 1        | DateTime values must be in UTC.   |
   |   DTSTAMP          | 1        |                                   |
   |   DTSTART          | 1        | DateTime values must be in UTC.   |
   |   ORGANIZER        | 1        | MUST be the request originator's  |
   |                    |          | address.                          |
   |   UID              | 1        |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   FREEBUSY         | 0        |                                   |
   |   DURATION         | 0        |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |   URL              | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be REQUEST.                  |
   |                    |          |                                   |
   | VFREEBUSY          | 1        |                                   |
   |   ATTENDEE         | 1+       | Contains the calendar user        |
   |                    |          | addresses of the "Calendar Users" |
   |                    |          | whose freebusy is being           |
   |                    |          | requested.                        |
   |   DTEND            | 1        | DateTime values must be in UTC.   |
   |   DTSTAMP          | 1        |                                   |
   |   DTSTART          | 1        | DateTime values must be in UTC.   |
   |   ORGANIZER        | 1        | MUST be the request originator's  |
   |                    |          | address.                          |
   |   UID              | 1        |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   FREEBUSY         | 0        |                                   |
   |   DURATION         | 0        |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |   URL              | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.3.3. REPLY
3.3.3. 回复

The "REPLY" method in a "VFREEBUSY" calendar component is used to respond to a busy time request. The method is sent by the recipient of a busy time request to the originator of the request.

“vfreebush”日历组件中的“REPLY”方法用于响应繁忙时间请求。该方法由繁忙时间请求的接收者发送给请求的发起人。

The "REPLY" method may also be used to respond to an unsuccessful "REQUEST" method. Depending on the "REQUEST-STATUS" value, no busy time information may be returned.

“回复”方法也可用于响应不成功的“请求”方法。根据“请求状态”值,可能不会返回繁忙时间信息。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

             +-----------------------------------------------+
             | Constraints for a METHOD:REPLY of a VFREEBUSY |
             +-----------------------------------------------+
        
             +-----------------------------------------------+
             | Constraints for a METHOD:REPLY of a VFREEBUSY |
             +-----------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be REPLY.                    |
   |                    |          |                                   |
   | VFREEBUSY          | 1        |                                   |
   |   ATTENDEE         | 1        | MUST be the address of the        |
   |                    |          | Attendee replying.                |
   |   DTSTAMP          | 1        |                                   |
   |   DTEND            | 1        | DateTime values must be in UTC.   |
   |   DTSTART          | 1        | DateTime values must be in UTC.   |
   |   FREEBUSY         | 0+       | MUST be BUSYTIME.  Multiple       |
   |                    |          | instances are allowed.  Multiple  |
   |                    |          | instances SHOULD be sorted in     |
   |                    |          | ascending order.                  |
   |   ORGANIZER        | 1        | MUST be the request originator's  |
   |                    |          | address.                          |
   |   UID              | 1        | MUST be the UID of the original   |
   |                    |          | REQUEST.                          |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0 or 1   |                                   |
   |   REQUEST-STATUS   | 0+       |                                   |
   |   URL              | 0 or 1   | Specifies busy time URL.          |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   DURATION         | 0        |                                   |
   |   SEQUENCE         | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be REPLY.                    |
   |                    |          |                                   |
   | VFREEBUSY          | 1        |                                   |
   |   ATTENDEE         | 1        | MUST be the address of the        |
   |                    |          | Attendee replying.                |
   |   DTSTAMP          | 1        |                                   |
   |   DTEND            | 1        | DateTime values must be in UTC.   |
   |   DTSTART          | 1        | DateTime values must be in UTC.   |
   |   FREEBUSY         | 0+       | MUST be BUSYTIME.  Multiple       |
   |                    |          | instances are allowed.  Multiple  |
   |                    |          | instances SHOULD be sorted in     |
   |                    |          | ascending order.                  |
   |   ORGANIZER        | 1        | MUST be the request originator's  |
   |                    |          | address.                          |
   |   UID              | 1        | MUST be the UID of the original   |
   |                    |          | REQUEST.                          |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0 or 1   |                                   |
   |   REQUEST-STATUS   | 0+       |                                   |
   |   URL              | 0 or 1   | Specifies busy time URL.          |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   DURATION         | 0        |                                   |
   |   SEQUENCE         | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.4. Methods for VTODO Components
3.4. VTODO组件的测试方法

This section defines the property set for the methods that are applicable to the "VTODO" calendar component. Each of the methods is defined using a restriction table that specifies the property constraints that define the particular method.

本节定义适用于“VTODO”日历组件的方法的属性集。每个方法都是使用一个限制表定义的,该表指定了定义特定方法的属性约束。

The following summarizes the methods that are defined for the "VTODO" calendar component.

下面总结了为“VTODO”日历组件定义的方法。

   +----------------+--------------------------------------------------+
   | Method         | Description                                      |
   +----------------+--------------------------------------------------+
   | PUBLISH        | Post notification of a VTODO.  Used primarily as |
   |                | a method of advertising the existence of a       |
   |                | VTODO.                                           |
   |                |                                                  |
   | REQUEST        | Assign a VTODO.  This is an explicit assignment  |
   |                | to one or more Calendar Users.  The REQUEST      |
   |                | method is also used to update or change an       |
   |                | existing VTODO.  Clients that cannot handle      |
   |                | REQUEST MAY degrade the method to treat it as a  |
   |                | PUBLISH.                                         |
   |                |                                                  |
   | REPLY          | Reply to a VTODO request.  Attendees MAY set     |
   |                | PARTSTAT to ACCEPTED, DECLINED, TENTATIVE,       |
   |                | DELEGATED, PARTIAL, and COMPLETED.               |
   |                |                                                  |
   | ADD            | Add one or more instances to an existing to-do.  |
   |                |                                                  |
   | CANCEL         | Cancel one or more instances of an existing      |
   |                | to-do.                                           |
   |                |                                                  |
   | REFRESH        | A request sent to a VTODO Organizer asking for   |
   |                | the latest version of a VTODO.                   |
   |                |                                                  |
   | COUNTER        | Counter a REQUEST with an alternative proposal.  |
   |                |                                                  |
   | DECLINECOUNTER | Decline a counter proposal by an Attendee.       |
   +----------------+--------------------------------------------------+
        
   +----------------+--------------------------------------------------+
   | Method         | Description                                      |
   +----------------+--------------------------------------------------+
   | PUBLISH        | Post notification of a VTODO.  Used primarily as |
   |                | a method of advertising the existence of a       |
   |                | VTODO.                                           |
   |                |                                                  |
   | REQUEST        | Assign a VTODO.  This is an explicit assignment  |
   |                | to one or more Calendar Users.  The REQUEST      |
   |                | method is also used to update or change an       |
   |                | existing VTODO.  Clients that cannot handle      |
   |                | REQUEST MAY degrade the method to treat it as a  |
   |                | PUBLISH.                                         |
   |                |                                                  |
   | REPLY          | Reply to a VTODO request.  Attendees MAY set     |
   |                | PARTSTAT to ACCEPTED, DECLINED, TENTATIVE,       |
   |                | DELEGATED, PARTIAL, and COMPLETED.               |
   |                |                                                  |
   | ADD            | Add one or more instances to an existing to-do.  |
   |                |                                                  |
   | CANCEL         | Cancel one or more instances of an existing      |
   |                | to-do.                                           |
   |                |                                                  |
   | REFRESH        | A request sent to a VTODO Organizer asking for   |
   |                | the latest version of a VTODO.                   |
   |                |                                                  |
   | COUNTER        | Counter a REQUEST with an alternative proposal.  |
   |                |                                                  |
   | DECLINECOUNTER | Decline a counter proposal by an Attendee.       |
   +----------------+--------------------------------------------------+
        
3.4.1. PUBLISH
3.4.1. 出版

The "PUBLISH" method in a "VTODO" calendar component has no associated response. It is simply a posting of an iCalendar object that may be added to a calendar. It MUST have an "Organizer". It MUST NOT have "Attendees". Its expected usage is for encapsulating an arbitrary "VTODO" calendar component as an iCalendar object. The

“VTODO”日历组件中的“PUBLISH”方法没有关联的响应。它只是可以添加到日历中的iCalendar对象的发布。它必须有一个“组织者”。它不能有“与会者”。它的预期用途是将任意“VTODO”日历组件封装为iCalendar对象。这个

"Organizer" MAY subsequently update (with another "PUBLISH" method), add instances to (with an "ADD" method), or cancel (with a "CANCEL" method) a previously published "VTODO" calendar component.

“组织者”可能随后更新(使用另一种“发布”方法)、向(使用“添加”方法)或取消(使用“取消”方法)先前发布的“VTODO”日历组件添加实例。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

              +---------------------------------------------+
              | Constraints for a METHOD:PUBLISH of a VTODO |
              +---------------------------------------------+
        
              +---------------------------------------------+
              | Constraints for a METHOD:PUBLISH of a VTODO |
              +---------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be PUBLISH.                  |
   |                    |          |                                   |
   | VTODO              | 1+       |                                   |
   |   DTSTAMP          | 1        |                                   |
   |   DTSTART          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   PRIORITY         | 1        |                                   |
   |   SEQUENCE         | 0 or 1   | MUST be present if value is       |
   |                    |          | greater than 0; MAY be present if |
   |                    |          | 0.                                |
   |   SUMMARY          | 1        | Can be null.                      |
   |   UID              | 1        |                                   |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   COMPLETED        | 0 or 1   |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   | Can be null.                      |
   |   DUE              | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DURATION         | 0 or 1   | If present, DUE MUST NOT be       |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PERCENT-COMPLETE | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be PUBLISH.                  |
   |                    |          |                                   |
   | VTODO              | 1+       |                                   |
   |   DTSTAMP          | 1        |                                   |
   |   DTSTART          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   PRIORITY         | 1        |                                   |
   |   SEQUENCE         | 0 or 1   | MUST be present if value is       |
   |                    |          | greater than 0; MAY be present if |
   |                    |          | 0.                                |
   |   SUMMARY          | 1        | Can be null.                      |
   |   UID              | 1        |                                   |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   COMPLETED        | 0 or 1   |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   | Can be null.                      |
   |   DUE              | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DURATION         | 0 or 1   | If present, DUE MUST NOT be       |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PERCENT-COMPLETE | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
        
   |   RELATED-TO       | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | COMPLETED/NEEDS-ACTION/           |
   |                    |          | IN-PROCESS/CANCELLED.             |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   ATTENDEE         | 0        |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0+       |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   |   RELATED-TO       | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | COMPLETED/NEEDS-ACTION/           |
   |                    |          | IN-PROCESS/CANCELLED.             |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   ATTENDEE         | 0        |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0+       |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.4.2. REQUEST
3.4.2. 要求

The "REQUEST" method in a "VTODO" calendar component provides the following scheduling functions:

“VTODO”日历组件中的“请求”方法提供以下调度功能:

o Assign a to-do to one or more "Calendar Users".

o 将待办事项分配给一个或多个“日历用户”。

o Reschedule an existing to-do.

o 重新安排现有待办事项。

o Update the details of an existing to-do, without rescheduling it.

o 更新现有待办事项的详细信息,而无需重新安排。

o Update the completion status of "Attendees" of an existing to-do, without rescheduling it.

o 更新现有待办事项“与会者”的完成状态,无需重新安排。

o Reconfirm an existing to-do, without rescheduling it.

o 重新确认现有待办事项,无需重新安排。

o Delegate/reassign an existing to-do to another "Calendar User".

o 将现有待办事项委派/重新指派给其他“日历用户”。

The assigned "Calendar Users" are identified in the "VTODO" calendar component by individual "ATTENDEE;ROLE=REQ-PARTICIPANT" property value sequences.

分配的“日历用户”在“VTODO”日历组件中由单个“ATTENDEE;ROLE=REQ-PARTICIPANT”属性值序列标识。

Typically, the originator of a "REQUEST" is the "Organizer" of the to-do, and the recipient of a "REQUEST" is the "Calendar User" assigned the to-do. The "Attendee" uses the "REPLY" method to convey their acceptance and completion status to the "Organizer" of the "REQUEST".

通常,“请求”的发起人是待办事项的“组织者”,而“请求”的接收者是分配给待办事项的“日历用户”。“与会者”使用“回复”方法向“请求”的“组织者”传达其接受和完成状态。

The "UID", "SEQUENCE", and "DTSTAMP" properties are used to distinguish the various uses of the "REQUEST" method. If the "UID" property value in the "REQUEST" is not found on the recipient's calendar, then the "REQUEST" is for a new to-do. If the "UID" property value is found on the recipient's calendar, then the "REQUEST" is a rescheduling, an update, or a reconfirmation of the "VTODO" calendar object.

“UID”、“SEQUENCE”和“DTSTAMP”属性用于区分“REQUEST”方法的各种用途。如果在收件人的日历上找不到“请求”中的“UID”属性值,则“请求”用于新的待办事项。如果在收件人的日历上找到“UID”属性值,则“请求”是对“VTODO”日历对象的重新安排、更新或重新确认。

If the "Organizer" of the "REQUEST" method is not authorized to make a to-do request on the "Attendee's" calendar system, then an exception is returned in the "REQUEST-STATUS" property of a subsequent "REPLY" method, but no scheduling action is performed.

如果“请求”方法的“组织者”无权在“与会者”日历系统上发出待办事项请求,则在后续“回复”方法的“请求状态”属性中返回异常,但不执行任何计划操作。

For the "REQUEST" method, multiple "VTODO" components in a single iCalendar object are only permitted for components with the same "UID" property. That is, a series of recurring events may have instance-specific information. In this case, multiple "VTODO" components are needed to express the entire series.

对于“请求”方法,单个iCalendar对象中的多个“VTODO”组件仅允许用于具有相同“UID”属性的组件。也就是说,一系列重复发生的事件可能具有特定于实例的信息。在这种情况下,需要多个“VTODO”组件来表示整个系列。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

              +---------------------------------------------+
              | Constraints for a METHOD:REQUEST of a VTODO |
              +---------------------------------------------+
        
              +---------------------------------------------+
              | Constraints for a METHOD:REQUEST of a VTODO |
              +---------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be REQUEST.                  |
   |                    |          |                                   |
   | VTODO              | 1+       | All components must have the same |
   |                    |          | UID.                              |
   |   ATTENDEE         | 1+       |                                   |
   |   DTSTAMP          | 1        |                                   |
   |   DTSTART          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   PRIORITY         | 1        |                                   |
   |   SEQUENCE         | 0 or 1   | MUST be present if value is       |
   |                    |          | greater than 0; MAY be present if |
   |                    |          | 0.                                |
   |   SUMMARY          | 1        | Can be null.                      |
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be REQUEST.                  |
   |                    |          |                                   |
   | VTODO              | 1+       | All components must have the same |
   |                    |          | UID.                              |
   |   ATTENDEE         | 1+       |                                   |
   |   DTSTAMP          | 1        |                                   |
   |   DTSTART          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   PRIORITY         | 1        |                                   |
   |   SEQUENCE         | 0 or 1   | MUST be present if value is       |
   |                    |          | greater than 0; MAY be present if |
   |                    |          | 0.                                |
   |   SUMMARY          | 1        | Can be null.                      |
        
   |   UID              | 1        |                                   |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   COMPLETED        | 0 or 1   |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   | Can be null                       |
   |   DUE              | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DURATION         | 0 or 1   | If present, DUE MUST NOT be       |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PERCENT-COMPLETE | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   RELATED-TO       | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | COMPLETED/NEEDS-ACTION/           |
   |                    |          | IN-PROCESS.                       |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0+       |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   |   UID              | 1        |                                   |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   COMPLETED        | 0 or 1   |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   | Can be null                       |
   |   DUE              | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DURATION         | 0 or 1   | If present, DUE MUST NOT be       |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PERCENT-COMPLETE | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   RELATED-TO       | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | COMPLETED/NEEDS-ACTION/           |
   |                    |          | IN-PROCESS.                       |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0+       |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.4.2.1. REQUEST for Rescheduling a VTODO
3.4.2.1. 请求重新安排VTODO

The "REQUEST" method may be used to reschedule a "VTODO" calendar component.

“请求”方法可用于重新安排“VTODO”日历组件。

Rescheduling a "VTODO" calendar component involves a change to the existing "VTODO" calendar component in terms of its start or due time, recurrence intervals, and possibly the description. If the recipient CUA of a "REQUEST" method finds that the "UID" property value already exists on the calendar but that the "SEQUENCE" property value in the "REQUEST" is greater than the value for the existing "VTODO", then the "REQUEST" method describes a rescheduling of the "VTODO" calendar component.

重新安排“VTODO”日历组件涉及更改现有“VTODO”日历组件的开始或到期时间、重复间隔,以及可能的描述。如果“请求”方法的接收方CUA发现日历上已经存在“UID”属性值,但“请求”中的“序列”属性值大于现有“VTODO”的值,则“请求”方法描述了“VTODO”日历组件的重新调度。

3.4.2.2. REQUEST for Update or Reconfirmation of a VTODO
3.4.2.2. 请求更新或重新确认VTODO

The "REQUEST" method may be used to update or reconfirm a "VTODO" calendar component. Reconfirmation is merely an update of "Attendee" completion status or overall "VTODO" calendar component status.

“请求”方法可用于更新或重新确认“VTODO”日历组件。重新确认只是更新“与会者”完成状态或整个“VTODO”日历组件状态。

An update to an existing "VTODO" calendar component does not involve changes to the start or due time, recurrence intervals, or (generally) the description for the "VTODO" calendar component. If the recipient CUA of a "REQUEST" method finds that the "UID" property value already exists on the calendar and that the "SEQUENCE" property value in the "REQUEST" is the same as the value for the existing event, then the "REQUEST" method describes an update of the "VTODO" calendar component details, but not a rescheduling of the "VTODO" calendar component.

对现有“VTODO”日历组件的更新不涉及对“VTODO”日历组件的开始或到期时间、重复间隔或(通常)描述的更改。如果“请求”方法的接收方CUA发现日历上已经存在“UID”属性值,并且“请求”中的“序列”属性值与现有事件的值相同,则“请求”方法描述了“VTODO”日历组件详细信息的更新,但不描述“VTODO”的重新调度日历组件。

The update "REQUEST" is the appropriate response to a "REFRESH" method sent from an "Attendee" to the "Organizer" of a "VTODO" calendar component.

更新“请求”是对“与会者”向“VTODO”日历组件的“组织者”发送的“刷新”方法的适当响应。

Unsolicited "REQUEST" methods MAY be sent by the "Organizer" of a "VTODO" calendar component. The unsolicited "REQUEST" methods are used to update the details of the "VTODO" (without rescheduling it or updating the completion status of "Attendees") or the "VTODO" calendar component itself (i.e., reconfirm the "VTODO").

“VTODO”日历组件的“组织者”可以发送未经请求的“请求”方法。未经请求的“请求”方法用于更新“VTODO”(无需重新安排时间或更新“与会者”的完成状态)或“VTODO”日历组件本身的详细信息(即,重新确认“VTODO”)。

3.4.2.3. REQUEST for Delegating a VTODO
3.4.2.3. 授权VTODO的请求

The "REQUEST" method is also used to delegate or reassign ownership of a "VTODO" calendar component to another "Calendar User". For example, it may be used to delegate an "Attendee's" role (i.e., "chair" or "participant") for a "VTODO" calendar component. The "REQUEST" method is sent by one of the "Attendees" of an existing "VTODO" calendar component to some other individual.

“请求”方法还用于将“VTODO”日历组件的所有权委托或重新分配给另一个“日历用户”。例如,它可用于为“VTODO”日历组件委派“与会者”角色(即“主席”或“参与者”)。“请求”方法由现有“VTODO”日历组件的“与会者”之一发送给其他个人。

For the purposes of this description, the "Attendee" delegating the "VTODO" calendar component is referred to as the "Delegator". The "Attendee" receiving the delegation request is referred to as the "Delegate".

在本说明中,委托“VTODO”日历组件的“与会者”称为“委托人”。收到授权请求的“与会者”称为“代表”。

The "Delegator" of a "VTODO" calendar component MUST forward the existing "REQUEST" method for a "VTODO" calendar component to the "Delegate". The "VTODO" calendar component description MUST include the "Delegator's" up-to-date "VTODO" calendar component definition. The "REQUEST" method MUST also include an "ATTENDEE" property with the calendar address of the "Delegate". The "Delegator" MUST also send a "REPLY" method back to the "Organizer" with the "Delegator's" "Attendee" property "PARTSTAT" parameter value set to "DELEGATED". In addition, the "DELEGATED-TO" parameter MUST be included with the calendar address of the "Delegate". A response to the delegation "REQUEST" is sent from the "Delegate" to the "Organizer", and optionally to the "Delegator". The "REPLY" method from the "Delegate" SHOULD include the "ATTENDEE" property with their calendar address and the "DELEGATED-FROM" parameter with the value of the "Delegator's" calendar address.

“VTODO”日历组件的“委托人”必须将“VTODO”日历组件的现有“请求”方法转发给“委托人”。“VTODO”日历组件说明必须包括“委托人”最新的“VTODO”日历组件定义。“REQUEST”方法还必须包含一个带有“Delegate”日历地址的“ATTENDEE”属性。“Delegator”还必须将“REPLY”方法发送回“Organizer”,并将“Delegator的”“Attendee”属性“PARTSTAT”参数值设置为“DELEGATED”。此外,“委托人”参数必须包含在“委托人”的日历地址中。“代表”向“组织者”或“授权人”发送对授权“请求”的响应。“委托人”的“答复”方法应包括带有日历地址的“与会者”属性和带有“委托人”日历地址值的“Delegate-from”参数。

The delegation "REQUEST" method MUST assign a value for the "RSVP" property parameter associated with the "Delegator's" "Attendee" property to that of the "Delegate's" "ATTENDEE" property. For example, if the "Delegator's" "ATTENDEE" property specifies "RSVP=TRUE", then the "Delegate's" "ATTENDEE" property MUST specify "RSVP=TRUE".

委派“请求”方法必须将与“委派者的”“与会者”属性关联的“RSVP”属性参数的值分配给“委派者的”“与会者”属性的值。例如,如果“委托人的”“与会者”属性指定“RSVP=TRUE”,则“委托人的”“与会者”属性必须指定“RSVP=TRUE”。

3.4.2.4. REQUEST Forwarded to an Uninvited Calendar User
3.4.2.4. 请求转发给未经邀请的日历用户

An "Attendee" assigned a "VTODO" calendar component may send the "VTODO" calendar component to another new CU not previously associated with the "VTODO" calendar component. The current "Attendee" assigned the "VTODO" calendar component does this by forwarding the original "REQUEST" method to the new CU. The new CU can send a "REPLY" to the "Organizer" of the "VTODO" calendar component. The reply contains an "ATTENDEE" property for the new CU.

分配了“VTODO”日历组件的“与会者”可以将“VTODO”日历组件发送到以前未与“VTODO”日历组件关联的另一个新CU。分配了“VTODO”日历组件的当前“与会者”通过将原始“请求”方法转发给新CU来完成此操作。新CU可以向“VTODO”日历组件的“组织者”发送“回复”。回复包含新CU的“ATTENDEE”属性。

The "Organizer" ultimately decides whether or not the new CU becomes part of the to-do and is not obligated to do anything with a "REPLY" from a new (uninvited) CU. If the "Organizer" does not want the new CU to be part of the to-do, the new "ATTENDEE" property is not added to the "VTODO" calendar component. The "Organizer" MAY send the CU a "CANCEL" message to indicate that they will not be added to the to-do. If the "Organizer" decides to add the new CU, the new "ATTENDEE" property is added to the "VTODO" calendar component. Furthermore, the "Organizer" is free to change any "ATTENDEE" property parameter from the values supplied by the new CU to something the "Organizer"

“组织者”最终决定新CU是否成为待办事项的一部分,并且没有义务通过新CU(未邀请的)的“回复”来做任何事情。如果“组织者”不希望新CU成为待办事项的一部分,则新的“ATTENDEE”属性不会添加到“VTODO”日历组件中。“组织者”可能会向CU发送一条“取消”消息,表示他们不会被添加到待办事项中。如果“组织者”决定添加新CU,则新的“ATTENDEE”属性将添加到“VTODO”日历组件中。此外,“组织者”可以自由地将任何“ATTENDEE”属性参数从新CU提供的值更改为“组织者”

considers appropriate. The "Organizer" SHOULD send the new "Attendee" a "REQUEST" message to inform them that they have been added.

认为适当。“组织者”应向新的“与会者”发送“请求”消息,通知他们已添加。

When forwarding a "REQUEST" to another CU, the forwarding "Attendee" MUST NOT make changes to the original message.

将“请求”转发给其他CU时,转发“与会者”不得更改原始邮件。

3.4.2.5. REQUEST Updated Attendee Status
3.4.2.5. 请求更新的与会者状态

An "Organizer" of a "VTODO" may request an updated status from one or more "Attendees". The "Organizer" sends a "REQUEST" method to the "Attendee" with the "ATTENDEE;RSVP=TRUE" property sequence. The "SEQUENCE" property for the "VTODO" is not changed from its previous value. A recipient determines that the only change in the "REQUEST" is that their "RSVP" property parameter indicates a request for an updated status. The recipient SHOULD respond with a "REPLY" method indicating their current status with respect to the "REQUEST".

“VTODO”的“组织者”可以向一个或多个“与会者”请求更新状态。“组织者”使用“Attendee;RSVP=TRUE”属性序列向“Attendee”发送一个“REQUEST”方法。“VTODO”的“SEQUENCE”属性与其以前的值相同。收件人确定“请求”中的唯一更改是其“RSVP”属性参数指示更新状态的请求。收件人应使用“回复”方法进行回复,表明其当前在“请求”方面的状态。

3.4.3. REPLY
3.4.3. 回复

The "REPLY" method in a "VTODO" calendar component is used to respond (e.g., accept or decline) to a request or to reply to a delegation request. It is also used by an "Attendee" to update their completion status. When used to provide a delegation response, the "Delegator" MUST include the calendar address of the "Delegate" in the "DELEGATED-TO" parameter of the "Delegator's" "ATTENDEE" property. The "Delegate" MUST include the calendar address of the "Delegator" on the "DELEGATED-FROM" parameter of the "Delegate's" "ATTENDEE" property.

“VTODO”日历组件中的“REPLY”方法用于响应(例如,接受或拒绝)请求或答复委派请求。“与会者”也可以使用它来更新其完成状态。用于提供委派响应时,“委派者”必须在“委派者”的“与会者”属性的“委派对象”参数中包含“委派者”的日历地址。“代理人”必须在“代理人的”“与会者”属性的“Delegate-FROM”参数中包含“代理人”的日历地址。

The "REPLY" method MAY also be used to respond to an unsuccessful "VTODO" calendar component "REQUEST" method. Depending on the "REQUEST-STATUS" value, no scheduling action may have been performed.

“回复”方法也可用于响应不成功的“VTODO”日历组件“请求”方法。根据“请求状态”值,可能未执行任何调度操作。

The "Organizer" of a "VTODO" calendar component MAY receive a "REPLY" method from a "Calendar User" not in the original "REQUEST". For example, a "REPLY" method MAY be received from a "Delegate" of a "VTODO" calendar component. In addition, the "REPLY" method MAY be received from an unknown "Calendar User" who has been forwarded the "REQUEST" by an original "Attendee" of the "VTODO" calendar component. This uninvited "Attendee" MAY be accepted or the "Organizer" MAY cancel the "VTODO" calendar component for the uninvited "Attendee" by sending them a "CANCEL" method.

“VTODO”日历组件的“组织者”可能会从原始“请求”中没有的“日历用户”接收“回复”方法。例如,可以从“VTODO”日历组件的“委托”接收“回复”方法。此外,“回复”方法可从未知“日历用户”接收,该未知“日历用户”已由“VTODO”日历组件的原始“与会者”转发“请求”。此未邀请的“与会者”可能会被接受,或者“组织者”可能会通过向未邀请的“与会者”发送“取消”方法来取消“VTODO”日历组件。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

               +-------------------------------------------+
               | Constraints for a METHOD:REPLY of a VTODO |
               +-------------------------------------------+
        
               +-------------------------------------------+
               | Constraints for a METHOD:REPLY of a VTODO |
               +-------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be REPLY.                    |
   |                    |          |                                   |
   | VTODO              | 1+       | All components MUST have the same |
   |                    |          | UID.                              |
   |   ATTENDEE         | 1        | MUST be the address of the        |
   |                    |          | Attendee replying.                |
   |   DTSTAMP          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   REQUEST-STATUS   | 0+       |                                   |
   |   UID              | 1        | MUST be the UID of the original   |
   |                    |          | REQUEST.                          |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   COMPLETED        | 0 or 1   |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   |                                   |
   |   DTSTART          | 0 or 1   |                                   |
   |   DUE              | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DURATION         | 0 or 1   | If present, DUE MUST NOT be       |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PERCENT-COMPLETE | 0 or 1   |                                   |
   |   PRIORITY         | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RELATED-TO       | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   SEQUENCE         | 0 or 1   | MUST be the sequence number of    |
   |                    |          | the original REQUEST if greater   |
   |                    |          | than 0.  MAY be present if 0.     |
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be REPLY.                    |
   |                    |          |                                   |
   | VTODO              | 1+       | All components MUST have the same |
   |                    |          | UID.                              |
   |   ATTENDEE         | 1        | MUST be the address of the        |
   |                    |          | Attendee replying.                |
   |   DTSTAMP          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   REQUEST-STATUS   | 0+       |                                   |
   |   UID              | 1        | MUST be the UID of the original   |
   |                    |          | REQUEST.                          |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   COMPLETED        | 0 or 1   |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   |                                   |
   |   DTSTART          | 0 or 1   |                                   |
   |   DUE              | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DURATION         | 0 or 1   | If present, DUE MUST NOT be       |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PERCENT-COMPLETE | 0 or 1   |                                   |
   |   PRIORITY         | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RELATED-TO       | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   SEQUENCE         | 0 or 1   | MUST be the sequence number of    |
   |                    |          | the original REQUEST if greater   |
   |                    |          | than 0.  MAY be present if 0.     |
        
   |   STATUS           | 0 or 1   |                                   |
   |   SUMMARY          | 0 or 1   | Can be null.                      |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0 or 1   | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   |   STATUS           | 0 or 1   |                                   |
   |   SUMMARY          | 0 or 1   | Can be null.                      |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0 or 1   | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.4.4. ADD
3.4.4. 添加

The "ADD" method allows the "Organizer" to add one or more new instances to an existing "VTODO" using a single iTIP message without having to send the entire "VTODO" with all the existing instance data, as it would have to do if the "REQUEST" method were used.

“添加”方法允许“组织者”使用单个iTIP消息向现有“VTODO”添加一个或多个新实例,而不必发送包含所有现有实例数据的整个“VTODO”,如果使用“请求”方法,则必须这样做。

The "UID" must be that of the existing to-do. If the "UID" property value in the "ADD" is not found on the recipient's calendar, then the recipient SHOULD send a "REFRESH" to the "Organizer" in order to be updated with the latest version of the "VTODO". If an "Attendee" implementation does not support the "ADD" method, it should respond with a "REQUEST-STATUS" value of 3.14 and ask for a "REFRESH".

“UID”必须是现有待办事项的UID。如果在收件人的日历上未找到“添加”中的“UID”属性值,则收件人应向“组织者”发送“刷新”,以便使用最新版本的“VTODO”进行更新。如果“Attendee”实现不支持“ADD”方法,则应使用“REQUEST-STATUS”值3.14进行响应,并请求“刷新”。

When handling an "ADD" message, the "Attendee" treats each component in the "ADD" message as if it were referenced via an "RDATE" in the main component.

处理“添加”消息时,“与会者”将“添加”消息中的每个组件视为通过主组件中的“RDATE”引用。

The "SEQUENCE" property value is incremented since the sequence of to-dos has changed.

由于待办事项的顺序已更改,“SEQUENCE”属性值将递增。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

                +-----------------------------------------+
                | Constraints for a METHOD:ADD of a VTODO |
                +-----------------------------------------+
        
                +-----------------------------------------+
                | Constraints for a METHOD:ADD of a VTODO |
                +-----------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be ADD.                      |
   |                    |          |                                   |
   | VTODO              | 1        |                                   |
   |   DTSTAMP          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   PRIORITY         | 1        |                                   |
   |   SEQUENCE         | 1        | MUST be greater than 0.           |
   |   SUMMARY          | 1        | Can be null.                      |
   |   UID              | 1        | MUST match that of the original   |
   |                    |          | to-do.                            |
   |   ATTACH           | 0+       |                                   |
   |   ATTENDEE         | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   COMPLETED        | 0 or 1   |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   | Can be null.                      |
   |   DTSTART          | 0 or 1   |                                   |
   |   DUE              | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DURATION         | 0 or 1   | If present, DUE MUST NOT be       |
   |                    |          | present.                          |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PERCENT-COMPLETE | 0 or 1   |                                   |
   |   RELATED-TO       | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | COMPLETED/NEEDS-ACTION/           |
   |                    |          | IN-PROCESS.                       |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   EXDATE           | 0        |                                   |
   |   RECURRENCE-ID    | 0        |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |   RDATE            | 0        |                                   |
   |   RRULE            | 0        |                                   |
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be ADD.                      |
   |                    |          |                                   |
   | VTODO              | 1        |                                   |
   |   DTSTAMP          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   PRIORITY         | 1        |                                   |
   |   SEQUENCE         | 1        | MUST be greater than 0.           |
   |   SUMMARY          | 1        | Can be null.                      |
   |   UID              | 1        | MUST match that of the original   |
   |                    |          | to-do.                            |
   |   ATTACH           | 0+       |                                   |
   |   ATTENDEE         | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   COMPLETED        | 0 or 1   |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   | Can be null.                      |
   |   DTSTART          | 0 or 1   |                                   |
   |   DUE              | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DURATION         | 0 or 1   | If present, DUE MUST NOT be       |
   |                    |          | present.                          |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PERCENT-COMPLETE | 0 or 1   |                                   |
   |   RELATED-TO       | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | COMPLETED/NEEDS-ACTION/           |
   |                    |          | IN-PROCESS.                       |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   EXDATE           | 0        |                                   |
   |   RECURRENCE-ID    | 0        |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |   RDATE            | 0        |                                   |
   |   RRULE            | 0        |                                   |
        
   |                    |          |                                   |
   |   VALARM           | 0+       |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   |                    |          |                                   |
   |   VALARM           | 0+       |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VJOURNAL           | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.4.5. CANCEL
3.4.5. 取消

The "CANCEL" method in a "VTODO" calendar component is used to send a cancellation notice of an existing "VTODO" calendar request to the affected "Attendees". The message is sent by the "Organizer" of a "VTODO" calendar component to the "Attendees" of the "VTODO" calendar component. For a recurring "VTODO" calendar component, either the whole "VTODO" calendar component or instances of a "VTODO" calendar component may be cancelled. To cancel the complete range of a recurring "VTODO" calendar component, the "UID" property value for the "VTODO" calendar component MUST be specified and a "RECURRENCE-ID" MUST NOT be specified in the "CANCEL" method. In order to cancel an individual instance of a recurring "VTODO" calendar component, the "RECURRENCE-ID" property value for the "VTODO" calendar component MUST be specified in the "CANCEL" method.

“VTODO”日历组件中的“取消”方法用于向受影响的“与会者”发送现有“VTODO”日历请求的取消通知。该消息由“VTODO”日历组件的“组织者”发送给“VTODO”日历组件的“与会者”。对于重复出现的“VTODO”日历组件,可以取消整个“VTODO”日历组件或“VTODO”日历组件的实例。要取消周期性“VTODO”日历组件的完整范围,必须指定“VTODO”日历组件的“UID”属性值,并且不得在“取消”方法中指定“RECURRENCE-ID”。要取消定期“VTODO”日历组件的单个实例,必须在“取消”方法中指定“VTODO”日历组件的“RECURRENCE-ID”属性值。

There are two options for canceling a sequence of instances of a recurring "VTODO" calendar component:

有两个选项可用于取消周期性“VTODO”日历组件的一系列实例:

a. The "RECURRENCE-ID" property for an instance in the sequence MUST be specified with the "RANGE" property parameter value of "THISANDFUTURE" to indicate cancellation of the specified "VTODO" calendar component and all instances after.

a. 必须使用“范围”属性参数值“THISANDFUTURE”指定序列中实例的“RECURRENCE-ID”属性,以指示取消指定的“VTODO”日历组件和之后的所有实例。

b. Individual recurrence instances may be cancelled by specifying multiple "VTODO" components each with a "RECURRENCE-ID" property corresponding to one of the instances to be cancelled.

b. 可以通过指定多个“VTODO”组件来取消各个重复实例,每个组件都具有与要取消的实例之一对应的“recurrence-ID”属性。

The "Organizer" MUST send a "CANCEL" message to each "Attendee" affected by the cancellation. This can be done by using either a single "CANCEL" message for all "Attendees" or multiple messages with different subsets of the affected "Attendees" in each.

“组织者”必须向每个受取消影响的“与会者”发送“取消”消息。这可以通过为所有“与会者”使用一条“取消”消息或在每条消息中包含受影响的“与会者”的不同子集的多条消息来实现。

When a "VTODO" is cancelled, the "SEQUENCE" property value MUST be incremented as described in Section 2.1.4.

当“VTODO”被取消时,“序列”属性值必须按照第2.1.4节所述增加。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

              +--------------------------------------------+
              | Constraints for a METHOD:CANCEL of a VTODO |
              +--------------------------------------------+
        
              +--------------------------------------------+
              | Constraints for a METHOD:CANCEL of a VTODO |
              +--------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be CANCEL.                   |
   |                    |          |                                   |
   | VTODO              | 1+       |                                   |
   |   ATTENDEE         | 0+       | MUST include some or all          |
   |                    |          | Attendees being removed from the  |
   |                    |          | to-do.  MUST include some or all  |
   |                    |          | Attendees if the entire to-do is  |
   |                    |          | cancelled.                        |
   |   UID              | 1        | MUST echo original UID.           |
   |   DTSTAMP          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   SEQUENCE         | 1        |                                   |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   COMPLETED        | 0 or 1   |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   |                                   |
   |   DTSTART          | 0 or 1   |                                   |
   |   DUE              | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DURATION         | 0 or 1   | If present, DUE MUST NOT be       |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PERCENT-COMPLETE | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be CANCEL.                   |
   |                    |          |                                   |
   | VTODO              | 1+       |                                   |
   |   ATTENDEE         | 0+       | MUST include some or all          |
   |                    |          | Attendees being removed from the  |
   |                    |          | to-do.  MUST include some or all  |
   |                    |          | Attendees if the entire to-do is  |
   |                    |          | cancelled.                        |
   |   UID              | 1        | MUST echo original UID.           |
   |   DTSTAMP          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   SEQUENCE         | 1        |                                   |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   COMPLETED        | 0 or 1   |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   |                                   |
   |   DTSTART          | 0 or 1   |                                   |
   |   DUE              | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DURATION         | 0 or 1   | If present, DUE MUST NOT be       |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PERCENT-COMPLETE | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
        
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   RELATED-TO       | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   PRIORITY         | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   | MUST be set to CANCELLED to       |
   |                    |          | cancel the entire VTODO.  If      |
   |                    |          | removing specific Attendees, then |
   |                    |          | MUST NOT be included.             |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0 or 1   | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   RELATED-TO       | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   PRIORITY         | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   | MUST be set to CANCELLED to       |
   |                    |          | cancel the entire VTODO.  If      |
   |                    |          | removing specific Attendees, then |
   |                    |          | MUST NOT be included.             |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0 or 1   | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.4.6. REFRESH
3.4.6. 刷新

The "REFRESH" method in a "VTODO" calendar component is used by "Attendees" of an existing "VTODO" calendar component to request an updated description from the "Organizer" of the "VTODO" calendar component. The "Organizer" of the "VTODO" calendar component MAY use this method to request an updated status from the "Attendees". The "REFRESH" method MUST specify the "UID" property corresponding to the "VTODO" calendar component needing update.

“VTODO”日历组件中的“刷新”方法由现有“VTODO”日历组件的“与会者”使用,以向“VTODO”日历组件的“组织者”请求更新的说明。“VTODO”日历组件的“组织者”可以使用此方法向“与会者”请求更新状态。“REFRESH”方法必须指定与需要更新的“VTODO”日历组件相对应的“UID”属性。

A refresh of a recurrence instance of a "VTODO" calendar component may be requested by specifying the "RECURRENCE-ID" property corresponding to the associated "VTODO" calendar component. The "Organizer" responds with the latest description and rendition of the "VTODO" calendar component. In most cases, this will be a "REQUEST" unless the "VTODO" has been cancelled, in which case the "Organizer" MUST send a "CANCEL". This method is intended to facilitate machine processing of requests for updates to a "VTODO" calendar component.

通过指定与关联的“VTODO”日历组件相对应的“recurrence-ID”属性,可以请求刷新“VTODO”日历组件的定期实例。“组织者”会以“VTODO”日历组件的最新描述和格式副本进行响应。在大多数情况下,这将是一个“请求”,除非“VTODO”已被取消,在这种情况下,“组织者”必须发送一个“取消”。此方法旨在帮助机器处理对“VTODO”日历组件的更新请求。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

              +---------------------------------------------+
              | Constraints for a METHOD:REFRESH of a VTODO |
              +---------------------------------------------+
        
              +---------------------------------------------+
              | Constraints for a METHOD:REFRESH of a VTODO |
              +---------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be REFRESH.                  |
   |                    |          |                                   |
   | VTODO              | 1        |                                   |
   |   ATTENDEE         | 1        |                                   |
   |   DTSTAMP          | 1        |                                   |
   |   UID              | 1        | MUST echo original UID.           |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   ATTACH           | 0        |                                   |
   |   CATEGORIES       | 0        |                                   |
   |   CLASS            | 0        |                                   |
   |   COMMENT          | 0        |                                   |
   |   COMPLETED        | 0        |                                   |
   |   CONTACT          | 0        |                                   |
   |   CREATED          | 0        |                                   |
   |   DESCRIPTION      | 0        |                                   |
   |   DTSTART          | 0        |                                   |
   |   DUE              | 0        |                                   |
   |   DURATION         | 0        |                                   |
   |   EXDATE           | 0        |                                   |
   |   GEO              | 0        |                                   |
   |   LAST-MODIFIED    | 0        |                                   |
   |   LOCATION         | 0        |                                   |
   |   ORGANIZER        | 0        |                                   |
   |   PERCENT-COMPLETE | 0        |                                   |
   |   PRIORITY         | 0        |                                   |
   |   RDATE            | 0        |                                   |
   |   RELATED-TO       | 0        |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |   RESOURCES        | 0        |                                   |
   |   RRULE            | 0        |                                   |
   |   SEQUENCE         | 0        |                                   |
   |   STATUS           | 0        |                                   |
   |   URL              | 0        |                                   |
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be REFRESH.                  |
   |                    |          |                                   |
   | VTODO              | 1        |                                   |
   |   ATTENDEE         | 1        |                                   |
   |   DTSTAMP          | 1        |                                   |
   |   UID              | 1        | MUST echo original UID.           |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   ATTACH           | 0        |                                   |
   |   CATEGORIES       | 0        |                                   |
   |   CLASS            | 0        |                                   |
   |   COMMENT          | 0        |                                   |
   |   COMPLETED        | 0        |                                   |
   |   CONTACT          | 0        |                                   |
   |   CREATED          | 0        |                                   |
   |   DESCRIPTION      | 0        |                                   |
   |   DTSTART          | 0        |                                   |
   |   DUE              | 0        |                                   |
   |   DURATION         | 0        |                                   |
   |   EXDATE           | 0        |                                   |
   |   GEO              | 0        |                                   |
   |   LAST-MODIFIED    | 0        |                                   |
   |   LOCATION         | 0        |                                   |
   |   ORGANIZER        | 0        |                                   |
   |   PERCENT-COMPLETE | 0        |                                   |
   |   PRIORITY         | 0        |                                   |
   |   RDATE            | 0        |                                   |
   |   RELATED-TO       | 0        |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |   RESOURCES        | 0        |                                   |
   |   RRULE            | 0        |                                   |
   |   SEQUENCE         | 0        |                                   |
   |   STATUS           | 0        |                                   |
   |   URL              | 0        |                                   |
        
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       |                                   |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       |                                   |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.4.7. COUNTER
3.4.7. 柜台

The "COUNTER" method in a "VTODO" calendar component is used by an "Attendee" of an existing "VTODO" calendar component to submit to the "Organizer" a counter proposal for the "VTODO" calendar component.

“VTODO”日历组件中的“计数器”方法由现有“VTODO”日历组件的“与会者”使用,以向“组织者”提交“VTODO”日历组件的反提案。

The counter proposal is an iCalendar object consisting of a "VTODO" calendar component that provides the complete description of the alternate "VTODO" calendar component.

反提案是一个iCalendar对象,由“VTODO”日历组件组成,该组件提供备用“VTODO”日历组件的完整描述。

The "Organizer" rejects the counter proposal by sending the "Attendee" a "DECLINECOUNTER" method. The "Organizer" accepts the counter proposal by rescheduling the to-do as described in Section 3.4.2.1, "REQUEST for Rescheduling a To-Do". The "Organizer's" CUA SHOULD send a "REQUEST" message to all "Attendees" affected by any change triggered by an accepted "COUNTER".

“组织者”通过向“与会者”发送“DECLINECOUNTER”方法拒绝反提案。“组织者”通过按照第3.4.2.1节“重新安排待办事项的请求”的规定重新安排待办事项的时间,接受反建议。“组织者”CUA应向受接受的“计数器”触发的任何更改影响的所有“与会者”发送“请求”消息。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

              +---------------------------------------------+
              | Constraints for a METHOD:COUNTER of a VTODO |
              +---------------------------------------------+
        
              +---------------------------------------------+
              | Constraints for a METHOD:COUNTER of a VTODO |
              +---------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be COUNTER.                  |
   |                    |          |                                   |
   | VTODO              | 1        |                                   |
   |   ATTENDEE         | 1+       |                                   |
   |   DTSTAMP          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   PRIORITY         | 1        |                                   |
   |   SUMMARY          | 1        | Can be null.                      |
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be COUNTER.                  |
   |                    |          |                                   |
   | VTODO              | 1        |                                   |
   |   ATTENDEE         | 1+       |                                   |
   |   DTSTAMP          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   PRIORITY         | 1        |                                   |
   |   SUMMARY          | 1        | Can be null.                      |
        
   |   UID              | 1        |                                   |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   COMPLETED        | 0 or 1   |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   | Can be null.                      |
   |   DTSTART          | 0 or 1   |                                   |
   |   DUE              | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DURATION         | 0 or 1   | If present, DUE MUST NOT be       |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PERCENT-COMPLETE | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   RELATED-TO       | 0+       |                                   |
   |   REQUEST-STATUS   | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   SEQUENCE         | 0 or 1   | MUST echo the original SEQUENCE   |
   |                    |          | number.  MUST be present if       |
   |                    |          | non-zero.  MAY be present if      |
   |                    |          | zero.                             |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | COMPLETED/NEEDS-ACTION/           |
   |                    |          | IN-PROCESS/CANCELLED.             |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |                    |          |                                   |
   |   VALARM           | 0+       |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0 or 1   | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
        
   |   UID              | 1        |                                   |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   COMPLETED        | 0 or 1   |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   | Can be null.                      |
   |   DTSTART          | 0 or 1   |                                   |
   |   DUE              | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DURATION         | 0 or 1   | If present, DUE MUST NOT be       |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   LOCATION         | 0 or 1   |                                   |
   |   PERCENT-COMPLETE | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   RELATED-TO       | 0+       |                                   |
   |   REQUEST-STATUS   | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   SEQUENCE         | 0 or 1   | MUST echo the original SEQUENCE   |
   |                    |          | number.  MUST be present if       |
   |                    |          | non-zero.  MAY be present if      |
   |                    |          | zero.                             |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | COMPLETED/NEEDS-ACTION/           |
   |                    |          | IN-PROCESS/CANCELLED.             |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |                    |          |                                   |
   |   VALARM           | 0+       |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0 or 1   | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
        
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.4.8. DECLINECOUNTER
3.4.8. 下线计数器

The "DECLINECOUNTER" method in a "VTODO" calendar component is used by an "Organizer" of the "VTODO" calendar component to reject a counter proposal offered by one of the "Attendees". The "Organizer" sends the message to the "Attendee" that sent the "COUNTER" method to the "Organizer".

“VTODO”日历组件的“组织者”使用“VTODO”日历组件中的“DECLINECOUNTER”方法拒绝其中一位“与会者”提出的反提案。“组织者”将消息发送给将“计数器”方法发送给“组织者”的“与会者”。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

          +----------------------------------------------------+
          | Constraints for a METHOD:DECLINECOUNTER of a VTODO |
          +----------------------------------------------------+
        
          +----------------------------------------------------+
          | Constraints for a METHOD:DECLINECOUNTER of a VTODO |
          +----------------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be DECLINECOUNTER.           |
   |                    |          |                                   |
   | VTODO              | 1        |                                   |
   |   ATTENDEE         | 1+       | MUST for all ATTENDEEs.           |
   |   DTSTAMP          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   SEQUENCE         | 1        | MUST echo the original SEQUENCE   |
   |                    |          | number.                           |
   |   UID              | 1        | MUST echo original UID.           |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   COMPLETED        | 0 or 1   |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   |                                   |
   |   DTSTART          | 0 or 1   |                                   |
   |   DUE              | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DURATION         | 0 or 1   | If present, DUE MUST NOT be       |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be DECLINECOUNTER.           |
   |                    |          |                                   |
   | VTODO              | 1        |                                   |
   |   ATTENDEE         | 1+       | MUST for all ATTENDEEs.           |
   |   DTSTAMP          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   SEQUENCE         | 1        | MUST echo the original SEQUENCE   |
   |                    |          | number.                           |
   |   UID              | 1        | MUST echo original UID.           |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   COMPLETED        | 0 or 1   |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   |                                   |
   |   DTSTART          | 0 or 1   |                                   |
   |   DUE              | 0 or 1   | If present, DURATION MUST NOT be  |
   |                    |          | present.                          |
   |   DURATION         | 0 or 1   | If present, DUE MUST NOT be       |
   |                    |          | present.                          |
   |   EXDATE           | 0+       |                                   |
   |   GEO              | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
        
   |   LOCATION         | 0 or 1   |                                   |
   |   PERCENT-COMPLETE | 0 or 1   |                                   |
   |   PRIORITY         | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   RELATED-TO       | 0+       |                                   |
   |   REQUEST-STATUS   | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | COMPLETED/NEEDS-ACTION/           |
   |                    |          | IN-PROCESS.                       |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   |   LOCATION         | 0 or 1   |                                   |
   |   PERCENT-COMPLETE | 0 or 1   |                                   |
   |   PRIORITY         | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   RELATED-TO       | 0+       |                                   |
   |   REQUEST-STATUS   | 0+       |                                   |
   |   RESOURCES        | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | COMPLETED/NEEDS-ACTION/           |
   |                    |          | IN-PROCESS.                       |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.5. Methods for VJOURNAL Components
3.5. VJOURNAL组件的方法

This section defines the property set for the methods that are applicable to the "VJOURNAL" calendar component.

本节定义了适用于“VJOURNAL”日历组件的方法的属性集。

The following summarizes the methods that are defined for the "VJOURNAL" calendar component.

下面总结了为“VJOURNAL”日历组件定义的方法。

   +---------+---------------------------------------------------------+
   | Method  | Description                                             |
   +---------+---------------------------------------------------------+
   | PUBLISH | Post a journal entry.  Used primarily as a method of    |
   |         | advertising the existence of a journal entry.           |
   |         |                                                         |
   | ADD     | Add one or more instances to an existing journal entry. |
   |         |                                                         |
   | CANCEL  | Cancel one or more instances of an existing journal     |
   |         | entry.                                                  |
   +---------+---------------------------------------------------------+
        
   +---------+---------------------------------------------------------+
   | Method  | Description                                             |
   +---------+---------------------------------------------------------+
   | PUBLISH | Post a journal entry.  Used primarily as a method of    |
   |         | advertising the existence of a journal entry.           |
   |         |                                                         |
   | ADD     | Add one or more instances to an existing journal entry. |
   |         |                                                         |
   | CANCEL  | Cancel one or more instances of an existing journal     |
   |         | entry.                                                  |
   +---------+---------------------------------------------------------+
        
3.5.1. PUBLISH
3.5.1. 出版

The "PUBLISH" method in a "VJOURNAL" calendar component has no associated response. It is simply a posting of an iCalendar object that may be added to a calendar. It MUST have an "Organizer". It MUST NOT have "Attendees". The expected usage is for encapsulating an arbitrary journal entry as an iCalendar object. The "Organizer" MAY subsequently update (with another "PUBLISH" method) or cancel (with a "CANCEL" method) a previously published journal entry.

“VJOURNAL”日历组件中的“PUBLISH”方法没有关联的响应。它只是可以添加到日历中的iCalendar对象的发布。它必须有一个“组织者”。它不能有“与会者”。预期用途是将任意日志条目封装为iCalendar对象。“组织者”可随后更新(使用另一种“发布”方法)或取消(使用“取消”方法)先前发布的日记账分录。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

            +------------------------------------------------+
            | Constraints for a METHOD:PUBLISH of a VJOURNAL |
            +------------------------------------------------+
        
            +------------------------------------------------+
            | Constraints for a METHOD:PUBLISH of a VJOURNAL |
            +------------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be PUBLISH.                  |
   |                    |          |                                   |
   | VJOURNAL           | 1+       |                                   |
   |   DESCRIPTION      | 1        | Can be null.                      |
   |   DTSTAMP          | 1        |                                   |
   |   DTSTART          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   UID              | 1        |                                   |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   EXDATE           | 0+       |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be PUBLISH.                  |
   |                    |          |                                   |
   | VJOURNAL           | 1+       |                                   |
   |   DESCRIPTION      | 1        | Can be null.                      |
   |   DTSTAMP          | 1        |                                   |
   |   DTSTART          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   UID              | 1        |                                   |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   EXDATE           | 0+       |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
        
   |   RDATE            | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   RELATED-TO       | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   SEQUENCE         | 0 or 1   | MUST be present if non-zero.  MAY |
   |                    |          | be present if zero.               |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | DRAFT/FINAL/CANCELLED.            |
   |   SUMMARY          | 0 or 1   | Can be null.                      |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   ATTENDEE         | 0        |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0+       |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   |   RDATE            | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   RELATED-TO       | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   SEQUENCE         | 0 or 1   | MUST be present if non-zero.  MAY |
   |                    |          | be present if zero.               |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | DRAFT/FINAL/CANCELLED.            |
   |   SUMMARY          | 0 or 1   | Can be null.                      |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   ATTENDEE         | 0        |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0+       |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.5.2. ADD
3.5.2. 添加

The "ADD" method allows the "Organizer" to add one or more new instances to an existing "VJOURNAL" using a single iTIP message without having to send the entire "VJOURNAL" with all the existing instance data, as it would have to do if the "REQUEST" method were used.

“ADD”方法允许“Organizer”使用单个iTIP消息向现有“VJOURNAL”添加一个或多个新实例,而不必发送包含所有现有实例数据的整个“VJOURNAL”,如果使用“REQUEST”方法,则必须这样做。

The "UID" must be that of the existing journal entry. If the "UID" property value in the "ADD" is not found on the recipient's calendar, then the recipient MAY treat the "ADD" as a "PUBLISH".

“UID”必须是现有日记账分录的UID。如果在收件人的日历上找不到“添加”中的“UID”属性值,则收件人可以将“添加”视为“发布”。

When handling an "ADD" message, the "Attendee" treats each component in the "ADD" message as if it were referenced via an "RDATE" in the main component. There is no response to the "Organizer".

处理“添加”消息时,“与会者”将“添加”消息中的每个组件视为通过主组件中的“RDATE”引用。对“组织者”没有回应。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

              +--------------------------------------------+
              | Constraints for a METHOD:ADD of a VJOURNAL |
              +--------------------------------------------+
        
              +--------------------------------------------+
              | Constraints for a METHOD:ADD of a VJOURNAL |
              +--------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be ADD.                      |
   |                    |          |                                   |
   | VJOURNAL           | 1        |                                   |
   |   DESCRIPTION      | 1        | Can be null.                      |
   |   DTSTAMP          | 1        |                                   |
   |   DTSTART          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   SEQUENCE         | 1        | MUST be greater than 0.           |
   |   UID              | 1        | MUST match that of the original   |
   |                    |          | journal.                          |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   RELATED-TO       | 0+       |                                   |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | DRAFT/FINAL/CANCELLED.            |
   |   SUMMARY          | 0 or 1   | Can be null.                      |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   ATTENDEE         | 0        |                                   |
   |   EXDATE           | 0        |                                   |
   |   RECURRENCE-ID    | 0        |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |   RDATE            | 0        |                                   |
   |   RRULE            | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0+       |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0 or 1   | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be ADD.                      |
   |                    |          |                                   |
   | VJOURNAL           | 1        |                                   |
   |   DESCRIPTION      | 1        | Can be null.                      |
   |   DTSTAMP          | 1        |                                   |
   |   DTSTART          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   SEQUENCE         | 1        | MUST be greater than 0.           |
   |   UID              | 1        | MUST match that of the original   |
   |                    |          | journal.                          |
   |   ATTACH           | 0+       |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   RELATED-TO       | 0+       |                                   |
   |   STATUS           | 0 or 1   | MAY be one of                     |
   |                    |          | DRAFT/FINAL/CANCELLED.            |
   |   SUMMARY          | 0 or 1   | Can be null.                      |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   ATTENDEE         | 0        |                                   |
   |   EXDATE           | 0        |                                   |
   |   RECURRENCE-ID    | 0        |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |   RDATE            | 0        |                                   |
   |   RRULE            | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0+       |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0 or 1   | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
        
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.5.3. CANCEL
3.5.3. 取消

The "CANCEL" method in a "VJOURNAL" calendar component is used to send a cancellation notice of an existing journal entry. The message is sent by the "Organizer" of a journal entry. For a recurring journal entry, either the whole journal entry or instances of a journal entry may be cancelled. To cancel the complete range of a recurring journal entry, the "UID" property value for the journal entry MUST be specified and a "RECURRENCE-ID" property MUST NOT be specified in the "CANCEL" method. In order to cancel an individual instance of the journal entry, the "RECURRENCE-ID" property value for the journal entry MUST be specified in the "CANCEL" method.

“VJOURNAL”日历组件中的“CANCEL”方法用于发送现有日记账分录的取消通知。该消息由日记账分录的“组织者”发送。对于定期日记账分录,可以取消整个日记账分录或日记账分录的实例。若要取消定期日记账分录的完整范围,必须指定日记账分录的“UID”属性值,并且不能在“cancel”方法中指定“RECURRENCE-ID”属性。要取消日记账分录的单个实例,必须在“cancel”方法中指定日记账分录的“RECURRENCE-ID”属性值。

There are two options for canceling a sequence of instances of a recurring "VJOURNAL" calendar component:

有两个选项可用于取消周期性“VJOURNAL”日历组件的一系列实例:

a. The "RECURRENCE-ID" property for an instance in the sequence MUST be specified with the "RANGE" property parameter value of "THISANDFUTURE" to indicate cancellation of the specified "VJOURNAL" calendar component and all instances after.

a. 必须使用“范围”属性参数值“THISANDFUTURE”指定序列中实例的“RECURRENCE-ID”属性,以指示取消指定的“VJOURNAL”日历组件和之后的所有实例。

b. Individual recurrence instances may be cancelled by specifying multiple "VJOURNAL" components each with a "RECURRENCE-ID" property corresponding to one of the instances to be cancelled.

b. 可以通过指定多个“VJOURNAL”组件来取消各个重复实例,每个组件都具有与要取消的实例之一对应的“recurrence-ID”属性。

When a "VJOURNAL" is cancelled, the "SEQUENCE" property value MUST be incremented as described in Section 2.1.4.

当“VJOURNAL”被取消时,“SEQUENCE”属性值必须按第2.1.4节所述递增。

This method type is an iCalendar object that conforms to the following property constraints:

此方法类型是符合以下属性约束的iCalendar对象:

             +-----------------------------------------------+
             | Constraints for a METHOD:CANCEL of a VJOURNAL |
             +-----------------------------------------------+
        
             +-----------------------------------------------+
             | Constraints for a METHOD:CANCEL of a VJOURNAL |
             +-----------------------------------------------+
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be CANCEL.                   |
   |                    |          |                                   |
   | VJOURNAL           | 1+       | All MUST have the same UID.       |
   |   DTSTAMP          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   SEQUENCE         | 1        |                                   |
   |   UID              | 1        | MUST be the UID of the original   |
   |                    |          | REQUEST.                          |
   |   ATTACH           | 0+       |                                   |
   |   ATTENDEE         | 0        |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   |                                   |
   |   DTSTART          | 0 or 1   |                                   |
   |   EXDATE           | 0+       |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   RELATED-TO       | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   | MAY be present; MUST be CANCELLED |
   |                    |          | if present.                       |
   |   SUMMARY          | 0 or 1   |                                   |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
        
   +--------------------+----------+-----------------------------------+
   | Component/Property | Presence | Comment                           |
   +--------------------+----------+-----------------------------------+
   | METHOD             | 1        | MUST be CANCEL.                   |
   |                    |          |                                   |
   | VJOURNAL           | 1+       | All MUST have the same UID.       |
   |   DTSTAMP          | 1        |                                   |
   |   ORGANIZER        | 1        |                                   |
   |   SEQUENCE         | 1        |                                   |
   |   UID              | 1        | MUST be the UID of the original   |
   |                    |          | REQUEST.                          |
   |   ATTACH           | 0+       |                                   |
   |   ATTENDEE         | 0        |                                   |
   |   CATEGORIES       | 0+       |                                   |
   |   CLASS            | 0 or 1   |                                   |
   |   COMMENT          | 0+       |                                   |
   |   CONTACT          | 0+       |                                   |
   |   CREATED          | 0 or 1   |                                   |
   |   DESCRIPTION      | 0 or 1   |                                   |
   |   DTSTART          | 0 or 1   |                                   |
   |   EXDATE           | 0+       |                                   |
   |   LAST-MODIFIED    | 0 or 1   |                                   |
   |   RDATE            | 0+       |                                   |
   |   RECURRENCE-ID    | 0 or 1   | Only if referring to an instance  |
   |                    |          | of a recurring calendar           |
   |                    |          | component.  Otherwise, it MUST    |
   |                    |          | NOT be present.                   |
   |   RELATED-TO       | 0+       |                                   |
   |   RRULE            | 0 or 1   |                                   |
   |   STATUS           | 0 or 1   | MAY be present; MUST be CANCELLED |
   |                    |          | if present.                       |
   |   SUMMARY          | 0 or 1   |                                   |
   |   URL              | 0 or 1   |                                   |
   |   IANA-PROPERTY    | 0+       |                                   |
   |   X-PROPERTY       | 0+       |                                   |
   |   REQUEST-STATUS   | 0        |                                   |
   |                    |          |                                   |
   |   VALARM           | 0        |                                   |
   |                    |          |                                   |
   | VTIMEZONE          | 0+       | MUST be present if any date/time  |
   |                    |          | refers to a timezone.             |
   |                    |          |                                   |
   | IANA-COMPONENT     | 0+       |                                   |
   | X-COMPONENT        | 0+       |                                   |
        
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
   |                    |          |                                   |
   | VEVENT             | 0        |                                   |
   |                    |          |                                   |
   | VFREEBUSY          | 0        |                                   |
   |                    |          |                                   |
   | VTODO              | 0        |                                   |
   +--------------------+----------+-----------------------------------+
        
3.6. Status Replies
3.6. 状态答复

The "REQUEST-STATUS" property is used to convey status information about a "REPLY", "COUNTER", or "DECLINECOUNTER" iTIP message. The codes listed in the table below SHOULD be used. If the "REQUEST-STATUS" property is not present in one of these iTIP messages, then a status code of "2.0" (success) MUST be assumed.

“REQUEST-STATUS”属性用于传递有关“REPLY”、“COUNTER”或“DECLINECOUNTER”iTIP消息的状态信息。应使用下表中列出的代码。如果其中一条iTIP消息中不存在“REQUEST-STATUS”属性,则必须假定状态代码为“2.0”(成功)。

This specification adds a new IANA registry for "REQUEST-STATUS" property values, as defined in Section 7, which includes a new registration template for defining the specific components of the "REQUEST-STATUS" property value. Additional codes MAY be used, provided the process described in Section 8.2.1 of [RFC5545] is used to register them.

本规范为第7节中定义的“请求状态”属性值添加了一个新的IANA注册表,其中包括一个新的注册模板,用于定义“请求状态”属性值的特定组件。如果使用[RFC5545]第8.2.1节中所述的过程对其进行注册,则可以使用其他代码。

This specification allows for multiple "REQUEST-STATUS" properties to be returned in iCalendar components in the appropriate iTIP messages. When multiple "REQUEST-STATUS" properties are present, the following restrictions apply:

此规范允许在适当的iTIP消息中的iCalendar组件中返回多个“请求状态”属性。当存在多个“请求状态”属性时,以下限制适用:

1. Within any one component, the "top-level" numeric value of the "short return status code" MUST be the same for all "REQUEST-STATUS" properties, i.e., there cannot be a mixture of, e.g., 2.xx and 5.xx codes within a single component.

1. 在任何一个组件中,“短返回状态代码”的“顶级”数值对于所有“请求状态”属性都必须相同,即单个组件中不能混合使用,例如2.xx和5.xx代码。

2. Across all components in the iTIP message, the following applies:

2. 在iTIP消息中的所有组件中,以下内容适用:

A. If any one component would have a 5.xx code, then either all components MUST have a code in that range or "REQUEST-STATUS" MUST NOT be present in the other components if a 5.xx code is not appropriate for those components.

A.如果任何一个组件具有5.xx代码,则所有组件必须具有该范围内的代码,或者如果5.xx代码不适用于这些组件,则其他组件中不得存在“请求状态”。

B. Otherwise, if any one component would have a 3.xx code, then either all components MUST have a code in that range or "REQUEST-STATUS" MUST NOT be present in the other components if a 3.xx code is not appropriate for those components.

B.否则,如果任何一个组件具有3.xx代码,则所有组件必须具有该范围内的代码,或者如果3.xx代码不适用于这些组件,则其他组件中不得存在“请求状态”。

C. 2.xx and 4.xx codes can be used in different components, provided that each component follows the restriction in (1) above.

C.2.xx和4.xx代码可用于不同的部件,前提是每个部件都遵循上述(1)中的限制。

The following "REQUEST-STATUS" codes are defined (any "Offending Data" MAY be specified in the "REQUEST-STATUS" value as the extdata field):

定义了以下“请求状态”代码(可在“请求状态”值中将任何“违规数据”指定为extdata字段):

3.6.1. Status Code 2.0
3.6.1. 状态代码2.0

Status Code: 2.0

状态代码:2.0

Status Description: Success.

状态描述:成功。

Status Exception Data: None.

状态异常数据:无。

Description: iTIP operation succeeded.

描述:iTIP操作成功。

3.6.2. Status Code 2.1
3.6.2. 状态代码2.1

Status Code: 2.1

状态代码:2.1

Status Description: Success, but fallback taken on one or more property values.

状态描述:成功,但对一个或多个属性值采取回退。

Status Exception Data: Property name and value MAY be specified.

状态异常数据:可以指定属性名称和值。

Description: iTIP operation succeeded with fallback on one or more property values.

描述:iTIP操作成功,对一个或多个属性值进行了回退。

3.6.3. Status Code 2.2
3.6.3. 状态代码2.2

Status Code: 2.2

状态代码:2.2

Status Description: Success; invalid property ignored.

状态描述:成功;忽略无效属性。

Status Exception Data: Property name MAY be specified.

状态异常数据:可以指定属性名称。

Description: iTIP operation succeeded but a property was ignored.

描述:iTIP操作成功,但忽略了一个属性。

3.6.4. Status Code 2.3
3.6.4. 状态代码2.3

Status Code: 2.3

状态代码:2.3

Status Description: Success; invalid property parameter ignored.

状态描述:成功;忽略无效的属性参数。

Status Exception Data: Property parameter name and value MAY be specified.

状态异常数据:可以指定属性参数名称和值。

Description: iTIP operation succeeded but a property parameter was ignored because it was invalid.

描述:iTIP操作成功,但忽略了一个属性参数,因为它无效。

3.6.5. Status Code 2.4
3.6.5. 状态代码2.4

Status Code: 2.4

状态代码:2.4

Status Description: Success; unknown, non-standard property ignored.

状态描述:成功;未知,忽略非标准属性。

Status Exception Data: Non-standard property name MAY be specified.

状态异常数据:可能指定非标准属性名称。

Description: iTIP operation succeeded but a property parameter was ignored because it was unknown.

描述:iTIP操作成功,但由于属性参数未知,因此被忽略。

3.6.6. Status Code 2.5
3.6.6. 状态代码2.5

Status Code: 2.5

状态代码:2.5

Status Description: Success; unknown, non-standard property value ignored.

状态描述:成功;未知,忽略非标准属性值。

Status Exception Data: Property and non-standard value MAY be specified.

状态异常数据:可以指定属性和非标准值。

Description: iTIP operation succeeded but a property was ignored because its value was unknown.

描述:iTIP操作成功,但忽略了一个属性,因为它的值未知。

3.6.7. Status Code 2.6
3.6.7. 状态代码2.6

Status Code: 2.6

状态代码:2.6

Status Description: Success; invalid calendar component ignored.

状态描述:成功;无效的日历组件被忽略。

Status Exception Data: Calendar component sentinel (e.g., BEGIN: ALARM) MAY be specified.

状态异常数据:可以指定日历组件sentinel(例如,开始:报警)。

Description: iTIP operation succeeded but a component was ignored because it was invalid.

描述:iTIP操作成功,但由于某个组件无效而被忽略。

3.6.8. Status Code 2.7
3.6.8. 状态代码2.7

Status Code: 2.7

状态代码:2.7

Status Description: Success; request forwarded to Calendar User.

状态描述:成功;请求已转发给日历用户。

Status Exception Data: Original and forwarded calendar user addresses MAY be specified.

状态异常数据:可以指定原始和转发的日历用户地址。

Description: iTIP operation succeeded, and the request was forwarded to another Calendar User.

描述:iTIP操作成功,请求已转发给其他日历用户。

3.6.9. Status Code 2.8
3.6.9. 状态代码2.8

Status Code: 2.8

状态代码:2.8

Status Description: Success; repeating event ignored. Scheduled as a single component.

状态描述:成功;忽略重复事件。计划为单个组件。

Status Exception Data: RRULE or RDATE property name and value MAY be specified.

状态异常数据:可以指定RRULE或RDATE属性名称和值。

Description: iTIP operation succeeded but a repeating event was truncated to a single instance.

描述:iTIP操作成功,但重复事件被截断为单个实例。

3.6.10. Status Code 2.9
3.6.10. 状态代码2.9

Status Code: 2.9

状态代码:2.9

Status Description: Success; truncated end date time to date boundary.

状态描述:成功;截断的结束日期时间到日期边界。

Status Exception Data: DTEND property value MAY be specified.

状态异常数据:可以指定DTEND属性值。

Description: iTIP operation succeeded but the end time was truncated to a date boundary.

描述:iTIP操作成功,但结束时间被截断为日期边界。

3.6.11. Status Code 2.10
3.6.11. 状态代码2.10

Status Code: 2.10

状态代码:2.10

Status Description: Success; repeating VTODO ignored. Scheduled as a single VTODO.

状态描述:成功;重复VTODO被忽略。计划为单个VTODO。

Status Exception Data: RRULE or RDATE property name and value MAY be specified.

状态异常数据:可以指定RRULE或RDATE属性名称和值。

Description: iTIP operation succeeded but a repeating to-do was truncated to a single instance.

描述:iTIP操作成功,但重复的待办事项被截断为单个实例。

3.6.12. Status Code 2.11
3.6.12. 状态代码2.11

Status Code: 2.11

状态代码:2.11

Status Description: Success; unbounded RRULE clipped at some finite number of instances.

状态描述:成功;在某些有限数量的实例上剪裁的无界RRULE。

Status Exception Data: RRULE property name and value MAY be specified. Number of instances MAY also be specified.

状态异常数据:可以指定RRULE属性名称和值。还可以指定实例数。

Description: iTIP operation succeeded but an unbounded repeating object was clipped to a finite number of instances.

描述:iTIP操作成功,但无限重复对象被剪切到有限数量的实例。

3.6.13. Status Code 3.0
3.6.13. 状态代码3.0

Status Code: 3.0

状态代码:3.0

Status Description: Invalid property name.

状态描述:无效的属性名称。

Status Exception Data: Property name MAY be specified.

状态异常数据:可以指定属性名称。

Description: iTIP operation failed because of an invalid property name.

说明:iTIP操作失败,因为属性名称无效。

3.6.14. Status Code 3.1
3.6.14. 状态代码3.1

Status Code: 3.1

状态代码:3.1

Status Description: Invalid property value.

状态描述:无效的属性值。

Status Exception Data: Property name and value MAY be specified.

状态异常数据:可以指定属性名称和值。

Description: iTIP operation failed because of an invalid property value.

说明:iTIP操作失败,因为属性值无效。

3.6.15. Status Code 3.2
3.6.15. 状态代码3.2

Status Code: 3.2

状态代码:3.2

Status Description: Invalid property parameter.

状态描述:无效的属性参数。

Status Exception Data: Property parameter name and value MAY be specified.

状态异常数据:可以指定属性参数名称和值。

Description: iTIP operation failed because of an invalid property parameter.

说明:iTIP操作失败,因为属性参数无效。

3.6.16. Status Code 3.3
3.6.16. 状态代码3.3

Status Code: 3.3

状态代码:3.3

Status Description: Invalid property parameter value.

状态描述:无效的属性参数值。

Status Exception Data: Property parameter name and value MAY be specified.

状态异常数据:可以指定属性参数名称和值。

Description: iTIP operation failed because of an invalid property parameter value.

说明:iTIP操作失败,因为属性参数值无效。

3.6.17. Status Code 3.4
3.6.17. 状态代码3.4

Status Code: 3.4

状态代码:3.4

Status Description: Invalid calendar component sequence.

状态描述:无效的日历组件序列。

Status Exception Data: Calendar component sentinel MAY be specified (e.g., BEGIN:VTIMEZONE).

状态异常数据:可以指定日历组件sentinel(例如,BEGIN:VTIMEZONE)。

Description: iTIP operation failed because of an invalid component.

说明:iTIP操作因组件无效而失败。

3.6.18. Status Code 3.5
3.6.18. 状态代码3.5

Status Code: 3.5

状态代码:3.5

Status Description: Invalid date or time.

状态描述:无效的日期或时间。

Status Exception Data: Date/time value(s) MAY be specified.

状态异常数据:可以指定日期/时间值。

Description: iTIP operation failed because of an invalid date or time property.

说明:iTIP操作失败,因为日期或时间属性无效。

3.6.19. Status Code 3.6
3.6.19. 状态代码3.6

Status Code: 3.6

状态代码:3.6

Status Description: Invalid rule.

状态描述:无效规则。

Status Exception Data: RRULE property value MAY be specified.

状态异常数据:可以指定RRULE属性值。

Description: iTIP operation failed because of an invalid rule property.

说明:iTIP操作失败,因为规则属性无效。

3.6.20. Status Code 3.7
3.6.20. 状态代码3.7

Status Code: 3.7

状态代码:3.7

Status Description: Invalid Calendar User.

状态描述:无效的日历用户。

Status Exception Data: ATTENDEE property value MAY be specified.

状态异常数据:可能指定了ATTENDEE属性值。

Description: iTIP operation failed because of an invalid ATTENDEE property.

说明:iTIP操作失败,因为ATTENDEE属性无效。

3.6.21. Status Code 3.8
3.6.21. 状态代码3.8

Status Code: 3.8

状态代码:3.8

Status Description: No authority.

状态描述:无权限。

Status Exception Data: METHOD and ATTENDEE property values MAY be specified.

状态异常数据:可以指定方法和ATTENDEE属性值。

Description: iTIP operation failed because an Attendee does not have suitable privileges for the operation.

说明:iTIP操作失败,因为与会者没有适当的操作权限。

3.6.22. Status Code 3.9
3.6.22. 状态代码3.9

Status Code: 3.9

状态代码:3.9

Status Description: Unsupported version.

状态描述:不支持的版本。

Status Exception Data: VERSION property name and value MAY be specified.

状态异常数据:可以指定版本属性名称和值。

Description: iTIP operation failed because the calendar data version is not supported.

说明:iTIP操作失败,因为不支持日历数据版本。

3.6.23. Status Code 3.10
3.6.23. 状态代码3.10

Status Code: 3.10

状态代码:3.10

Status Description: Request entity too large.

状态描述:请求实体太大。

Status Exception Data: None.

状态异常数据:无。

Description: iTIP operation failed because the calendar data was too large.

说明:iTIP操作失败,因为日历数据太大。

3.6.24. Status Code 3.11
3.6.24. 状态代码3.11

Status Code: 3.11

状态代码:3.11

Status Description: Required component or property missing.

状态描述:缺少必需的组件或属性。

Status Exception Data: Component or property name MAY be specified.

状态异常数据:可以指定组件或属性名称。

Description: iTIP operation failed because the calendar data did not contain a required property or component.

描述:iTIP操作失败,因为日历数据不包含必需的属性或组件。

3.6.25. Status Code 3.12
3.6.25. 状态代码3.12

Status Code: 3.12

状态代码:3.12

Status Description: Unknown component or property found.

状态描述:找到未知组件或属性。

Status Exception Data: Component or property name MAY be specified.

状态异常数据:可以指定组件或属性名称。

Description: iTIP operation failed because the calendar data contained an unknown property or component.

说明:iTIP操作失败,因为日历数据包含未知的属性或组件。

3.6.26. Status Code 3.13
3.6.26. 状态代码3.13

Status Code: 3.13

状态代码:3.13

Status Description: Unsupported component or property found.

状态描述:找到不受支持的组件或属性。

Status Exception Data: Component or property name MAY be specified.

状态异常数据:可以指定组件或属性名称。

Description: iTIP operation failed because the calendar data contained an unsupported property or component.

说明:iTIP操作失败,因为日历数据包含不受支持的属性或组件。

3.6.27. Status Code 3.14
3.6.27. 状态代码3.14

Status Code: 3.14

状态代码:3.14

Status Description: Unsupported capability.

状态描述:不支持的功能。

Status Exception Data: METHOD or action MAY be specified.

状态异常数据:可以指定方法或操作。

Description: iTIP operation failed because the operation is not supported.

说明:iTIP操作失败,因为不支持该操作。

3.6.28. Status Code 4.0
3.6.28. 状态代码4.0

Status Code: 4.0

状态代码:4.0

Status Description: Event conflict. Date/time is busy.

状态描述:事件冲突。日期/时间很忙。

Status Exception Data: DTSTART and DTEND property names and values MAY be specified.

状态异常数据:可以指定DTSTART和DTEND属性名称和值。

Description: iTIP operation failed because the event overlaps the date and time of another event.

描述:iTIP操作失败,因为该事件与另一个事件的日期和时间重叠。

3.6.29. Status Code 5.0
3.6.29. 状态代码5.0

Status Code: 5.0

状态代码:5.0

Status Description: Request not supported.

状态描述:不支持请求。

Status Exception Data: METHOD property value MAY be specified.

状态异常数据:可以指定方法属性值。

Description: iTIP operation failed because the operation is not supported.

说明:iTIP操作失败,因为不支持该操作。

3.6.30. Status Code 5.1
3.6.30. 状态代码5.1

Status Code: 5.1

状态代码:5.1

Status Description: Service unavailable.

状态描述:服务不可用。

Status Exception Data: ATTENDEE property value MAY be specified.

状态异常数据:可能指定了ATTENDEE属性值。

Description: iTIP operation failed because scheduling is not active.

说明:iTIP操作失败,因为计划未激活。

3.6.31. Status Code 5.2
3.6.31. 状态代码5.2

Status Code: 5.2

状态代码:5.2

Status Description: Invalid calendar service.

状态描述:无效的日历服务。

Status Exception Data: ATTENDEE property value MAY be specified.

状态异常数据:可能指定了ATTENDEE属性值。

Description: iTIP operation failed because there is no scheduling capability.

说明:iTIP操作失败,因为没有计划功能。

3.6.32. Status Code 5.3
3.6.32. 状态代码5.3

Status Code: 5.3

状态代码:5.3

Status Description: No scheduling support for user.

状态描述:不支持用户的计划。

Status Exception Data: ATTENDEE property value MAY be specified.

状态异常数据:可能指定了ATTENDEE属性值。

Description: iTIP operation failed because scheduling is not enabled for an Attendee.

说明:iTIP操作失败,因为未为与会者启用日程安排。

3.7. Implementation Considerations
3.7. 实施考虑
3.7.1. Working With Recurrence Instances
3.7.1. 使用重复实例

iCalendar includes a recurrence grammar to represent recurring events. The benefit of such a grammar is the ability to represent a number of events in a single object. However, while this simplifies creation of a recurring event, meeting instances still need to be referenced. For instance, an "Attendee" may decline the third instance of a recurring Friday event. Similarly, the "Organizer" may change the time or location to a single instance of the recurring event.

iCalendar包含表示重复事件的重复语法。这种语法的好处是能够在单个对象中表示多个事件。但是,尽管这简化了重复事件的创建,但仍然需要引用会议实例。例如,“与会者”可能会拒绝第三次重复的星期五活动。类似地,“组织者”可以将时间或位置更改为重复事件的单个实例。

Since implementations may elect to store recurring events as either a single event object or a collection of discrete, related event objects, the protocol is designed so that each recurring instance may be both referenced and versioned. Hence, implementations that choose to maintain per-instance properties (such as "ATTENDEE" property "PARTSTAT" parameter) may do so. However, the protocol does not require per-instance recognition unless the instance itself must be renegotiated.

由于实现可以选择将周期性事件存储为单个事件对象或离散相关事件对象的集合,因此协议的设计使得每个周期性实例都可以被引用和版本化。因此,选择维护每个实例属性(例如“ATTENDEE”属性“PARTSTAT”参数)的实现可能会这样做。但是,除非实例本身必须重新协商,否则该协议不需要对每个实例进行识别。

The scenarios for recurrence instance referencing are listed below. For purposes of simplification, a change to an event refers to a "trigger property." That is, a property that has a substantive effect on the meeting itself, such as start time, location, due date (for "VTODO" calendar components), and possibly description.

下面列出了重复实例引用的场景。为简化起见,对事件的更改指的是“触发器属性”。即,对会议本身具有实质性影响的属性,例如开始时间、地点、截止日期(对于“VTODO”日历组件)以及可能的描述。

"Organizer"-initiated actions:

“组织者”-发起的行动:

o deletes or changes a single instance of a recurring event

o 删除或更改定期事件的单个实例

o makes changes that affect all future instances

o 进行影响所有未来实例的更改

o makes changes that affect all previous instances

o 进行影响所有以前实例的更改

o deletes or modifies a previously changed instance

o 删除或修改以前更改的实例

"Attendee"-initiated actions:

“与会者”-发起的行动:

o changes status for a particular recurrence instance

o 更改特定重复实例的状态

o sends a "COUNTER" for a particular recurrence instance

o 发送特定重复实例的“计数器”

An instance of a recurring event is assigned a unique identification, "RECURRENCE-ID" property, when that instance is renegotiated. Negotiation may be necessary when a substantive change to the event or to-do has been made (such as changing the start time, end time, due date, or location). The "Organizer" can identify a specific recurrence instance using the "RECURRENCE-ID" property. The property value is equal to the date/time of the instance. If the "Organizer" wishes to change the "DTSTART", the original, unmodified "DTSTART" value of the instance is used as the value "RECURRENCE-ID" property, and the new "DTSTART" and "DTEND" values reflect the change.

重新协商周期性事件实例时,会为该实例分配唯一标识“RECURRENCE-ID”属性。当活动或待办事项发生实质性变化时(如更改开始时间、结束时间、截止日期或地点),可能需要进行协商。“组织者”可以使用“recurrence-ID”属性标识特定的定期实例。属性值等于实例的日期/时间。如果“组织者”希望更改“DTSTART”,则实例的原始未修改的“DTSTART”值将用作值“RECURRENCE-ID”属性,新的“DTSTART”和“DTEND”值将反映更改。

3.7.2. Attendee Property Considerations
3.7.2. 与会者财产注意事项

The "ORGANIZER" property is required on published events, to-dos, and journal entries for two reasons. First, only the "Organizer" is allowed to update and redistribute an event or to-do component. It follows that the "ORGANIZER" property MUST be present in the event, to-do, or journal entry component so that the CUA has a basis for authorizing an update. Second, it is prudent to provide a point of contact for anyone who receives a published component, in case of problems.

发布的事件、待办事项和日志条目需要“ORGANIZER”属性,原因有二。首先,只允许“组织者”更新和重新分发事件或待办事项组件。因此,“组织者”属性必须存在于事件、待办事项或日记条目组件中,以便CUA有授权更新的基础。其次,谨慎的做法是为任何接收到已发布组件的人提供联系点,以防出现问题。

Email addresses that correspond to groups of "Calendar Users" could be specified as a mailto: URI [RFC2368] calendar user address. Sending email to such an address results in email being sent to multiple recipients. Such an address may be used as the value of an "ATTENDEE" property. Thus, it is possible that the recipient of a "REQUEST" does not appear explicitly in the list.

与“日历用户”组相对应的电子邮件地址可以指定为mailto:URI[RFC2368]日历用户地址。向这样一个地址发送电子邮件会导致向多个收件人发送电子邮件。这样的地址可以用作“ATTENDEE”属性的值。因此,“请求”的接收者可能没有明确地出现在列表中。

It is recommended that the general approach to finding a "Calendar User" in an "Attendee" list be as follows:

建议在“与会者”列表中查找“日历用户”的一般方法如下:

1. Search for the "Calendar User" in the "Attendee" list where "CUTYPE=INDIVIDUAL"

1. 在“与会者”列表中搜索“日历用户”,其中“CUTYPE=个人”

2. Failing (1), look for "Attendees" where "CUTYPE=GROUP" or "CUTYPE=UNKNOWN". The CUA then determines if the "Calendar User" is a member of one of these groups. If so, the "REPLY" method sent to the "Organizer" MUST contain a new "ATTENDEE" property in which:

2. 失败(1),查找“与会者”,其中“CUTYPE=GROUP”或“CUTYPE=UNKNOWN”。CUA然后确定“日历用户”是否是这些组之一的成员。如果是,发送给“组织者”的“答复”方法必须包含新的“与会者”属性,其中:

* the "TYPE" property parameter is set to INDIVIDUAL

* “类型”属性参数设置为“单个”

* the "MEMBER" property parameter is set to the name of the group

* “MEMBER”属性参数设置为组的名称

3. Failing (2), the CUA MAY ignore or accept the request as the "Calendar User" wishes.

3. 如果失败(2),CUA可以根据“日历用户”的意愿忽略或接受请求。

3.7.3. Extension Tokens
3.7.3. 扩展令牌

To make iCalendar objects extensible, new component, property, or property parameters can be used. Two types of extensions are defined by [RFC5545]: IANA-registered tokens ("iana-token") and experimental use tokens ("x-name"). A client SHOULD save "iana-token's" and MAY use them in replies. A client MAY save "x-name's" and MAY use them in replies. When delegating or forwarding messages to other CUs, a client SHOULD include "iana-token's" and "x-names's".

要使iCalendar对象可扩展,可以使用新组件、属性或属性参数。[RFC5545]定义了两种类型的扩展:IANA注册令牌(“IANA令牌”)和实验性使用令牌(“x-name”)。客户端应保存“iana令牌”,并可在回复中使用它们。客户端可以保存“x-name”并在回复中使用它们。将消息委派或转发给其他CU时,客户端应包括“iana令牌”和“x-names”。

4. Examples
4. 例子
4.1. Published Event Examples
4.1. 已发布的事件示例

In the calendaring and scheduling context, publication refers to the one-way transfer of event information. Consumers of published events simply incorporate the event into a calendar. No reply is expected. Individual "A" publishes an event. Individual "B" reads the event and incorporates it into their calendar. Events are published in several ways, including embedding the event as an object in a web page, emailing the event to a distribution list, or posting the event to a newsgroup.

在日历和计划上下文中,发布是指事件信息的单向传输。已发布事件的使用者只需将事件合并到日历中。预计不会有答复。个人“A”发布一个事件。个人“B”读取事件并将其合并到日历中。发布事件有多种方式,包括将事件作为对象嵌入网页、通过电子邮件将事件发送到通讯组列表或将事件发布到新闻组。

The table below illustrates the sequence of events between the publisher and the consumers of a published event.

下表说明了已发布事件的发布者和使用者之间的事件顺序。

   +----------------+-----------------------+--------------------------+
   | Action         | Organizer             | Receiver                 |
   +----------------+-----------------------+--------------------------+
   | Publish an     | "A" sends or posts a  | "B" reads a published    |
   | event          | PUBLISH message.      | event.                   |
   |                |                       |                          |
   | Publish an     | "A" sends or posts a  | "B" reads the updated    |
   | updated event  | PUBLISH message.      | event.                   |
   |                |                       |                          |
   | Cancel a       | "A" sends or posts a  | "B" reads the canceled   |
   | published      | CANCEL message.       | event publication.       |
   | event          |                       |                          |
   +----------------+-----------------------+--------------------------+
        
   +----------------+-----------------------+--------------------------+
   | Action         | Organizer             | Receiver                 |
   +----------------+-----------------------+--------------------------+
   | Publish an     | "A" sends or posts a  | "B" reads a published    |
   | event          | PUBLISH message.      | event.                   |
   |                |                       |                          |
   | Publish an     | "A" sends or posts a  | "B" reads the updated    |
   | updated event  | PUBLISH message.      | event.                   |
   |                |                       |                          |
   | Cancel a       | "A" sends or posts a  | "B" reads the canceled   |
   | published      | CANCEL message.       | event publication.       |
   | event          |                       |                          |
   +----------------+-----------------------+--------------------------+
        
4.1.1. A Minimal Published Event
4.1.1. 最小的公开事件

The iCalendar object below describes a single event that begins on July 1, 1997 at 20:00 UTC. This event contains the minimum set of properties for a "PUBLISH" for a "VEVENT" calendar component.

下面的iCalendar对象描述了1997年7月1日UTC 20:00开始的单个事件。此事件包含“VEVENT”日历组件的“发布”的最小属性集。

      BEGIN:VCALENDAR
      METHOD:PUBLISH
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      DTSTART:19970701T200000Z
      DTSTAMP:19970611T190000Z
      SUMMARY:ST. PAUL SAINTS -VS- DULUTH-SUPERIOR DUKES
      UID:0981234-1234234-23@example.com
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      METHOD:PUBLISH
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      DTSTART:19970701T200000Z
      DTSTAMP:19970611T190000Z
      SUMMARY:ST. PAUL SAINTS -VS- DULUTH-SUPERIOR DUKES
      UID:0981234-1234234-23@example.com
      END:VEVENT
      END:VCALENDAR
        
4.1.2. Changing a Published Event
4.1.2. 更改已发布的事件

The iCalendar object below describes an update to the event described in Section 4.1.1; the time has been changed, an end time has been added, and the sequence number has been adjusted.

下面的iCalendar对象描述了对第4.1.1节所述事件的更新;更改了时间,添加了结束时间,并调整了序列号。

      BEGIN:VCALENDAR
      METHOD:PUBLISH
      VERSION:2.0
      PRODID:-//Example/ExampleCalendarClient//EN
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      DTSTAMP:19970612T190000Z
      DTSTART:19970701T210000Z
      DTEND:19970701T230000Z
      SEQUENCE:1
      UID:0981234-1234234-23@example.com
      SUMMARY:ST. PAUL SAINTS -VS- DULUTH-SUPERIOR DUKES
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      METHOD:PUBLISH
      VERSION:2.0
      PRODID:-//Example/ExampleCalendarClient//EN
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      DTSTAMP:19970612T190000Z
      DTSTART:19970701T210000Z
      DTEND:19970701T230000Z
      SEQUENCE:1
      UID:0981234-1234234-23@example.com
      SUMMARY:ST. PAUL SAINTS -VS- DULUTH-SUPERIOR DUKES
      END:VEVENT
      END:VCALENDAR
        

The "UID" property is used by the client to identify the event. The "SEQUENCE" property indicates that this is a change to the event. The event with a matching "UID" and sequence number 0 is superseded by this event.

客户端使用“UID”属性来标识事件。“SEQUENCE”属性表示这是对事件的更改。具有匹配“UID”和序号0的事件将被此事件取代。

The "SEQUENCE" property provides a reliable way to distinguish different versions of the same event. Each time an event is published, its sequence number is incremented. If a client receives

“SEQUENCE”属性提供了一种可靠的方法来区分同一事件的不同版本。每次发布事件时,其序列号都会递增。如果客户收到

an event with a sequence number 5 and finds it has the same event with sequence number 2, the event SHOULD be updated. However, if the client received an event with sequence number 2 and finds it already has sequence number 5 of the same event, the event MUST NOT be updated.

序列号为5的事件,如果发现它具有序列号为2的相同事件,则应更新该事件。但是,如果客户端接收到序列号为2的事件,并且发现它已经具有相同事件的序列号5,则不得更新该事件。

4.1.3. Canceling a Published Event
4.1.3. 取消已发布的事件

The iCalendar object below cancels the event described in Section 4.1.1. This cancels the event with "SEQUENCE" property of 0, 1, and 2.

下面的iCalendar对象取消了第4.1.1节中描述的事件。这将取消“SEQUENCE”属性为0、1和2的事件。

      BEGIN:VCALENDAR
      METHOD:CANCEL
      VERSION:2.0
      PRODID:-//Example/ExampleCalendarClient//EN
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      COMMENT:DUKES forfeit the game
      SEQUENCE:2
      UID:0981234-1234234-23@example.com
      DTSTAMP:19970613T190000Z
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      METHOD:CANCEL
      VERSION:2.0
      PRODID:-//Example/ExampleCalendarClient//EN
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      COMMENT:DUKES forfeit the game
      SEQUENCE:2
      UID:0981234-1234234-23@example.com
      DTSTAMP:19970613T190000Z
      END:VEVENT
      END:VCALENDAR
        
4.1.4. A Rich Published Event
4.1.4. 内容丰富的公开活动

This example describes the same event as in Section 4.1.1, but in much greater detail.

本示例描述了与第4.1.1节相同的事件,但更详细。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:PUBLISH
      SCALE:GREGORIAN
      VERSION:2.0
      BEGIN:VTIMEZONE
      TZID:America-Chicago
      TZURL:http://example.com/tz/America-Chicago
      BEGIN:STANDARD
      DTSTART:19671029T020000
      RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
      TZOFFSETFROM:-0500
      TZOFFSETTO:-0600
      TZNAME:CST
      END:STANDARD
      BEGIN:DAYLIGHT
      DTSTART:19870405T020000
      RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:PUBLISH
      SCALE:GREGORIAN
      VERSION:2.0
      BEGIN:VTIMEZONE
      TZID:America-Chicago
      TZURL:http://example.com/tz/America-Chicago
      BEGIN:STANDARD
      DTSTART:19671029T020000
      RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
      TZOFFSETFROM:-0500
      TZOFFSETTO:-0600
      TZNAME:CST
      END:STANDARD
      BEGIN:DAYLIGHT
      DTSTART:19870405T020000
      RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
        
      TZOFFSETFROM:-0600
      TZOFFSETTO:-0500
      TZNAME:CDT
      END:DAYLIGHT
      END:VTIMEZONE
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTACH:http://www.example.com/
      CATEGORIES:SPORTS EVENT,ENTERTAINMENT
      CLASS:PRIVATE
      DESCRIPTION:MIDWAY STADIUM\n
       Big time game.  MUST see.\n
       Expected duration:2 hours\n
      DTEND;TZID=America-Chicago:19970701T180000
      DTSTART;TZID=America-Chicago:19970702T160000
      DTSTAMP:19970614T190000Z
      STATUS:CONFIRMED
      LOCATION;VALUE=URI:http://stadium.example.com/
      PRIORITY:2
      RESOURCES:SCOREBOARD
      SEQUENCE:3
      SUMMARY:ST. PAUL SAINTS -VS- DULUTH-SUPERIOR DUKES
      UID:0981234-1234234-23@example.com
      RELATED-TO:0981234-1234234-14@example.com
      BEGIN:VALARM
      TRIGGER:-PT2H
      ACTION:DISPLAY
      DESCRIPTION:You should be leaving for the game now.
      END:VALARM
      BEGIN:VALARM
      TRIGGER:-PT30M
      ACTION:AUDIO
      END:VALARM
      END:VEVENT
      END:VCALENDAR
        
      TZOFFSETFROM:-0600
      TZOFFSETTO:-0500
      TZNAME:CDT
      END:DAYLIGHT
      END:VTIMEZONE
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTACH:http://www.example.com/
      CATEGORIES:SPORTS EVENT,ENTERTAINMENT
      CLASS:PRIVATE
      DESCRIPTION:MIDWAY STADIUM\n
       Big time game.  MUST see.\n
       Expected duration:2 hours\n
      DTEND;TZID=America-Chicago:19970701T180000
      DTSTART;TZID=America-Chicago:19970702T160000
      DTSTAMP:19970614T190000Z
      STATUS:CONFIRMED
      LOCATION;VALUE=URI:http://stadium.example.com/
      PRIORITY:2
      RESOURCES:SCOREBOARD
      SEQUENCE:3
      SUMMARY:ST. PAUL SAINTS -VS- DULUTH-SUPERIOR DUKES
      UID:0981234-1234234-23@example.com
      RELATED-TO:0981234-1234234-14@example.com
      BEGIN:VALARM
      TRIGGER:-PT2H
      ACTION:DISPLAY
      DESCRIPTION:You should be leaving for the game now.
      END:VALARM
      BEGIN:VALARM
      TRIGGER:-PT30M
      ACTION:AUDIO
      END:VALARM
      END:VEVENT
      END:VCALENDAR
        

The "RELATED-TO" field contains the "UID" property of a related calendar event. The "SEQUENCE" property 3 indicates that this event supersedes versions 0, 1, and 2.

“RELATED-TO”字段包含相关日历事件的“UID”属性。“SEQUENCE”属性3表示此事件将取代版本0、1和2。

4.1.5. Anniversaries or Events Attached to Entire Days
4.1.5. 周年纪念日或附加于整天的事件

This example demonstrates the use of the "VALUE" parameter to tie a "VEVENT" to a day rather than a specific time.

此示例演示了如何使用“VALUE”参数将“VEVENT”绑定到一天而不是一个特定的时间。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:PUBLISH
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      DTSTAMP:19970614T190000Z
      UID:0981234-1234234-23@example.com
      DTSTART;VALUE=DATE:19970714
      RRULE:FREQ=YEARLY;INTERVAL=1
      SUMMARY: Bastille Day
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:PUBLISH
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      DTSTAMP:19970614T190000Z
      UID:0981234-1234234-23@example.com
      DTSTART;VALUE=DATE:19970714
      RRULE:FREQ=YEARLY;INTERVAL=1
      SUMMARY: Bastille Day
      END:VEVENT
      END:VCALENDAR
        
4.2. Group Event Examples
4.2. 团体活动示例

Group events are distinguished from published events in that they have "Attendees" and there is interaction between the "Attendees" and the "Organizer" with respect to the event. Individual "A" requests a meeting between individuals "A", "B", "C", and "D". Individual "B" confirms attendance to the meeting. Individual "C" declines attendance. Individual "D" tentatively confirms attendance. The following table illustrates the message flow between these individuals. "A", the CU scheduling the meeting, is referenced as the "Organizer".

团体活动与已发布的活动的区别在于,它们有“与会者”,并且“与会者”和“组织者”之间就活动进行互动。个人“A”要求个人“A”、“B”、“C”和“D”之间会面。个人“B”确认出席会议。个人“C”拒绝出席。个人“D”暂时确认出席人数。下表说明了这些个体之间的消息流。安排会议的CU“A”被称为“组织者”。

   +--------------+-----------------------+----------------------------+
   | Action       | "Organizer"           | Attendee                   |
   +--------------+-----------------------+----------------------------+
   | Initiate a   | "A" sends a REQUEST   |                            |
   | meeting      | message to "B", "C",  |                            |
   | request      | and "D".              |                            |
   |              |                       |                            |
   | Accept the   |                       | "B" sends a REPLY message  |
   | meeting      |                       | to "A" with its ATTENDEE   |
   | request      |                       | PARTSTAT parameter set to  |
   |              |                       | ACCEPTED.                  |
   |              |                       |                            |
   | Decline the  |                       | "C" sends a REPLY message  |
   | meeting      |                       | to "A" with its ATTENDEE   |
   | request      |                       | PARTSTAT parameter set to  |
   |              |                       | DECLINED.                  |
   |              |                       |                            |
   | Tentatively  |                       | "D" sends a REPLY message  |
   | accept the   |                       | to "A" with its ATTENDEE   |
   | meeting      |                       | PARTSTAT parameter set to  |
   | request      |                       | TENTATIVE.                 |
   |              |                       |                            |
   | Confirm      | "A" sends a REQUEST   |                            |
   | meeting      | message to "B" and    |                            |
   | status with  | "D" with updated      |                            |
   | Attendees    | information.          |                            |
   +--------------+-----------------------+----------------------------+
        
   +--------------+-----------------------+----------------------------+
   | Action       | "Organizer"           | Attendee                   |
   +--------------+-----------------------+----------------------------+
   | Initiate a   | "A" sends a REQUEST   |                            |
   | meeting      | message to "B", "C",  |                            |
   | request      | and "D".              |                            |
   |              |                       |                            |
   | Accept the   |                       | "B" sends a REPLY message  |
   | meeting      |                       | to "A" with its ATTENDEE   |
   | request      |                       | PARTSTAT parameter set to  |
   |              |                       | ACCEPTED.                  |
   |              |                       |                            |
   | Decline the  |                       | "C" sends a REPLY message  |
   | meeting      |                       | to "A" with its ATTENDEE   |
   | request      |                       | PARTSTAT parameter set to  |
   |              |                       | DECLINED.                  |
   |              |                       |                            |
   | Tentatively  |                       | "D" sends a REPLY message  |
   | accept the   |                       | to "A" with its ATTENDEE   |
   | meeting      |                       | PARTSTAT parameter set to  |
   | request      |                       | TENTATIVE.                 |
   |              |                       |                            |
   | Confirm      | "A" sends a REQUEST   |                            |
   | meeting      | message to "B" and    |                            |
   | status with  | "D" with updated      |                            |
   | Attendees    | information.          |                            |
   +--------------+-----------------------+----------------------------+
        
4.2.1. A Group Event Request
4.2.1. 组事件请求

A sample meeting request is sent from "A" to "B", "C", and "D". "E" is also sent a copy of the request but is not expected to attend and need not reply. "E" illustrates how CUAs might implement an "FYI"- type feature. Note the use of the "ROLE" parameter. The default value for the "ROLE" parameter is "REQ-PARTICIPANT" and it need not be enumerated. In this case, we are using the value "NON-PARTICIPANT" to indicate "E" is a non-attending CU. The parameter is not needed on other "Attendees" since "PARTICIPANT" is the default value.

会议请求样本从“A”发送到“B”、“C”和“D”。“E”还收到一份请求副本,但预计不会出席,也无需答复。“E”说明CUAs如何实现“FYI”型功能。请注意“ROLE”参数的用法。“ROLE”参数的默认值为“REQ-PARTICIPANT”,无需枚举。在这种情况下,我们使用值“NON-PARTICIPANT”来表示“E”是一个非参与CU。其他“与会者”不需要该参数,因为“参与者”是默认值。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:a@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:b@example.com
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:a@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:b@example.com
        
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=C:mailto:c@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal:mailto:d@example.com
      ATTENDEE;RSVP=FALSE;CUTYPE=ROOM:conf_big@example.com
      ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:mailto:e@example.com
      DTSTAMP:19970611T190000Z
      DTSTART:19970701T200000Z
      DTEND:19970701T2100000Z
      SUMMARY:Conference
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:0
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=C:mailto:c@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal:mailto:d@example.com
      ATTENDEE;RSVP=FALSE;CUTYPE=ROOM:conf_big@example.com
      ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:mailto:e@example.com
      DTSTAMP:19970611T190000Z
      DTSTART:19970701T200000Z
      DTEND:19970701T2100000Z
      SUMMARY:Conference
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:0
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        
4.2.2. Reply to a Group Event Request
4.2.2. 答复组事件请求

"Attendee" "B" accepts the meeting.

“与会者”“B”接受会议。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REPLY
      VERSION:2.0
      BEGIN:VEVENT
      ATTENDEE;PARTSTAT=ACCEPTED:mailto:b@example.com
      ORGANIZER:mailto:a@example.com
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:0
      REQUEST-STATUS:2.0;Success
      DTSTAMP:19970612T190000Z
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REPLY
      VERSION:2.0
      BEGIN:VEVENT
      ATTENDEE;PARTSTAT=ACCEPTED:mailto:b@example.com
      ORGANIZER:mailto:a@example.com
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:0
      REQUEST-STATUS:2.0;Success
      DTSTAMP:19970612T190000Z
      END:VEVENT
      END:VCALENDAR
        

"B" could have declined the meeting or indicated tentative acceptance by setting the "ATTENDEE" "PARTSTAT" parameter to "DECLINED" or "TENTATIVE", respectively. Also, "REQUEST-STATUS" is not required in successful transactions.

“B”可以通过将“与会者”“PARTSTAT”参数分别设置为“谢绝”或“暂定”来拒绝会议或表示暂定接受。此外,成功交易中不需要“请求状态”。

4.2.3. Update an Event
4.2.3. 更新事件

The event is moved to a different time. The combination of the "UID" property (unchanged) and the "SEQUENCE" (bumped to 1) properties indicate the update.

事件将移至其他时间。“UID”属性(未更改)和“SEQUENCE”(凸点为1)属性的组合表示更新。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VEVENT
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VEVENT
        
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:c@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal:mailto:d@example.com
      ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE;
       CUTYPE=ROOM:mailto:conf@example.com
      ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:mailto:e@example.com
      DTSTART:19970701T180000Z
      DTEND:19970701T190000Z
      SUMMARY:Phone Conference
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:1
      DTSTAMP:19970613T190000Z
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:c@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal:mailto:d@example.com
      ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE;
       CUTYPE=ROOM:mailto:conf@example.com
      ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:mailto:e@example.com
      DTSTART:19970701T180000Z
      DTEND:19970701T190000Z
      SUMMARY:Phone Conference
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:1
      DTSTAMP:19970613T190000Z
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        
4.2.4. Countering an Event Proposal
4.2.4. 反对活动提案

"A" sends a "REQUEST" to "B" and "C". "B" makes a counter proposal to "A" to change the time and location.

“A”向“B”和“C”发送“请求”。“B”向“a”提出反建议,要求更改时间和地点。

"A" sends the following "REQUEST":

“A”发送以下“请求”:

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:c@example.com
      DTSTART:19970701T190000Z
      DTEND:19970701T200000Z
      SUMMARY:Discuss the Merits of the election results
      LOCATION:Green Conference Room
      UID:calsrv.example.com-873970198738777a@example.com
      SEQUENCE:0
      DTSTAMP:19970611T190000Z
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:c@example.com
      DTSTART:19970701T190000Z
      DTEND:19970701T200000Z
      SUMMARY:Discuss the Merits of the election results
      LOCATION:Green Conference Room
      UID:calsrv.example.com-873970198738777a@example.com
      SEQUENCE:0
      DTSTAMP:19970611T190000Z
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        

"B" sends "COUNTER" to "A", requesting changes to time and place. "B" uses the "COMMENT" property to communicate a rationale for the change. Note that the "SEQUENCE" property is not incremented on a "COUNTER".

“B”向“A”发送“计数器”,请求更改时间和地点。“B”使用“COMMENT”属性传达变更的基本原理。请注意,“序列”属性不会在“计数器”上递增。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:COUNTER
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:c@example.com
      DTSTART:19970701T160000Z
      DTEND:19970701T170000Z
      DTSTAMP:19970612T190000Z
      SUMMARY:Discuss the Merits of the election results
      LOCATION:Blue Conference Room
      COMMENT:This time works much better and I think the big conference
       room is too big
      UID:calsrv.example.com-873970198738777a@example.com
      SEQUENCE:0
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:COUNTER
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:c@example.com
      DTSTART:19970701T160000Z
      DTEND:19970701T170000Z
      DTSTAMP:19970612T190000Z
      SUMMARY:Discuss the Merits of the election results
      LOCATION:Blue Conference Room
      COMMENT:This time works much better and I think the big conference
       room is too big
      UID:calsrv.example.com-873970198738777a@example.com
      SEQUENCE:0
      END:VEVENT
      END:VCALENDAR
        

"A" accepts the changes from "B". To accept a counter proposal, the "Organizer" sends a new event "REQUEST" with an incremented sequence number.

“A”接受“B”的更改。要接受反建议,“组织者”将发送一个带有递增序号的新事件“请求”。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:c@example.com
      DTSTAMP:19970613T190000Z
      DTSTART:19970701T160000Z
      DTEND:19970701T170000Z
      SUMMARY:Discuss the Merits of the election results - changed to
       meet B's schedule
      LOCATION:Blue Conference Room
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:1
      STATUS:CONFIRMED
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:c@example.com
      DTSTAMP:19970613T190000Z
      DTSTART:19970701T160000Z
      DTEND:19970701T170000Z
      SUMMARY:Discuss the Merits of the election results - changed to
       meet B's schedule
      LOCATION:Blue Conference Room
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:1
      STATUS:CONFIRMED
        

END:VEVENT END:VCALENDAR

结束:VEVENT结束:VCALENDAR

Instead, "A" rejects "B's" counter proposal.

相反,“A”拒绝“B”的反建议。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:DECLINECOUNTER
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
      COMMENT:Sorry, I cannot change this meeting time
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:0
      DTSTAMP:19970614T190000Z
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:DECLINECOUNTER
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
      COMMENT:Sorry, I cannot change this meeting time
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:0
      DTSTAMP:19970614T190000Z
      END:VEVENT
      END:VCALENDAR
        
4.2.5. Delegating an Event
4.2.5. 委派活动

When delegating an event request to another "Calendar User", the "Delegator" must both update the "Organizer" with a "REPLY" and send a request to the "Delegate". There is currently no protocol limitation to delegation depth. It is possible for the original delegate to delegate the meeting to someone else, and so on. When a request is delegated from one CUA to another, there are a number of responsibilities required of the "Delegator". The "Delegator" MUST:

将事件请求委托给另一个“日历用户”时,“委托人”必须用“回复”更新“组织者”,并向“委托人”发送请求。目前对委托深度没有协议限制。原始代表可以将会议委托给其他人,依此类推。当一个请求从一个CUA委托给另一个CUA时,“委托人”需要承担许多责任。“授权人”必须:

o Send a "REPLY" to the "Organizer" with the following updates:

o 向“组织者”发送包含以下更新的“回复”:

A. The "Delegator's" "ATTENDEE" property "PARTSTAT" parameter is set to "DELEGATED" and the "DELEGATED-TO" parameter is set to the address of the "Delegate".

A.“委托人的”“与会者”属性“PARTSTAT”参数设置为“Delegate”,而“Delegate-to”参数设置为“委托人”的地址。

B. Add an additional "ATTENDEE" property for the "Delegate" with the "DELEGATED-FROM" property parameter set to the "Delegator".

B.将“Delegate-FROM”属性参数设置为“Delegator”时,为“Delegate”添加额外的“ATTENDEE”属性。

C. Indicate whether they want to continue to receive updates when the "Organizer" sends out updated versions of the event. Setting the "RSVP" property parameter to "TRUE" will cause the updates to be sent; setting it to "FALSE" causes no further updates to be sent. Note that in either case, if the "Delegate" declines the invitation, the "Delegator" will be notified.

C.指出当“组织者”发送活动的更新版本时,他们是否希望继续接收更新。将“RSVP”属性参数设置为“TRUE”将导致发送更新;如果将其设置为“FALSE”,则不会发送进一步的更新。请注意,在任何一种情况下,如果“代理人”拒绝邀请,将通知“代理人”。

o The "Delegator" MUST also send a copy of the original "REQUEST" method to the "Delegate", with changes (A) and (B), as detailed above applied.

o “委托人”还必须向“委托人”发送一份原始“请求”方法的副本,并进行上文详述的变更(a)和(B)。

If the "Delegate" declines the meeting, the "Organizer" MUST send an update "REQUEST" to the "Delegator" so that the "Delegator" may elect to delegate the "REQUEST" to another CUA.

如果“代表”拒绝会议,“组织者”必须向“代表”发送更新“请求”,以便“代表”可以选择将“请求”委托给其他CUA。

   +----------------+-----------------+--------------------------------+
   | Action         | "Organizer"     | Attendee                       |
   +----------------+-----------------+--------------------------------+
   | Initiate a     | "A" sends a     |                                |
   | meeting        | REQUEST message |                                |
   | request        | to "B" and "C". |                                |
   |                |                 |                                |
   | Delegate: "C"  |                 | "C" sends a REPLY to "A" with  |
   | delegates to   |                 | the ATTENDEE PARTSTAT          |
   | "E"            |                 | parameter set to DELEGATED and |
   |                |                 | with a new ATTENDEE property   |
   |                |                 | for "E".  "E's" ATTENDEE       |
   |                |                 | DELEGATED-FROM parameter is    |
   |                |                 | set to "C".  "C's" ATTENDEE    |
   |                |                 | DELEGATED-TO parameter is set  |
   |                |                 | to "E".  "C" sends REQUEST     |
   |                |                 | message to "E" with the        |
   |                |                 | original meeting request       |
   |                |                 | information.  The PARTSTAT     |
   |                |                 | property parameter for "C" is  |
   |                |                 | set to DELEGATED and the       |
   |                |                 | DELEGATED-TO parameter is set  |
   |                |                 | to the address of "E".  An     |
   |                |                 | ATTENDEE property is added for |
   |                |                 | "E" and the DELEGATED-FROM     |
   |                |                 | parameter is set to the        |
   |                |                 | address of "C".                |
   |                |                 |                                |
   | Confirm        |                 | "E" sends REPLY message to     |
   | meeting        |                 | "A", and optionally to "C",    |
   | attendance     |                 | with its PARTSTAT property     |
   |                |                 | parameter set to ACCEPTED.     |
   |                |                 |                                |
   | Optional:      | "A" sends       |                                |
   | Redistribute   | REQUEST message |                                |
   | meeting to     | to "B", "C",    |                                |
   | Attendees      | and "E".        |                                |
   +----------------+-----------------+--------------------------------+
        
   +----------------+-----------------+--------------------------------+
   | Action         | "Organizer"     | Attendee                       |
   +----------------+-----------------+--------------------------------+
   | Initiate a     | "A" sends a     |                                |
   | meeting        | REQUEST message |                                |
   | request        | to "B" and "C". |                                |
   |                |                 |                                |
   | Delegate: "C"  |                 | "C" sends a REPLY to "A" with  |
   | delegates to   |                 | the ATTENDEE PARTSTAT          |
   | "E"            |                 | parameter set to DELEGATED and |
   |                |                 | with a new ATTENDEE property   |
   |                |                 | for "E".  "E's" ATTENDEE       |
   |                |                 | DELEGATED-FROM parameter is    |
   |                |                 | set to "C".  "C's" ATTENDEE    |
   |                |                 | DELEGATED-TO parameter is set  |
   |                |                 | to "E".  "C" sends REQUEST     |
   |                |                 | message to "E" with the        |
   |                |                 | original meeting request       |
   |                |                 | information.  The PARTSTAT     |
   |                |                 | property parameter for "C" is  |
   |                |                 | set to DELEGATED and the       |
   |                |                 | DELEGATED-TO parameter is set  |
   |                |                 | to the address of "E".  An     |
   |                |                 | ATTENDEE property is added for |
   |                |                 | "E" and the DELEGATED-FROM     |
   |                |                 | parameter is set to the        |
   |                |                 | address of "C".                |
   |                |                 |                                |
   | Confirm        |                 | "E" sends REPLY message to     |
   | meeting        |                 | "A", and optionally to "C",    |
   | attendance     |                 | with its PARTSTAT property     |
   |                |                 | parameter set to ACCEPTED.     |
   |                |                 |                                |
   | Optional:      | "A" sends       |                                |
   | Redistribute   | REQUEST message |                                |
   | meeting to     | to "B", "C",    |                                |
   | Attendees      | and "E".        |                                |
   +----------------+-----------------+--------------------------------+
        

"C" responds to the "Organizer".

“C”回应“组织者”。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REPLY
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;PARTSTAT=DELEGATED;DELEGATED-
       TO="mailto:e@example.com":mailto:c@example.com
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:0
      REQUEST-STATUS:2.0;Success
      DTSTAMP:19970611T190000Z
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REPLY
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;PARTSTAT=DELEGATED;DELEGATED-
       TO="mailto:e@example.com":mailto:c@example.com
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:0
      REQUEST-STATUS:2.0;Success
      DTSTAMP:19970611T190000Z
      END:VEVENT
      END:VCALENDAR
        

"Attendee" "C" delegates presence at the meeting to "E".

“与会者”“C”将出席会议的人员委派给“E”。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;PARTSTAT=DELEGATED;DELEGATED-
       TO="mailto:e@example.com":mailto:c@example.com
      ATTENDEE;RSVP=TRUE;
       DELEGATED-FROM="mailto:c@example.com":mailto:e@example.com
      DTSTART:19970701T180000Z
      DTEND:19970701T200000Z
      SUMMARY:Phone Conference
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:0
      STATUS:CONFIRMED
      DTSTAMP:19970611T190000Z
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;PARTSTAT=DELEGATED;DELEGATED-
       TO="mailto:e@example.com":mailto:c@example.com
      ATTENDEE;RSVP=TRUE;
       DELEGATED-FROM="mailto:c@example.com":mailto:e@example.com
      DTSTART:19970701T180000Z
      DTEND:19970701T200000Z
      SUMMARY:Phone Conference
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:0
      STATUS:CONFIRMED
      DTSTAMP:19970611T190000Z
      END:VEVENT
      END:VCALENDAR
        
4.2.6. Delegate Accepts the Meeting
4.2.6. 代表接受会议

To accept a delegated meeting, the delegate, "E", sends the following message to "A" and "C".

若要接受委派会议,代表“E”将向“a”和“C”发送以下消息。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REPLY
      VERSION:2.0
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REPLY
      VERSION:2.0
        
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;PARTSTAT=ACCEPTED;DELEGATED-
       FROM="mailto:c@example.com":mailto:e@example.com
      ATTENDEE;PARTSTAT=DELEGATED;
       DELEGATED-TO="mailto:e@example.com":mailto:c@example.com
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:0
      REQUEST-STATUS:2.0;Success
      DTSTAMP:19970614T190000Z
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;PARTSTAT=ACCEPTED;DELEGATED-
       FROM="mailto:c@example.com":mailto:e@example.com
      ATTENDEE;PARTSTAT=DELEGATED;
       DELEGATED-TO="mailto:e@example.com":mailto:c@example.com
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:0
      REQUEST-STATUS:2.0;Success
      DTSTAMP:19970614T190000Z
      END:VEVENT
      END:VCALENDAR
        
4.2.7. Delegate Declines the Meeting
4.2.7. 代表拒绝参加会议

In this example, the "Delegate" declines the meeting request and sets the "ATTENDEE" property "PARTSTAT" parameter to "DECLINED". The "Organizer" SHOULD resend the "REQUEST" to "C" with the "PARTSTAT" parameter of the "Delegate" set to "DECLINED". This lets the "Delegator" know that the "Delegate" has declined and provides an opportunity to the "Delegator" to either accept the request or delegate it to another CU.

在本例中,“代理人”拒绝会议请求,并将“与会者”属性“PARTSTAT”参数设置为“拒绝”。“组织者”应将“委托”的“PARTSTAT”参数设置为“谢绝”后,将“请求”重新发送给“C”。这让“委托人”知道“委托人”已拒绝,并为“委托人”提供接受请求或将其委托给其他CU的机会。

"E" responds to "A" and "C". Note the use of the "COMMENT" property "E" uses to indicate why the delegation was declined.

“E”对应“A”和“C”。请注意,使用“评论”属性“E”来表示代表团被拒绝的原因。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REPLY
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;PARTSTAT=DELEGATED;
       DELEGATED-TO="mailto:e@example.com":mailto:c@example.com
      ATTENDEE;PARTSTAT=DECLINED;
       DELEGATED-FROM="mailto:c@example.com":mailto:e@example.com
      COMMENT:Sorry, I will be out of town at that time.
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:0
      REQUEST-STATUS:2.0;Success
      DTSTAMP:19970614T190000Z
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REPLY
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;PARTSTAT=DELEGATED;
       DELEGATED-TO="mailto:e@example.com":mailto:c@example.com
      ATTENDEE;PARTSTAT=DECLINED;
       DELEGATED-FROM="mailto:c@example.com":mailto:e@example.com
      COMMENT:Sorry, I will be out of town at that time.
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:0
      REQUEST-STATUS:2.0;Success
      DTSTAMP:19970614T190000Z
      END:VEVENT
      END:VCALENDAR
        

"A" resends the "REQUEST" method to "C". "A" may also wish to express the fact that the item was delegated in the "COMMENT" property.

“A”将“请求”方法重新发送到“C”。“A”还可以表示该项目是在“评论”属性中委托的。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;PARTSTAT=DECLINED;
       DELEGATED-FROM="mailto:c@example.com":mailto:e@example.com
      ATTENDEE;RSVP=TRUE:mailto:c@example.com
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:0
      SUMMARY:Phone Conference
      DTSTART:19970701T180000Z
      DTEND:19970701T200000Z
      DTSTAMP:19970614T200000Z
      COMMENT:DELEGATE (ATTENDEE mailto:e@example.com) DECLINED YOUR
       INVITATION
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;PARTSTAT=DECLINED;
       DELEGATED-FROM="mailto:c@example.com":mailto:e@example.com
      ATTENDEE;RSVP=TRUE:mailto:c@example.com
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:0
      SUMMARY:Phone Conference
      DTSTART:19970701T180000Z
      DTEND:19970701T200000Z
      DTSTAMP:19970614T200000Z
      COMMENT:DELEGATE (ATTENDEE mailto:e@example.com) DECLINED YOUR
       INVITATION
      END:VEVENT
      END:VCALENDAR
        
4.2.8. Forwarding an Event Request
4.2.8. 转发事件请求

The protocol does not prevent an "Attendee" from "forwarding" a "VEVENT" calendar component to other "Calendar Users". Forwarding differs from delegation in that the forwarded "Calendar User" (often referred to as a "Party Crasher") does not replace the forwarding "Calendar User". Implementations are not required to add the "Party Crasher" to the "Attendee" list, and hence there is no guarantee that a "Party Crasher" will receive additional updates to the event. The forwarding "Calendar User" SHOULD NOT add the "Party Crasher" to the "Attendee" list. The "Organizer" MAY add the forwarded "Calendar User" to the "Attendee" list.

该协议不阻止“与会者”将“VEVENT”日历组件“转发”给其他“日历用户”。转发与委托的不同之处在于,转发的“日历用户”(通常称为“参与方破坏者”)并不取代转发的“日历用户”。将“聚会撞车者”添加到“与会者”列表中不需要实现,因此不保证“聚会撞车者”会收到活动的其他更新。转发“日历用户”不应将“聚会撞车者”添加到“与会者”列表中。“组织者”可以将转发的“日历用户”添加到“与会者”列表中。

4.2.9. Cancel a Group Event
4.2.9. 取消团体活动

Individual "A" requests a meeting between individuals "A", "B", "C", and "D". Individual "B" declines attendance to the meeting. Individual "A" decides to cancel the meeting. The following table illustrates the sequence of messages that would be exchanged between these individuals.

个人“A”要求个人“A”、“B”、“C”和“D”之间会面。个人“B”拒绝出席会议。个人“A”决定取消会议。下表说明了将在这些个人之间交换的消息序列。

Messages related to a previously canceled event ("SEQUENCE" property value is less than the "SEQUENCE" property value of the "CANCEL" message) MUST be ignored.

必须忽略与先前取消的事件相关的消息(“SEQUENCE”属性值小于“CANCEL”消息的“SEQUENCE”属性值)。

   +-------------+---------------------+-------------------------------+
   | Action      | Organizer           | Attendee                      |
   +-------------+---------------------+-------------------------------+
   | Initiate a  | "A" sends a REQUEST |                               |
   | meeting     | message to "B",     |                               |
   | request     | "C", and "D".       |                               |
   |             |                     |                               |
   | Decline the |                     | "B" sends a REPLY message to  |
   | meeting     |                     | "A" with its PARTSTAT         |
   | request     |                     | parameter set to DECLINED.    |
   |             |                     |                               |
   | Cancel the  | "A" sends a CANCEL  |                               |
   | meeting     | message to "B",     |                               |
   |             | "C", and "D".       |                               |
   +-------------+---------------------+-------------------------------+
        
   +-------------+---------------------+-------------------------------+
   | Action      | Organizer           | Attendee                      |
   +-------------+---------------------+-------------------------------+
   | Initiate a  | "A" sends a REQUEST |                               |
   | meeting     | message to "B",     |                               |
   | request     | "C", and "D".       |                               |
   |             |                     |                               |
   | Decline the |                     | "B" sends a REPLY message to  |
   | meeting     |                     | "A" with its PARTSTAT         |
   | request     |                     | parameter set to DECLINED.    |
   |             |                     |                               |
   | Cancel the  | "A" sends a CANCEL  |                               |
   | meeting     | message to "B",     |                               |
   |             | "C", and "D".       |                               |
   +-------------+---------------------+-------------------------------+
        

This example shows how "A" cancels the event.

此示例显示“A”如何取消事件。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:CANCEL
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;CUTYPE=INDIVIDUAL;mailto:a@example.com
      ATTENDEE;CUTYPE=INDIVIDUAL:mailto:b@example.com
      ATTENDEE;CUTYPE=INDIVIDUAL:mailto:c@example.com
      ATTENDEE;CUTYPE=INDIVIDUAL:mailto:d@example.com
      COMMENT:Mr. B cannot attend.  It's raining.  Lets cancel.
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:1
      STATUS:CANCELLED
      DTSTAMP:19970613T190000Z
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:CANCEL
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;CUTYPE=INDIVIDUAL;mailto:a@example.com
      ATTENDEE;CUTYPE=INDIVIDUAL:mailto:b@example.com
      ATTENDEE;CUTYPE=INDIVIDUAL:mailto:c@example.com
      ATTENDEE;CUTYPE=INDIVIDUAL:mailto:d@example.com
      COMMENT:Mr. B cannot attend.  It's raining.  Lets cancel.
      UID:calsrv.example.com-873970198738777@example.com
      SEQUENCE:1
      STATUS:CANCELLED
      DTSTAMP:19970613T190000Z
      END:VEVENT
      END:VCALENDAR
        
4.2.10. Removing Attendees
4.2.10. 删除与会者

"A" wants to remove "B" from a meeting. This is done by sending a "CANCEL" to "B" and removing "B" from the "Attendee" list in the master copy of the event.

“A”希望从会议中删除“B”。通过向“B”发送“取消”并从活动主副本中的“与会者”列表中删除“B”,可以完成此操作。

   +--------------------+-----------------------------------+----------+
   | Action             | Organizer                         | Attendee |
   +--------------------+-----------------------------------+----------+
   | Remove "B" as an   | "A" sends a CANCEL message to     |          |
   | Attendee           | "B".                              |          |
   |                    |                                   |          |
   | Update the master  | "A" optionally sends the updated  |          |
   | copy of the event  | event to the remaining Attendees. |          |
   +--------------------+-----------------------------------+----------+
        
   +--------------------+-----------------------------------+----------+
   | Action             | Organizer                         | Attendee |
   +--------------------+-----------------------------------+----------+
   | Remove "B" as an   | "A" sends a CANCEL message to     |          |
   | Attendee           | "B".                              |          |
   |                    |                                   |          |
   | Update the master  | "A" optionally sends the updated  |          |
   | copy of the event  | event to the remaining Attendees. |          |
   +--------------------+-----------------------------------+----------+
        

The original meeting includes "A", "B", "C", and "D". The example below shows the "CANCEL" that "A" sends to "B". Note that in the example below, the "STATUS" property is omitted. This is used when the meeting itself is cancelled and not when the intent is to remove an "Attendee" from the event.

原始会议包括“A”、“B”、“C”和“D”。下面的示例显示了“A”发送给“B”的“取消”。请注意,在下面的示例中,省略了“STATUS”属性。这在会议本身被取消时使用,而不是在意图从活动中删除“与会者”时使用。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:CANCEL
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      COMMENT:You're off the hook for this meeting
      UID:calsrv.example.com-873970198738777@example.com
      DTSTAMP:19970613T193000Z
      SEQUENCE:1
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:CANCEL
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      COMMENT:You're off the hook for this meeting
      UID:calsrv.example.com-873970198738777@example.com
      DTSTAMP:19970613T193000Z
      SEQUENCE:1
      END:VEVENT
      END:VCALENDAR
        

The updated master copy of the event is shown below. The "Organizer" MAY resend the updated event to the remaining "Attendees". Note that "B" has been removed.

事件的更新主副本如下所示。“组织者”可将更新后的活动重新发送给剩余的“与会者”。请注意,“B”已被删除。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;CUTYPE=INDIVIDUAL:mailto:c@example.com
      ATTENDEE;CUTYPE=INDIVIDUAL:mailto:d@example.com
      ATTENDEE;CUTYPE=ROOM:mailto:cr_big@example.com
      ATTENDEE;ROLE=NON-PARTICIPANT;
       RSVP=FALSE:mailto:e@example.com
      DTSTAMP:19970611T190000Z
      DTSTART:19970701T200000Z
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;CUTYPE=INDIVIDUAL:mailto:c@example.com
      ATTENDEE;CUTYPE=INDIVIDUAL:mailto:d@example.com
      ATTENDEE;CUTYPE=ROOM:mailto:cr_big@example.com
      ATTENDEE;ROLE=NON-PARTICIPANT;
       RSVP=FALSE:mailto:e@example.com
      DTSTAMP:19970611T190000Z
      DTSTART:19970701T200000Z
        

DTEND:19970701T203000Z SUMMARY:Phone Conference UID:calsrv.example.com-873970198738777@example.com SEQUENCE:2 STATUS:CONFIRMED END:VEVENT END:VCALENDAR

DTEND:19970701T203000Z摘要:电话会议UID:calsrv.example.com-873970198738777@example.com序列:2状态:已确认结束:VEVENT结束:VCALENDAR

4.2.11. Replacing the Organizer
4.2.11. 替换组织者

The scenario for this example begins with "A" as the "Organizer" for a recurring meeting with "B", "C", and "D". "A" receives a new job offer in another country and drops out of touch. "A" left no forwarding address or way to be reached. Using out-of-band communication, the other "Attendees" eventually learn what has happened and reach an agreement that "B" should become the new "Organizer" for the meeting. To do this, "B" sends out a new version of the event and the other "Attendees" agree to accept "B" as the new "Organizer". "B" also removes "A" from the event.

本例的场景以“A”开始,作为“B”、“C”和“D”的定期会议的“组织者”。“A”在另一个国家收到一份新的工作邀请,失去联系。“A”没有留下转发地址或联系方式。通过带外沟通,其他“与会者”最终了解了所发生的情况,并达成协议,“B”应成为会议的新“组织者”。为此,“B”将发送活动的新版本,其他“与会者”同意接受“B”作为新的“组织者”。“B”也会从事件中删除“A”。

When the "Organizer" is replaced, the "SEQUENCE" property value MUST be incremented.

替换“组织者”时,“序列”属性值必须递增。

This is the message "B" sends to "C" and "D".

这是“B”发送给“C”和“D”的消息。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:b@example.com
      ATTENDEE;ROLE=CHAIR;STATUS=ACCEPTED:mailto:b@example.com
      ATTENDEE;CUTYPE=INDIVIDUAL:mailto:c@example.com
      ATTENDEE;CUTYPE=INDIVIDUAL:mailto:d@example.com
      DTSTAMP:19970611T190000Z
      DTSTART:19970701T200000Z
      DTEND:19970701T203000Z
      RRULE:FREQ=WEEKLY
      SUMMARY:Phone Conference
      UID:123456@example.com
      SEQUENCE:1
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:b@example.com
      ATTENDEE;ROLE=CHAIR;STATUS=ACCEPTED:mailto:b@example.com
      ATTENDEE;CUTYPE=INDIVIDUAL:mailto:c@example.com
      ATTENDEE;CUTYPE=INDIVIDUAL:mailto:d@example.com
      DTSTAMP:19970611T190000Z
      DTSTART:19970701T200000Z
      DTEND:19970701T203000Z
      RRULE:FREQ=WEEKLY
      SUMMARY:Phone Conference
      UID:123456@example.com
      SEQUENCE:1
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        
4.3. Busy Time Examples
4.3. 繁忙时间示例

Busy time objects can be used in several ways. First, a CU may request busy time from another CU for a specific range of time. That request can be answered with a busy time "REPLY". Additionally, a CU may simply publish their busy time for a given interval and point other CUs to the published location. The following examples outline both scenarios.

繁忙时间对象可以通过多种方式使用。首先,一个CU可以向另一个CU请求特定时间范围内的忙时间。这个请求可以用繁忙时间的“回复”来回答。此外,CU可以简单地发布给定间隔的繁忙时间,并将其他CU指向发布位置。以下示例概述了这两种情况。

4.3.1. Publish Busy Time
4.3.1. 发布繁忙时间

Individual "A" publishes busy time for one week.

个人“A”发布一周的繁忙时间。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      METHOD:PUBLISH
      BEGIN:VFREEBUSY
      DTSTAMP:19980101T124100Z
      ORGANIZER:mailto:a@example.com
      DTSTART:19980101T124200Z
      DTEND:19980108T124200Z
      FREEBUSY:19980101T180000Z/19980101T190000Z
      FREEBUSY:19980103T020000Z/19980103T050000Z
      FREEBUSY:19980107T020000Z/19980107T050000Z
      FREEBUSY:19980113T000000Z/19980113T010000Z
      FREEBUSY:19980115T190000Z/19980115T200000Z
      FREEBUSY:19980115T220000Z/19980115T230000Z
      FREEBUSY:19980116T013000Z/19980116T043000Z
      END:VFREEBUSY
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      METHOD:PUBLISH
      BEGIN:VFREEBUSY
      DTSTAMP:19980101T124100Z
      ORGANIZER:mailto:a@example.com
      DTSTART:19980101T124200Z
      DTEND:19980108T124200Z
      FREEBUSY:19980101T180000Z/19980101T190000Z
      FREEBUSY:19980103T020000Z/19980103T050000Z
      FREEBUSY:19980107T020000Z/19980107T050000Z
      FREEBUSY:19980113T000000Z/19980113T010000Z
      FREEBUSY:19980115T190000Z/19980115T200000Z
      FREEBUSY:19980115T220000Z/19980115T230000Z
      FREEBUSY:19980116T013000Z/19980116T043000Z
      END:VFREEBUSY
      END:VCALENDAR
        
4.3.2. Request Busy Time
4.3.2. 请求繁忙时间

Individual "A" requests busy time from individuals "B" and "C". Individuals "B" and "C" reply with busy time data to individual "A". The following table illustrates the sequence of messages that would be exchanged between these individuals.

个人“A”向个人“B”和“C”请求繁忙时间。个人“B”和“C”用繁忙时间数据回复个人“A”。下表说明了将在这些个人之间交换的消息序列。

   +---------------------+--------------------+------------------------+
   | Action              | Organizer          | Attendee               |
   +---------------------+--------------------+------------------------+
   | Initiate a busy     | "A" sends REQUEST  |                        |
   | time request        | message to "B" and |                        |
   |                     | "C".               |                        |
   |                     |                    |                        |
   | Reply to the BUSY   |                    | "B" sends a REPLY      |
   | request with BUSY   |                    | message to "A" with    |
   | time data           |                    | busy time data.        |
   +---------------------+--------------------+------------------------+
        
   +---------------------+--------------------+------------------------+
   | Action              | Organizer          | Attendee               |
   +---------------------+--------------------+------------------------+
   | Initiate a busy     | "A" sends REQUEST  |                        |
   | time request        | message to "B" and |                        |
   |                     | "C".               |                        |
   |                     |                    |                        |
   | Reply to the BUSY   |                    | "B" sends a REPLY      |
   | request with BUSY   |                    | message to "A" with    |
   | time data           |                    | busy time data.        |
   +---------------------+--------------------+------------------------+
        

"A" sends a "REQUEST" to "B" and "C" for busy time.

“A”向“B”和“C”发送繁忙时间的“请求”。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VFREEBUSY
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      ATTENDEE:mailto:c@example.com
      DTSTAMP:19970613T190000Z
      DTSTART:19970701T080000Z
      DTEND:19970701T200000
      UID:calsrv.example.com-873970198738777@example.com
      END:VFREEBUSY
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VFREEBUSY
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      ATTENDEE:mailto:c@example.com
      DTSTAMP:19970613T190000Z
      DTSTART:19970701T080000Z
      DTEND:19970701T200000
      UID:calsrv.example.com-873970198738777@example.com
      END:VFREEBUSY
      END:VCALENDAR
        
4.3.3. Reply to a Busy Time Request
4.3.3. 答复繁忙时间请求

"B" sends a "REPLY" method type of a "VFREEBUSY" calendar component to "A".

“B”向“a”发送“VFREEBUSY”日历组件的“REPLY”方法类型。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REPLY
      VERSION:2.0
      BEGIN:VFREEBUSY
      ORGANIZER:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      DTSTART:19970701T080000Z
      DTEND:19970701T200000Z
      UID:calsrv.example.com-873970198738777@example.com
      FREEBUSY:19970701T090000Z/PT1H,19970701T140000Z/PT30M
      DTSTAMP:19970613T190030Z
      END:VFREEBUSY
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REPLY
      VERSION:2.0
      BEGIN:VFREEBUSY
      ORGANIZER:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      DTSTART:19970701T080000Z
      DTEND:19970701T200000Z
      UID:calsrv.example.com-873970198738777@example.com
      FREEBUSY:19970701T090000Z/PT1H,19970701T140000Z/PT30M
      DTSTAMP:19970613T190030Z
      END:VFREEBUSY
        

END:VCALENDAR

完:VCALENDAR

"B" is busy from 09:00 to 10:00 and from 14:00 to 14:30.

“B”从09:00到10:00,从14:00到14:30都很忙。

4.4. Recurring Event and Time Zone Examples
4.4. 重复事件和时区示例
4.4.1. A Recurring Event Spanning Time Zones
4.4.1. 跨越时区的重复事件

This event describes a weekly phone conference. The "Attendees" are each in a different time zone.

此事件描述了每周的电话会议。“与会者”都在不同的时区。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VTIMEZONE
      TZID:America-SanJose
      TZURL:http://example.com/tz/America-SanJose
      BEGIN:STANDARD
      DTSTART:19671029T020000
      RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
      TZOFFSETFROM:-0700
      TZOFFSETTO:-0800
      TZNAME:PST
      END:STANDARD
      BEGIN:DAYLIGHT
      DTSTART:19870405T020000
      RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
      TZOFFSETFROM:-0800
      TZOFFSETTO:-0700
      TZNAME:PDT
      END:DAYLIGHT
      END:VTIMEZONE
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;
       CUTYPE=INDIVIDUAL:a@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:b@example.fr
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:c@example.jp
      DTSTAMP:19970613T190030Z
      DTSTART;TZID=America-SanJose:19970701T140000
      DTEND;TZID=America-SanJose:19970701T150000
      RRULE:FREQ=WEEKLY;COUNT=20;WKST=SU;BYDAY=TU
      RDATE;TZID=America-SanJose:19970910T140000
      EXDATE;TZID=America-SanJose:19970909T140000
      EXDATE;TZID=America-SanJose:19971028T140000
      SUMMARY:Weekly Phone Conference
      UID:calsrv.example.com-873970198738777@example.com
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VTIMEZONE
      TZID:America-SanJose
      TZURL:http://example.com/tz/America-SanJose
      BEGIN:STANDARD
      DTSTART:19671029T020000
      RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
      TZOFFSETFROM:-0700
      TZOFFSETTO:-0800
      TZNAME:PST
      END:STANDARD
      BEGIN:DAYLIGHT
      DTSTART:19870405T020000
      RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
      TZOFFSETFROM:-0800
      TZOFFSETTO:-0700
      TZNAME:PDT
      END:DAYLIGHT
      END:VTIMEZONE
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;
       CUTYPE=INDIVIDUAL:a@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:b@example.fr
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:c@example.jp
      DTSTAMP:19970613T190030Z
      DTSTART;TZID=America-SanJose:19970701T140000
      DTEND;TZID=America-SanJose:19970701T150000
      RRULE:FREQ=WEEKLY;COUNT=20;WKST=SU;BYDAY=TU
      RDATE;TZID=America-SanJose:19970910T140000
      EXDATE;TZID=America-SanJose:19970909T140000
      EXDATE;TZID=America-SanJose:19971028T140000
      SUMMARY:Weekly Phone Conference
      UID:calsrv.example.com-873970198738777@example.com
        

SEQUENCE:0 STATUS:CONFIRMED END:VEVENT END:VCALENDAR

序列:0状态:已确认结束:VEVENT结束:VCALENDAR

The first component of this iCalendar object is the time zone component. The "DTSTART" date coincides with the first instance of the "RRULE" property.

此iCalendar对象的第一个组件是时区组件。“DTSTART”日期与“RRULE”属性的第一个实例一致。

The recurring meeting is defined in a particular time zone, presumably that of the originator. The client for each "Attendee" has the responsibility of determining the recurrence time in the "Attendee's" time zone.

定期会议是在特定的时区定义的,可能是发起人的时区。每个“与会者”的客户机负责确定“与会者”时区中的重复时间。

The repeating event starts on Tuesday, July 1, 1997 at 2:00pm PDT (UTC-7). "Attendee" B@example.fr is in France, where the local time on this date is 9 hours ahead of PDT, or 23:00 CEST (UTC+2). "Attendee" C@example.jp is in Japan, where local time is 16 hours ahead of PDT, or Wednesday, July 2 at 06:00 JST (UTC+9). The event repeats weekly on Tuesdays (in PST/PDT). The "RRULE" property results in 20 instances. The last instance falls on Tuesday, November 11, 1997 2:00pm PST. The "RDATE" property adds another instance: WED, 10-SEP-1997 2:00 PM PDT.

重复活动于1997年7月1日星期二下午2:00(UTC-7)开始。“与会者”B@example.fr在法国,该日期的当地时间比PDT提前9小时,或23:00 CEST(UTC+2)。“与会者”C@example.jp在日本,当地时间比PDT提前16小时,或7月2日星期三JST 06:00(UTC+9)。该活动每周二重复一次(PST/PDT)。“RRULE”属性产生20个实例。最后一次是1997年11月11日星期二下午2:00太平洋标准时间。“RDATE”属性添加了另一个实例:WED,SEP-10-1997 PDT下午2:00。

There are also two exception dates to the recurrence rule. The first one is:

定期规则还有两个例外日期。第一个是:

o TUE, 09-SEP-1997 14:00 PDT (UTC-7)

o 1997年9月9日星期二太平洋标准时间14:00(UTC-7)

o TUE, 09-SEP-1997 23:00 CEST (UTC+2)

o 1997年9月9日星期二23:00欧洲标准时间(UTC+2)

o WED, 10-SEP-1997 06:00 JST (UTC+9)

o 1997年9月10日星期三06:00 JST(UTC+9)

and the second is:

第二个是:

o TUE, 28-OCT-1997 14:00 PST (UTC-8)

o 1997年10月28日星期二太平洋标准时间14:00(UTC-8)

o TUE, 28-OCT-1997 23:00 CET (UTC+1)

o 1997年10月28日星期二CET 23:00(UTC+1)

o WED, 29-OCT-1997 07:00 JST (UTC+9)

o 1997年10月29日星期三07:00 JST(UTC+9)

4.4.2. Modify a Recurring Instance
4.4.2. 修改循环实例

In this example, the "Organizer" issues a recurring meeting. Later, the "Organizer" changes an instance of the event by changing the "DTSTART" property. Note the use of "RECURRENCE-ID" property and "SEQUENCE" property in the second request.

在本例中,“组织者”发布定期会议。稍后,“组织者”通过更改“DTSTART”属性来更改事件实例。注意在第二个请求中使用了“RECURRENCE-ID”属性和“SEQUENCE”属性。

Original Request:

原始请求:

      BEGIN:VCALENDAR
      METHOD:REQUEST
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:guid-1@example.com
      SEQUENCE:0
      RRULE:FREQ=MONTHLY;BYMONTHDAY=1;UNTIL=19980901T210000Z
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      ATTENDEE:mailto:c@example.com
      ATTENDEE:mailto:d@example.com
      DESCRIPTION:IETF-C&S Conference Call
      CLASS:PUBLIC
      SUMMARY:IETF Calendaring Working Group Meeting
      DTSTART:19970601T210000Z
      DTEND:19970601T220000Z
      LOCATION:Conference Call
      DTSTAMP:19970526T083000Z
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      METHOD:REQUEST
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:guid-1@example.com
      SEQUENCE:0
      RRULE:FREQ=MONTHLY;BYMONTHDAY=1;UNTIL=19980901T210000Z
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      ATTENDEE:mailto:c@example.com
      ATTENDEE:mailto:d@example.com
      DESCRIPTION:IETF-C&S Conference Call
      CLASS:PUBLIC
      SUMMARY:IETF Calendaring Working Group Meeting
      DTSTART:19970601T210000Z
      DTEND:19970601T220000Z
      LOCATION:Conference Call
      DTSTAMP:19970526T083000Z
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        

The event request below is to change the time of a specific instance. This changes the July 1st instance to July 3rd.

下面的事件请求是更改特定实例的时间。这会将7月1日实例更改为7月3日。

      BEGIN:VCALENDAR
      METHOD:REQUEST
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:guid-1@example.com
      RECURRENCE-ID:19970701T210000Z
      SEQUENCE:1
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      ATTENDEE:mailto:c@example.com
      ATTENDEE:mailto:d@example.com
      DESCRIPTION:IETF-C&S Conference Call
      CLASS:PUBLIC
      SUMMARY:IETF Calendaring Working Group Meeting
      DTSTART:19970703T210000Z
      DTEND:19970703T220000Z
      LOCATION:Conference Call
        
      BEGIN:VCALENDAR
      METHOD:REQUEST
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:guid-1@example.com
      RECURRENCE-ID:19970701T210000Z
      SEQUENCE:1
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      ATTENDEE:mailto:c@example.com
      ATTENDEE:mailto:d@example.com
      DESCRIPTION:IETF-C&S Conference Call
      CLASS:PUBLIC
      SUMMARY:IETF Calendaring Working Group Meeting
      DTSTART:19970703T210000Z
      DTEND:19970703T220000Z
      LOCATION:Conference Call
        

DTSTAMP:19970626T093000Z STATUS:CONFIRMED END:VEVENT END:VCALENDAR

DTSTAMP:19970626T09300Z状态:已确认结束:VEVENT结束:VCALENDAR

4.4.3. Cancel an Instance
4.4.3. 取消实例

In this example, the "Organizer" of a recurring event deletes the August 1st instance.

在本例中,定期事件的“组织者”删除8月1日实例。

      BEGIN:VCALENDAR
      METHOD:CANCEL
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:guid-1@example.com
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      ATTENDEE:mailto:c@example.com
      ATTENDEE:mailto:d@example.com
      RECURRENCE-ID:19970801T210000Z
      SEQUENCE:2
      STATUS:CANCELLED
      DTSTAMP:19970721T093000Z
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      METHOD:CANCEL
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:guid-1@example.com
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      ATTENDEE:mailto:c@example.com
      ATTENDEE:mailto:d@example.com
      RECURRENCE-ID:19970801T210000Z
      SEQUENCE:2
      STATUS:CANCELLED
      DTSTAMP:19970721T093000Z
      END:VEVENT
      END:VCALENDAR
        
4.4.4. Cancel a Recurring Event
4.4.4. 取消重复发生的事件

In this example, the "Organizer" wishes to cancel the entire recurring event and any exceptions.

在本例中,“组织者”希望取消整个重复事件和任何异常。

      BEGIN:VCALENDAR
      METHOD:CANCEL
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:guid-1@example.com
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      ATTENDEE:mailto:c@example.com
      ATTENDEE:mailto:d@example.com
      DTSTAMP:19970721T103000Z
      STATUS:CANCELLED
      SEQUENCE:3
      END:VEVENT
        
      BEGIN:VCALENDAR
      METHOD:CANCEL
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:guid-1@example.com
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      ATTENDEE:mailto:c@example.com
      ATTENDEE:mailto:d@example.com
      DTSTAMP:19970721T103000Z
      STATUS:CANCELLED
      SEQUENCE:3
      END:VEVENT
        

END:VCALENDAR

完:VCALENDAR

4.4.5. Change All Future Instances
4.4.5. 更改所有未来实例

This example changes the meeting location from a conference call to Seattle, starting September 1 and extending to all future instances.

此示例将会议地点从电话会议更改为西雅图,从9月1日开始,并扩展到所有未来实例。

      BEGIN:VCALENDAR
      METHOD:REQUEST
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:guid-1@example.com
      RECURRENCE-ID;THISANDFUTURE:19970901T210000Z
      SEQUENCE:3
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      ATTENDEE;RSVP=TRUE:mailto:c@example.com
      ATTENDEE;RSVP=TRUE:mailto:d@example.com
      DESCRIPTION:IETF-C&S Discussion
      CLASS:PUBLIC
      SUMMARY:IETF Calendaring Working Group Meeting
      DTSTART:19970901T210000Z
      DTEND:19970901T220000Z
      LOCATION:Building 32, Microsoft, Seattle, WA
      DTSTAMP:19970526T083000Z
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      METHOD:REQUEST
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:guid-1@example.com
      RECURRENCE-ID;THISANDFUTURE:19970901T210000Z
      SEQUENCE:3
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      ATTENDEE;RSVP=TRUE:mailto:c@example.com
      ATTENDEE;RSVP=TRUE:mailto:d@example.com
      DESCRIPTION:IETF-C&S Discussion
      CLASS:PUBLIC
      SUMMARY:IETF Calendaring Working Group Meeting
      DTSTART:19970901T210000Z
      DTEND:19970901T220000Z
      LOCATION:Building 32, Microsoft, Seattle, WA
      DTSTAMP:19970526T083000Z
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        
4.4.6. Add a New Instance to a Recurring Event
4.4.6. 将新实例添加到定期事件

This example adds a one-time additional instance to the recurring event. "Organizer" adds a second July meeting on the 15th.

此示例将一次性附加实例添加到定期事件中。“组织者”在15日增加了第二次7月会议。

      BEGIN:VCALENDAR
      METHOD:ADD
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:123456789@example.com
      SEQUENCE:4
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      ATTENDEE;RSVP=TRUE:mailto:c@example.com
      ATTENDEE;RSVP=TRUE:mailto:d@example.com
        
      BEGIN:VCALENDAR
      METHOD:ADD
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:123456789@example.com
      SEQUENCE:4
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      ATTENDEE;RSVP=TRUE:mailto:c@example.com
      ATTENDEE;RSVP=TRUE:mailto:d@example.com
        

DESCRIPTION:IETF-C&S Conference Call CLASS:PUBLIC SUMMARY:IETF Calendaring Working Group Meeting DTSTART:19970715T210000Z DTEND:19970715T220000Z LOCATION:Conference Call DTSTAMP:19970629T093000Z STATUS:CONFIRMED END:VEVENT END:VCALENDAR

描述:IETF-C&S电话会议类别:公开摘要:IETF日历工作组会议DTSTART:19970715T210000Z DTEND:19970715T220000Z地点:电话会议DTSTAMP:19970629T093000Z状态:确认结束:VEVENT结束:VCALENDAR

4.4.7. Add a New Series of Instances to a Recurring Event
4.4.7. 向定期事件添加一系列新实例

The scenario for this example involves an ongoing meeting, originally set up to occur every Tuesday. The "Organizer" later decides that the meetings need to be on Tuesdays and Thursdays.

本例的场景涉及一个正在进行的会议,最初设置为每周二举行一次。“组织者”后来决定会议必须在周二和周四举行。

The original event:

最初的事件:

      BEGIN:VCALENDAR
      METHOD:REQUEST
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:123456789@example.com
      SEQUENCE:0
      RRULE:WKST=SU;BYDAY=TU;FREQ=WEEKLY
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      SUMMARY:Review Accounts
      DTSTART:19980303T210000Z
      DTEND:19980303T220000Z
      LOCATION:The White Room
      DTSTAMP:19980301T093000Z
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      METHOD:REQUEST
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:123456789@example.com
      SEQUENCE:0
      RRULE:WKST=SU;BYDAY=TU;FREQ=WEEKLY
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      SUMMARY:Review Accounts
      DTSTART:19980303T210000Z
      DTEND:19980303T220000Z
      LOCATION:The White Room
      DTSTAMP:19980301T093000Z
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        

The entire event can be rescheduled using a "REQUEST". This is done by using the "UID" of the event to reschedule and including the modified "RRULE". Note that since this is an entire rescheduling of the event, any instance-specific information will be lost, unless explicitly included with the update "REQUEST".

可以使用“请求”重新安排整个事件。这是通过使用事件的“UID”来重新安排并包括修改的“RRULE”来完成的。请注意,由于这是对事件的整个重新调度,任何特定于实例的信息都将丢失,除非更新“请求”中明确包含这些信息。

      BEGIN:VCALENDAR
      METHOD:REQUEST
      PRODID:-//Example/ExampleCalendarClient//EN
        
      BEGIN:VCALENDAR
      METHOD:REQUEST
      PRODID:-//Example/ExampleCalendarClient//EN
        
      VERSION:2.0
      BEGIN:VEVENT
      UID:123456789@example.com
      SEQUENCE:7
      RRULE:WKST=SU;BYDAY=TU,TH;FREQ=WEEKLY
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      SUMMARY:Review Accounts
      DTSTART:19980303T210000Z
      DTEND:19980303T220000Z
      DTSTAMP:19980303T193000Z
      LOCATION:The White Room
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        
      VERSION:2.0
      BEGIN:VEVENT
      UID:123456789@example.com
      SEQUENCE:7
      RRULE:WKST=SU;BYDAY=TU,TH;FREQ=WEEKLY
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      SUMMARY:Review Accounts
      DTSTART:19980303T210000Z
      DTEND:19980303T220000Z
      DTSTAMP:19980303T193000Z
      LOCATION:The White Room
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        
4.4.8. Refreshing a Recurring Event
4.4.8. 刷新重复发生的事件

The next series of examples illustrate how an "Organizer" would respond to a "REFRESH" submitted by an "Attendee" after a series of instance-specific modifications. To convey all instance-specific changes, the "Organizer" must provide the latest event description and the relevant instances. The first three examples show the history, including the initial "VEVENT" request and subsequent instance changes, and finally the "REFRESH".

接下来的一系列示例说明了“组织者”在经过一系列特定于实例的修改后如何响应“与会者”提交的“刷新”。为了传达所有特定于实例的更改,“组织者”必须提供最新的事件描述和相关实例。前三个示例显示了历史记录,包括最初的“VEVENT”请求和随后的实例更改,最后是“REFRESH”。

Original Request:

原始请求:

      BEGIN:VCALENDAR
      METHOD:REQUEST
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:123456789@example.com
      SEQUENCE:0
      RDATE:19980304T180000Z
      RDATE:19980311T180000Z
      RDATE:19980318T180000Z
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      SUMMARY:Review Accounts
      DTSTART:19980304T180000Z
      DTEND:19980304T200000Z
      DTSTAMP:19980303T193000Z
      LOCATION:Conference Room A
      STATUS:CONFIRMED
        
      BEGIN:VCALENDAR
      METHOD:REQUEST
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:123456789@example.com
      SEQUENCE:0
      RDATE:19980304T180000Z
      RDATE:19980311T180000Z
      RDATE:19980318T180000Z
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      SUMMARY:Review Accounts
      DTSTART:19980304T180000Z
      DTEND:19980304T200000Z
      DTSTAMP:19980303T193000Z
      LOCATION:Conference Room A
      STATUS:CONFIRMED
        

END:VEVENT END:VCALENDAR

结束:VEVENT结束:VCALENDAR

Organizer changes 2nd instance location and time:

组织者更改第二个实例的位置和时间:

      BEGIN:VCALENDAR
      METHOD:REQUEST
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:123456789@example.com
      SEQUENCE:1
      RECURRENCE-ID:19980311T180000Z
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      SUMMARY:Review Accounts
      DTSTART:19980311T160000Z
      DTEND:19980311T180000Z
      DTSTAMP:19980306T193000Z
      LOCATION:The Small conference room
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      METHOD:REQUEST
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:123456789@example.com
      SEQUENCE:1
      RECURRENCE-ID:19980311T180000Z
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      SUMMARY:Review Accounts
      DTSTART:19980311T160000Z
      DTEND:19980311T180000Z
      DTSTAMP:19980306T193000Z
      LOCATION:The Small conference room
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        

Organizer adds a 4th instance of the meeting using the "ADD" method.

组织者使用“添加”方法添加会议的第四个实例。

      BEGIN:VCALENDAR
      METHOD:ADD
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:123456789@example.com
      SEQUENCE:2
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      SUMMARY:Review Accounts
      DTSTART:19980315T180000Z
      DTEND:19980315T200000Z
      DTSTAMP:19980307T193000Z
      LOCATION:Conference Room A
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      METHOD:ADD
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:123456789@example.com
      SEQUENCE:2
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      SUMMARY:Review Accounts
      DTSTART:19980315T180000Z
      DTEND:19980315T200000Z
      DTSTAMP:19980307T193000Z
      LOCATION:Conference Room A
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        

If "B" requests a "REFRESH", "A" responds with the following to capture all instance-specific data. In this case, both the initial request and an additional "VEVENT" that specifies the instance-specific data are included. Because these are both of the same type (they are both "VEVENTS"), they can be conveyed in the same iCalendar object.

如果“B”请求“刷新”,则“a”将响应以下命令以捕获所有特定于实例的数据。在这种情况下,包括初始请求和指定实例特定数据的附加“VEVENT”。因为它们都是同一类型(它们都是“VEVENT”),所以它们可以在同一个iCalendar对象中传输。

      BEGIN:VCALENDAR
      METHOD:REQUEST
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:123456789@example.com
      SEQUENCE:2
      RDATE:19980304T180000Z
      RDATE:19980311T160000Z
      RDATE:19980315T180000Z
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      SUMMARY:Review Accounts
      DTSTART:19980304T180000Z
      DTEND:19980304T200000Z
      DTSTAMP:19980303T193000Z
      LOCATION:Conference Room A
      STATUS:CONFIRMED
      END:VEVENT
      BEGIN:VEVENT
      SEQUENCE:2
      UID:123456789@example.com
      RECURRENCE-ID:19980311T160000Z
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      SUMMARY:Review Accounts
      DTSTART:19980311T160000Z
      DTEND:19980304T180000Z
      DTSTAMP:19980306T193000Z
      LOCATION:The Small conference room
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      METHOD:REQUEST
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:123456789@example.com
      SEQUENCE:2
      RDATE:19980304T180000Z
      RDATE:19980311T160000Z
      RDATE:19980315T180000Z
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      SUMMARY:Review Accounts
      DTSTART:19980304T180000Z
      DTEND:19980304T200000Z
      DTSTAMP:19980303T193000Z
      LOCATION:Conference Room A
      STATUS:CONFIRMED
      END:VEVENT
      BEGIN:VEVENT
      SEQUENCE:2
      UID:123456789@example.com
      RECURRENCE-ID:19980311T160000Z
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      SUMMARY:Review Accounts
      DTSTART:19980311T160000Z
      DTEND:19980304T180000Z
      DTSTAMP:19980306T193000Z
      LOCATION:The Small conference room
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        
4.4.9. Counter an Instance of a Recurring Event
4.4.9. 反循环事件的实例

In this example, one of the "Attendees" counters the "DTSTART" property of the proposed second July meeting.

在本例中,其中一个“与会者”反对提议的7月第二次会议的“DTSTART”属性。

      BEGIN:VCALENDAR
      METHOD:COUNTER
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:guid-1@example.com
      RECURRENCE-ID:19970715T210000Z
      SEQUENCE:4
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;RSVP=TRUE:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      ATTENDEE;RSVP=TRUE:mailto:c@example.com
      ATTENDEE;RSVP=TRUE:mailto:d@example.com
      DESCRIPTION:IETF-C&S Conference Call
      CLASS:PUBLIC
      SUMMARY:IETF Calendaring Working Group Meeting
      DTSTART:19970715T220000Z
      DTEND:19970715T230000Z
      LOCATION:Conference Call
      COMMENT:May we bump this by an hour? I have a conflict
      DTSTAMP:19970629T094000Z
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      METHOD:COUNTER
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:guid-1@example.com
      RECURRENCE-ID:19970715T210000Z
      SEQUENCE:4
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;RSVP=TRUE:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      ATTENDEE;RSVP=TRUE:mailto:c@example.com
      ATTENDEE;RSVP=TRUE:mailto:d@example.com
      DESCRIPTION:IETF-C&S Conference Call
      CLASS:PUBLIC
      SUMMARY:IETF Calendaring Working Group Meeting
      DTSTART:19970715T220000Z
      DTEND:19970715T230000Z
      LOCATION:Conference Call
      COMMENT:May we bump this by an hour? I have a conflict
      DTSTAMP:19970629T094000Z
      END:VEVENT
      END:VCALENDAR
        
4.4.10. Error Reply to a Request
4.4.10. 答复请求时出错

The following example illustrates a scenario where a meeting is proposed containing an unsupported property and a bad property.

下面的示例演示了一个场景,其中提议的会议包含不受支持的属性和坏属性。

Original Request:

原始请求:

      BEGIN:VCALENDAR
      METHOD:REQUEST
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:guid-1@example.com
      SEQUENCE:0
      RRULE:FREQ=MONTHLY;BYMONTHDAY=1
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      ATTENDEE;RSVP=TRUE:mailto:c@example.com
      ATTENDEE;RSVP=TRUE:mailto:d@example.com
      DESCRIPTION:IETF-C&S Conference Call
      CLASS:PUBLIC
      SUMMARY:IETF Calendaring Working Group Meeting
      DTSTART:19970601T210000Z
        
      BEGIN:VCALENDAR
      METHOD:REQUEST
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:guid-1@example.com
      SEQUENCE:0
      RRULE:FREQ=MONTHLY;BYMONTHDAY=1
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      ATTENDEE;RSVP=TRUE:mailto:c@example.com
      ATTENDEE;RSVP=TRUE:mailto:d@example.com
      DESCRIPTION:IETF-C&S Conference Call
      CLASS:PUBLIC
      SUMMARY:IETF Calendaring Working Group Meeting
      DTSTART:19970601T210000Z
        

DTEND:19970601T220000Z DTSTAMP:19970602T094000Z LOCATION:Conference Call STATUS:CONFIRMED FOO:BAR END:VEVENT END:VCALENDAR

DTEND:19970601T220000Z DTSTAMP:19970602T094000Z位置:电话会议状态:已确认FOO:BAR结束:VEVENT结束:VCALENDAR

"B" responds to indicate that "RRULE" is not supported and that an unrecognized property was encountered.

“B”响应表示不支持“RRULE”,并且遇到了无法识别的属性。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REPLY
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      REQUEST-STATUS:3.0;Invalid Property Name;FOO
      UID:guid-1@example.com
      SEQUENCE:0
      DTSTAMP:19970603T094000Z
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REPLY
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      REQUEST-STATUS:3.0;Invalid Property Name;FOO
      UID:guid-1@example.com
      SEQUENCE:0
      DTSTAMP:19970603T094000Z
      END:VEVENT
      END:VCALENDAR
        
4.5. Group To-Do Examples
4.5. 分组做例子

Individual "A" creates a group task in which individuals "A", "B", "C", and "D" will participate. Individual "B" confirms acceptance of the task. Individual "C" declines the task. Individual "D" tentatively accepts the task. The following table illustrates the sequence of messages that would be exchanged between these individuals. Individual "A" then issues a "REQUEST" method to obtain the status of the to-do from each participant. The response indicates the individual "Attendee's" completion status. The table below illustrates the message flow.

个人“A”创建一个小组任务,其中个人“A”、“B”、“C”和“D”将参与其中。个人“B”确认接受任务。个人“C”拒绝该任务。个人“D”暂时接受任务。下表说明了将在这些个人之间交换的消息序列。然后,个人“A”发出“请求”方法,以从每个参与者处获取待办事项的状态。响应表示个人“与会者”的完成状态。下表说明了消息流。

   +--------------+------------------------+---------------------------+
   | Action       | Organizer              | Attendee                  |
   +--------------+------------------------+---------------------------+
   | Initiate a   | "A" sends a REQUEST    |                           |
   | to-do        | message to "B", "C",   |                           |
   | request      | and "D".               |                           |
   |              |                        |                           |
   | Accept the   |                        | "B" sends a REPLY message |
   | to-do        |                        | to "A" with its PARTSTAT  |
   | request      |                        | parameter set to          |
   |              |                        | ACCEPTED.                 |
   |              |                        |                           |
   | Decline the  |                        | "C" sends a REPLY message |
   | to-do        |                        | to "A" with its PARTSTAT  |
   | request      |                        | parameter set to          |
   |              |                        | DECLINED.                 |
   |              |                        |                           |
   | Tentatively  |                        | "D" sends a REPLY message |
   | accept the   |                        | to "A" with its PARTSTAT  |
   | to-do        |                        | parameter set to          |
   | request      |                        | TENTATIVE.                |
   |              |                        |                           |
   | Check        | "A" sends a REQUEST    |                           |
   | Attendee     | message to "B" and "D" |                           |
   | completion   | with current           |                           |
   | status       | information.           |                           |
   |              |                        |                           |
   | Attendee     |                        | "B" sends a REPLY message |
   | indicates    |                        | indicating percent        |
   | percent      |                        | complete.                 |
   | complete     |                        |                           |
   |              |                        |                           |
   | Attendee     |                        | "D" sends a REPLY message |
   | indicates    |                        | indicating completion.    |
   | completion   |                        |                           |
   +--------------+------------------------+---------------------------+
        
   +--------------+------------------------+---------------------------+
   | Action       | Organizer              | Attendee                  |
   +--------------+------------------------+---------------------------+
   | Initiate a   | "A" sends a REQUEST    |                           |
   | to-do        | message to "B", "C",   |                           |
   | request      | and "D".               |                           |
   |              |                        |                           |
   | Accept the   |                        | "B" sends a REPLY message |
   | to-do        |                        | to "A" with its PARTSTAT  |
   | request      |                        | parameter set to          |
   |              |                        | ACCEPTED.                 |
   |              |                        |                           |
   | Decline the  |                        | "C" sends a REPLY message |
   | to-do        |                        | to "A" with its PARTSTAT  |
   | request      |                        | parameter set to          |
   |              |                        | DECLINED.                 |
   |              |                        |                           |
   | Tentatively  |                        | "D" sends a REPLY message |
   | accept the   |                        | to "A" with its PARTSTAT  |
   | to-do        |                        | parameter set to          |
   | request      |                        | TENTATIVE.                |
   |              |                        |                           |
   | Check        | "A" sends a REQUEST    |                           |
   | Attendee     | message to "B" and "D" |                           |
   | completion   | with current           |                           |
   | status       | information.           |                           |
   |              |                        |                           |
   | Attendee     |                        | "B" sends a REPLY message |
   | indicates    |                        | indicating percent        |
   | percent      |                        | complete.                 |
   | complete     |                        |                           |
   |              |                        |                           |
   | Attendee     |                        | "D" sends a REPLY message |
   | indicates    |                        | indicating completion.    |
   | completion   |                        |                           |
   +--------------+------------------------+---------------------------+
        
4.5.1. A VTODO Request
4.5.1. VTODO请求

A sample "REQUEST" for a "VTODO" calendar component that "A" sends to "B", "C", and "D".

“A”向“B”、“C”和“D”发送的“VTODO”日历组件的“请求”示例。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VTODO
      ORGANIZER:mailto:a@example.com
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VTODO
      ORGANIZER:mailto:a@example.com
        
      ATTENDEE;ROLE=CHAIR:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      ATTENDEE;RSVP=TRUE:mailto:c@example.com
      ATTENDEE;RSVP=TRUE:mailto:d@example.com
      DTSTART:19970701T170000Z
      DUE:19970722T170000Z
      PRIORITY:1
      SUMMARY:Create the requirements document
      UID:calsrv.example.com-873970198738777-00@example.com
      SEQUENCE:0
      DTSTAMP:19970717T200000Z
      STATUS:NEEDS-ACTION
      END:VTODO
      END:VCALENDAR
        
      ATTENDEE;ROLE=CHAIR:mailto:a@example.com
      ATTENDEE;RSVP=TRUE:mailto:b@example.com
      ATTENDEE;RSVP=TRUE:mailto:c@example.com
      ATTENDEE;RSVP=TRUE:mailto:d@example.com
      DTSTART:19970701T170000Z
      DUE:19970722T170000Z
      PRIORITY:1
      SUMMARY:Create the requirements document
      UID:calsrv.example.com-873970198738777-00@example.com
      SEQUENCE:0
      DTSTAMP:19970717T200000Z
      STATUS:NEEDS-ACTION
      END:VTODO
      END:VCALENDAR
        
4.5.2. A VTODO Reply
4.5.2. 伏都教式的回答

"B" accepts the to-do.

“B”接受待办事项。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REPLY
      VERSION:2.0
      BEGIN:VTODO
      ORGANIZER:mailto:a@example.com
      ATTENDEE;PARTSTAT=ACCEPTED:mailto:b@example.com
      UID:calsrv.example.com-873970198738777-00@example.com
      COMMENT:I'll send you my input by email
      SEQUENCE:0
      DTSTAMP:19970717T203000Z
      REQUEST-STATUS:2.0;Success
      END:VTODO
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REPLY
      VERSION:2.0
      BEGIN:VTODO
      ORGANIZER:mailto:a@example.com
      ATTENDEE;PARTSTAT=ACCEPTED:mailto:b@example.com
      UID:calsrv.example.com-873970198738777-00@example.com
      COMMENT:I'll send you my input by email
      SEQUENCE:0
      DTSTAMP:19970717T203000Z
      REQUEST-STATUS:2.0;Success
      END:VTODO
      END:VCALENDAR
        

"B" could have declined the "VTODO" or indicated tentative acceptance by setting the "PARTSTAT" property parameter sequence to "DECLINED" or "TENTATIVE", respectively.

“B”可以通过将“PARTSTAT”属性参数序列分别设置为“Decended”或“Tential”来拒绝“VTODO”或表示暂时接受。

4.5.3. A VTODO Request for Updated Status
4.5.3. 更新状态的VTODO请求

"A" requests status from all "Attendees".

“A”向所有“与会者”请求状态。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VTODO
      ORGANIZER:mailto:a@example.com
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VTODO
      ORGANIZER:mailto:a@example.com
        
      ATTENDEE;ROLE=CHAIR:mailto:a@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:d@example.com
      UID:calsrv.example.com-873970198738777-00@example.com
      SUMMARY:Create the requirements document
      PRIORITY:1
      SEQUENCE:0
      STATUS:IN-PROCESS
      DTSTART:19970701T170000Z
      DTSTAMP:19970717T230000Z
      END:VTODO
      END:VCALENDAR
        
      ATTENDEE;ROLE=CHAIR:mailto:a@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:d@example.com
      UID:calsrv.example.com-873970198738777-00@example.com
      SUMMARY:Create the requirements document
      PRIORITY:1
      SEQUENCE:0
      STATUS:IN-PROCESS
      DTSTART:19970701T170000Z
      DTSTAMP:19970717T230000Z
      END:VTODO
      END:VCALENDAR
        
4.5.4. A Reply: Percent-Complete
4.5.4. 答复:完成百分比

A reply indicating the task being worked on and that "B" is 75% complete with "B's" part of the assignment.

一份回复,表明正在进行的任务,“B”完成75%,作业中“B”部分完成。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REPLY
      VERSION:2.0
      BEGIN:VTODO
      ORGANIZER:mailto:a@example.com
      ATTENDEE;PARTSTAT=IN-PROCESS:mailto:b@example.com
      PERCENT-COMPLETE:75
      UID:calsrv.example.com-873970198738777-00@example.com
      DTSTAMP:19970717T233000Z
      SEQUENCE:0
      END:VTODO
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REPLY
      VERSION:2.0
      BEGIN:VTODO
      ORGANIZER:mailto:a@example.com
      ATTENDEE;PARTSTAT=IN-PROCESS:mailto:b@example.com
      PERCENT-COMPLETE:75
      UID:calsrv.example.com-873970198738777-00@example.com
      DTSTAMP:19970717T233000Z
      SEQUENCE:0
      END:VTODO
      END:VCALENDAR
        
4.5.5. A Reply: Completed
4.5.5. 答复:已完成

A reply indicating that "D" completed "D's" part of the assignment.

表明“D”完成了任务“D”部分的回复。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REPLY
      VERSION:2.0
      BEGIN:VTODO
      ORGANIZER:mailto:a@example.com
      ATTENDEE;PARTSTAT=COMPLETED:mailto:d@example.com
      UID:calsrv.example.com-873970198738777-00@example.com
      DTSTAMP:19970717T233000Z
      SEQUENCE:0
      END:VTODO
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REPLY
      VERSION:2.0
      BEGIN:VTODO
      ORGANIZER:mailto:a@example.com
      ATTENDEE;PARTSTAT=COMPLETED:mailto:d@example.com
      UID:calsrv.example.com-873970198738777-00@example.com
      DTSTAMP:19970717T233000Z
      SEQUENCE:0
      END:VTODO
      END:VCALENDAR
        
4.5.6. An Updated VTODO Request
4.5.6. 更新的VTODO请求

"Organizer" "A" resends the "VTODO" calendar component. "A" sets the overall completion for the to-do at 40%.

“组织者”“A”重新发送“VTODO”日历组件。“A”将待办事项的总体完成率设定为40%。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VTODO
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;PARTSTAT=ACCEPTED;CUTYPE=INDIVIDUAL:mailto:b@example.com
      ATTENDEE;PARTSTAT=COMPLETED;CUTYPE=INDIVIDUAL:mailto:d@example.com
      DTSTART:19970701T170000Z
      DUE:19970722T170000Z
      PRIORITY:1
      SUMMARY:Create the requirements document
      UID:calsrv.example.com-873970198738777-00@example.com
      SEQUENCE:1
      DTSTAMP:19970718T100000Z
      STATUS:IN-PROCESS
      PERCENT-COMPLETE:40
      END:VTODO
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VTODO
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE;PARTSTAT=ACCEPTED;CUTYPE=INDIVIDUAL:mailto:b@example.com
      ATTENDEE;PARTSTAT=COMPLETED;CUTYPE=INDIVIDUAL:mailto:d@example.com
      DTSTART:19970701T170000Z
      DUE:19970722T170000Z
      PRIORITY:1
      SUMMARY:Create the requirements document
      UID:calsrv.example.com-873970198738777-00@example.com
      SEQUENCE:1
      DTSTAMP:19970718T100000Z
      STATUS:IN-PROCESS
      PERCENT-COMPLETE:40
      END:VTODO
      END:VCALENDAR
        
4.5.7. Recurring VTODOs
4.5.7. 复发性VTODOs

The following examples relate to recurring "VTODO" calendar components.

以下示例与重复出现的“VTODO”日历组件有关。

4.5.7.1. Request for a Recurring VTODO
4.5.7.1. 请求重复使用VTODO

In this example, "A" sends a recurring "VTODO" calendar component to "B" and "D".

在本例中,“A”向“B”和“D”发送循环的“VTODO”日历组件。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VTODO
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR:mailto:a@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:d@example.com
      RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR
      DTSTART:19980101T100000Z
      DUE:19980103T100000Z
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REQUEST
      VERSION:2.0
      BEGIN:VTODO
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR:mailto:a@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
      ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:d@example.com
      RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR
      DTSTART:19980101T100000Z
      DUE:19980103T100000Z
        

SUMMARY:Send Status Reports to Area Managers UID:calsrv.example.com-873970198738777-00@example.com SEQUENCE:0 DTSTAMP:19970717T200000Z STATUS:NEEDS-ACTION PRIORITY:1 END:VTODO END:VCALENDAR

摘要:向区域经理发送状态报告UID:calsrv.example.com-873970198738777-00@example.com序列:0 DTSTAMP:19970717T200000Z状态:需求-行动优先级:1结束:VTODO结束:VCALENDAR

4.5.7.2. Replying to an Instance of a Recurring VTODO
4.5.7.2. 回复重复出现的VTODO实例

In this example, "B" updates "A" on a single instance of the "VTODO" calendar component.

在本例中,“B”在“VTODO”日历组件的单个实例上更新“A”。

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REPLY
      VERSION:2.0
      BEGIN:VTODO
      ATTENDEE;PARTSTAT=IN-PROCESS:mailto:b@example.com
      PERCENT-COMPLETE:75
      UID:calsrv.example.com-873970198738777-00@example.com
      DTSTAMP:19970717T233000Z
      RECURRENCE-ID:19980101T170000Z
      SEQUENCE:1
      END:VTODO
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REPLY
      VERSION:2.0
      BEGIN:VTODO
      ATTENDEE;PARTSTAT=IN-PROCESS:mailto:b@example.com
      PERCENT-COMPLETE:75
      UID:calsrv.example.com-873970198738777-00@example.com
      DTSTAMP:19970717T233000Z
      RECURRENCE-ID:19980101T170000Z
      SEQUENCE:1
      END:VTODO
      END:VCALENDAR
        
4.6. Journal Examples
4.6. 期刊实例

The iCalendar object below describes a single journal entry for October 2, 1997. The "RELATED-TO" property references the phone conference event for which minutes were taken.

下面的iCalendar对象描述了1997年10月2日的单个日记账分录。“RELATED-TO”属性引用记录会议记录的电话会议事件。

      BEGIN:VCALENDAR
      METHOD:PUBLISH
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VJOURNAL
      DTSTART:19971002T200000Z
      DTSTAMP:19970717T233100Z
      ORGANIZER:mailto:a@example.com
      SUMMARY:Phone conference minutes
      DESCRIPTION:The editors meeting was held on October 1, 1997.
       Details are in the attached document.
      UID:0981234-1234234-2410@example.com
      RELATED-TO:0981234-1234234-2402-35@example.com
      ATTACH:ftp://ftp.example.com/pub/ed/minutes100197.txt
        
      BEGIN:VCALENDAR
      METHOD:PUBLISH
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VJOURNAL
      DTSTART:19971002T200000Z
      DTSTAMP:19970717T233100Z
      ORGANIZER:mailto:a@example.com
      SUMMARY:Phone conference minutes
      DESCRIPTION:The editors meeting was held on October 1, 1997.
       Details are in the attached document.
      UID:0981234-1234234-2410@example.com
      RELATED-TO:0981234-1234234-2402-35@example.com
      ATTACH:ftp://ftp.example.com/pub/ed/minutes100197.txt
        

END:VJOURNAL END:VCALENDAR

结束:VCALENDAR结束:VCALENDAR

4.7. Other Examples
4.7. 其他例子
4.7.1. Event Refresh
4.7.1. 事件刷新

Refresh the event with a "UID" property value of "guid-1-12345@example.com":

使用“UID”属性值“guid-1”刷新事件-12345@example.com":

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REFRESH
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      ATTENDEE:mailto:c@example.com
      ATTENDEE:mailto:d@example.com
      UID:guid-1-12345@example.com
      DTSTAMP:19970603T094000
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REFRESH
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      ATTENDEE:mailto:c@example.com
      ATTENDEE:mailto:d@example.com
      UID:guid-1-12345@example.com
      DTSTAMP:19970603T094000
      END:VEVENT
      END:VCALENDAR
        
4.7.2. Bad RECURRENCE-ID
4.7.2. 坏循环ID

Component instances are identified by the combination of "UID", "RECURRENCE-ID", and "SEQUENCE". When an "Organizer" sends an iTIP message to an "Attendee", there are three cases in which an instance cannot be found. They are:

组件实例由“UID”、“RECURRENCE-ID”和“SEQUENCE”组合标识。当“组织者”向“与会者”发送iTIP消息时,有三种情况下无法找到实例。他们是:

1. The component with the referenced "UID" and "RECURRENCE-ID" has been found but the "SEQUENCE" number in the calendar store does not match that of the iTIP message.

1. 已找到引用了“UID”和“RECURRENCE-ID”的组件,但日历存储中的“序列号”与iTIP消息的序列号不匹配。

2. The component with the referenced "UID" has been found, the "SEQUENCE" numbers match, but the "RECURRENCE-ID" cannot be found.

2. 已找到引用“UID”的组件,“序列”号匹配,但找不到“RECURRENCE-ID”。

3. The "UID" and "SEQUENCE" numbers are found but the CUA does not support recurrences.

3. 已找到“UID”和“SEQUENCE”编号,但CUA不支持重复出现。

In case (1), two things can happen. If the "SEQUENCE" number of the "Attendee's" instance is larger than that in the "Organizer's" message, then the "Attendee" is receiving an out-of-sequence message and MUST ignore it. If the "SEQUENCE" number of the "Attendee's" instance is smaller, then the "Organizer" is sending out a newer

在案例(1)中,可能发生两种情况。如果“Attendee’s”实例的“SEQUENCE”编号大于“Organizer’s”消息中的编号,则“Attendee”正在接收一条无序消息,必须忽略它。如果“Attendee’s”实例的“SEQUENCE”编号较小,则“Organizer”将发送较新的

version of the component and the "Attendee's" version needs to be updated. Since one or more updates have been missed, the "Attendee" SHOULD send a "REFRESH" message to the "Organizer" to get an updated version of the event.

组件版本和“与会者”版本需要更新。由于错过了一个或多个更新,“与会者”应向“组织者”发送“刷新”消息,以获取活动的更新版本。

In case (2), something has gone wrong. Both the "Organizer" and the "Attendee" should have the same instances, but the "Attendee" does not have the referenced instance. In this case, the "Attendee" SHOULD send a "REFRESH" to the "Organizer" to get an updated version of the event.

在案例(2)中,出现了一些问题。“组织者”和“与会者”应具有相同的实例,但“与会者”没有引用的实例。在这种情况下,“与会者”应向“组织者”发送“刷新”,以获取事件的更新版本。

In case (3), the limitations of the "Attendee's" CUA makes it impossible to match an instance other than the single instance scheduled. In this case, the "Attendee" need not send a "REFRESH" to the "Organizer".

在案例(3)中,“与会者”CUA的局限性使其无法匹配计划的单个实例以外的实例。在这种情况下,“与会者”无需向“组织者”发送“刷新”。

The example below shows a sequence in which an "Attendee" sends a "REFRESH" to the "Organizer".

下面的示例显示了“与会者”向“组织者”发送“刷新”的顺序。

   +-------------------------+--------------------+--------------------+
   | Action                  | Organizer          | Attendee           |
   +-------------------------+--------------------+--------------------+
   | Update an instance      | "A" sends REQUEST  |                    |
   | request                 | message to "B".    |                    |
   |                         |                    |                    |
   | Attendee requests       |                    | "B" sends a        |
   | refresh because         |                    | REFRESH message to |
   | RECURRENCE-ID was not   |                    | "A".               |
   | found                   |                    |                    |
   |                         |                    |                    |
   | Refresh the entire      | "A" sends the      |                    |
   | event                   | latest copy of the |                    |
   |                         | event to "B"       |                    |
   |                         |                    |                    |
   | Attendee handles the    |                    | "B" updates to the |
   | request and updates the |                    | latest copy of the |
   | instance                |                    | meeting.           |
   +-------------------------+--------------------+--------------------+
        
   +-------------------------+--------------------+--------------------+
   | Action                  | Organizer          | Attendee           |
   +-------------------------+--------------------+--------------------+
   | Update an instance      | "A" sends REQUEST  |                    |
   | request                 | message to "B".    |                    |
   |                         |                    |                    |
   | Attendee requests       |                    | "B" sends a        |
   | refresh because         |                    | REFRESH message to |
   | RECURRENCE-ID was not   |                    | "A".               |
   | found                   |                    |                    |
   |                         |                    |                    |
   | Refresh the entire      | "A" sends the      |                    |
   | event                   | latest copy of the |                    |
   |                         | event to "B"       |                    |
   |                         |                    |                    |
   | Attendee handles the    |                    | "B" updates to the |
   | request and updates the |                    | latest copy of the |
   | instance                |                    | meeting.           |
   +-------------------------+--------------------+--------------------+
        

Request from "A":

“A”的请求:

      BEGIN:VCALENDAR
      METHOD:REQUEST
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:example-12345@example.com
      SEQUENCE:3
        
      BEGIN:VCALENDAR
      METHOD:REQUEST
      PRODID:-//Example/ExampleCalendarClient//EN
      VERSION:2.0
      BEGIN:VEVENT
      UID:example-12345@example.com
      SEQUENCE:3
        
      RRULE:FREQ=WEEKLY
      RDATE;VALUE=PERIOD:19970819T210000Z/199700819T220000Z
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      DESCRIPTION:IETF-C&S Conference Call
      SUMMARY:IETF Calendaring Working Group Meeting
      DTSTART:19970801T210000Z
      DTEND:19970801T220000Z
      RECURRENCE-ID:19970809T210000Z
      DTSTAMP:19970726T083000
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        
      RRULE:FREQ=WEEKLY
      RDATE;VALUE=PERIOD:19970819T210000Z/199700819T220000Z
      ORGANIZER:mailto:a@example.com
      ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      DESCRIPTION:IETF-C&S Conference Call
      SUMMARY:IETF Calendaring Working Group Meeting
      DTSTART:19970801T210000Z
      DTEND:19970801T220000Z
      RECURRENCE-ID:19970809T210000Z
      DTSTAMP:19970726T083000
      STATUS:CONFIRMED
      END:VEVENT
      END:VCALENDAR
        

"B" has the event with "UID" property "example-12345@example.com", but "B's" "SEQUENCE" property value is "1" and the event does not have an instance at the specified recurrence time. This means that "B" has missed at least one update and needs a new copy of the event. "B" requests the latest copy of the event with the following refresh message:

“B”具有带有“UID”属性的事件示例-12345@example.com,但“B”的“SEQUENCE”属性值为“1”,并且该事件在指定的重复时间没有实例。这意味着“B”至少错过了一次更新,需要事件的新副本。“B”使用以下刷新消息请求事件的最新副本:

      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REFRESH
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      UID:example-12345@example.com
      DTSTAMP:19970603T094000
      END:VEVENT
      END:VCALENDAR
        
      BEGIN:VCALENDAR
      PRODID:-//Example/ExampleCalendarClient//EN
      METHOD:REFRESH
      VERSION:2.0
      BEGIN:VEVENT
      ORGANIZER:mailto:a@example.com
      ATTENDEE:mailto:b@example.com
      UID:example-12345@example.com
      DTSTAMP:19970603T094000
      END:VEVENT
      END:VCALENDAR
        
5. Application Protocol Fallbacks
5. 应用程序协议回退
5.1. Partial Implementation
5.1. 部分实施

Applications that support this specification are not required to support the entire protocol. The following describes how methods and properties SHOULD "fallback" in applications that do not support the complete protocol. If a method or property is not addressed in this section, it may be ignored.

支持此规范的应用程序不需要支持整个协议。下面描述了在不支持完整协议的应用程序中,方法和属性如何“回退”。如果本节中未介绍某个方法或属性,则可以忽略该方法或属性。

5.1.1. Event-Related Fallbacks
5.1.1. 事件相关回退
   +----------------+--------------------------------------------------+
   | Method         | Fallback                                         |
   +----------------+--------------------------------------------------+
   | PUBLISH        | Required                                         |
   | REQUEST        | PUBLISH                                          |
   | REPLY          | Required                                         |
   | ADD            | Required if recurrences supported; otherwise,    |
   |                | reply with a REQUEST-STATUS "2.8; Success,       |
   |                | repeating event ignored.  Scheduled as a single  |
   |                | component", and schedule as a single component.  |
   | CANCEL         | Required                                         |
   | REFRESH        | Required                                         |
   | COUNTER        | Reply with "Not Supported".                      |
   | DECLINECOUNTER | Required if COUNTER is implemented for VEVENTs;  |
   |                | otherwise, reply with "Not Supported".           |
   +----------------+--------------------------------------------------+
        
   +----------------+--------------------------------------------------+
   | Method         | Fallback                                         |
   +----------------+--------------------------------------------------+
   | PUBLISH        | Required                                         |
   | REQUEST        | PUBLISH                                          |
   | REPLY          | Required                                         |
   | ADD            | Required if recurrences supported; otherwise,    |
   |                | reply with a REQUEST-STATUS "2.8; Success,       |
   |                | repeating event ignored.  Scheduled as a single  |
   |                | component", and schedule as a single component.  |
   | CANCEL         | Required                                         |
   | REFRESH        | Required                                         |
   | COUNTER        | Reply with "Not Supported".                      |
   | DECLINECOUNTER | Required if COUNTER is implemented for VEVENTs;  |
   |                | otherwise, reply with "Not Supported".           |
   +----------------+--------------------------------------------------+
        
   +-----------------+-------------------------------------------------+
   | iCalendar       | Fallback                                        |
   | Property        |                                                 |
   +-----------------+-------------------------------------------------+
   | CALSCALE        | Ignore - assume GREGORIAN.                      |
   | PRODID          | Ignore                                          |
   | METHOD          | Required as described in the Method list above. |
   | VERSION         | Ignore                                          |
   +-----------------+-------------------------------------------------+
        
   +-----------------+-------------------------------------------------+
   | iCalendar       | Fallback                                        |
   | Property        |                                                 |
   +-----------------+-------------------------------------------------+
   | CALSCALE        | Ignore - assume GREGORIAN.                      |
   | PRODID          | Ignore                                          |
   | METHOD          | Required as described in the Method list above. |
   | VERSION         | Ignore                                          |
   +-----------------+-------------------------------------------------+
        
   +-----------------+-------------------------------------------------+
   | Event-Related   | Fallback                                        |
   | Components      |                                                 |
   +-----------------+-------------------------------------------------+
   | VALARM          | Reply with "Not Supported".                     |
   | VTIMEZONE       | Required if any DateTime value refers to a time |
   |                 | zone.                                           |
   +-----------------+-------------------------------------------------+
        
   +-----------------+-------------------------------------------------+
   | Event-Related   | Fallback                                        |
   | Components      |                                                 |
   +-----------------+-------------------------------------------------+
   | VALARM          | Reply with "Not Supported".                     |
   | VTIMEZONE       | Required if any DateTime value refers to a time |
   |                 | zone.                                           |
   +-----------------+-------------------------------------------------+
        
   +-----------------+-------------------------------------------------+
   | Component       | Fallback                                        |
   | Property        |                                                 |
   +-----------------+-------------------------------------------------+
   | ATTACH          | Ignore                                          |
   | ATTENDEE        | Required if METHOD is REQUEST; otherwise,       |
   |                 | ignore.                                         |
   | CATEGORIES      | Ignore                                          |
   | CLASS           | Ignore                                          |
   | COMMENT         | Ignore                                          |
   | COMPLETED       | Ignore                                          |
   | CONTACT         | Ignore                                          |
   | CREATED         | Ignore                                          |
   | DESCRIPTION     | Ignore                                          |
   | DURATION        | Required                                        |
   | DTSTAMP         | Required                                        |
   | DTSTART         | Required                                        |
   | DTEND           | Required                                        |
   | EXDATE          | Ignore                                          |
   | GEO             | Ignore                                          |
   | LAST-MODIFIED   | Ignore                                          |
   | LOCATION        | Required                                        |
   | ORGANIZER       | Required if METHOD is REQUEST; otherwise,       |
   |                 | ignore.                                         |
   | PRIORITY        | Ignore                                          |
   | RELATED-TO      | Ignore                                          |
   | RDATE           | Ignore                                          |
   | RRULE           | Ignore - assume the first instance occurs on    |
   |                 | the DTSTART property.  If implemented,          |
   |                 | VTIMEZONE MUST also be implemented.             |
   | RECURRENCE-ID   | Required if RRULE is implemented; otherwise,    |
   |                 | ignore.                                         |
   | REQUEST-STATUS  | Required                                        |
   | RESOURCES       | Ignore                                          |
   | SEQUENCE        | Required                                        |
   | STATUS          | Ignore                                          |
   | SUMMARY         | Ignore                                          |
   | TRANSP          | Required if FREEBUSY is implemented; otherwise, |
   |                 | ignore.                                         |
   | URL             | Ignore                                          |
   | UID             | Required                                        |
   | X-              | Ignore                                          |
   +-----------------+-------------------------------------------------+
        
   +-----------------+-------------------------------------------------+
   | Component       | Fallback                                        |
   | Property        |                                                 |
   +-----------------+-------------------------------------------------+
   | ATTACH          | Ignore                                          |
   | ATTENDEE        | Required if METHOD is REQUEST; otherwise,       |
   |                 | ignore.                                         |
   | CATEGORIES      | Ignore                                          |
   | CLASS           | Ignore                                          |
   | COMMENT         | Ignore                                          |
   | COMPLETED       | Ignore                                          |
   | CONTACT         | Ignore                                          |
   | CREATED         | Ignore                                          |
   | DESCRIPTION     | Ignore                                          |
   | DURATION        | Required                                        |
   | DTSTAMP         | Required                                        |
   | DTSTART         | Required                                        |
   | DTEND           | Required                                        |
   | EXDATE          | Ignore                                          |
   | GEO             | Ignore                                          |
   | LAST-MODIFIED   | Ignore                                          |
   | LOCATION        | Required                                        |
   | ORGANIZER       | Required if METHOD is REQUEST; otherwise,       |
   |                 | ignore.                                         |
   | PRIORITY        | Ignore                                          |
   | RELATED-TO      | Ignore                                          |
   | RDATE           | Ignore                                          |
   | RRULE           | Ignore - assume the first instance occurs on    |
   |                 | the DTSTART property.  If implemented,          |
   |                 | VTIMEZONE MUST also be implemented.             |
   | RECURRENCE-ID   | Required if RRULE is implemented; otherwise,    |
   |                 | ignore.                                         |
   | REQUEST-STATUS  | Required                                        |
   | RESOURCES       | Ignore                                          |
   | SEQUENCE        | Required                                        |
   | STATUS          | Ignore                                          |
   | SUMMARY         | Ignore                                          |
   | TRANSP          | Required if FREEBUSY is implemented; otherwise, |
   |                 | ignore.                                         |
   | URL             | Ignore                                          |
   | UID             | Required                                        |
   | X-              | Ignore                                          |
   +-----------------+-------------------------------------------------+
        
5.1.2. Free/Busy-Related Fallbacks
5.1.2. 忙/闲相关回退
   +---------+---------------------------------------------------------+
   | Method  | Fallback                                                |
   +---------+---------------------------------------------------------+
   | PUBLISH | Required if freebusy lookups are supported; otherwise,  |
   |         | reply with a REQUEST-STATUS "3.14; Unsupported          |
   |         | capability".                                            |
   | REQUEST | Required if freebusy lookups are supported; otherwise,  |
   |         | reply with a REQUEST-STATUS "3.14; Unsupported          |
   |         | capability".                                            |
   | REPLY   | Required if freebusy lookups are supported; otherwise,  |
   |         | reply with a REQUEST-STATUS "3.14; Unsupported          |
   |         | capability".                                            |
   +---------+---------------------------------------------------------+
        
   +---------+---------------------------------------------------------+
   | Method  | Fallback                                                |
   +---------+---------------------------------------------------------+
   | PUBLISH | Required if freebusy lookups are supported; otherwise,  |
   |         | reply with a REQUEST-STATUS "3.14; Unsupported          |
   |         | capability".                                            |
   | REQUEST | Required if freebusy lookups are supported; otherwise,  |
   |         | reply with a REQUEST-STATUS "3.14; Unsupported          |
   |         | capability".                                            |
   | REPLY   | Required if freebusy lookups are supported; otherwise,  |
   |         | reply with a REQUEST-STATUS "3.14; Unsupported          |
   |         | capability".                                            |
   +---------+---------------------------------------------------------+
        
   +-----------------+-------------------------------------------------+
   | iCalendar       | Fallback                                        |
   | Property        |                                                 |
   +-----------------+-------------------------------------------------+
   | CALSCALE        | Ignore - assume GREGORIAN.                      |
   | PRODID          | Ignore                                          |
   | METHOD          | Required as described in the Method list above. |
   | VERSION         | Ignore                                          |
   +-----------------+-------------------------------------------------+
        
   +-----------------+-------------------------------------------------+
   | iCalendar       | Fallback                                        |
   | Property        |                                                 |
   +-----------------+-------------------------------------------------+
   | CALSCALE        | Ignore - assume GREGORIAN.                      |
   | PRODID          | Ignore                                          |
   | METHOD          | Required as described in the Method list above. |
   | VERSION         | Ignore                                          |
   +-----------------+-------------------------------------------------+
        
   +-----------------+-------------------------------------------------+
   | Component       | Fallback                                        |
   | Property        |                                                 |
   +-----------------+-------------------------------------------------+
   | ATTENDEE        | Required if METHOD is REQUEST; otherwise,       |
   |                 | ignore.                                         |
   | COMMENT         | Ignore                                          |
   | CONTACT         | Ignore                                          |
   | DTEND           | Required                                        |
   | DTSTAMP         | Required                                        |
   | DTSTART         | Required                                        |
   | DURATION        | Ignore                                          |
   | FREEBUSY        | Required                                        |
   | ORGANIZER       | Required if METHOD is REQUEST; otherwise,       |
   |                 | ignore.                                         |
   | REQUEST-STATUS  | Ignore                                          |
   | UID             | Required                                        |
   | URL             | Ignore                                          |
   | X-              | Ignore                                          |
   +-----------------+-------------------------------------------------+
        
   +-----------------+-------------------------------------------------+
   | Component       | Fallback                                        |
   | Property        |                                                 |
   +-----------------+-------------------------------------------------+
   | ATTENDEE        | Required if METHOD is REQUEST; otherwise,       |
   |                 | ignore.                                         |
   | COMMENT         | Ignore                                          |
   | CONTACT         | Ignore                                          |
   | DTEND           | Required                                        |
   | DTSTAMP         | Required                                        |
   | DTSTART         | Required                                        |
   | DURATION        | Ignore                                          |
   | FREEBUSY        | Required                                        |
   | ORGANIZER       | Required if METHOD is REQUEST; otherwise,       |
   |                 | ignore.                                         |
   | REQUEST-STATUS  | Ignore                                          |
   | UID             | Required                                        |
   | URL             | Ignore                                          |
   | X-              | Ignore                                          |
   +-----------------+-------------------------------------------------+
        
5.1.3. To-Do-Related Fallbacks
5.1.3. 做相关的回退
   +----------------+--------------------------------------------------+
   | Method         | Fallback                                         |
   +----------------+--------------------------------------------------+
   | PUBLISH        | Required                                         |
   | REQUEST        | PUBLISH                                          |
   | REPLY          | Required                                         |
   | ADD            | Required if recurrences supported; otherwise,    |
   |                | reply with a REQUEST-STATUS "2.8; Success,       |
   |                | repeating event ignored.  Scheduled as a single  |
   |                | component", and schedule as a single component.  |
   | CANCEL         | Required                                         |
   | REFRESH        | Required                                         |
   | COUNTER        | Reply with "Not Supported".                      |
   | DECLINECOUNTER | Required if COUNTER for VTODOs is implemented;   |
   |                | otherwise, reply with "Not Supported".           |
   +----------------+--------------------------------------------------+
        
   +----------------+--------------------------------------------------+
   | Method         | Fallback                                         |
   +----------------+--------------------------------------------------+
   | PUBLISH        | Required                                         |
   | REQUEST        | PUBLISH                                          |
   | REPLY          | Required                                         |
   | ADD            | Required if recurrences supported; otherwise,    |
   |                | reply with a REQUEST-STATUS "2.8; Success,       |
   |                | repeating event ignored.  Scheduled as a single  |
   |                | component", and schedule as a single component.  |
   | CANCEL         | Required                                         |
   | REFRESH        | Required                                         |
   | COUNTER        | Reply with "Not Supported".                      |
   | DECLINECOUNTER | Required if COUNTER for VTODOs is implemented;   |
   |                | otherwise, reply with "Not Supported".           |
   +----------------+--------------------------------------------------+
        
   +-----------------+-------------------------------------------------+
   | iCalendar       | Fallback                                        |
   | Property        |                                                 |
   +-----------------+-------------------------------------------------+
   | CALSCALE        | Ignore - assume GREGORIAN.                      |
   | PRODID          | Ignore                                          |
   | METHOD          | Required as described in the Method list above. |
   | VERSION         | Ignore                                          |
   +-----------------+-------------------------------------------------+
        
   +-----------------+-------------------------------------------------+
   | iCalendar       | Fallback                                        |
   | Property        |                                                 |
   +-----------------+-------------------------------------------------+
   | CALSCALE        | Ignore - assume GREGORIAN.                      |
   | PRODID          | Ignore                                          |
   | METHOD          | Required as described in the Method list above. |
   | VERSION         | Ignore                                          |
   +-----------------+-------------------------------------------------+
        
   +-----------------+-------------------------------------------------+
   | To-Do-Related   | Fallback                                        |
   | Components      |                                                 |
   +-----------------+-------------------------------------------------+
   | VALARM          | Reply with "Not Supported".                     |
   | VTIMEZONE       | Required if any DateTime value refers to a time |
   |                 | zone.                                           |
   +-----------------+-------------------------------------------------+
        
   +-----------------+-------------------------------------------------+
   | To-Do-Related   | Fallback                                        |
   | Components      |                                                 |
   +-----------------+-------------------------------------------------+
   | VALARM          | Reply with "Not Supported".                     |
   | VTIMEZONE       | Required if any DateTime value refers to a time |
   |                 | zone.                                           |
   +-----------------+-------------------------------------------------+
        
   +------------------+------------------------------------------------+
   | Component        | Fallback                                       |
   | Property         |                                                |
   +------------------+------------------------------------------------+
   | ATTACH           | Ignore                                         |
   | ATTENDEE         | Required if METHOD is REQUEST; otherwise,      |
   |                  | ignore.                                        |
   | CATEGORIES       | Ignore                                         |
   | CLASS            | Ignore                                         |
   | COMMENT          | Ignore                                         |
   | COMPLETED        | Required                                       |
   | CONTACT          | Ignore                                         |
   | CREATED          | Ignore                                         |
   | DESCRIPTION      | Required if METHOD is REQUEST; otherwise,      |
   |                  | ignore.                                        |
   | DUE              | Required                                       |
   | DURATION         | Required                                       |
   | DTSTAMP          | Required                                       |
   | DTSTART          | Required                                       |
   | EXDATE           | Ignore - reply with "Not Supported".           |
   | LAST-MODIFIED    | Ignore                                         |
   | LOCATION         | Ignore                                         |
   | ORGANIZER        | Required if METHOD is REQUEST; otherwise,      |
   |                  | ignore.                                        |
   | PERCENT-COMPLETE | Ignore                                         |
   | PRIORITY         | Required                                       |
   | RECURRENCE-ID    | Required if RRULE is implemented; otherwise,   |
   |                  | ignore.                                        |
   | RELATED-TO       | Ignore                                         |
   | REQUEST-STATUS   | Ignore                                         |
   | RDATE            | Ignore                                         |
   | RRULE            | Ignore - assume the first instance occurs on   |
   |                  | the DTSTART property.  If implemented,         |
   |                  | VTIMEZONE MUST also be implemented.            |
   | RESOURCES        | Ignore                                         |
   | SEQUENCE         | Required                                       |
   | STATUS           | Required                                       |
   | SUMMARY          | Ignore                                         |
   | URL              | Ignore                                         |
   | UID              | Required                                       |
   | X-               | Ignore                                         |
   +------------------+------------------------------------------------+
        
   +------------------+------------------------------------------------+
   | Component        | Fallback                                       |
   | Property         |                                                |
   +------------------+------------------------------------------------+
   | ATTACH           | Ignore                                         |
   | ATTENDEE         | Required if METHOD is REQUEST; otherwise,      |
   |                  | ignore.                                        |
   | CATEGORIES       | Ignore                                         |
   | CLASS            | Ignore                                         |
   | COMMENT          | Ignore                                         |
   | COMPLETED        | Required                                       |
   | CONTACT          | Ignore                                         |
   | CREATED          | Ignore                                         |
   | DESCRIPTION      | Required if METHOD is REQUEST; otherwise,      |
   |                  | ignore.                                        |
   | DUE              | Required                                       |
   | DURATION         | Required                                       |
   | DTSTAMP          | Required                                       |
   | DTSTART          | Required                                       |
   | EXDATE           | Ignore - reply with "Not Supported".           |
   | LAST-MODIFIED    | Ignore                                         |
   | LOCATION         | Ignore                                         |
   | ORGANIZER        | Required if METHOD is REQUEST; otherwise,      |
   |                  | ignore.                                        |
   | PERCENT-COMPLETE | Ignore                                         |
   | PRIORITY         | Required                                       |
   | RECURRENCE-ID    | Required if RRULE is implemented; otherwise,   |
   |                  | ignore.                                        |
   | RELATED-TO       | Ignore                                         |
   | REQUEST-STATUS   | Ignore                                         |
   | RDATE            | Ignore                                         |
   | RRULE            | Ignore - assume the first instance occurs on   |
   |                  | the DTSTART property.  If implemented,         |
   |                  | VTIMEZONE MUST also be implemented.            |
   | RESOURCES        | Ignore                                         |
   | SEQUENCE         | Required                                       |
   | STATUS           | Required                                       |
   | SUMMARY          | Ignore                                         |
   | URL              | Ignore                                         |
   | UID              | Required                                       |
   | X-               | Ignore                                         |
   +------------------+------------------------------------------------+
        
5.1.4. Journal-Related Fallbacks
5.1.4. 与日志相关的回退
   +---------+---------------------------------------------------------+
   | Method  | Fallback                                                |
   +---------+---------------------------------------------------------+
   | PUBLISH | Implementations MAY ignore the METHOD type.  The        |
   |         | REQUEST-STATUS "3.14; Unsupported capability" MUST be   |
   |         | returned.                                               |
   | ADD     | Implementations MAY ignore the METHOD type.  The        |
   |         | REQUEST-STATUS "3.14; Unsupported capability" MUST be   |
   |         | returned.                                               |
   | CANCEL  | Implementations MAY ignore the METHOD type.  The        |
   |         | REQUEST-STATUS "3.14; Unsupported capability" MUST be   |
   |         | returned.                                               |
   +---------+---------------------------------------------------------+
        
   +---------+---------------------------------------------------------+
   | Method  | Fallback                                                |
   +---------+---------------------------------------------------------+
   | PUBLISH | Implementations MAY ignore the METHOD type.  The        |
   |         | REQUEST-STATUS "3.14; Unsupported capability" MUST be   |
   |         | returned.                                               |
   | ADD     | Implementations MAY ignore the METHOD type.  The        |
   |         | REQUEST-STATUS "3.14; Unsupported capability" MUST be   |
   |         | returned.                                               |
   | CANCEL  | Implementations MAY ignore the METHOD type.  The        |
   |         | REQUEST-STATUS "3.14; Unsupported capability" MUST be   |
   |         | returned.                                               |
   +---------+---------------------------------------------------------+
        
   +-----------------+-------------------------------------------------+
   | iCalendar       | Fallback                                        |
   | Property        |                                                 |
   +-----------------+-------------------------------------------------+
   | CALSCALE        | Ignore - assume GREGORIAN.                      |
   | PRODID          | Ignore                                          |
   | METHOD          | Required as described in the Method list above. |
   | VERSION         | Ignore                                          |
   +-----------------+-------------------------------------------------+
        
   +-----------------+-------------------------------------------------+
   | iCalendar       | Fallback                                        |
   | Property        |                                                 |
   +-----------------+-------------------------------------------------+
   | CALSCALE        | Ignore - assume GREGORIAN.                      |
   | PRODID          | Ignore                                          |
   | METHOD          | Required as described in the Method list above. |
   | VERSION         | Ignore                                          |
   +-----------------+-------------------------------------------------+
        
   +-----------------+-------------------------------------------------+
   | Journal-Related | Fallback                                        |
   | Components      |                                                 |
   +-----------------+-------------------------------------------------+
   | VTIMEZONE       | Required if any DateTime value refers to a time |
   |                 | zone.                                           |
   +-----------------+-------------------------------------------------+
        
   +-----------------+-------------------------------------------------+
   | Journal-Related | Fallback                                        |
   | Components      |                                                 |
   +-----------------+-------------------------------------------------+
   | VTIMEZONE       | Required if any DateTime value refers to a time |
   |                 | zone.                                           |
   +-----------------+-------------------------------------------------+
        
   +-----------------+-------------------------------------------------+
   | Component       | Fallback                                        |
   | Property        |                                                 |
   +-----------------+-------------------------------------------------+
   | ATTACH          | Ignore                                          |
   | ATTENDEE        | Ignore                                          |
   | CATEGORIES      | Ignore                                          |
   | CLASS           | Ignore                                          |
   | COMMENT         | Ignore                                          |
   | CONTACT         | Ignore                                          |
   | CREATED         | Ignore                                          |
   | DESCRIPTION     | Ignore                                          |
   | DTSTAMP         | Required                                        |
   | DTSTART         | Required                                        |
   | EXDATE          | Ignore                                          |
   | LAST-MODIFIED   | Ignore                                          |
   | ORGANIZER       | Ignore                                          |
   | RECURRENCE-ID   | Required if RRULE is implemented; otherwise,    |
   |                 | ignore.                                         |
   | RELATED-TO      | Ignore                                          |
   | RDATE           | Ignore                                          |
   | RRULE           | Ignore - assume the first instance occurs on    |
   |                 | the DTSTART property.  If implemented,          |
   |                 | VTIMEZONE MUST also be implemented.             |
   | SEQUENCE        | Required                                        |
   | STATUS          | Ignore                                          |
   | SUMMARY         | Required                                        |
   | URL             | Ignore                                          |
   | UID             | Required                                        |
   | X-              | Ignore                                          |
   +-----------------+-------------------------------------------------+
        
   +-----------------+-------------------------------------------------+
   | Component       | Fallback                                        |
   | Property        |                                                 |
   +-----------------+-------------------------------------------------+
   | ATTACH          | Ignore                                          |
   | ATTENDEE        | Ignore                                          |
   | CATEGORIES      | Ignore                                          |
   | CLASS           | Ignore                                          |
   | COMMENT         | Ignore                                          |
   | CONTACT         | Ignore                                          |
   | CREATED         | Ignore                                          |
   | DESCRIPTION     | Ignore                                          |
   | DTSTAMP         | Required                                        |
   | DTSTART         | Required                                        |
   | EXDATE          | Ignore                                          |
   | LAST-MODIFIED   | Ignore                                          |
   | ORGANIZER       | Ignore                                          |
   | RECURRENCE-ID   | Required if RRULE is implemented; otherwise,    |
   |                 | ignore.                                         |
   | RELATED-TO      | Ignore                                          |
   | RDATE           | Ignore                                          |
   | RRULE           | Ignore - assume the first instance occurs on    |
   |                 | the DTSTART property.  If implemented,          |
   |                 | VTIMEZONE MUST also be implemented.             |
   | SEQUENCE        | Required                                        |
   | STATUS          | Ignore                                          |
   | SUMMARY         | Required                                        |
   | URL             | Ignore                                          |
   | UID             | Required                                        |
   | X-              | Ignore                                          |
   +-----------------+-------------------------------------------------+
        
5.2. Latency Issues
5.2. 延迟问题

With a store-and-forward transport, it is possible for events to arrive out of sequence. That is, a "CANCEL" method may be received prior to receiving the associated "REQUEST" for the calendar component. This section discusses a few of these scenarios.

使用存储转发传输,事件可能会无序到达。也就是说,可以在接收日历组件的相关“请求”之前接收“取消”方法。本节讨论其中一些场景。

5.2.1. Cancellation of an Unknown Calendar Component
5.2.1. 取消未知日历组件

When a "CANCEL" method is received before the original "REQUEST" method, the calendar will be unable to correlate the "UID" property of the cancellation with an existing calendar component. It is suggested that messages that cannot be correlated and that also contain non-zero sequence numbers be held and not discarded. Implementations MAY age them out if no other messages arrive with the same "UID" property value and a lower sequence number.

当在原始“请求”方法之前收到“取消”方法时,日历将无法将取消的“UID”属性与现有日历组件关联。建议保留不能关联的消息以及包含非零序编号的消息,而不要丢弃这些消息。如果没有其他具有相同“UID”属性值和较低序列号的消息到达,则实现可能会使它们过时。

5.2.2. Unexpected Reply from an Unknown Delegate
5.2.2. 来自未知代理的意外答复

When an "Attendee" delegates an item to another CU, they MUST send a "REPLY" method to the "Organizer" using the "ATTENDEE" properties to indicate that the request was delegated and to whom. Hence, it is possible for an "Organizer" to receive a "REPLY" from a CU not listed as one of the original "Attendees". The resolution is left to the implementation, but it is expected that the calendaring software will either accept the reply or hold it until the related "REPLY" method is received from the "Delegator". If the version of the "REPLY" method is out of date, the "Organizer" SHOULD treat the message as a "REFRESH" message and update the "Delegate" with the correct version, provided that delegation to that delegate is acceptable.

当“与会者”将一个项目委托给另一个CU时,他们必须使用“与会者”属性向“组织者”发送“答复”方法,以指示请求已被委托以及委托给谁。因此,“组织者”可能会收到未列为原始“与会者”之一的CU的“回复”。解决方案留给实现,但预计日历软件将接受答复或保留答复,直到从“委托人”处收到相关的“答复”方法。如果“回复”方法的版本已过期,“组织者”应将邮件视为“刷新”邮件,并使用正确的版本更新“代表”,前提是可以接受对该代表的授权。

5.3. Sequence Number
5.3. 序列号

Under some conditions, a CUA may receive requests and replies with the same "SEQUENCE" property value. The "DTSTAMP" property is utilized as a tie-breaker when two items with the same "SEQUENCE" property value are evaluated.

在某些情况下,CUA可能接收具有相同“序列”属性值的请求和响应。当评估具有相同“序列”属性值的两个项目时,“DTSTAMP”属性用作联系断路器。

6. Security Considerations
6. 安全考虑

iTIP is an abstract transport protocol that will be bound to a real-time transport, a store-and-forward transport, and perhaps other transports. The transport protocol will be responsible for providing facilities for authentication and encryption using standard Internet mechanisms that are mutually understood between the sender and receiver.

iTIP是一个抽象的传输协议,它将绑定到实时传输、存储转发传输以及其他传输。传输协议将负责使用发送方和接收方相互理解的标准互联网机制提供认证和加密设施。

6.1. Security Threats
6.1. 安全威胁
6.1.1. Spoofing the Organizer
6.1.1. 欺骗组织者

In iTIP, the "Organizer" (or someone working on the "Organizer's" behalf) is the only person authorized to make changes to an existing "VEVENT", "VTODO", or "VJOURNAL" calendar component and republish it or redistribute updates to the "Attendees". An iCalendar object that maliciously changes or cancels an existing "VEVENT", "VTODO", or "VJOURNAL" calendar component may be constructed by someone other than the "Organizer" and republished or sent to the "Attendees".

在iTIP中,“组织者”(或代表“组织者”工作的人员)是唯一有权更改现有“VEVENT”、“VTODO”或“VJORY”日历组件并重新发布或向“与会者”重新分发更新的人员。恶意更改或取消现有“VEVENT”、“VTODO”或“VJOURNAL”日历组件的iCalendar对象可能由“组织者”以外的人构建,并重新发布或发送给“与会者”。

6.1.2. Spoofing the Attendee
6.1.2. 欺骗与会者

In iTIP, an "Attendee" of a "VEVENT" or "VTODO" calendar component (or someone working on the "Attendee's" behalf) is the only person authorized to update any parameter associated with their "ATTENDEE"

在iTIP中,“VEVENT”或“VTODO”日历组件的“与会者”(或代表“与会者”工作的人员)是唯一有权更新与其“与会者”相关的任何参数的人员

property and send it to the "Organizer". An iCalendar object that maliciously changes the "ATTENDEE" parameters may be constructed by someone other than the real "Attendee" and sent to the "Organizer".

属性并将其发送给“组织者”。恶意更改“ATTENDEE”参数的iCalendar对象可能由真正的“ATTENDEE”以外的人构造并发送给“组织者”。

6.1.3. Unauthorized Replacement of the Organizer
6.1.3. 未经授权更换主办方

There will be circumstances when "Attendees" of an event or to-do decide, using out-of-band mechanisms, that the "Organizer" must be replaced. When the new "Organizer" sends out the updated "VEVENT" or "VTODO", the "Attendee's" CUA will detect that the "Organizer" has been changed, but it has no way of knowing whether or not the change was mutually agreed upon.

在某些情况下,活动或待办事项的“与会者”使用带外机制决定必须更换“组织者”。当新的“组织者”发出更新的“VEVENT”或“VTODO”时,“与会者”CUA将检测到“组织者”已被更改,但无法知道更改是否得到双方同意。

6.1.4. Eavesdropping and Data Integrity
6.1.4. 窃听和数据完整性

The iCalendar object is constructed with human-readable clear text. Any information contained in an iCalendar object may be read and/or changed by unauthorized persons while the object is in transit.

iCalendar对象是用人类可读的明文构建的。iCalendar对象中包含的任何信息都可能在对象传输过程中被未经授权的人员读取和/或更改。

6.1.5. Flooding a Calendar
6.1.5. 淹没日历

Implementations could provide a means to automatically incorporate "REQUEST" methods into a calendar. This presents the opportunity for a calendar to be flooded with requests, which effectively blocks all the calendar's free time.

实现可以提供一种将“请求”方法自动合并到日历中的方法。这为日历提供了大量请求的机会,从而有效地阻止了日历的所有空闲时间。

6.1.6. Unauthorized REFRESH Requests
6.1.6. 未经授权的刷新请求

It is possible for an "Organizer" to receive a "REFRESH" request from someone who is not an "Attendee" of an event or to-do. Only "Attendees" of an event or to-do are authorized to receive replies to "REFRESH" requests. Replying to such requests to anyone who is not an "Attendee" may be a security problem.

“组织者”可能会收到来自非活动或待办事项“参与者”的“刷新”请求。只有活动或待办事项的“与会者”才有权接收对“刷新”请求的答复。向非“与会者”的任何人回复此类请求可能会带来安全问题。

6.2. Recommendations
6.2. 建议

For an application where the information is sensitive or critical and the network is subject to a high probability of attack, iTIP transactions SHOULD be encrypted and authenticated. This helps mitigate the threats of spoofing, eavesdropping, and malicious changes in transit.

对于信息敏感或关键且网络受到高概率攻击的应用程序,应加密和验证iTIP事务。这有助于减轻欺骗、窃听和传输过程中恶意更改的威胁。

6.2.1. Securing iTIP transactions
6.2.1. 保护iTIP事务

iTIP transport bindings MUST provide a mechanism to enable authentication of the sender's identity as well as privacy and integrity of the data being transmitted. This allows the receiver of a signed iCalendar object to verify the identity of the sender. This

iTIP传输绑定必须提供一种机制,以实现对发送者身份的身份验证以及所传输数据的隐私性和完整性。这允许签名iCalendar对象的接收方验证发送方的身份。这

sender may then be correlated to an "ATTENDEE" property in the iCalendar object. If the correlation is made and the sender is authorized to make the requested change or update, then the operation may proceed. It also allows the message to be encrypted to prevent unauthorized reading of the message contents in transit. iTIP transport binding documents describe this process in detail.

然后,发件人可能与iCalendar对象中的“ATTENDEE”属性关联。如果进行了关联,并且发送方有权进行请求的更改或更新,则操作可以继续。它还允许对消息进行加密,以防止在传输过程中未经授权读取消息内容。iTIP传输绑定文档详细描述了此过程。

6.2.2. Implementation Controls
6.2.2. 实施控制

The threat of unauthorized replacement of the "Organizer" SHOULD be mitigated by a calendar system that uses this protocol by providing controls or alerts that make "Calendar Users" aware of such "Organizer" changes and allowing them to decide whether or not the request should be honored.

应通过使用此协议的日历系统减轻未经授权更换“组织者”的威胁,该系统提供控制或警报,使“日历用户”了解此类“组织者”更改,并允许他们决定是否应满足请求。

The threat of flooding a calendar SHOULD be mitigated by a calendar system that uses this protocol by providing controls that may be used to limit the acceptable sources for iTIP transactions, and perhaps the size of messages and volume of traffic, by source.

使用此协议的日历系统应通过提供可用于限制iTIP事务的可接受源的控制,以及可能的消息大小和通信量(按源)来减轻淹没日历的威胁。

The threat of unauthorized "REFRESH" requests SHOULD be mitigated by a calendar system that uses this protocol by providing controls or alerts that allow "Calendar Users" to decide whether or not the request should be honored. An implementation MAY decide to maintain, for audit or historical purposes, "Calendar Users" who were part of an "Attendee" list and who were subsequently uninvited. Similar controls or alerts should be provided when a "REFRESH" request is received from these "Calendar Users" as well.

未经授权的“刷新”请求的威胁应通过使用此协议的日历系统来减轻,该系统提供控制或警报,允许“日历用户”决定是否应执行该请求。出于审核或历史目的,实施可能决定维护“与会者”列表中的“日历用户”,这些用户随后未被邀请。当收到来自这些“日历用户”的“刷新”请求时,也应提供类似的控制或警报。

6.2.3. Access Controls and Filtering
6.2.3. 访问控制和过滤

In many environments, there could be restrictions on who is allowed to schedule with whom and who the allowed delegates are for particular "Calendar Users".

在许多环境中,对于特定“日历用户”,可能会限制允许谁与谁一起计划,以及允许哪些代理。

iTIP transport bindings SHOULD provide mechanisms for implementing access controls or filtering to ensure iTIP transactions only take place between authorized "Calendar Users". That would include preventing one "Calendar User" from scheduling with another or one "Calendar User" delegating to another.

iTIP传输绑定应提供实现访问控制或过滤的机制,以确保iTIP事务仅在授权的“日历用户”之间发生。这将包括防止一个“日历用户”与另一个或一个“日历用户”委派给另一个进行日程安排。

6.3. Privacy Issues
6.3. 隐私问题

The "Organizer" might want to keep "Attendees" from knowing which other "Attendees" are participating in an event or to-do. The "Organizer" has the choice of sending single iTIP messages with a full list of "Attendees" or sending iTIP messages to each "Attendee" with only that "Attendee" listed.

“组织者”可能不想让“与会者”知道哪些其他“与会者”正在参加活动或待办事项。“组织者”可以选择发送包含完整“与会者”列表的单个iTIP消息,或向每个“与会者”发送仅列出该“与会者”的iTIP消息。

7. IANA Considerations
7. IANA考虑
7.1. Registration Template for REQUEST-STATUS Values
7.1. 请求状态值的注册模板

This specification updates [RFC5545] by adding a "REQUEST-STATUS" value registry to the iCalendar Elements registry.

本规范通过向iCalendar元素注册表添加“请求状态”值注册表来更新[RFC5545]。

A "REQUEST-STATUS" value is defined by completing the following template.

通过完成以下模板定义“请求状态”值。

Status Code: Hierarchical, numeric return status code, following the rules defined in Section 3.8.8.3 of [RFC5545].

状态代码:分层数字返回状态代码,遵循[RFC5545]第3.8.8.3节中定义的规则。

Status Description: Textual status description. A short but clear description of the error.

状态描述:文本状态描述。对错误的简短但清晰的描述。

Status Exception Data: Textual exception data. A short but clear description of what might appear in this field.

状态异常数据:文本异常数据。该字段中可能出现的内容的简短但清晰的描述。

Description: Describe the underlying cause for this status code value.

描述:描述此状态代码值的根本原因。

7.2. Additions to iCalendar METHOD Registry
7.2. 添加到iCalendar方法注册表

This document defines the following values for the iCalendar "METHOD" property, using the values template from Section 8.2.6 of [RFC5545]. These should be added to the Methods Registry defined in Section 8.3.12 of [RFC5545]:

本文件使用[RFC5545]第8.2.6节中的值模板为iCalendar“方法”属性定义了以下值。这些应添加到[RFC5545]第8.3.12节中定义的方法注册表中:

7.2.1. METHOD:PUBLISH
7.2.1. 方法:发布

Value: PUBLISH

价值:发布

Purpose: Standard iTIP "METHOD" value.

目的:标准iTIP“方法”值。

Conformance: Only used with the "METHOD" property.

一致性:仅与“方法”属性一起使用。

Examples: See this RFC.

示例:参见此RFC。

7.2.2. METHOD:REQUEST
7.2.2. 方法:请求

Value: REQUEST

值:请求

Purpose: Standard iTIP "METHOD" value.

目的:标准iTIP“方法”值。

Conformance: Only used with the "METHOD" property.

一致性:仅与“方法”属性一起使用。

Examples: See this RFC.

示例:参见此RFC。

7.2.3. METHOD:REPLY
7.2.3. 方法:答复

Value: REPLY

价值:回复

Purpose: Standard iTIP "METHOD" value.

目的:标准iTIP“方法”值。

Conformance: Only used with the "METHOD" property.

一致性:仅与“方法”属性一起使用。

Examples: See this RFC.

示例:参见此RFC。

7.2.4. METHOD:ADD
7.2.4. 方法:添加

Value: ADD

价值:增加

Purpose: Standard iTIP "METHOD" value.

目的:标准iTIP“方法”值。

Conformance: Only used with the "METHOD" property.

一致性:仅与“方法”属性一起使用。

Examples: See this RFC.

示例:参见此RFC。

7.2.5. METHOD:CANCEL
7.2.5. 方法:取消

Value: CANCEL

值:取消

Purpose: Standard iTIP "METHOD" value.

目的:标准iTIP“方法”值。

Conformance: Only used with the "METHOD" property.

一致性:仅与“方法”属性一起使用。

Examples: See this RFC.

示例:参见此RFC。

7.2.6. METHOD:REFRESH
7.2.6. 方法:刷新

Value: REFRESH

值:刷新

Purpose: Standard iTIP "METHOD" value.

目的:标准iTIP“方法”值。

Conformance: Only used with the "METHOD" property.

一致性:仅与“方法”属性一起使用。

Examples: See this RFC.

示例:参见此RFC。

7.2.7. METHOD:COUNTER
7.2.7. 方法:计数器

Value: COUNTER

值:计数器

Purpose: Standard iTIP "METHOD" value.

目的:标准iTIP“方法”值。

Conformance: Only used with the "METHOD" property.

一致性:仅与“方法”属性一起使用。

Examples: See this RFC.

示例:参见此RFC。

7.2.8. METHOD:DECLINECOUNTER
7.2.8. 方法:下线计数器

Value: DECLINECOUNTER

值:下线计数器

Purpose: Standard iTIP "METHOD" value.

目的:标准iTIP“方法”值。

Conformance: Only used with the "METHOD" property.

一致性:仅与“方法”属性一起使用。

Examples: See this RFC.

示例:参见此RFC。

7.3. REQUEST-STATUS Value Registry
7.3. 请求状态值注册表

New "REQUEST-STATUS" values can be registered using the process described in Section 8.2.1 of [RFC5545].

可以使用[RFC5545]第8.2.1节所述的过程注册新的“请求状态”值。

The following table is to be used to initialize the "REQUEST-STATUS" value registry.

下表用于初始化“请求状态”值注册表。

           +-------------+---------+--------------------------+
           | Status Code | Status  | Reference                |
           +-------------+---------+--------------------------+
           | 2.0         | Current | RFC 5546, Section 3.6.1  |
           | 2.1         | Current | RFC 5546, Section 3.6.2  |
           | 2.2         | Current | RFC 5546, Section 3.6.3  |
           | 2.3         | Current | RFC 5546, Section 3.6.4  |
           | 2.4         | Current | RFC 5546, Section 3.6.5  |
           | 2.5         | Current | RFC 5546, Section 3.6.6  |
           | 2.6         | Current | RFC 5546, Section 3.6.7  |
           | 2.7         | Current | RFC 5546, Section 3.6.8  |
           | 2.8         | Current | RFC 5546, Section 3.6.9  |
           | 2.9         | Current | RFC 5546, Section 3.6.10 |
           | 2.10        | Current | RFC 5546, Section 3.6.11 |
           | 2.11        | Current | RFC 5546, Section 3.6.12 |
           | 3.0         | Current | RFC 5546, Section 3.6.13 |
           | 3.1         | Current | RFC 5546, Section 3.6.14 |
           | 3.2         | Current | RFC 5546, Section 3.6.15 |
           | 3.3         | Current | RFC 5546, Section 3.6.16 |
           | 3.4         | Current | RFC 5546, Section 3.6.17 |
           | 3.5         | Current | RFC 5546, Section 3.6.18 |
           | 3.6         | Current | RFC 5546, Section 3.6.19 |
           | 3.7         | Current | RFC 5546, Section 3.6.20 |
           | 3.8         | Current | RFC 5546, Section 3.6.21 |
           | 3.9         | Current | RFC 5546, Section 3.6.22 |
           | 3.10        | Current | RFC 5546, Section 3.6.23 |
           | 3.11        | Current | RFC 5546, Section 3.6.24 |
           | 3.12        | Current | RFC 5546, Section 3.6.25 |
           | 3.13        | Current | RFC 5546, Section 3.6.26 |
           | 3.14        | Current | RFC 5546, Section 3.6.27 |
           | 4.0         | Current | RFC 5546, Section 3.6.28 |
           | 5.0         | Current | RFC 5546, Section 3.6.29 |
           | 5.1         | Current | RFC 5546, Section 3.6.30 |
           | 5.2         | Current | RFC 5546, Section 3.6.31 |
           | 5.3         | Current | RFC 5546, Section 3.6.32 |
           +-------------+---------+--------------------------+
        
           +-------------+---------+--------------------------+
           | Status Code | Status  | Reference                |
           +-------------+---------+--------------------------+
           | 2.0         | Current | RFC 5546, Section 3.6.1  |
           | 2.1         | Current | RFC 5546, Section 3.6.2  |
           | 2.2         | Current | RFC 5546, Section 3.6.3  |
           | 2.3         | Current | RFC 5546, Section 3.6.4  |
           | 2.4         | Current | RFC 5546, Section 3.6.5  |
           | 2.5         | Current | RFC 5546, Section 3.6.6  |
           | 2.6         | Current | RFC 5546, Section 3.6.7  |
           | 2.7         | Current | RFC 5546, Section 3.6.8  |
           | 2.8         | Current | RFC 5546, Section 3.6.9  |
           | 2.9         | Current | RFC 5546, Section 3.6.10 |
           | 2.10        | Current | RFC 5546, Section 3.6.11 |
           | 2.11        | Current | RFC 5546, Section 3.6.12 |
           | 3.0         | Current | RFC 5546, Section 3.6.13 |
           | 3.1         | Current | RFC 5546, Section 3.6.14 |
           | 3.2         | Current | RFC 5546, Section 3.6.15 |
           | 3.3         | Current | RFC 5546, Section 3.6.16 |
           | 3.4         | Current | RFC 5546, Section 3.6.17 |
           | 3.5         | Current | RFC 5546, Section 3.6.18 |
           | 3.6         | Current | RFC 5546, Section 3.6.19 |
           | 3.7         | Current | RFC 5546, Section 3.6.20 |
           | 3.8         | Current | RFC 5546, Section 3.6.21 |
           | 3.9         | Current | RFC 5546, Section 3.6.22 |
           | 3.10        | Current | RFC 5546, Section 3.6.23 |
           | 3.11        | Current | RFC 5546, Section 3.6.24 |
           | 3.12        | Current | RFC 5546, Section 3.6.25 |
           | 3.13        | Current | RFC 5546, Section 3.6.26 |
           | 3.14        | Current | RFC 5546, Section 3.6.27 |
           | 4.0         | Current | RFC 5546, Section 3.6.28 |
           | 5.0         | Current | RFC 5546, Section 3.6.29 |
           | 5.1         | Current | RFC 5546, Section 3.6.30 |
           | 5.2         | Current | RFC 5546, Section 3.6.31 |
           | 5.3         | Current | RFC 5546, Section 3.6.32 |
           +-------------+---------+--------------------------+
        
8. Acknowledgments
8. 致谢

This is an update to the original iTIP document authored by S. Silverberg, S. Mansour, F. Dawson, and R. Hopson.

这是对S.Silverberg、S.Mansour、F.Dawson和R.Hopson编写的原始iTIP文档的更新。

This revision is the product of the Calsify IETF Working Group, and several participants have made important contributions to this specification, including Oliver Block, Bernard Desruisseaux, Mike Douglass, Tim Hare, Ciny Joy, Bruce Kahn, Reinhold Kainhofer, Eliot Lear, Jonathan Lennox, Andy Mabbett, Aki Niemi, John W. Noerenberg II, Robert Ransdell, and Caleb Richardson.

本修订版是Calsify IETF工作组的成果,几位参与者对本规范做出了重要贡献,包括奥利弗·布洛克、伯纳德·德鲁伊斯、迈克·道格拉斯、蒂姆·黑尔、辛尼·乔伊、布鲁斯·卡恩、莱因霍尔德·凯恩霍夫、艾略特·李尔、乔纳森·伦诺克斯、安迪·马贝特、阿基·尼米、约翰·W·诺伦伯格二世、,罗伯特·兰斯戴尔和卡勒布·理查森。

9. References
9. 工具书类
9.1. Normative References
9.1. 规范性引用文件

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。

[RFC2368] Hoffman, P., Masinter, L., and J. Zawinski, "The mailto URL scheme", RFC 2368, July 1998.

[RFC2368]Hoffman,P.,Masinter,L.,和J.Zawinski,“邮件URL方案”,RFC 2368,1998年7月。

[RFC5545] Desruisseaux, B., "Internet Calendaring and Scheduling Core Object Specification (iCalendar)", RFC 5545, September 2009.

[RFC5545]Desruisseaux,B.“互联网日历和调度核心对象规范(iCalendar)”,RFC 55452009年9月。

9.2. Informative References
9.2. 资料性引用

[iMIP] Melnikov, A., Ed., "iCalendar Message-Based Interoperability Protocol (iMIP)", Work in Progress, October 2009.

[iMIP]Melnikov,A.,编辑,“iCalendar基于消息的互操作性协议(iMIP)”,正在进行的工作,2009年10月。

Appendix A. Differences from RFC 2446
附录A.与RFC 2446的差异
A.1. Changed Restrictions
A.1. 更改限制

This specification now defines an allowed combination of "REQUEST-STATUS" codes when multiple iCalendar components are included in an iTIP message.

当iTIP消息中包含多个iCalendar组件时,本规范现在定义了允许的“请求状态”代码组合。

This specification now restricts "RECURRENCE-ID" to only a single occurrence in any one iCalendar component in an iTIP message, as required by [RFC5545].

根据[RFC5545]的要求,本规范现在将“RECURRENCE-ID”限制为iTIP消息中任何一个iCalendar组件中的一次出现。

Changed the "RECURRENCE-ID" entry in the component restriction table to "0 or 1" from "0+", to fall in line with [RFC5545].

将组件限制表中的“RECURRENCE-ID”条目从“0+”更改为“0或1”,以符合[RFC5545]。

Changed the "FREEBUSY" entry in the "VFREEBUSY", "PUBLISH", and "REPLY" restriction tables to "0+" from "1+", to fall in line with [RFC5545].

将“VFREEBUSY”、“PUBLISH”和“REPLY”限制表中的“FREEBUSY”项从“1+”更改为“0+”,以符合[RFC5545]。

Changed the "FREEBUSY" description in the "VFREEBUSY" and "REPLY" restriction tables to indicate that different "FBTYPE" ranges MUST NOT overlap.

更改了“VFREEBUSY”和“REPLY”限制表中的“FREEBUSY”说明,以指示不同的“FBTYPE”范围不得重叠。

Changed the "TZNAME" entry in the "VTIMEZONE" restriction table to "0+" from "0 or 1", to fall in line with [RFC5545].

将“VTIMEZONE”限制表中的“TZNAME”项从“0或1”更改为“0+”,以符合[RFC5545]。

Changed the "COMMENT" entry in the component restriction tables to "0+" from "0 or 1", to fall in line with [RFC5545].

将组件限制表中的“注释”条目从“0或1”更改为“0+”,以符合[RFC5545]。

Added the "ATTENDEE" entry in the "VALARM" restriction table to match the email alarm type in [RFC5545].

在“VALARM”限制表中添加“ATTENDEE”条目,以匹配[RFC5545]中的电子邮件警报类型。

Changed the "CATEGORIES" entry in the component restriction tables to "0+" from "0 or 1", to fall in line with [RFC5545].

将组件限制表中的“类别”条目从“0或1”更改为“0+”,以符合[RFC5545]。

Changed the "RESOURCES" entry in the component restriction tables to "0+" from "0 or 1", to fall in line with [RFC5545].

将组件限制表中的“资源”项从“0或1”更改为“0+”,以符合[RFC5545]。

Changed the "CONTACT" entry in the "VFREEBUSY" restriction table to "0 or 1" from "0+", to fall in line with [RFC5545].

将“VFREEBUSY”限制表中的“CONTACT”条目从“0+”更改为“0或1”,以符合[RFC5545]。

Changed the "UID" entry in the "VFREEBUSY" and "PUBLISH" restriction tables to "1" from "0", to fall in line with [RFC5545].

将“VFREEBUSY”和“PUBLISH”限制表中的“UID”项从“0”更改为“1”,以符合[RFC5545]。

Added the "COMPLETED" entry in the "VTODO" restriction tables to fall in line with [RFC5545].

在“VTODO”限制表中添加“已完成”条目,以符合[RFC5545]。

Added the "REQUEST-STATUS" entry in the "VJOURNAL" restriction tables to fall in line with [RFC5545].

在“VJOURNAL”限制表中添加了“REQUEST-STATUS”条目,以符合[RFC5545]。

A.2. Deprecated Features
A.2. 不推荐的功能

The "EXRULE" property was removed in [RFC5545] and references to that have been removed in this document too.

[RFC5545]中删除了“EXRULE”属性,本文档中也删除了对该属性的引用。

The "PROCEDURE" value for the "ACTION" property was removed in [RFC5545] and references to that have been removed in this document too.

[RFC5545]中删除了“ACTION”属性的“PROCEDURE”值,本文档中也删除了对该值的引用。

The "THISANDPRIOR" option for the "RANGE" parameter was removed in [RFC5545] and references to that have been removed in this document too.

[RFC5545]中删除了“范围”参数的“ThisandPrevior”选项,本文档中也删除了对该选项的引用。

Author's Address

作者地址

Cyrus Daboo (editor) Apple Inc. 1 Infinite Loop Cupertino, CA 95014 USA

赛勒斯·达布(编辑)苹果公司,美国加利福尼亚州库比蒂诺市无限环路1号,邮编95014

   EMail: cyrus@daboo.name
   URI:   http://www.apple.com/
        
   EMail: cyrus@daboo.name
   URI:   http://www.apple.com/