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 + -
显示快捷键?