rfc2446.txt
来自「RFC 的详细文档!」· 文本 代码 · 共 1,477 行 · 第 1/5 页
TXT
1,477 行
Network Working Group S. Silverberg
Request for Comments: 2446 Microsoft
Category: Standards Track S. Mansour
Netscape
F. Dawson
Lotus
R. Hopson
ON Technologies
November 1998
iCalendar Transport-Independent Interoperability Protocol
(iTIP)
Scheduling Events, BusyTime, To-dos and Journal Entries
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.
Copyright Notice
Copyright (C) The Internet Society (1998). All Rights Reserved.
Abstract
This document specifies how calendaring systems use iCalendar objects
to interoperate with other calendar systems. It does so in a general
way so as to allow multiple methods of communication between systems.
Subsequent documents specify interoperable methods of communications
between systems that use this protocol.
The document outlines a model for calendar exchange that defines both
static and dynamic event, to-do, journal and free/busy objects.
Static objects are used to transmit information from one entity to
another without the expectation of continuity or referential
integrity with the original item. Dynamic objects are a superset of
static objects and will gracefully degrade to their static
counterparts for clients that only support static objects.
This document specifies an Internet protocol based on the iCalendar
object specification that provides scheduling interoperability
between different calendar systems. The Internet protocol is called
the "iCalendar Transport-Independent Interoperability Protocol
(iTIP)".
Silverberg, et. al. Standards Track [Page 1]
RFC 2446 iTIP November 1998
iTIP complements the iCalendar object specification by adding
semantics for group scheduling methods commonly available in current
calendar systems. These scheduling methods permit two or more
calendar systems to perform transactions such as publish, schedule,
reschedule, respond to scheduling requests, negotiation of changes or
cancel iCalendar-based calendar components.
iTIP is defined independent of the particular transport used to
transmit the scheduling information. Companion memos to iTIP provide
bindings of the interoperability protocol to a number of Internet
protocols.
Table of Contents
1 INTRODUCTION...................................................5
1.1 FORMATTING CONVENTIONS .....................................5
1.2 RELATED DOCUMENTS ..........................................6
1.3 ITIP ROLES AND TRANSACTIONS ................................6
2 INTEROPERABILITY MODELS........................................8
2.1 APPLICATION PROTOCOL .......................................9
2.1.1 Calendar Entry State ...................................9
2.1.2 Delegation .............................................9
2.1.3 Acting on Behalf of other Calendar Users ..............10
2.1.4 Component Revisions ...................................10
2.1.5 Message Sequencing ....................................11
3 APPLICATION PROTOCOL ELEMENTS.................................12
3.1 COMMON COMPONENT RESTRICTION TABLES .......................13
3.2 METHODS FOR VEVENT CALENDAR COMPONENTS ....................14
3.2.1 PUBLISH ...............................................15
3.2.2 REQUEST ...............................................17
3.2.2.1 Rescheduling an Event..............................19
3.2.2.2 Updating or Reconfirmation of an Event.............19
3.2.2.3 Delegating an Event to another CU..................19
3.2.2.4 Changing the Organizer.............................20
3.2.2.5 Sending on Behalf of the Organizer.................20
3.2.2.6 Forwarding to An Uninvited CU......................20
3.2.2.7 Updating Attendee Status...........................21
3.2.3 REPLY .................................................21
3.2.4 ADD ...................................................23
3.2.5 CANCEL ................................................25
3.2.6 REFRESH ...............................................26
3.2.7 COUNTER ...............................................28
3.2.8 DECLINECOUNTER ........................................29
3.3 METHODS FOR VFREEBUSY COMPONENTS ..........................31
3.3.1 PUBLISH ...............................................32
3.3.2 REQUEST ...............................................33
3.3.3 REPLY .................................................34
3.4 METHODS FOR VTODO COMPONENTS ..............................35
Silverberg, et. al. Standards Track [Page 2]
RFC 2446 iTIP November 1998
3.4.1 PUBLISH ...............................................35
3.4.2 REQUEST ...............................................37
3.4.2.1 REQUEST for Rescheduling a VTODO...................39
3.4.2.2 REQUEST for Update or Reconfirmation of a VTODO....39
3.4.2.3 REQUEST for Delegating a VTODO.....................40
3.4.2.4 REQUEST Forwarded To An Uninvited Calendar User....40
3.4.2.5 REQUEST Updated Attendee Status....................41
3.4.3 REPLY .................................................41
3.4.4 ADD ...................................................43
3.4.5 CANCEL ................................................44
3.4.6 REFRESH ...............................................46
3.4.7 COUNTER ...............................................48
3.4.8 DECLINECOUNTER ........................................49
3.5 METHODS FOR VJOURNAL COMPONENTS ...........................50
3.5.1 PUBLISH ...............................................51
3.5.2 ADD ...................................................52
3.5.3 CANCEL ................................................53
3.6 STATUS REPLIES ............................................55
3.7 IMPLEMENTATION CONSIDERATIONS .............................57
3.7.1 Working With Recurrence Instances .....................57
3.7.2 Attendee Property Considerations ......................58
3.7.3 X-Tokens ..............................................59
4 EXAMPLES......................................................59
4.1 PUBLISHED EVENT EXAMPLES ..................................59
4.1.1 A Minimal Published Event .............................60
4.1.2 Changing A Published Event ............................60
4.1.3 Canceling A Published Event ...........................61
4.1.4 A Rich Published Event ................................62
4.1.5 Anniversaries or Events attached to entire days .......63
4.2 GROUP EVENT EXAMPLES ......................................63
4.2.1 A Group Event Request .................................64
4.2.2 Reply To A Group Event Request ........................65
4.2.3 Update An Event .......................................65
4.2.4 Countering an Event Proposal ..........................66
4.2.5 Delegating an Event ...................................68
4.2.6 Delegate Accepts the Meeting ..........................70
4.2.7 Delegate Declines the Meeting .........................71
4.2.8 Forwarding an Event Request ...........................72
4.2.9 Cancel A Group Event ..................................72
4.2.10 Removing Attendees ...................................74
4.2.11 Replacing the Organizer ..............................75
4.3 BUSY TIME EXAMPLES ........................................76
4.3.1 Request Busy Time .....................................77
4.3.2 Reply To A Busy Time Request ..........................77
4.4 RECURRING EVENT AND TIME ZONE EXAMPLES ....................78
4.4.1 A Recurring Event Spanning Time Zones .................78
4.4.2 Modify A Recurring Instance ...........................79
4.4.3 Cancel an Instance ....................................81
Silverberg, et. al. Standards Track [Page 3]
RFC 2446 iTIP November 1998
4.4.4 Cancel Recurring Event ................................81
4.4.5 Change All Future Instances ...........................82
4.4.6 Add A New Instance To A Recurring Event ...............82
4.4.7 Add A New Series of Instances To A Recurring Event ....83
4.4.8 Counter An Instance Of A Recurring Event ..............87
4.4.9 Error Reply To A Request ..............................88
4.5 GROUP TO-DO EXAMPLES ......................................89
4.5.1 A VTODO Request .......................................90
4.5.2 A VTODO Reply .........................................90
4.5.3 A VTODO Request for Updated Status ....................91
4.5.4 A Reply: Percent-Complete .............................91
4.5.5 A Reply: Completed ....................................92
4.5.6 An Updated VTODO Request ..............................92
4.5.7 Recurring VTODOs ......................................92
4.5.7.1 Request for a Recurring VTODO......................93
4.5.7.2 Calculating due dates in recurring VTODOs..........93
4.5.7.3 Replying to an instance of a recurring VTODO.......93
4.6 JOURNAL EXAMPLES ..........................................94
4.7 OTHER EXAMPLES ............................................94
4.7.1 Event Refresh .........................................94
4.7.2 Bad RECURRENCE-ID .....................................95
5 APPLICATION PROTOCOL FALLBACKS................................97
5.1 PARTIAL IMPLEMENTATION ....................................97
5.1.1 Event-Related Fallbacks ...............................97
5.1.2 Free/Busy-Related Fallbacks ...........................99
5.1.3 To-Do-Related Fallbacks ...............................99
5.1.4 Journal-Related Fallbacks ............................101
5.2 LATENCY ISSUES ...........................................102
5.2.1 Cancellation of an Unknown Calendar Component. .......102
5.2.2 Unexpected Reply from an Unknown Delegate ............103
5.3 SEQUENCE NUMBER ..........................................103
6 SECURITY CONSIDERATIONS......................................103
6.1 SECURITY THREATS .........................................103
6.1.1 Spoofing the "Organizer" .............................103
6.1.2 Spoofing the "Attendee" ..............................103
6.1.3 Unauthorized Replacement of the Organizer ............104
6.1.4 Eavesdropping ........................................104
6.1.5 Flooding a Calendar ..................................104
6.1.6 Procedural Alarms ....................................104
6.1.7 Unauthorized REFRESH Requests ........................104
6.2 RECOMMENDATIONS ..........................................104
6.2.1 Use of [RFC-1847] to secure iTIP transactions ........105
6.2.2 Implementation Controls ..............................105
7 ACKNOWLEDGMENTS..............................................106
8 BIBLIOGRAPHY.................................................106
9 AUTHORS' ADDRESSES...........................................107
10 FULL COPYRIGHT STATEMENT....................................109
Silverberg, et. al. Standards Track [Page 4]
RFC 2446 iTIP November 1998
1 Introduction
This document specifies how calendaring systems use iCalendar objects
to interoperate with other calendar 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 so as to allow multiple
methods of communication between systems. Subsequent documents
specify transport bindings between systems that use this protocol.
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.
1.1 Formatting Conventions
In order to refer to elements of the calendaring and scheduling
model, core object or interoperability protocol defined in [iCAL] and
[iTIP] several formatting conventions have been utilized.
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 [RFC-2119].
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 defined by [iTIP]. Calendar components
defined by [iCAL] 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. Scheduling methods defined by [iTIP] 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 [iCAL] 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". Property parameters
Silverberg, et. al. Standards Track [Page 5]
RFC 2446 iTIP November 1998
defined by this memo are referred to with lower case, 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. Enumerated values defined
by this memo 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.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?