draft-ietf-calsify-2446bis-04.txt   draft-ietf-calsify-2446bis-05.txt 
Network Working Group C. Daboo, Ed. Network Working Group C. Daboo, Ed.
Internet-Draft Apple Internet-Draft Apple Inc.
Obsoletes: 2446 (if approved) November 18, 2007 Obsoletes: 2446 (if approved) February 24, 2008
Intended status: Standards Track Intended status: Standards Track
Expires: May 21, 2008 Expires: August 27, 2008
iCalendar Transport-Independent Interoperability Protocol (iTIP) iCalendar Transport-Independent Interoperability Protocol (iTIP)
draft-ietf-calsify-2446bis-04 draft-ietf-calsify-2446bis-05
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 35 skipping to change at page 1, line 35
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on May 21, 2008. This Internet-Draft will expire on August 27, 2008.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2007). Copyright (C) The IETF Trust (2008).
Abstract Abstract
This document specifies a protocol using the iCalendar object This document specifies a protocol using the iCalendar object
specification to provide scheduling interoperability between specification to provide scheduling interoperability between
different calendar systems. This is done without reference to a different calendar systems. This is done without reference to a
specific transport protocol so as to allow multiple methods of specific transport protocol so as to allow multiple methods of
communication between systems. Subsequent documents will define communication between systems. Subsequent documents will define
profiles of this protocol using specific interoperable methods of profiles of this protocol using specific interoperable methods of
communications between systems. communications between systems.
skipping to change at page 2, line 22 skipping to change at page 2, line 22
Table of Contents Table of Contents
1. Introduction and Overview . . . . . . . . . . . . . . . . . . 5 1. Introduction and Overview . . . . . . . . . . . . . . . . . . 5
1.1. Formatting Conventions . . . . . . . . . . . . . . . . . 5 1.1. Formatting Conventions . . . . . . . . . . . . . . . . . 5
1.2. Related Documents . . . . . . . . . . . . . . . . . . . . 6 1.2. Related Documents . . . . . . . . . . . . . . . . . . . . 6
1.3. Roles . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3. Roles . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4. Methods . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4. Methods . . . . . . . . . . . . . . . . . . . . . . . . . 7
2. Interoperability Models . . . . . . . . . . . . . . . . . . . 8 2. Interoperability Models . . . . . . . . . . . . . . . . . . . 8
2.1. Application Protocol . . . . . . . . . . . . . . . . . . 9 2.1. Application Protocol . . . . . . . . . . . . . . . . . . 9
2.1.1. Calendar Entry State . . . . . . . . . . . . . . . . 9 2.1.1. Calendar Entry State . . . . . . . . . . . . . . . . 9
2.1.2. Delegation . . . . . . . . . . . . . . . . . . . . . 9 2.1.2. Delegation . . . . . . . . . . . . . . . . . . . . . 10
2.1.3. Acting on Behalf of other Calendar Users . . . . . . 10 2.1.3. Acting on Behalf of other Calendar Users . . . . . . 10
2.1.4. Component Revisions . . . . . . . . . . . . . . . . . 10 2.1.4. Component Revisions . . . . . . . . . . . . . . . . . 10
2.1.5. Message Sequencing . . . . . . . . . . . . . . . . . 11 2.1.5. Message Sequencing . . . . . . . . . . . . . . . . . 11
3. Application Protocol Elements . . . . . . . . . . . . . . . . 12 3. Application Protocol Elements . . . . . . . . . . . . . . . . 12
3.1. Common Component Restriction Tables . . . . . . . . . . . 12 3.1. Common Component Restriction Tables . . . . . . . . . . . 13
3.1.1. VCALENDAR . . . . . . . . . . . . . . . . . . . . . . 13
3.1.2. VTIMEZONE . . . . . . . . . . . . . . . . . . . . . . 13
3.1.3. VALARM . . . . . . . . . . . . . . . . . . . . . . . 14
3.2. Methods for VEVENT Calendar Components . . . . . . . . . 15 3.2. Methods for VEVENT Calendar Components . . . . . . . . . 15
3.2.1. PUBLISH . . . . . . . . . . . . . . . . . . . . . . . 16 3.2.1. PUBLISH . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.2. REQUEST . . . . . . . . . . . . . . . . . . . . . . . 17 3.2.2. REQUEST . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.3. REPLY . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2.3. REPLY . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.4. ADD . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.2.4. ADD . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.5. CANCEL . . . . . . . . . . . . . . . . . . . . . . . 26 3.2.5. CANCEL . . . . . . . . . . . . . . . . . . . . . . . 26
3.2.6. REFRESH . . . . . . . . . . . . . . . . . . . . . . . 28 3.2.6. REFRESH . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.7. COUNTER . . . . . . . . . . . . . . . . . . . . . . . 29 3.2.7. COUNTER . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.8. DECLINECOUNTER . . . . . . . . . . . . . . . . . . . 31 3.2.8. DECLINECOUNTER . . . . . . . . . . . . . . . . . . . 31
3.3. Methods For VFREEBUSY Components . . . . . . . . . . . . 32 3.3. Methods For VFREEBUSY Components . . . . . . . . . . . . 32
3.3.1. PUBLISH . . . . . . . . . . . . . . . . . . . . . . . 33 3.3.1. PUBLISH . . . . . . . . . . . . . . . . . . . . . . . 33
3.3.2. REQUEST . . . . . . . . . . . . . . . . . . . . . . . 35 3.3.2. REQUEST . . . . . . . . . . . . . . . . . . . . . . . 34
3.3.3. REPLY . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3.3. REPLY . . . . . . . . . . . . . . . . . . . . . . . . 36
3.4. Methods For VTODO Components . . . . . . . . . . . . . . 37 3.4. Methods For VTODO Components . . . . . . . . . . . . . . 37
3.4.1. PUBLISH . . . . . . . . . . . . . . . . . . . . . . . 38 3.4.1. PUBLISH . . . . . . . . . . . . . . . . . . . . . . . 38
3.4.2. REQUEST . . . . . . . . . . . . . . . . . . . . . . . 40 3.4.2. REQUEST . . . . . . . . . . . . . . . . . . . . . . . 39
3.4.3. REPLY . . . . . . . . . . . . . . . . . . . . . . . . 44 3.4.3. REPLY . . . . . . . . . . . . . . . . . . . . . . . . 44
3.4.4. ADD . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.4.4. ADD . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.4.5. CANCEL . . . . . . . . . . . . . . . . . . . . . . . 48 3.4.5. CANCEL . . . . . . . . . . . . . . . . . . . . . . . 47
3.4.6. REFRESH . . . . . . . . . . . . . . . . . . . . . . . 50 3.4.6. REFRESH . . . . . . . . . . . . . . . . . . . . . . . 50
3.4.7. COUNTER . . . . . . . . . . . . . . . . . . . . . . . 52 3.4.7. COUNTER . . . . . . . . . . . . . . . . . . . . . . . 52
3.4.8. DECLINECOUNTER . . . . . . . . . . . . . . . . . . . 53 3.4.8. DECLINECOUNTER . . . . . . . . . . . . . . . . . . . 53
3.5. Methods For VJOURNAL Components . . . . . . . . . . . . . 55 3.5. Methods For VJOURNAL Components . . . . . . . . . . . . . 56
3.5.1. PUBLISH . . . . . . . . . . . . . . . . . . . . . . . 55 3.5.1. PUBLISH . . . . . . . . . . . . . . . . . . . . . . . 56
3.5.2. ADD . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.5.2. ADD . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.5.3. CANCEL . . . . . . . . . . . . . . . . . . . . . . . 59 3.5.3. CANCEL . . . . . . . . . . . . . . . . . . . . . . . 60
3.6. Status Replies . . . . . . . . . . . . . . . . . . . . . 61 3.6. Status Replies . . . . . . . . . . . . . . . . . . . . . 62
3.7. Implementation Considerations . . . . . . . . . . . . . . 63 3.7. Implementation Considerations . . . . . . . . . . . . . . 64
3.7.1. Working With Recurrence Instances . . . . . . . . . . 63 3.7.1. Working With Recurrence Instances . . . . . . . . . . 64
3.7.2. Attendee Property Considerations . . . . . . . . . . 64 3.7.2. Attendee Property Considerations . . . . . . . . . . 65
3.7.3. X-Tokens . . . . . . . . . . . . . . . . . . . . . . 65 3.7.3. X-Tokens . . . . . . . . . . . . . . . . . . . . . . 66
4. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.1. Published Event Examples . . . . . . . . . . . . . . . . 65 4.1. Published Event Examples . . . . . . . . . . . . . . . . 66
4.1.1. A Minimal Published Event . . . . . . . . . . . . . . 66 4.1.1. A Minimal Published Event . . . . . . . . . . . . . . 67
4.1.2. Changing A Published Event . . . . . . . . . . . . . 66 4.1.2. Changing A Published Event . . . . . . . . . . . . . 67
4.1.3. Canceling A Published Event . . . . . . . . . . . . . 67 4.1.3. Canceling A Published Event . . . . . . . . . . . . . 68
4.1.4. A Rich Published Event . . . . . . . . . . . . . . . 68 4.1.4. A Rich Published Event . . . . . . . . . . . . . . . 69
4.1.5. Anniversaries or Events attached to entire days . . . 69 4.1.5. Anniversaries or Events attached to entire days . . . 70
4.2. Group Event Examples . . . . . . . . . . . . . . . . . . 69 4.2. Group Event Examples . . . . . . . . . . . . . . . . . . 70
4.2.1. A Group Event Request . . . . . . . . . . . . . . . . 70 4.2.1. A Group Event Request . . . . . . . . . . . . . . . . 71
4.2.2. Reply To A Group Event Request . . . . . . . . . . . 71 4.2.2. Reply To A Group Event Request . . . . . . . . . . . 72
4.2.3. Update An Event . . . . . . . . . . . . . . . . . . . 72 4.2.3. Update An Event . . . . . . . . . . . . . . . . . . . 73
4.2.4. Countering an Event Proposal . . . . . . . . . . . . 72 4.2.4. Countering an Event Proposal . . . . . . . . . . . . 73
4.2.5. Delegating an Event . . . . . . . . . . . . . . . . . 75 4.2.5. Delegating an Event . . . . . . . . . . . . . . . . . 76
4.2.6. Delegate Accepts the Meeting . . . . . . . . . . . . 77 4.2.6. Delegate Accepts the Meeting . . . . . . . . . . . . 78
4.2.7. Delegate Declines the Meeting . . . . . . . . . . . . 78 4.2.7. Delegate Declines the Meeting . . . . . . . . . . . . 79
4.2.8. Forwarding an Event Request . . . . . . . . . . . . . 79 4.2.8. Forwarding an Event Request . . . . . . . . . . . . . 80
4.2.9. Cancel A Group Event . . . . . . . . . . . . . . . . 79 4.2.9. Cancel A Group Event . . . . . . . . . . . . . . . . 80
4.2.10. Removing Attendees . . . . . . . . . . . . . . . . . 80 4.2.10. Removing Attendees . . . . . . . . . . . . . . . . . 81
4.2.11. Replacing the Organizer . . . . . . . . . . . . . . . 82 4.2.11. Replacing the Organizer . . . . . . . . . . . . . . . 83
4.3. Busy Time Examples . . . . . . . . . . . . . . . . . . . 83 4.3. Busy Time Examples . . . . . . . . . . . . . . . . . . . 84
4.3.1. Request Busy Time . . . . . . . . . . . . . . . . . . 84 4.3.1. Request Busy Time . . . . . . . . . . . . . . . . . . 85
4.3.2. Reply To A Busy Time Request . . . . . . . . . . . . 85 4.3.2. Reply To A Busy Time Request . . . . . . . . . . . . 86
4.4. Recurring Event and Time Zone Examples . . . . . . . . . 85 4.4. Recurring Event and Time Zone Examples . . . . . . . . . 86
4.4.1. A Recurring Event Spanning Time Zones . . . . . . . . 85 4.4.1. A Recurring Event Spanning Time Zones . . . . . . . . 86
4.4.2. Modify A Recurring Instance . . . . . . . . . . . . . 87 4.4.2. Modify A Recurring Instance . . . . . . . . . . . . . 88
4.4.3. Cancel an Instance . . . . . . . . . . . . . . . . . 89 4.4.3. Cancel an Instance . . . . . . . . . . . . . . . . . 90
4.4.4. Cancel Recurring Event . . . . . . . . . . . . . . . 90 4.4.4. Cancel Recurring Event . . . . . . . . . . . . . . . 91
4.4.5. Change All Future Instances . . . . . . . . . . . . . 90 4.4.5. Change All Future Instances . . . . . . . . . . . . . 91
4.4.6. Add A New Instance To A Recurring Event . . . . . . . 91 4.4.6. Add A New Instance To A Recurring Event . . . . . . . 92
4.4.7. Add A New Series of Instances To A Recurring Event . 92 4.4.7. Add A New Series of Instances To A Recurring Event . 93
4.4.8. Counter An Instance Of A Recurring Event . . . . . . 97 4.4.8. Counter An Instance Of A Recurring Event . . . . . . 98
4.4.9. Error Reply To A Request . . . . . . . . . . . . . . 98 4.4.9. Error Reply To A Request . . . . . . . . . . . . . . 99
4.5. Group To-do Examples . . . . . . . . . . . . . . . . . . 100 4.5. Group To-do Examples . . . . . . . . . . . . . . . . . . 101
4.5.1. A VTODO Request . . . . . . . . . . . . . . . . . . . 101 4.5.1. A VTODO Request . . . . . . . . . . . . . . . . . . . 102
4.5.2. A VTODO Reply . . . . . . . . . . . . . . . . . . . . 101 4.5.2. A VTODO Reply . . . . . . . . . . . . . . . . . . . . 102
4.5.3. A VTODO Request for Updated Status . . . . . . . . . 102 4.5.3. A VTODO Request for Updated Status . . . . . . . . . 103
4.5.4. A Reply: Percent-Complete . . . . . . . . . . . . . . 102 4.5.4. A Reply: Percent-Complete . . . . . . . . . . . . . . 103
4.5.5. A Reply: Completed . . . . . . . . . . . . . . . . . 103 4.5.5. A Reply: Completed . . . . . . . . . . . . . . . . . 104
4.5.6. An Updated VTODO Request . . . . . . . . . . . . . . 103 4.5.6. An Updated VTODO Request . . . . . . . . . . . . . . 104
4.5.7. Recurring VTODOs . . . . . . . . . . . . . . . . . . 104 4.5.7. Recurring VTODOs . . . . . . . . . . . . . . . . . . 105
4.6. Journal Examples . . . . . . . . . . . . . . . . . . . . 105 4.6. Journal Examples . . . . . . . . . . . . . . . . . . . . 106
4.7. Other Examples . . . . . . . . . . . . . . . . . . . . . 106 4.7. Other Examples . . . . . . . . . . . . . . . . . . . . . 107
4.7.1. Event Refresh . . . . . . . . . . . . . . . . . . . . 106 4.7.1. Event Refresh . . . . . . . . . . . . . . . . . . . . 107
4.7.2. Bad RECURRENCE-ID . . . . . . . . . . . . . . . . . . 106 4.7.2. Bad RECURRENCE-ID . . . . . . . . . . . . . . . . . . 107
5. Application Protocol Fallbacks . . . . . . . . . . . . . . . 109 5. Application Protocol Fallbacks . . . . . . . . . . . . . . . 110
5.1. Partial Implementation . . . . . . . . . . . . . . . . . 109 5.1. Partial Implementation . . . . . . . . . . . . . . . . . 110
5.1.1. Event-Related Fallbacks . . . . . . . . . . . . . . . 109 5.1.1. Event-Related Fallbacks . . . . . . . . . . . . . . . 110
5.1.2. Free/Busy-Related Fallbacks . . . . . . . . . . . . . 111 5.1.2. Free/Busy-Related Fallbacks . . . . . . . . . . . . . 112
5.1.3. To-Do-Related Fallbacks . . . . . . . . . . . . . . . 112 5.1.3. To-Do-Related Fallbacks . . . . . . . . . . . . . . . 113
5.1.4. Journal-Related Fallbacks . . . . . . . . . . . . . . 114 5.1.4. Journal-Related Fallbacks . . . . . . . . . . . . . . 115
5.2. Latency Issues . . . . . . . . . . . . . . . . . . . . . 115 5.2. Latency Issues . . . . . . . . . . . . . . . . . . . . . 116
5.2.1. Cancellation of an Unknown Calendar Component. . . . 115 5.2.1. Cancellation of an Unknown Calendar Component. . . . 116
5.2.2. Unexpected Reply from an Unknown Delegate . . . . . . 116 5.2.2. Unexpected Reply from an Unknown Delegate . . . . . . 117
5.3. Sequence Number . . . . . . . . . . . . . . . . . . . . . 116 5.3. Sequence Number . . . . . . . . . . . . . . . . . . . . . 117
6. Security Considerations . . . . . . . . . . . . . . . . . . . 116 6. Security Considerations . . . . . . . . . . . . . . . . . . . 117
6.1. Security Threats . . . . . . . . . . . . . . . . . . . . 116 6.1. Security Threats . . . . . . . . . . . . . . . . . . . . 117
6.1.1. Spoofing the "Organizer" . . . . . . . . . . . . . . 116 6.1.1. Spoofing the "Organizer" . . . . . . . . . . . . . . 117
6.1.2. Spoofing the "Attendee" . . . . . . . . . . . . . . . 117 6.1.2. Spoofing the "Attendee" . . . . . . . . . . . . . . . 117
6.1.3. Unauthorized Replacement of the Organizer . . . . . . 117 6.1.3. Unauthorized Replacement of the Organizer . . . . . . 118
6.1.4. Eavesdropping . . . . . . . . . . . . . . . . . . . . 117 6.1.4. Eavesdropping . . . . . . . . . . . . . . . . . . . . 118
6.1.5. Flooding a Calendar . . . . . . . . . . . . . . . . . 117 6.1.5. Flooding a Calendar . . . . . . . . . . . . . . . . . 118
6.1.6. Procedural Alarms . . . . . . . . . . . . . . . . . . 117 6.1.6. Unauthorized REFRESH Requests . . . . . . . . . . . . 118
6.1.7. Unauthorized REFRESH Requests . . . . . . . . . . . . 117
6.2. Recommendations . . . . . . . . . . . . . . . . . . . . . 118 6.2. Recommendations . . . . . . . . . . . . . . . . . . . . . 118
6.2.1. Use of [RFC1847] to secure iTIP transactions . . . . 118 6.2.1. Use of [RFC1847] to secure iTIP transactions . . . . 118
6.2.2. Implementation Controls . . . . . . . . . . . . . . . 118 6.2.2. Implementation Controls . . . . . . . . . . . . . . . 119
7. IANA Consideration . . . . . . . . . . . . . . . . . . . . . 119 7. IANA Consideration . . . . . . . . . . . . . . . . . . . . . 119
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 119 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 120
8.1. Normative References . . . . . . . . . . . . . . . . . . 119 8.1. Normative References . . . . . . . . . . . . . . . . . . 120
8.2. Informative References . . . . . . . . . . . . . . . . . 119 8.2. Informative References . . . . . . . . . . . . . . . . . 120
Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 119 Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 120
Appendix B. Change History (to be removed prior to Appendix B. Change History (to be removed prior to
publication as an RFC) . . . . . . . . . . . . . . . 120 publication as an RFC) . . . . . . . . . . . . . . . 120
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 121 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 122
Intellectual Property and Copyright Statements . . . . . . . . . 122 Intellectual Property and Copyright Statements . . . . . . . . . 123
1. Introduction and Overview 1. Introduction and Overview
This document specifies how calendaring systems use iCalendar This document specifies how calendaring systems use iCalendar
[I-D.ietf-calsify-rfc2445bis] objects to interoperate with other [I-D.ietf-calsify-rfc2445bis] objects to interoperate with other
calendar systems. In particular, it specifies how to schedule calendar systems. In particular, it specifies how to schedule
events, to-dos, or daily journal entries. It further specifies how events, to-dos, or daily journal entries. It further specifies how
to search for available busy time information. It does so in a to search for available busy time information. It does so in a
general way without specifying how communication between different general way without specifying how communication between different
systems actually takes place. Subsequent documents specify transport systems actually takes place. Subsequent documents specify transport
skipping to change at page 6, line 5 skipping to change at page 6, line 5
of text. For example, "REQUEST" refers to the method for requesting of text. For example, "REQUEST" refers to the method for requesting
a scheduling calendar component be created or modified, "REPLY" a scheduling calendar component be created or modified, "REPLY"
refers to the method a recipient of a request uses to update their refers to the method a recipient of a request uses to update their
status with the "Organizer" of the calendar component. status with the "Organizer" of the calendar component.
Properties defined by [I-D.ietf-calsify-rfc2445bis] are referred to Properties defined by [I-D.ietf-calsify-rfc2445bis] are referred to
with capitalized, quoted-strings of text, followed by the word with capitalized, quoted-strings of text, followed by the word
"property". For example, "ATTENDEE" property refers to the iCalendar "property". For example, "ATTENDEE" property refers to the iCalendar
property used to convey the calendar address of a "Calendar User". property used to convey the calendar address of a "Calendar User".
Property parameters defined by this memo are referred to with Property parameters defined by this specification are referred to
capitalized, quoted-strings of text, followed by the word with capitalized, quoted-strings of text, followed by the word
"parameter". For example, "VALUE" parameter refers to the iCalendar "parameter". For example, "VALUE" parameter refers to the iCalendar
property parameter used to override the default data type for a property parameter used to override the default data type for a
property value. property value.
Enumerated values defined by this memo are referred to with Enumerated values defined by this specification are referred to with
capitalized text, either alone or followed by the word "value". capitalized text, either alone or followed by the word "value".
In tables, the quoted-string text is specified without quotes in In tables, the quoted-string text is specified without quotes in
order to minimize the table length. order to minimize the table length.
1.2. Related Documents 1.2. Related Documents
Implementers will need to be familiar with several other Implementers will need to be familiar with several other
specifications that, along with this one, describe the Internet specifications that, along with this one, describe the Internet
calendaring and scheduling standards. The related documents are: calendaring and scheduling standards. The related documents are:
[I-D.ietf-calsify-rfc2445bis] - specifies the objects, data types, [I-D.ietf-calsify-rfc2445bis] - specifies the objects, data types,
properties and property parameters used in the protocols, along properties and property parameters used in the protocols, along
with the methods for representing and encoding them. with the methods for representing and encoding them.
[I-D.ietf-calsify-rfc2447bis] specifies an Internet email binding [I-D.ietf-calsify-rfc2447bis] specifies an Internet email binding
for iTIP. for iTIP.
This memo does not attempt to repeat the specification of concepts or This specification does not attempt to repeat the concepts or
definitions from these other memos. Where possible, references are definitions from these other specifications. Where possible,
made to the memo that provides for the specification of these explicit references are made to the other specifications.
concepts or definitions.
1.3. Roles 1.3. Roles
Exchanges of iCalendar objects for the purposes of group calendaring Exchanges of iCalendar objects for the purposes of group calendaring
and scheduling occur between "Calendar Users" (CUs). CUs take on one and scheduling occur between "Calendar Users" (CUs). CUs take on one
of two roles in iTIP: of two roles in iTIP:
+-----------+-------------------------------------------------------+ +-----------+-------------------------------------------------------+
| Role | Description | | Role | Description |
+-----------+-------------------------------------------------------+ +-----------+-------------------------------------------------------+
| Organizer | The CU who initiates an exchange takes on the role of | | Organizer | The CU who initiates an exchange takes on the role of |
| | "Organizer". For example, the CU who proposes a | | | "Organizer". For example, the CU who proposes a |
| | group meeting is the "Organizer". | | | group meeting is the "Organizer". |
| | | | | |
| Attendee | The CUs asked to participate in the group meeting by | | Attendee | The CUs asked to participate in the group meeting by |
| | the "Organizer" take on the role of "Attendee". | | | the "Organizer" take on the role of "Attendee". |
+-----------+-------------------------------------------------------+ +-----------+-------------------------------------------------------+
Note that "ROLE" is also a descriptive parameter to the iCalendar Note that "ROLE" is also a descriptive parameter to the iCalendar
"ATTENDEE" property. Its use is to convey descriptive context to an "ATTENDEE" property. Its use is to convey descriptive context about
"Attendee" such as "chair", "required participant" or "non-required an "Attendee" such as "chair", "required participant" or "non-
participant" and has nothing to do with the calendaring workflow. required participant" and has nothing to do with the calendaring
workflow.
1.4. Methods 1.4. Methods
The ITIP methods are listed below and their usage and semantics are The ITIP methods are listed below and their usage and semantics are
defined in section 3 of this document. defined in section 3 of this document.
+----------------+--------------------------------------------------+ +----------------+--------------------------------------------------+
| Method | Description | | Method | Description |
+----------------+--------------------------------------------------+ +----------------+--------------------------------------------------+
| PUBLISH | Used to publish a calendar entry to one or more | | PUBLISH | Used to publish a calendar entry to one or more |
skipping to change at page 7, line 36 skipping to change at page 7, line 36
| | requests and the assignment of VTODOs to other | | | requests and the assignment of VTODOs to other |
| | Calendar Users are all examples. Requests are | | | Calendar Users are all examples. Requests are |
| | also used by the "Organizer" to update the | | | also used by the "Organizer" to update the |
| | status of a calendar entry. | | | status of a calendar entry. |
| | | | | |
| REPLY | A Reply is used in response to a Request to | | REPLY | A Reply is used in response to a Request to |
| | convey "Attendee" status to the "Organizer". | | | convey "Attendee" status to the "Organizer". |
| | Replies are commonly used to respond to meeting | | | Replies are commonly used to respond to meeting |
| | and task requests. | | | and task requests. |
| | | | | |
| ADD | Add one or more instances to an existing VEVENT, | | ADD | Add one or more new instances to an existing |
| | VTODO, or VJOURNAL. | | | VEVENT, VTODO, or VJOURNAL. |
| | | | | |
| CANCEL | Cancel one or more instances of an existing | | CANCEL | Cancel one or more instances of an existing |
| | VEVENT, VTODO, or VJOURNAL. | | | VEVENT, VTODO, or VJOURNAL. |
| | | | | |
| REFRESH | The Refresh method is used by an "Attendee" to | | REFRESH | The Refresh method is used by an "Attendee" to |
| | request the latest version of a calendar entry. | | | request the latest version of a calendar entry. |
| | | | | |
| COUNTER | The Counter method is used by an "Attendee" to | | COUNTER | The Counter method is used by an "Attendee" to |
| | negotiate a change in the calendar entry. | | | negotiate a change in the calendar entry. |
| | Examples include the request to change a | | | Examples include the request to change a |
skipping to change at page 8, line 17 skipping to change at page 8, line 17
Group scheduling in iTIP is accomplished using the set of "request" Group scheduling in iTIP is accomplished using the set of "request"
and "response" methods described above. The following table shows and "response" methods described above. The following table shows
the methods broken down by who can send them. the methods broken down by who can send them.
+------------+------------------------------------------------------+ +------------+------------------------------------------------------+
| Originator | Methods | | Originator | Methods |
+------------+------------------------------------------------------+ +------------+------------------------------------------------------+
| Organizer | PUBLISH, REQUEST, ADD, CANCEL, DECLINECOUNTER | | Organizer | PUBLISH, REQUEST, ADD, CANCEL, DECLINECOUNTER |
| | | | | |
| Attendee | REPLY, REFRESH, COUNTER, REQUEST only when | | Attendee | REPLY, REFRESH, COUNTER, REQUEST (only when |
| | delegating | | | delegating) |
+------------+------------------------------------------------------+ +------------+------------------------------------------------------+
Note that for some calendar component types, the allowable methods Note that for some calendar component types, the allowable methods
are a subset of the above set. are a subset of the above set.
2. Interoperability Models 2. Interoperability Models
There are two distinct protocols relevant to interoperability: an There are two distinct protocols relevant to interoperability: an
"Application Protocol" and a "Transport Protocol". The Application "Application Protocol" and a "Transport Protocol". The Application
Protocol defines the content of the iCalendar objects sent between Protocol defines the content of the iCalendar objects sent between
skipping to change at page 9, line 10 skipping to change at page 9, line 10
There are several variations of this diagram in which the Sender and 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 Receiver take on various roles of a "Calendar User Agent" (CUA) or a
"Calendar Service" (CS). "Calendar Service" (CS).
The architecture of iTIP is depicted in the diagram below. An The architecture of iTIP is depicted in the diagram below. An
application written to this specification may work with bindings for application written to this specification may work with bindings for
the store-and-forward transport, the real time transport, or both. the store-and-forward transport, the real time transport, or both.
Also note that iTIP could be bound to other transports. Also note that iTIP could be bound to other transports.
+------------------+---------------------------+--------------------+ +--------------------------------------------------------+
| | iTIP | | | iTIP Protocol |
+------------------+---------------------------+--------------------+ +--------------------------------------------------------+
| Real-time | Store-and-Forward | Other | | Transport |
| Transport | Transport | Transports... | + - - - - - + - - - - - - + - - - - - +
+------------------+---------------------------+--------------------+ | Real-time | Store-and-Forward | Others |
+-----------------+--------------------+-----------------+
iTIP
2.1. Application Protocol 2.1. Application Protocol
In the iTIP model, a calendar entry is created and managed by an In the iTIP model, a calendar entry is created and managed by an
"Organizer". The "Organizer" interacts with other CUs by sending one "Organizer". The "Organizer" interacts with other CUs by sending one
or more of the iTIP messages listed above. "Attendees" use the or more of the iTIP messages listed above. "Attendees" use the
"REPLY" method to communicate their status. "Attendees" do not make "REPLY" method to communicate their status. "Attendees" do not make
direct changes to the master calendar entry. They can, however, use direct changes to the master calendar entry. They can, however, use
the "COUNTER" method to suggest changes to the "Organizer". In any the "COUNTER" method to suggest changes to the "Organizer". In any
case, the "Organizer" has complete control over the master calendar case, the "Organizer" has complete control over the master calendar
skipping to change at page 12, line 17 skipping to change at page 12, line 22
response. response.
3. Application Protocol Elements 3. Application Protocol Elements
ITIP messages are "text/calendar" MIME entities that contain ITIP messages are "text/calendar" MIME entities that contain
calendaring and scheduling information. The particular type of calendaring and scheduling information. The particular type of
iCalendar message is referred to as the "method type". Each method iCalendar message is referred to as the "method type". Each method
type is identified by a "METHOD" property specified as part of the type is identified by a "METHOD" property specified as part of the
"text/calendar" content type. The table below shows various "text/calendar" content type. The table below shows various
combinations of calendar components and the method types that this combinations of calendar components and the method types that this
memo supports. specification supports.
+----------------+--------+-------+----------+-----------+ +----------------+--------+-------+----------+-----------+
| | VEVENT | VTODO | VJOURNAL | VFREEBUSY | | | VEVENT | VTODO | VJOURNAL | VFREEBUSY |
+----------------+--------+-------+----------+-----------+ +----------------+--------+-------+----------+-----------+
| PUBLISH | Yes | Yes | Yes | Yes | | PUBLISH | Yes | Yes | Yes | Yes |
| REQUEST | Yes | Yes | No | Yes | | REQUEST | Yes | Yes | No | Yes |
| REFRESH | Yes | Yes | No | No | | REFRESH | Yes | Yes | No | No |
| CANCEL | Yes | Yes | Yes | No | | CANCEL | Yes | Yes | Yes | No |
| ADD | Yes | Yes | Yes | No | | ADD | Yes | Yes | Yes | No |
| REPLY | Yes | Yes | No | Yes | | REPLY | Yes | Yes | No | Yes |
| COUNTER | Yes | Yes | No | No | | COUNTER | Yes | Yes | No | No |
| DECLINECOUNTER | Yes | Yes | No | No | | DECLINECOUNTER | Yes | Yes | No | No |
+----------------+--------+-------+----------+-----------+ +----------------+--------+-------+----------+-----------+
Each method type is defined in terms of its associated components and Each method type is defined in terms of its associated components and
properties. Some components and properties are required, some are properties. Some components and properties are required, some are
optional and others are excluded. The restrictions are expressed in optional and others are excluded. The restrictions are expressed in
this document using a simple "restriction table". The first column this document using a simple "restriction table". The first column
indicates the name of a component or property. Properties of the indicates the name of a component or property. Properties of the
iCalendar object are not indented. Properties of a component are iCalendar object are not indented. Properties of a component are
indented. The second column contains "MUST" if the component or indented. The second column (the "Presence" column) indicates
property must be present, "MAY" if the component or property is whether a component or property should be present or not, and if
optional, and "NOT" if the component or property must not be present. present how many times it can occur. The third column contains
Entries in the second column sometimes contain comments for further comments for further clarification.
clarification.
3.1. Common Component Restriction Tables
The restriction table below applies to properties of the iCalendar The presence column uses the following values to assert whether a
object. That is, the properties at the outermost scope. The
presence column uses the following values to assert whether a
property is required, is optional and the number of times it may property is required, is optional and the number of times it may
appear in the iCalendar object. appear in the iCalendar object.
+----------------+--------------------------------------------------+ +----------------+--------------------------------------------------+
| Presence Value | Description | | Presence Value | Description |
+----------------+--------------------------------------------------+ +----------------+--------------------------------------------------+
| 1 | One instance MUST be present | | 1 | One instance MUST be present |
| 1+ | At least one instance MUST be present | | 1+ | At least one instance MUST be present |
| 0 | Instances of this property Must NOT be present | | 0 | Instances of this property MUST NOT be present |
| 0+ | Multiple instances MAY be present | | 0+ | Multiple instances MAY be present |
| 0 or 1 | Up to 1 instance of this property MAY be present | | 0 or 1 | Up to 1 instance of this property MAY be present |
+----------------+--------------------------------------------------+ +----------------+--------------------------------------------------+
The tables also call out "X-PROPERTY" and "X-COMPONENT" to show where The tables also call out "X-PROPERTY" and "X-COMPONENT" to show where
vendor-specific properties and components can appear. The tables do vendor-specific properties and components can appear. The tables do
not lay out the restrictions of property parameters. Those not lay out the restrictions of property parameters. Those
restrictions are defined in [I-D.ietf-calsify-rfc2445bis] . restrictions are defined in [I-D.ietf-calsify-rfc2445bis] .
3.1. Common Component Restriction Tables
3.1.1. VCALENDAR
The restriction table below applies to properties of the iCalendar
object. That is, the properties at the outermost scope.
+--------------------+----------+---------------------+ +--------------------+----------+---------------------+
| Component/Property | Presence | Comment | | Component/Property | Presence | Comment |
+--------------------+----------+---------------------+ +--------------------+----------+---------------------+
| CALSCALE | 0 or 1 | | | CALSCALE | 0 or 1 | |
| PRODID | 1 | | | PRODID | 1 | |
| VERSION | 1 | Value MUST be "2.0" | | VERSION | 1 | Value MUST be "2.0" |
| X-PROPERTY | 0+ | | | X-PROPERTY | 0+ | |
+--------------------+----------+---------------------+ +--------------------+----------+---------------------+
DateTime values MAY refer to a "VTIMEZONE" component. The property 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 restrictions in the table below apply to any "VTIMEZONE" component in
an ITIP message. an ITIP message.
+--------------------+----------+-----------------------------------+ +--------------------+----------+-----------------------------------+
| Component/Property | Presence | Comment | | Component/Property | Presence | Comment |
+--------------------+----------+-----------------------------------+ +--------------------+----------+-----------------------------------+
| VTIMEZONE | 0+ | MUST be present if any date/time | | VTIMEZONE | 0+ | MUST be present if any date/time |
| | | refers to timezone | | | | refers to timezone |
| DAYLIGHT | 0+ | MUST be one or more of either | | DAYLIGHT | 0+ | MUST be one or more of either |
| | | STANDARD or DAYLIGHT | | | | STANDARD or DAYLIGHT |
skipping to change at page 14, line 40 skipping to change at page 14, line 40
| | | present | | | | present |
| TZNAME | 0+ | | | TZNAME | 0+ | |
| TZOFFSETFROM | 1 | | | TZOFFSETFROM | 1 | |
| TZOFFSETTO | 1 | | | TZOFFSETTO | 1 | |
| X-PROPERTY | 0+ | | | X-PROPERTY | 0+ | |
| TZID | 1 | | | TZID | 1 | |
| TZURL | 0 or 1 | | | TZURL | 0 or 1 | |
| X-PROPERTY | 0+ | | | X-PROPERTY | 0+ | |
+--------------------+----------+-----------------------------------+ +--------------------+----------+-----------------------------------+
3.1.3. VALARM
The property restrictions in the table below apply to any "VALARM" The property restrictions in the table below apply to any "VALARM"
component in an ITIP message. component in an ITIP message.
+--------------------+----------+-----------------------------------+ +--------------------+----------+-----------------------------------+
| Component/Property | Presence | Comment | | Component/Property | Presence | Comment |
+--------------------+----------+-----------------------------------+ +--------------------+----------+-----------------------------------+
| VALARM | 0+ | | | VALARM | 0+ | |
| ACTION | 1 | | | ACTION | 1 | |
| ATTACH | 0+ | | | ATTACH | 0+ | |
| ATTENDEE | 0+ | | | ATTENDEE | 0+ | |
skipping to change at page 17, line 13 skipping to change at page 17, line 13
| CLASS | 0 or 1 | | | CLASS | 0 or 1 | |
| COMMENT | 0+ | | | COMMENT | 0+ | |
| CONTACT | 0 or 1 | | | CONTACT | 0 or 1 | |
| CREATED | 0 or 1 | | | CREATED | 0 or 1 | |
| DESCRIPTION | 0 or 1 | Can be null | | DESCRIPTION | 0 or 1 | Can be null |
| DTEND | 0 or 1 | If present DURATION MUST NOT be | | DTEND | 0 or 1 | If present DURATION MUST NOT be |
| | | present | | | | present |
| DURATION | 0 or 1 | If present DTEND MUST NOT be | | DURATION | 0 or 1 | If present DTEND MUST NOT be |
| | | present | | | | present |
| EXDATE | 0+ | | | EXDATE | 0+ | |
| EXRULE | 0+ | |
| GEO | 0 or 1 | | | GEO | 0 or 1 | |
| LAST-MODIFIED | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | |
| LOCATION | 0 or 1 | | | LOCATION | 0 or 1 | |
| PRIORITY | 0 or 1 | | | PRIORITY | 0 or 1 | |
| RDATE | 0+ | | | RDATE | 0+ | |
| RELATED-TO | 0+ | | | RELATED-TO | 0+ | |
| RESOURCES | 0+ | | | RESOURCES | 0+ | |
| RRULE | 0+ | | | RRULE | 0+ | |
| STATUS | 0 or 1 | MAY be one of | | STATUS | 0 or 1 | MAY be one of |
| | | TENTATIVE/CONFIRMED/CANCELLED | | | | TENTATIVE/CONFIRMED/CANCELLED |
skipping to change at page 19, line 18 skipping to change at page 19, line 17
| CLASS | 0 or 1 | | | CLASS | 0 or 1 | |
| COMMENT | 0+ | | | COMMENT | 0+ | |
| CONTACT | 0+ | | | CONTACT | 0+ | |
| CREATED | 0 or 1 | | | CREATED | 0 or 1 | |
| DESCRIPTION | 0 or 1 | Can be null | | DESCRIPTION | 0 or 1 | Can be null |
| DTEND | 0 or 1 | if present DURATION MUST NOT be | | DTEND | 0 or 1 | if present DURATION MUST NOT be |
| | | present | | | | present |
| DURATION | 0 or 1 | if present DTEND MUST NOT be | | DURATION | 0 or 1 | if present DTEND MUST NOT be |
| | | present | | | | present |
| EXDATE | 0+ | | | EXDATE | 0+ | |
| EXRULE | 0+ | |
| GEO | 0 or 1 | | | GEO | 0 or 1 | |
| LAST-MODIFIED | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | |
| LOCATION | 0 or 1 | | | LOCATION | 0 or 1 | |
| PRIORITY | 0 or 1 | | | PRIORITY | 0 or 1 | |
| RDATE | 0+ | | | RDATE | 0+ | |
| RECURRENCE-ID | 0 or 1 | only if referring to an instance | | RECURRENCE-ID | 0 or 1 | only if referring to an instance |
| | | of a recurring calendar | | | | of a recurring calendar |
| | | component. Otherwise it MUST NOT | | | | component. Otherwise it MUST NOT |
| | | be present. | | | | be present. |
| RELATED-TO | 0+ | | | RELATED-TO | 0+ | |
skipping to change at page 23, line 47 skipping to change at page 23, line 47
| COMMENT | 0+ | | | COMMENT | 0+ | |
| CONTACT | 0+ | | | CONTACT | 0+ | |
| CREATED | 0 or 1 | | | CREATED | 0 or 1 | |
| DESCRIPTION | 0 or 1 | | | DESCRIPTION | 0 or 1 | |
| DTEND | 0 or 1 | if present DURATION MUST NOT be | | DTEND | 0 or 1 | if present DURATION MUST NOT be |
| | | present | | | | present |
| DTSTART | 0 or 1 | | | DTSTART | 0 or 1 | |
| DURATION | 0 or 1 | if present DTEND MUST NOT be | | DURATION | 0 or 1 | if present DTEND MUST NOT be |
| | | present | | | | present |
| EXDATE | 0+ | | | EXDATE | 0+ | |
| EXRULE | 0+ | |
| GEO | 0 or 1 | | | GEO | 0 or 1 | |
| LAST-MODIFIED | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | |
| LOCATION | 0 or 1 | | | LOCATION | 0 or 1 | |
| PRIORITY | 0 or 1 | | | PRIORITY | 0 or 1 | |
| RDATE | 0+ | | | RDATE | 0+ | |
| RELATED-TO | 0+ | | | RELATED-TO | 0+ | |
| RESOURCES | 0+ | | | RESOURCES | 0+ | |
| REQUEST-STATUS | 0+ | | | REQUEST-STATUS | 0+ | |
| RRULE | 0+ | | | RRULE | 0+ | |
| STATUS | 0 or 1 | | | STATUS | 0 or 1 | |
skipping to change at page 25, line 24 skipping to change at page 25, line 23
| CLASS | 0 or 1 | | | CLASS | 0 or 1 | |
| COMMENT | 0+ | | | COMMENT | 0+ | |
| CONTACT | 0+ | | | CONTACT | 0+ | |
| CREATED | 0 or 1 | | | CREATED | 0 or 1 | |
| DESCRIPTION | 0 or 1 | Can be null | | DESCRIPTION | 0 or 1 | Can be null |
| DTEND | 0 or 1 | if present DURATION MUST NOT be | | DTEND | 0 or 1 | if present DURATION MUST NOT be |
| | | present | | | | present |
| DURATION | 0 or 1 | if present DTEND MUST NOT be | | DURATION | 0 or 1 | if present DTEND MUST NOT be |
| | | present | | | | present |
| EXDATE | 0+ | | | EXDATE | 0+ | |
| EXRULE | 0+ | |
| GEO | 0 or 1 | | | GEO | 0 or 1 | |
| LAST-MODIFIED | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | |
| LOCATION | 0 or 1 | | | LOCATION | 0 or 1 | |
| PRIORITY | 0 or 1 | | | PRIORITY | 0 or 1 | |
| RDATE | 0+ | | | RDATE | 0+ | |
| RELATED-TO | 0+ | | | RELATED-TO | 0+ | |
| RESOURCES | 0+ | | | RESOURCES | 0+ | |
| RRULE | 0+ | | | RRULE | 0+ | |
| STATUS | 0 or 1 | MAY be one of TENTATIVE/CONFIRMED | | STATUS | 0 or 1 | MAY be one of TENTATIVE/CONFIRMED |
| TRANSP | 0 or 1 | | | TRANSP | 0 or 1 | |
skipping to change at page 27, line 19 skipping to change at page 27, line 16
| CLASS | 0 or 1 | | | CLASS | 0 or 1 | |
| CONTACT | 0+ | | | CONTACT | 0+ | |
| CREATED | 0 or 1 | | | CREATED | 0 or 1 | |
| DESCRIPTION | 0 or 1 | | | DESCRIPTION | 0 or 1 | |
| DTEND | 0 or 1 | if present DURATION MUST NOT be | | DTEND | 0 or 1 | if present DURATION MUST NOT be |
| | | present | | | | present |
| DTSTART | 0 or 1 | | | DTSTART | 0 or 1 | |
| DURATION | 0 or 1 | if present DTEND MUST NOT be | | DURATION | 0 or 1 | if present DTEND MUST NOT be |
| | | present | | | | present |
| EXDATE | 0+ | | | EXDATE | 0+ | |
| EXRULE | 0+ | |
| GEO | 0 or 1 | | | GEO | 0 or 1 | |
| LAST-MODIFIED | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | |
| LOCATION | 0 or 1 | | | LOCATION | 0 or 1 | |
| PRIORITY | 0 or 1 | | | PRIORITY | 0 or 1 | |
| RDATE | 0+ | | | RDATE | 0+ | |
| RECURRENCE-ID | 0 or 1 | MUST be present if referring to | | RECURRENCE-ID | 0 or 1 | MUST be present if referring to |
| | | one or more or more recurring | | | | one or more or more recurring |
| | | instances. Otherwise it MUST NOT | | | | instances. Otherwise it MUST NOT |
| | | be present | | | | be present |
| RELATED-TO | 0+ | | | RELATED-TO | 0+ | |
skipping to change at page 28, line 47 skipping to change at page 28, line 45
| ATTACH | 0 | | | ATTACH | 0 | |
| CATEGORIES | 0 | | | CATEGORIES | 0 | |
| CLASS | 0 | | | CLASS | 0 | |
| CONTACT | 0 | | | CONTACT | 0 | |
| CREATED | 0 | | | CREATED | 0 | |
| DESCRIPTION | 0 | | | DESCRIPTION | 0 | |
| DTEND | 0 | | | DTEND | 0 | |
| DTSTART | 0 | | | DTSTART | 0 | |
| DURATION | 0 | | | DURATION | 0 | |
| EXDATE | 0 | | | EXDATE | 0 | |
| EXRULE | 0 | |
| GEO | 0 | | | GEO | 0 | |
| LAST-MODIFIED | 0 | | | LAST-MODIFIED | 0 | |
| LOCATION | 0 | | | LOCATION | 0 | |
| PRIORITY | 0 | | | PRIORITY | 0 | |
| RDATE | 0 | | | RDATE | 0 | |
| RELATED-TO | 0 | | | RELATED-TO | 0 | |
| REQUEST-STATUS | 0 | | | REQUEST-STATUS | 0 | |
| RESOURCES | 0 | | | RESOURCES | 0 | |
| RRULE | 0 | | | RRULE | 0 | |
| SEQUENCE | 0 | | | SEQUENCE | 0 | |
skipping to change at page 30, line 29 skipping to change at page 30, line 26
| CLASS | 0 or 1 | | | CLASS | 0 or 1 | |
| COMMENT | 0+ | | | COMMENT | 0+ | |
| CONTACT | 0+ | | | CONTACT | 0+ | |
| CREATED | 0 or 1 | | | CREATED | 0 or 1 | |
| DESCRIPTION | 0 or 1 | | | DESCRIPTION | 0 or 1 | |
| DTEND | 0 or 1 | if present DURATION MUST NOT be | | DTEND | 0 or 1 | if present DURATION MUST NOT be |
| | | present | | | | present |
| DURATION | 0 or 1 | if present DTEND MUST NOT be | | DURATION | 0 or 1 | if present DTEND MUST NOT be |
| | | present | | | | present |
| EXDATE | 0+ | | | EXDATE | 0+ | |
| EXRULE | 0+ | |
| GEO | 0 or 1 | | | GEO | 0 or 1 | |
| LAST-MODIFIED | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | |
| LOCATION | 0 or 1 | | | LOCATION | 0 or 1 | |
| PRIORITY | 0 or 1 | | | PRIORITY | 0 or 1 | |
| RDATE | 0+ | | | RDATE | 0+ | |
| RECURRENCE-ID | 0 or 1 | MUST only if referring to an | | RECURRENCE-ID | 0 or 1 | MUST only if referring to an |
| | | instance of a recurring calendar | | | | instance of a recurring calendar |
| | | component. Otherwise it MUST NOT | | | | component. Otherwise it MUST NOT |
| | | be present. | | | | be present. |
| RELATED-TO | 0+ | | | RELATED-TO | 0+ | |
skipping to change at page 32, line 11 skipping to change at page 32, line 6
| ATTENDEE | 0 | | | ATTENDEE | 0 | |
| CATEGORIES | 0 | | | CATEGORIES | 0 | |
| CLASS | 0 | | | CLASS | 0 | |
| CONTACT | 0 | | | CONTACT | 0 | |
| CREATED | 0 | | | CREATED | 0 | |
| DESCRIPTION | 0 | | | DESCRIPTION | 0 | |
| DTEND | 0 | | | DTEND | 0 | |
| DTSTART | 0 | | | DTSTART | 0 | |
| DURATION | 0 | | | DURATION | 0 | |
| EXDATE | 0 | | | EXDATE | 0 | |
| EXRULE | 0 | |
| GEO | 0 | | | GEO | 0 | |
| LAST-MODIFIED | 0 | | | LAST-MODIFIED | 0 | |
| LOCATION | 0 | | | LOCATION | 0 | |
| PRIORITY | 0 | | | PRIORITY | 0 | |
| RDATE | 0 | | | RDATE | 0 | |
| RELATED-TO | 0 | | | RELATED-TO | 0 | |
| RESOURCES | 0 | | | RESOURCES | 0 | |
| RRULE | 0 | | | RRULE | 0 | |
| STATUS | 0 | | | STATUS | 0 | |
| SUMMARY | 0 | | | SUMMARY | 0 | |
skipping to change at page 39, line 33 skipping to change at page 38, line 47
| COMMENT | 0+ | | | COMMENT | 0+ | |
| COMPLETED | 0 or 1 | | | COMPLETED | 0 or 1 | |
| CONTACT | 0+ | | | CONTACT | 0+ | |
| CREATED | 0 or 1 | | | CREATED | 0 or 1 | |
| DESCRIPTION | 0 or 1 | Can be null | | DESCRIPTION | 0 or 1 | Can be null |
| DUE | 0 or 1 | If present DURATION MUST NOT be | | DUE | 0 or 1 | If present DURATION MUST NOT be |
| | | present | | | | present |
| DURATION | 0 or 1 | If present DUE MUST NOT be | | DURATION | 0 or 1 | If present DUE MUST NOT be |
| | | present | | | | present |
| EXDATE | 0+ | | | EXDATE | 0+ | |
| EXRULE | 0+ | |
| GEO | 0 or 1 | | | GEO | 0 or 1 | |
| LAST-MODIFIED | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | |
| LOCATION | 0 or 1 | | | LOCATION | 0 or 1 | |
| PERCENT-COMPLETE | 0 or 1 | | | PERCENT-COMPLETE | 0 or 1 | |
| RDATE | 0+ | | | RDATE | 0+ | |
| RECURRENCE-ID | 0 or 1 | MUST only if referring to an | | RECURRENCE-ID | 0 or 1 | MUST only if referring to an |
| | | instance of a recurring calendar | | | | instance of a recurring calendar |
| | | component. Otherwise it MUST NOT | | | | component. Otherwise it MUST NOT |
| | | be present. | | | | be present. |
| RELATED-TO | 0+ | | | RELATED-TO | 0+ | |
skipping to change at page 41, line 44 skipping to change at page 41, line 10
| COMMENT | 0+ | | | COMMENT | 0+ | |
| COMPLETED | 0 or 1 | | | COMPLETED | 0 or 1 | |
| CONTACT | 0+ | | | CONTACT | 0+ | |
| CREATED | 0 or 1 | | | CREATED | 0 or 1 | |
| DESCRIPTION | 0 or 1 | Can be null | | DESCRIPTION | 0 or 1 | Can be null |
| DUE | 0 or 1 | If present DURATION MUST NOT be | | DUE | 0 or 1 | If present DURATION MUST NOT be |
| | | present | | | | present |
| DURATION | 0 or 1 | If present DUE MUST NOT be | | DURATION | 0 or 1 | If present DUE MUST NOT be |
| | | present | | | | present |
| EXDATE | 0+ | | | EXDATE | 0+ | |
| EXRULE | 0+ | |
| GEO | 0 or 1 | | | GEO | 0 or 1 | |
| LAST-MODIFIED | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | |
| LOCATION | 0 or 1 | | | LOCATION | 0 or 1 | |
| PERCENT-COMPLETE | 0 or 1 | | | PERCENT-COMPLETE | 0 or 1 | |
| RDATE | 0+ | | | RDATE | 0+ | |
| RECURRENCE-ID | 0 or 1 | present if referring to an | | RECURRENCE-ID | 0 or 1 | present if referring to an |
| | | instance of a recurring calendar | | | | instance of a recurring calendar |
| | | component. Otherwise it MUST NOT | | | | component. Otherwise it MUST NOT |
| | | be present. | | | | be present. |
| RELATED-TO | 0+ | | | RELATED-TO | 0+ | |
skipping to change at page 46, line 7 skipping to change at page 45, line 18
| COMPLETED | 0 or 1 | | | COMPLETED | 0 or 1 | |
| CONTACT | 0+ | | | CONTACT | 0+ | |
| CREATED | 0 or 1 | | | CREATED | 0 or 1 | |
| DESCRIPTION | 0 or 1 | | | DESCRIPTION | 0 or 1 | |
| DTSTART | 0 or 1 | | | DTSTART | 0 or 1 | |
| DUE | 0 or 1 | If present DURATION MUST NOT be | | DUE | 0 or 1 | If present DURATION MUST NOT be |
| | | present | | | | present |
| DURATION | 0 or 1 | If present DUE MUST NOT be | | DURATION | 0 or 1 | If present DUE MUST NOT be |
| | | present | | | | present |
| EXDATE | 0+ | | | EXDATE | 0+ | |
| EXRULE | 0+ | |
| GEO | 0 or 1 | | | GEO | 0 or 1 | |
| LAST-MODIFIED | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | |
| LOCATION | 0 or 1 | | | LOCATION | 0 or 1 | |
| PERCENT-COMPLETE | 0 or 1 | | | PERCENT-COMPLETE | 0 or 1 | |
| PRIORITY | 0 or 1 | | | PRIORITY | 0 or 1 | |
| RDATE | 0+ | | | RDATE | 0+ | |
| RELATED-TO | 0+ | | | RELATED-TO | 0+ | |
| RESOURCES | 0+ | | | RESOURCES | 0+ | |
| RRULE | 0+ | | | RRULE | 0+ | |
| RECURRENCE-ID | 0 or 1 | MUST only if referring to an | | RECURRENCE-ID | 0 or 1 | MUST only if referring to an |
skipping to change at page 47, line 39 skipping to change at page 46, line 51
| COMPLETED | 0 or 1 | | | COMPLETED | 0 or 1 | |
| CONTACT | 0+ | | | CONTACT | 0+ | |
| CREATED | 0 or 1 | | | CREATED | 0 or 1 | |
| DESCRIPTION | 0 or 1 | Can be null | | DESCRIPTION | 0 or 1 | Can be null |
| DTSTART | 0 or 1 | | | DTSTART | 0 or 1 | |
| DUE | 0 or 1 | If present DURATION MUST NOT be | | DUE | 0 or 1 | If present DURATION MUST NOT be |
| | | present | | | | present |
| DURATION | 0 or 1 | If present DUE MUST NOT be | | DURATION | 0 or 1 | If present DUE MUST NOT be |
| | | present | | | | present |
| EXDATE | 0+ | | | EXDATE | 0+ | |
| EXRULE | 0+ | |
| GEO | 0 or 1 | | | GEO | 0 or 1 | |
| LAST-MODIFIED | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | |
| LOCATION | 0 or 1 | | | LOCATION | 0 or 1 | |
| PERCENT-COMPLETE | 0 or 1 | | | PERCENT-COMPLETE | 0 or 1 | |
| RDATE | 0+ | | | RDATE | 0+ | |
| RELATED-TO | 0+ | | | RELATED-TO | 0+ | |
| RESOURCES | 0+ | | | RESOURCES | 0+ | |
| RRULE | 0+ | | | RRULE | 0+ | |
| STATUS | 0 or 1 | MAY be one of COMPLETED/NEEDS | | STATUS | 0 or 1 | MAY be one of COMPLETED/NEEDS |
| | | ACTION/IN- PROCESS | | | | ACTION/IN- PROCESS |
skipping to change at page 49, line 36 skipping to change at page 49, line 33
| COMPLETED | 0 or 1 | | | COMPLETED | 0 or 1 | |
| CONTACT | 0+ | | | CONTACT | 0+ | |
| CREATED | 0 or 1 | | | CREATED | 0 or 1 | |
| DESCRIPTION | 0 or 1 | | | DESCRIPTION | 0 or 1 | |
| DTSTART | 0 or 1 | | | DTSTART | 0 or 1 | |
| DUE | 0 or 1 | If present DURATION MUST NOT be | | DUE | 0 or 1 | If present DURATION MUST NOT be |
| | | present | | | | present |
| DURATION | 0 or 1 | If present DUE MUST NOT be | | DURATION | 0 or 1 | If present DUE MUST NOT be |
| | | present | | | | present |
| EXDATE | 0+ | | | EXDATE | 0+ | |
| EXRULE | 0+ | |
| GEO | 0 or 1 | | | GEO | 0 or 1 | |
| LAST-MODIFIED | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | |
| LOCATION | 0 or 1 | | | LOCATION | 0 or 1 | |
| PERCENT-COMPLETE | 0 or 1 | | | PERCENT-COMPLETE | 0 or 1 | |
| RDATE | 0+ | | | RDATE | 0+ | |
| RECURRENCE-ID | 0 or 1 | MUST only if referring to one or | | RECURRENCE-ID | 0 or 1 | MUST only if referring to one or |
| | | more instances of a recurring | | | | more instances of a recurring |
| | | calendar component. Otherwise it | | | | calendar component. Otherwise it |
| | | MUST NOT be present. | | | | MUST NOT be present. |
| RELATED-TO | 0+ | | | RELATED-TO | 0+ | |
skipping to change at page 51, line 25 skipping to change at page 51, line 31
| CLASS | 0 | | | CLASS | 0 | |
| COMMENT | 0 | | | COMMENT | 0 | |
| COMPLETED | 0 | | | COMPLETED | 0 | |
| CONTACT | 0 | | | CONTACT | 0 | |
| CREATED | 0 | | | CREATED | 0 | |
| DESCRIPTION | 0 | | | DESCRIPTION | 0 | |
| DTSTART | 0 | | | DTSTART | 0 | |
| DUE | 0 | | | DUE | 0 | |
| DURATION | 0 | | | DURATION | 0 | |
| EXDATE | 0 | | | EXDATE | 0 | |
| EXRULE | 0 | |
| GEO | 0 | | | GEO | 0 | |
| LAST-MODIFIED | 0 | | | LAST-MODIFIED | 0 | |
| LOCATION | 0 | | | LOCATION | 0 | |
| ORGANIZER | 0 | | | ORGANIZER | 0 | |
| PERCENT-COMPLETE | 0 | | | PERCENT-COMPLETE | 0 | |
| PRIORITY | 0 | | | PRIORITY | 0 | |
| RDATE | 0 | | | RDATE | 0 | |
| RELATED-TO | 0 | | | RELATED-TO | 0 | |
| REQUEST-STATUS | 0 | | | REQUEST-STATUS | 0 | |
| RESOURCES | 0 | | | RESOURCES | 0 | |
skipping to change at page 53, line 5 skipping to change at page 53, line 9
| COMPLETED | 0 or 1 | | | COMPLETED | 0 or 1 | |
| CONTACT | 0+ | | | CONTACT | 0+ | |
| CREATED | 0 or 1 | | | CREATED | 0 or 1 | |
| DESCRIPTION | 0 or 1 | Can be null | | DESCRIPTION | 0 or 1 | Can be null |
| DTSTART | 0 or 1 | | | DTSTART | 0 or 1 | |
| DUE | 0 or 1 | If present DURATION MUST NOT be | | DUE | 0 or 1 | If present DURATION MUST NOT be |
| | | present | | | | present |
| DURATION | 0 or 1 | If present DUE MUST NOT be | | DURATION | 0 or 1 | If present DUE MUST NOT be |
| | | present | | | | present |
| EXDATE | 0+ | | | EXDATE | 0+ | |
| EXRULE | 0+ | |
| GEO | 0 or 1 | | | GEO | 0 or 1 | |
| LAST-MODIFIED | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | |
| LOCATION | 0 or 1 | | | LOCATION | 0 or 1 | |
| PERCENT-COMPLETE | 0 or 1 | | | PERCENT-COMPLETE | 0 or 1 | |
| RDATE | 0+ | | | RDATE | 0+ | |
| RECURRENCE-ID | 0 or 1 | MUST only 3.5if referring to an | | RECURRENCE-ID | 0 or 1 | MUST only 3.5if referring to an |
| | | instance of a recurring calendar | | | | instance of a recurring calendar |
| | | component. Otherwise it MUST NOT | | | | component. Otherwise it MUST NOT |
| | | be present. | | | | be present. |
| RELATED-TO | 0+ | | | RELATED-TO | 0+ | |
skipping to change at page 54, line 31 skipping to change at page 55, line 31
| COMPLETED | 0 or 1 | | | COMPLETED | 0 or 1 | |
| CONTACT | 0+ | | | CONTACT | 0+ | |
| CREATED | 0 or 1 | | | CREATED | 0 or 1 | |
| DESCRIPTION | 0 or 1 | | | DESCRIPTION | 0 or 1 | |
| DTSTART | 0 or 1 | | | DTSTART | 0 or 1 | |
| DUE | 0 or 1 | If present DURATION MUST NOT be | | DUE | 0 or 1 | If present DURATION MUST NOT be |
| | | present | | | | present |
| DURATION | 0 or 1 | If present DUE MUST NOT be | | DURATION | 0 or 1 | If present DUE MUST NOT be |
| | | present | | | | present |
| EXDATE | 0+ | | | EXDATE | 0+ | |
| EXRULE | 0+ | |
| GEO | 0 or 1 | | | GEO | 0 or 1 | |
| LAST-MODIFIED | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | |
| LOCATION | 0 or 1 | | | LOCATION | 0 or 1 | |
| PERCENT-COMPLETE | 0 or 1 | | | PERCENT-COMPLETE | 0 or 1 | |
| PRIORITY | 0 or 1 | | | PRIORITY | 0 or 1 | |
| RDATE | 0+ | | | RDATE | 0+ | |
| RECURRENCE-ID | 0 or 1 | MUST only if referring to an | | RECURRENCE-ID | 0 or 1 | MUST only if referring to an |
| | | instance of a recurring calendar | | | | instance of a recurring calendar |
| | | component. Otherwise it MUST NOT | | | | component. Otherwise it MUST NOT |
| | | be present. | | | | be present. |
skipping to change at page 56, line 23 skipping to change at page 57, line 23
| DTSTART | 1 | | | DTSTART | 1 | |
| ORGANIZER | 1 | | | ORGANIZER | 1 | |
| UID | 1 | | | UID | 1 | |
| ATTACH | 0+ | | | ATTACH | 0+ | |
| CATEGORIES | 0+ | | | CATEGORIES | 0+ | |
| CLASS | 0 or 1 | | | CLASS | 0 or 1 | |
| COMMENT | 0+ | | | COMMENT | 0+ | |
| CONTACT | 0+ | | | CONTACT | 0+ | |
| CREATED | 0 or 1 | | | CREATED | 0 or 1 | |
| EXDATE | 0+ | | | EXDATE | 0+ | |
| EXRULE | 0+ | |
| LAST-MODIFIED | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | |
| RDATE | 0+ | | | RDATE | 0+ | |
| RECURRENCE-ID | 0 or 1 | MUST only if referring to an | | RECURRENCE-ID | 0 or 1 | MUST only if referring to an |
| | | instance of a recurring calendar | | | | instance of a recurring calendar |
| | | component. Otherwise it MUST NOT | | | | component. Otherwise it MUST NOT |
| | | be present. | | | | be present. |
| RELATED-TO | 0+ | | | RELATED-TO | 0+ | |
| RRULE | 0+ | | | RRULE | 0+ | |
| SEQUENCE | 0 or 1 | MUST echo the original SEQUENCE | | SEQUENCE | 0 or 1 | MUST echo the original SEQUENCE |
| | | number. MUST be present if | | | | number. MUST be present if |
skipping to change at page 58, line 25 skipping to change at page 59, line 25
| SEQUENCE | 1 | MUST be greater than 0 | | SEQUENCE | 1 | MUST be greater than 0 |
| UID | 1 | MUST match that of the original | | UID | 1 | MUST match that of the original |
| | | journal | | | | journal |
| ATTACH | 0+ | | | ATTACH | 0+ | |
| CATEGORIES | 0+ | | | CATEGORIES | 0+ | |
| CLASS | 0 or 1 | | | CLASS | 0 or 1 | |
| COMMENT | 0+ | | | COMMENT | 0+ | |
| CONTACT | 0+ | | | CONTACT | 0+ | |
| CREATED | 0 or 1 | | | CREATED | 0 or 1 | |
| EXDATE | 0+ | | | EXDATE | 0+ | |
| EXRULE | 0+ | |
| LAST-MODIFIED | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | |
| RDATE | 0+ | | | RDATE | 0+ | |
| RELATED-TO | 0+ | | | RELATED-TO | 0+ | |
| RRULE | 0+ | | | RRULE | 0+ | |
| STATUS | 0 or 1 | MAY be one of | | STATUS | 0 or 1 | MAY be one of |
| | | DRAFT/FINAL/CANCELLED | | | | DRAFT/FINAL/CANCELLED |
| SUMMARY | 0 or 1 | Can be null | | SUMMARY | 0 or 1 | Can be null |
| URL | 0 or 1 | | | URL | 0 or 1 | |
| X-PROPERTY | 0+ | | | X-PROPERTY | 0+ | |
| ATTENDEE | 0 | | | ATTENDEE | 0 | |
skipping to change at page 60, line 26 skipping to change at page 61, line 26
| ATTACH | 0+ | | | ATTACH | 0+ | |
| ATTENDEE | 0+ | | | ATTENDEE | 0+ | |
| CATEGORIES | 0+ | | | CATEGORIES | 0+ | |
| CLASS | 0 or 1 | | | CLASS | 0 or 1 | |
| COMMENT | 0+ | | | COMMENT | 0+ | |
| CONTACT | 0+ | | | CONTACT | 0+ | |
| CREATED | 0 or 1 | | | CREATED | 0 or 1 | |
| DESCRIPTION | 0 or 1 | | | DESCRIPTION | 0 or 1 | |
| DTSTART | 0 or 1 | | | DTSTART | 0 or 1 | |
| EXDATE | 0+ | | | EXDATE | 0+ | |
| EXRULE | 0+ | |
| LAST-MODIFIED | 0 or 1 | | | LAST-MODIFIED | 0 or 1 | |
| RDATE | 0+ | | | RDATE | 0+ | |
| RECURRENCE-ID | 0 or 1 | only if referring to an instance | | RECURRENCE-ID | 0 or 1 | only if referring to an instance |
| | | of a recurring calendar | | | | of a recurring calendar |
| | | component. Otherwise it MUST NOT | | | | component. Otherwise it MUST NOT |
| | | be present. | | | | be present. |
| RELATED-TO | 0+ | | | RELATED-TO | 0+ | |
| RRULE | 0+ | | | RRULE | 0+ | |
| STATUS | 0 or 1 | MAY be present, must be | | STATUS | 0 or 1 | MAY be present, must be |
| | | "CANCELLED" if present | | | | "CANCELLED" if present |
skipping to change at page 65, line 12 skipping to change at page 66, line 12
There are valid [RFC2822] addresses that represent groups. Sending There are valid [RFC2822] addresses that represent groups. Sending
email to such an address results in mail being sent to multiple email to such an address results in mail being sent to multiple
recipients. Such an address may be used as the value of an recipients. Such an address may be used as the value of an
"ATTENDEE" property. Thus, it is possible that the recipient of a "ATTENDEE" property. Thus, it is possible that the recipient of a
"REQUEST" does not appear explicitly in the list. "REQUEST" does not appear explicitly in the list.
It is recommended that the general approach to finding a "Calendar It is recommended that the general approach to finding a "Calendar
User" in an attendee list be as follows: User" in an attendee list be as follows:
1. Search for the "Calendar User" in the attendee list where 1. Search for the "Calendar User" in the attendee list where
"TYPE=INDIVIDUAL" "CUTYPE=INDIVIDUAL"
2. Failing (1) look for attendees where "TYPE=GROUP" or 2. Failing (1) look for attendees where "CUTYPE=GROUP" or
'TYPE=UNKNOWN". The CUA then determines if the "Calendar User" 'CUTYPE=UNKNOWN". The CUA then determines if the "Calendar User"
is a member of one of these groups. If so, the "REPLY" method is a member of one of these groups. If so, the "REPLY" method
sent to the "Organizer" MUST contain a new "ATTENDEE" property in sent to the "Organizer" MUST contain a new "ATTENDEE" property in
which: which:
* the "TYPE" property parameter is set to INDIVIDUAL * the "TYPE" property parameter is set to INDIVIDUAL
* the "MEMBER" property parameter is set to the name of the * the "MEMBER" property parameter is set to the name of the
group group
3. Failing (2) the CUA MAY ignore or accept the request as the 3. Failing (2) the CUA MAY ignore or accept the request as the
"Calendar User" wishes. "Calendar User" wishes.
skipping to change at page 71, line 10 skipping to change at page 72, line 10
value for the "ROLE" parameter is "REQ-PARTICIPANT" and it need not value for the "ROLE" parameter is "REQ-PARTICIPANT" and it need not
be enumerated. In this case we are using the value "NON-PARTICIPANT" 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 to indicate "E" is a non-attending CU. The parameter is not needed
on other "Attendees" since "PARTICIPANT" is the default value. on other "Attendees" since "PARTICIPANT" is the default value.
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REQUEST METHOD:REQUEST
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:a@example.com
ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL;CN=B:Mailto:B@example.com ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:b@example.com
ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL;CN=C:Mailto:C@example.com ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=C:mailto:c@example.com
ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL;CN=Hal:Mailto:D@example.com ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal:mailto:d@example.com
ATTENDEE;RSVP=FALSE;TYPE=ROOM:conf_Big@example.com ATTENDEE;RSVP=FALSE;CUTYPE=ROOM:conf_big@example.com
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:Mailto:E@example.com ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:mailto:e@example.com
DTSTAMP:19970611T190000Z DTSTAMP:19970611T190000Z
DTSTART:19970701T200000Z DTSTART:19970701T200000Z
DTEND:19970701T2000000Z DTEND:19970701T2000000Z
SUMMARY:Conference SUMMARY:Conference
UID:calsrv.example.com-873970198738777@example.com UID:calsrv.example.com-873970198738777@example.com
SEQUENCE:0 SEQUENCE:0
STATUS:CONFIRMED STATUS:CONFIRMED
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
4.2.2. Reply To A Group Event Request 4.2.2. Reply To A Group Event Request
Attendee "B" accepts the meeting. Attendee "B" accepts the meeting.
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REPLY METHOD:REPLY
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
ATTENDEE;PARTSTAT=ACCEPTED:Mailto:B@example.com ATTENDEE;PARTSTAT=ACCEPTED:mailto:b@example.com
ORGANIZER:MAILTO:A@example.com ORGANIZER:mailto:a@example.com
UID:calsrv.example.com-873970198738777@example.com UID:calsrv.example.com-873970198738777@example.com
SEQUENCE:0 SEQUENCE:0
REQUEST-STATUS:2.0;Success REQUEST-STATUS:2.0;Success
DTSTAMP:19970612T190000Z DTSTAMP:19970612T190000Z
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
"B" could have declined the meeting or indicated tentative acceptance "B" could have declined the meeting or indicated tentative acceptance
by setting the "ATTENDEE" "PARTSTAT" parameter to "DECLINED" or by setting the "ATTENDEE" "PARTSTAT" parameter to "DECLINED" or
"TENTATIVE", respectively. Also, "REQUEST-STATUS" is not required in "TENTATIVE", respectively. Also, "REQUEST-STATUS" is not required in
skipping to change at page 72, line 16 skipping to change at page 73, line 16
The event is moved to a different time. The combination of the "UID" The event is moved to a different time. The combination of the "UID"
property (unchanged) and the "SEQUENCE" (bumped to 1) properties property (unchanged) and the "SEQUENCE" (bumped to 1) properties
indicate the update. indicate the update.
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REQUEST METHOD:REQUEST
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL:Mailto:B@example.com ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL:Mailto:C@example.com ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:c@example.com
ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL;CN=Hal:Mailto:D@example.com ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal:mailto:d@example.com
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE; ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE;
CUTYPE=ROOM:Mailto:Conf@example.com CUTYPE=ROOM:mailto:conf@example.com
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:Mailto:E@example.com ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:mailto:e@example.com
DTSTART:19970701T180000Z DTSTART:19970701T180000Z
DTEND:19970701T190000Z DTEND:19970701T190000Z
SUMMARY:Phone Conference SUMMARY:Phone Conference
UID:calsrv.example.com-873970198738777@example.com UID:calsrv.example.com-873970198738777@example.com
SEQUENCE:1 SEQUENCE:1
DTSTAMP:19970613T190000Z DTSTAMP:19970613T190000Z
STATUS:CONFIRMED STATUS:CONFIRMED
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
skipping to change at page 73, line 10 skipping to change at page 74, line 10
"A" sends a "REQUEST" to "B" and "C". "B" makes a counter-proposal "A" sends a "REQUEST" to "B" and "C". "B" makes a counter-proposal
to "A" to change the time and location. to "A" to change the time and location.
"A" sends the following "REQUEST": "A" sends the following "REQUEST":
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REQUEST METHOD:REQUEST
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL:Mailto:B@example.com ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL:Mailto:C@example.com ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:c@example.com
DTSTART:19970701T190000Z DTSTART:19970701T190000Z
DTEND:19970701T200000Z DTEND:19970701T200000Z
SUMMARY:Discuss the Merits of the election results SUMMARY:Discuss the Merits of the election results
LOCATION:Green Conference Room LOCATION:Green Conference Room
UID:calsrv.example.com-873970198738777a@example.com UID:calsrv.example.com-873970198738777a@example.com
SEQUENCE:0 SEQUENCE:0
DTSTAMP:19970611T190000Z DTSTAMP:19970611T190000Z
STATUS:CONFIRMED STATUS:CONFIRMED
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
skipping to change at page 73, line 35 skipping to change at page 74, line 35
"B" sends "COUNTER" to "A", requesting changes to time and place. "B" sends "COUNTER" to "A", requesting changes to time and place.
"B" uses the "COMMENT" property to communicate a rationale for the "B" uses the "COMMENT" property to communicate a rationale for the
change. Note that the "SEQUENCE" property is NOT incremented on a change. Note that the "SEQUENCE" property is NOT incremented on a
"COUNTER". "COUNTER".
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:COUNTER METHOD:COUNTER
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL:Mailto:B@example.com ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL:Mailto:C@example.com ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:c@example.com
DTSTART:19970701T160000Z DTSTART:19970701T160000Z
DTEND:19970701T190000Z DTEND:19970701T190000Z
DTSTAMP:19970612T190000Z DTSTAMP:19970612T190000Z
SUMMARY:Discuss the Merits of the election results SUMMARY:Discuss the Merits of the election results
LOCATION:Green Conference Room LOCATION:Green Conference Room
COMMENT:This time works much better and I think the big conference COMMENT:This time works much better and I think the big conference
room is too big room is too big
UID:calsrv.example.com-873970198738777a@example.com UID:calsrv.example.com-873970198738777a@example.com
SEQUENCE:0 SEQUENCE:0
DTSTAMP:19970611T190000Z DTSTAMP:19970611T190000Z
skipping to change at page 74, line 13 skipping to change at page 75, line 13
END:VCALENDAR END:VCALENDAR
"A" accepts the changes from "B". To accept a counter-proposal, the "A" accepts the changes from "B". To accept a counter-proposal, the
"Organizer" sends a new event "REQUEST" with an incremented sequence "Organizer" sends a new event "REQUEST" with an incremented sequence
number. number.
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REQUEST METHOD:REQUEST
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL:Mailto:B@example.com ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL:Mailto:C@example.com ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:c@example.com
DTSTAMP:19970613T190000Z DTSTAMP:19970613T190000Z
DTSTART:19970701T160000Z DTSTART:19970701T160000Z
DTEND:19970701T190000Z DTEND:19970701T190000Z
SUMMARY:Discuss the Merits of the election results - changed to SUMMARY:Discuss the Merits of the election results - changed to
meet B's schedule meet B's schedule
LOCATION:Green Conference Room LOCATION:Green Conference Room
UID:calsrv.example.com-873970198738777@example.com UID:calsrv.example.com-873970198738777@example.com
SEQUENCE:1 SEQUENCE:1
STATUS:CONFIRMED STATUS:CONFIRMED
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
Instead, "A" rejects "B's" counter proposal Instead, "A" rejects "B's" counter proposal
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:DECLINECOUNTER METHOD:DECLINECOUNTER
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL:Mailto:B@example.com ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
COMMENT:Sorry, I cannot change this meeting time COMMENT:Sorry, I cannot change this meeting time
UID:calsrv.example.com-873970198738777@example.com UID:calsrv.example.com-873970198738777@example.com
SEQUENCE:0 SEQUENCE:0
DTSTAMP:19970614T190000Z DTSTAMP:19970614T190000Z
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
4.2.5. Delegating an Event 4.2.5. Delegating an Event
When delegating an event request to another "Calendar User", the When delegating an event request to another "Calendar User", the
skipping to change at page 76, line 44 skipping to change at page 77, line 44
| | "E". | | | | "E". | |
+-----------------+----------------+--------------------------------+ +-----------------+----------------+--------------------------------+
"C" responds to the "Organizer". "C" responds to the "Organizer".
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REPLY METHOD:REPLY
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
ORGANIZER:MAILTO:A@Example.com ORGANIZER:mailto:a@example.com
ATTENDEE;PARTSTAT=DELEGATED;DELEGATED- ATTENDEE;PARTSTAT=DELEGATED;DELEGATED-
TO="Mailto:E@example.com":Mailto:C@example.com TO="mailto:e@example.com":mailto:c@example.com
UID:calsrv.example.com-873970198738777@example.com UID:calsrv.example.com-873970198738777@example.com
SEQUENCE:0 SEQUENCE:0
REQUEST-STATUS:2.0;Success REQUEST-STATUS:2.0;Success
DTSTAMP:19970611T190000Z DTSTAMP:19970611T190000Z
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
Attendee "C" delegates presence at the meeting to "E". Attendee "C" delegates presence at the meeting to "E".
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REQUEST METHOD:REQUEST
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;PARTSTAT=DELEGATED;DELEGATED- ATTENDEE;PARTSTAT=DELEGATED;DELEGATED-
TO="Mailto:E@example.com":Mailto:C@example.com TO="mailto:e@example.com":mailto:c@example.com
ATTENDEE;RSVP=TRUE; ATTENDEE;RSVP=TRUE;
DELEGATED-FROM="Mailto:C@example.com":Mailto:E@example.com DELEGATED-FROM="mailto:c@example.com":mailto:e@example.com
DTSTART:19970701T180000Z DTSTART:19970701T180000Z
DTEND:19970701T200000Z DTEND:19970701T200000Z
SUMMARY:Phone Conference SUMMARY:Phone Conference
UID:calsrv.example.com-873970198738777@example.com UID:calsrv.example.com-873970198738777@example.com
SEQUENCE:0 SEQUENCE:0
STATUS:CONFIRMED STATUS:CONFIRMED
DTSTAMP:19970611T190000Z DTSTAMP:19970611T190000Z
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
4.2.6. Delegate Accepts the Meeting 4.2.6. Delegate Accepts the Meeting
To accept a delegated meeting, the delegate, "E", sends the following To accept a delegated meeting, the delegate, "E", sends the following
message to "A" and "C": message to "A" and "C":
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REPLY METHOD:REPLY
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
ORGANIZER:MAILTO:A@Example.com ORGANIZER:mailto:a@example.com
ATTENDEE;PARTSTAT=ACCEPTED;DELEGATED- ATTENDEE;PARTSTAT=ACCEPTED;DELEGATED-
FROM="Mailto:C@example.com":Mailto:E@example.com FROM="mailto:c@example.com":mailto:e@example.com
ATTENDEE;PARTSTAT=DELEGATED; ATTENDEE;PARTSTAT=DELEGATED;
DELEGATED-TO="Mailto:E@example.com":Mailto:C@example.com DELEGATED-TO="mailto:e@example.com":mailto:c@example.com
UID:calsrv.example.com-873970198738777@example.com UID:calsrv.example.com-873970198738777@example.com
SEQUENCE:0 SEQUENCE:0
REQUEST-STATUS:2.0;Success REQUEST-STATUS:2.0;Success
DTSTAMP:19970614T190000Z DTSTAMP:19970614T190000Z
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
4.2.7. Delegate Declines the Meeting 4.2.7. Delegate Declines the Meeting
In this example the "Delegate" declines the meeting request and sets In this example the "Delegate" declines the meeting request and sets
skipping to change at page 78, line 25 skipping to change at page 79, line 25
delegate it to another CU. delegate it to another CU.
Response from "E" to "A" and "C". Note the use of the "COMMENT" Response from "E" to "A" and "C". Note the use of the "COMMENT"
property "E" uses to indicate why the delegation was declined. property "E" uses to indicate why the delegation was declined.
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REPLY METHOD:REPLY
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
ORGANIZER:MAILTO:A@Example.com ORGANIZER:mailto:a@example.com
ATTENDEE;PARTSTAT=DELEGATED; ATTENDEE;PARTSTAT=DELEGATED;
DELEGATED-TO="Mailto:E@example.com":Mailto:C@example.com DELEGATED-TO="mailto:e@example.com":mailto:c@example.com
ATTENDEE;PARTSTAT=DECLINED; ATTENDEE;PARTSTAT=DECLINED;
DELEGATED-FROM="Mailto:C@example.com":Mailto:E@example.com DELEGATED-FROM="mailto:c@example.com":mailto:e@example.com
COMMENT:Sorry, I will be out of town at that time. COMMENT:Sorry, I will be out of town at that time.
UID:calsrv.example.com-873970198738777@example.com UID:calsrv.example.com-873970198738777@example.com
SEQUENCE:0 SEQUENCE:0
REQUEST-STATUS:2.0;Success REQUEST-STATUS:2.0;Success
DTSTAMP:19970614T190000Z DTSTAMP:19970614T190000Z
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
"A" resends the "REQUEST" method to "C". "A" may also wish to "A" resends the "REQUEST" method to "C". "A" may also wish to
express the fact that the item was delegated in the "COMMENT" express the fact that the item was delegated in the "COMMENT"
property. property.
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REQUEST METHOD:REQUEST
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
ORGANIZER:MAILTO:A@Example.com ORGANIZER:mailto:a@example.com
ATTENDEE;PARTSTAT=DECLINED; ATTENDEE;PARTSTAT=DECLINED;
DELEGATED-FROM="Mailto:C@example.com":Mailto:E@example.com DELEGATED-FROM="mailto:c@example.com":mailto:e@example.com
ATTENDEE;RSVP=TRUE:Mailto:C@example.com ATTENDEE;RSVP=TRUE:mailto:c@example.com
UID:calsrv.example.com-873970198738777@example.com UID:calsrv.example.com-873970198738777@example.com
SEQUENCE:0 SEQUENCE:0
SUMMARY:Phone Conference SUMMARY:Phone Conference
DTSTART:19970701T180000Z DTSTART:19970701T180000Z
DTEND:19970701T200000Z DTEND:19970701T200000Z
DTSTAMP:19970614T200000Z DTSTAMP:19970614T200000Z
COMMENT:DELEGATE (ATTENDEE Mailto:E@example.com) DECLINED YOUR COMMENT:DELEGATE (ATTENDEE mailto:e@example.com) DECLINED YOUR
INVITATION INVITATION
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
4.2.8. Forwarding an Event Request 4.2.8. Forwarding an Event Request
The protocol does not prevent an "Attendee" from "forwarding" an The protocol does not prevent an "Attendee" from "forwarding" an
"VEVENT" calendar component to other "Calendar Users". Forwarding "VEVENT" calendar component to other "Calendar Users". Forwarding
differs from delegation in that the forwarded "Calendar User" (often differs from delegation in that the forwarded "Calendar User" (often
referred to as a "Party Crasher") does not replace the forwarding referred to as a "Party Crasher") does not replace the forwarding
skipping to change at page 80, line 28 skipping to change at page 81, line 28
| | "C" and "D" | | | | "C" and "D" | |
+-------------+--------------------+--------------------------------+ +-------------+--------------------+--------------------------------+
The example shows how "A" cancels the event. The example shows how "A" cancels the event.
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:CANCEL METHOD:CANCEL
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;TYPE=INDIVIDUAL;Mailto:A@example.com ATTENDEE;CUTYPE=INDIVIDUAL;mailto:a@example.com
ATTENDEE;TYPE=INDIVIDUAL:Mailto:B@example.com ATTENDEE;CUTYPE=INDIVIDUAL:mailto:b@example.com
ATTENDEE;TYPE=INDIVIDUAL:Mailto:C@example.com ATTENDEE;CUTYPE=INDIVIDUAL:mailto:c@example.com
ATTENDEE;TYPE=INDIVIDUAL:Mailto:D@example.com ATTENDEE;CUTYPE=INDIVIDUAL:mailto:d@example.com
COMMENT:Mr. B cannot attend. It's raining. Lets cancel. COMMENT:Mr. B cannot attend. It's raining. Lets cancel.
UID:calsrv.example.com-873970198738777@example.com UID:calsrv.example.com-873970198738777@example.com
SEQUENCE:1 SEQUENCE:1
STATUS:CANCELLED STATUS:CANCELLED
DTSTAMP:19970613T190000Z DTSTAMP:19970613T190000Z
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
4.2.10. Removing Attendees 4.2.10. Removing Attendees
skipping to change at page 81, line 26 skipping to change at page 82, line 26
below shows the "CANCEL" that "A" sends to "B". Note that in the below shows the "CANCEL" that "A" sends to "B". Note that in the
example below the "STATUS" property is omitted. This is used when example below the "STATUS" property is omitted. This is used when
the meeting itself is cancelled and not when the intent is to remove the meeting itself is cancelled and not when the intent is to remove
an "Attendee" from the Event. an "Attendee" from the Event.
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:CANCEL METHOD:CANCEL
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE:mailto:B@example.com ATTENDEE:mailto:b@example.com
COMMENT:You're off the hook for this meeting COMMENT:You're off the hook for this meeting
UID:calsrv.example.com-873970198738777@example.com UID:calsrv.example.com-873970198738777@example.com
DTSTAMP:19970613T193000Z DTSTAMP:19970613T193000Z
SEQUENCE:1 SEQUENCE:1
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
The updated master copy of the event is shown below. The "Organizer" The updated master copy of the event is shown below. The "Organizer"
MAY resend the updated event to the remaining "Attendees". Note that MAY resend the updated event to the remaining "Attendees". Note that
"B" has been removed. "B" has been removed.
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REQUEST METHOD:REQUEST
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE;TYPE=INDIVIDUAL:Mailto:C@example.com ATTENDEE;CUTYPE=INDIVIDUAL:mailto:c@example.com
ATTENDEE;TYPE=INDIVIDUAL:Mailto:D@example.com ATTENDEE;CUTYPE=INDIVIDUAL:mailto:d@example.com
ATTENDEE;TYPE=ROOM:CR_Big@example.com ATTENDEE;CUTYPE=ROOM:mailto:cr_big@example.com
ATTENDEE;ROLE=NON-PARTICIPANT; ATTENDEE;ROLE=NON-PARTICIPANT;
RSVP=FALSE:Mailto:E@example.com RSVP=FALSE:mailto:e@example.com
DTSTAMP:19970611T190000Z DTSTAMP:19970611T190000Z
DTSTART:19970701T200000Z DTSTART:19970701T200000Z
DTEND:19970701T203000Z DTEND:19970701T203000Z
SUMMARY:Phone Conference SUMMARY:Phone Conference
UID:calsrv.example.com-873970198738777@example.com UID:calsrv.example.com-873970198738777@example.com
SEQUENCE:2 SEQUENCE:2
STATUS:CONFIRMED STATUS:CONFIRMED
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
skipping to change at page 83, line 9 skipping to change at page 84, line 9
When the "Organizer" is replaced, the "SEQUENCE" property value MUST When the "Organizer" is replaced, the "SEQUENCE" property value MUST
be incremented. be incremented.
This is the message "B" sends to "C" and "D" This is the message "B" sends to "C" and "D"
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REQUEST METHOD:REQUEST
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
ORGANIZER:Mailto:B@example.com ORGANIZER:mailto:b@example.com
ATTENDEE;ROLE=CHAIR;STATUS=ACCEPTED:Mailto:B@example.com ATTENDEE;ROLE=CHAIR;STATUS=ACCEPTED:mailto:b@example.com
ATTENDEE;TYPE=INDIVIDUAL:Mailto:C@example.com ATTENDEE;CUTYPE=INDIVIDUAL:mailto:c@example.com
ATTENDEE;TYPE=INDIVIDUAL:Mailto:D@example.com ATTENDEE;CUTYPE=INDIVIDUAL:mailto:d@example.com
DTSTAMP:19970611T190000Z DTSTAMP:19970611T190000Z
DTSTART:19970701T200000Z DTSTART:19970701T200000Z
DTEND:19970701T203000Z DTEND:19970701T203000Z
RRULE:FREQ=WEEKLY RRULE:FREQ=WEEKLY
SUMMARY:Phone Conference SUMMARY:Phone Conference
UID:123456@example.com UID:123456@example.com
SEQUENCE:1 SEQUENCE:1
STATUS:CONFIRMED STATUS:CONFIRMED
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
skipping to change at page 84, line 11 skipping to change at page 85, line 11
both scenarios. both scenarios.
Individual "A" publishes busy time for one week. Individual "A" publishes busy time for one week.
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
VERSION:2.0 VERSION:2.0
METHOD:PUBLISH METHOD:PUBLISH
BEGIN:VFREEBUSY BEGIN:VFREEBUSY
DTSTAMP:19980101T124100Z DTSTAMP:19980101T124100Z
ORGANIZER:MAILTO:A@Example.com ORGANIZER:mailto:a@example.com
DTSTART:19980101T124200Z DTSTART:19980101T124200Z
DTEND:19980107T124200Z DTEND:19980107T124200Z
FREEBUSY:19980101T180000Z/19980101T190000Z FREEBUSY:19980101T180000Z/19980101T190000Z
FREEBUSY:19980103T020000Z/19980103T050000Z FREEBUSY:19980103T020000Z/19980103T050000Z
FREEBUSY:19980107T020000Z/19980107T050000Z FREEBUSY:19980107T020000Z/19980107T050000Z
FREEBUSY:19980113T000000Z/19980113T010000Z FREEBUSY:19980113T000000Z/19980113T010000Z
FREEBUSY:19980115T190000Z/19980115T200000Z FREEBUSY:19980115T190000Z/19980115T200000Z
FREEBUSY:19980115T220000Z/19980115T230000Z FREEBUSY:19980115T220000Z/19980115T230000Z
FREEBUSY:19980116T013000Z/19980116T043000Z FREEBUSY:19980116T013000Z/19980116T043000Z
END:VFREEBUSY END:VFREEBUSY
skipping to change at page 85, line 9 skipping to change at page 86, line 9
+----------------------+--------------------+-----------------------+ +----------------------+--------------------+-----------------------+
4.3.1. Request Busy Time 4.3.1. Request Busy Time
"A" sends a "BUSY-REQUEST" to "B" and "C" for busy time "A" sends a "BUSY-REQUEST" to "B" and "C" for busy time
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REQUEST METHOD:REQUEST
VERSION:2.0 VERSION:2.0
BEGIN:VFREEBUSY BEGIN:VFREEBUSY
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR:Mailto:A@example.com ATTENDEE;ROLE=CHAIR:mailto:a@example.com
ATTENDEE:Mailto:B@example.com ATTENDEE:mailto:b@example.com
ATTENDEE:Mailto:C@example.com ATTENDEE:mailto:c@example.com
DTSTAMP:19970613T190000Z DTSTAMP:19970613T190000Z
DTSTART:19970701T080000Z DTSTART:19970701T080000Z
DTEND:19970701T200000 DTEND:19970701T200000
UID:calsrv.example.com-873970198738777@example.com UID:calsrv.example.com-873970198738777@example.com
END:VFREEBUSY END:VFREEBUSY
END:VCALENDAR END:VCALENDAR
4.3.2. Reply To A Busy Time Request 4.3.2. Reply To A Busy Time Request
"B" sends a "REPLY" method type of a "VFREEBUSY" calendar component "B" sends a "REPLY" method type of a "VFREEBUSY" calendar component
to "A" to "A"
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REPLY METHOD:REPLY
VERSION:2.0 VERSION:2.0
BEGIN:VFREEBUSY BEGIN:VFREEBUSY
ORGANIZER:MAILTO:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE:Mailto:B@example.com ATTENDEE:mailto:b@example.com
DTSTART:19970701T080000Z DTSTART:19970701T080000Z
DTEND:19970701T200000Z DTEND:19970701T200000Z
UID:calsrv.example.com-873970198738777@example.com UID:calsrv.example.com-873970198738777@example.com
FREEBUSY:19970701T090000Z/PT1H,19970701T140000Z/PT30M FREEBUSY:19970701T090000Z/PT1H,19970701T140000Z/PT30M
DTSTAMP:19970613T190030Z DTSTAMP:19970613T190030Z
END:VFREEBUSY END:VFREEBUSY
END:VCALENDAR END:VCALENDAR
"B" is busy from 09:00 to 10:00 and from 14:00 to 14:30. "B" is busy from 09:00 to 10:00 and from 14:00 to 14:30.
skipping to change at page 86, line 28 skipping to change at page 87, line 28
END:STANDARD END:STANDARD
BEGIN:DAYLIGHT BEGIN:DAYLIGHT
DTSTART:19870405T020000 DTSTART:19870405T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
TZOFFSETFROM:-0800 TZOFFSETFROM:-0800
TZOFFSETTO:-0700 TZOFFSETTO:-0700
TZNAME:PDT TZNAME:PDT
END:DAYLIGHT END:DAYLIGHT
END:VTIMEZONE END:VTIMEZONE
BEGIN:VEVENT BEGIN:VEVENT
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED; ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;
TYPE=INDIVIDUAL:A@example.COM CUTYPE=INDIVIDUAL:a@example.com
ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL:B@example.fr ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:b@example.fr
ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL:c@example.jp ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:c@example.jp
DTSTAMP:19970613T190030Z DTSTAMP:19970613T190030Z
DTSTART;TZID=America-SanJose:19970701T140000 DTSTART;TZID=America-SanJose:19970701T140000
DTEND;TZID=America-SanJose:19970701T150000 DTEND;TZID=America-SanJose:19970701T150000
RRULE:FREQ=WEEKLY;INTERVAL=20;WKST=SU;BYDAY=TU RRULE:FREQ=WEEKLY;INTERVAL=20;WKST=SU;BYDAY=TU
RDATE;TZID=America-SanJose:19970910T140000 RDATE;TZID=America-SanJose:19970910T140000
EXDATE;TZID=America-SanJose:19970909T140000 EXDATE;TZID=America-SanJose:19970909T140000
EXDATE;TZID=America-SanJose:19971028T140000 EXDATE;TZID=America-SanJose:19971028T140000
SUMMARY:Weekly Phone Conference SUMMARY:Weekly Phone Conference
UID:calsrv.example.com-873970198738777@example.com UID:calsrv.example.com-873970198738777@example.com
SEQUENCE:0 SEQUENCE:0
skipping to change at page 87, line 9 skipping to change at page 88, line 9
The first two components of this iCalendar object are the time zone The first two components of this iCalendar object are the time zone
components. The "DTSTART" date coincides with the first instance of components. The "DTSTART" date coincides with the first instance of
the RRULE property. the RRULE property.
The recurring meeting is defined in a particular time zone, The recurring meeting is defined in a particular time zone,
presumably that of the originator. The client for each "Attendee" presumably that of the originator. The client for each "Attendee"
has the responsibility of determining the recurrence time in the has the responsibility of determining the recurrence time in the
"Attendee's" time zone. "Attendee's" time zone.
The repeating event starts on Tuesday, July 1, 1997 at 2:00pm PDT. The repeating event starts on Tuesday, July 1, 1997 at 2:00pm PDT.
"Attendee" B@example.fr is in France where the local time on this "Attendee" b@example.fr is in France where the local time on this
date is 9 hours ahead of PDT or 23:00. "Attendee" C@example.jp is in date is 9 hours ahead of PDT or 23:00. "Attendee" c@example.jp is in
Japan where local time is 8 hours ahead of UTC or Wednesday, July 2 Japan where local time is 8 hours ahead of UTC or Wednesday, July 2
at 06:00. The event repeats weekly on Tuesdays (in PST/PDT). The at 06:00. The event repeats weekly on Tuesdays (in PST/PDT). The
"RRULE" property results in 20 instances. The last instance falls on "RRULE" property results in 20 instances. The last instance falls on
Tuesday, November 11, 1997 2:00pm PDT. The "RDATE" property adds Tuesday, November 11, 1997 2:00pm PDT. The "RDATE" property adds
another instance: WED, 10-SEP-1997 2:00 PM PST. another instance: WED, 10-SEP-1997 2:00 PM PST.
There are two exceptions to this recurring appointment. The first There are two exceptions to this recurring appointment. The first
one is: one is:
o TUE, 09-SEP-1997 23:00 GMT o TUE, 09-SEP-1997 23:00 GMT
skipping to change at page 88, line 13 skipping to change at page 89, line 13
Original Request: Original Request:
BEGIN:VCALENDAR BEGIN:VCALENDAR
METHOD:REQUEST METHOD:REQUEST
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
UID:guid-1@host1.com UID:guid-1@host1.com
SEQUENCE:0 SEQUENCE:0
RRULE:FREQ=MONTHLY;BYMONTHDAY=1;UNTIL=19980901T210000Z RRULE:FREQ=MONTHLY;BYMONTHDAY=1;UNTIL=19980901T210000Z
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE:Mailto:B@example.com ATTENDEE:mailto:b@example.com
ATTENDEE:Mailto:C@example.com ATTENDEE:mailto:c@example.com
ATTENDEE:Mailto:D@example.com ATTENDEE:mailto:d@example.com
DESCRIPTION:IETF-C&S Conference Call DESCRIPTION:IETF-C&S Conference Call
CLASS:PUBLIC CLASS:PUBLIC
SUMMARY:IETF Calendaring Working Group Meeting SUMMARY:IETF Calendaring Working Group Meeting
DTSTART:19970601T210000Z DTSTART:19970601T210000Z
DTEND:19970601T220000Z DTEND:19970601T220000Z
LOCATION:Conference Call LOCATION:Conference Call
DTSTAMP:19970526T083000Z DTSTAMP:19970526T083000Z
STATUS:CONFIRMED STATUS:CONFIRMED
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
skipping to change at page 89, line 13 skipping to change at page 90, line 13
This changes the July 1st instance to July 3rd. This changes the July 1st instance to July 3rd.
BEGIN:VCALENDAR BEGIN:VCALENDAR
METHOD:REQUEST METHOD:REQUEST
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
UID:guid-1@host1com UID:guid-1@host1com
RECURRENCE-ID:19970701T210000Z RECURRENCE-ID:19970701T210000Z
SEQUENCE:1 SEQUENCE:1
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE:Mailto:B@example.com ATTENDEE:mailto:b@example.com
ATTENDEE:Mailto:C@example.com ATTENDEE:mailto:c@example.com
ATTENDEE:Mailto:D@example.com ATTENDEE:mailto:d@example.com
DESCRIPTION:IETF-C&S Conference Call DESCRIPTION:IETF-C&S Conference Call
CLASS:PUBLIC CLASS:PUBLIC
SUMMARY:IETF Calendaring Working Group Meeting SUMMARY:IETF Calendaring Working Group Meeting
DTSTART:19970703T210000Z DTSTART:19970703T210000Z
DTEND:19970703T220000Z DTEND:19970703T220000Z
LOCATION:Conference Call LOCATION:Conference Call
DTSTAMP:19970626T093000Z DTSTAMP:19970626T093000Z
STATUS:CONFIRMED STATUS:CONFIRMED
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
skipping to change at page 89, line 40 skipping to change at page 90, line 40
In this example the "Organizer" of a recurring event deletes the In this example the "Organizer" of a recurring event deletes the
August 1st instance. August 1st instance.
BEGIN:VCALENDAR BEGIN:VCALENDAR
METHOD:CANCEL METHOD:CANCEL
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
UID:guid-1@host1.com UID:guid-1@host1.com
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE:Mailto:B@example.com ATTENDEE:mailto:b@example.com
ATTENDEE:Mailto:C@example.com ATTENDEE:mailto:c@example.com
ATTENDEE:Mailto:D@example.com ATTENDEE:mailto:d@example.com
RECURRENCE-ID:19970801T210000Z RECURRENCE-ID:19970801T210000Z
SEQUENCE:2 SEQUENCE:2
STATUS:CANCELLED STATUS:CANCELLED
DTSTAMP:19970721T093000Z DTSTAMP:19970721T093000Z
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
4.4.4. Cancel Recurring Event 4.4.4. Cancel Recurring Event
In this example the "Organizer" wishes to cancel the entire recurring In this example the "Organizer" wishes to cancel the entire recurring
event and any exceptions. event and any exceptions.
BEGIN:VCALENDAR BEGIN:VCALENDAR
METHOD:CANCEL METHOD:CANCEL
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
UID:guid-1@host1.com UID:guid-1@host1.com
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE:Mailto:B@example.com ATTENDEE:mailto:b@example.com
ATTENDEE:Mailto:C@example.com ATTENDEE:mailto:c@example.com
ATTENDEE:Mailto:D@example.com ATTENDEE:mailto:d@example.com
DTSTAMP:19970721T103000Z DTSTAMP:19970721T103000Z
STATUS:CANCELLED STATUS:CANCELLED
SEQUENCE:3 SEQUENCE:3
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
4.4.5. Change All Future Instances 4.4.5. Change All Future Instances
This example changes the meeting location from a conference call to This example changes the meeting location from a conference call to
Seattle starting September 1 and extends to all future instances. Seattle starting September 1 and extends to all future instances.
BEGIN:VCALENDAR BEGIN:VCALENDAR
METHOD:REQUEST METHOD:REQUEST
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
UID:guid-1@host1.com UID:guid-1@host1.com
RECURRENCE-ID;THISANDFUTURE:19970901T210000Z RECURRENCE-ID;THISANDFUTURE:19970901T210000Z
SEQUENCE:3 SEQUENCE:3
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE;RSVP=TRUE:Mailto:B@example.com ATTENDEE;RSVP=TRUE:mailto:b@example.com
ATTENDEE;RSVP=TRUE:Mailto:C@example.com ATTENDEE;RSVP=TRUE:mailto:c@example.com
ATTENDEE;RSVP=TRUE:Mailto:D@example.com ATTENDEE;RSVP=TRUE:mailto:d@example.com
DESCRIPTION:IETF-C&S Discussion DESCRIPTION:IETF-C&S Discussion
CLASS:PUBLIC CLASS:PUBLIC
SUMMARY:IETF Calendaring Working Group Meeting SUMMARY:IETF Calendaring Working Group Meeting
DTSTART:19970901T210000Z DTSTART:19970901T210000Z
DTEND:19970901T220000Z DTEND:19970901T220000Z
LOCATION:Building 32, Microsoft, Seattle, WA LOCATION:Building 32, Microsoft, Seattle, WA
DTSTAMP:19970526T083000Z DTSTAMP:19970526T083000Z
STATUS:CONFIRMED STATUS:CONFIRMED
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
skipping to change at page 92, line 12 skipping to change at page 93, line 12
This example adds a one-time additional instance to the recurring This example adds a one-time additional instance to the recurring
event. "Organizer" adds a second July meeting on the 15th. event. "Organizer" adds a second July meeting on the 15th.
BEGIN:VCALENDAR BEGIN:VCALENDAR
METHOD:ADD METHOD:ADD
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
UID:123456789@host1.com UID:123456789@host1.com
SEQUENCE:4 SEQUENCE:4
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE;RSVP=TRUE:Mailto:B@example.com ATTENDEE;RSVP=TRUE:mailto:b@example.com
ATTENDEE;RSVP=TRUE:Mailto:C@example.com ATTENDEE;RSVP=TRUE:mailto:c@example.com
ATTENDEE;RSVP=TRUE:Mailto:D@example.com ATTENDEE;RSVP=TRUE:mailto:d@example.com
DESCRIPTION:IETF-C&S Conference Call DESCRIPTION:IETF-C&S Conference Call
CLASS:PUBLIC CLASS:PUBLIC
SUMMARY:IETF Calendaring Working Group Meeting SUMMARY:IETF Calendaring Working Group Meeting
DTSTART:19970715T210000Z DTSTART:19970715T210000Z
DTEND:19970715T220000Z DTEND:19970715T220000Z
LOCATION:Conference Call LOCATION:Conference Call
DTSTAMP:19970629T093000Z DTSTAMP:19970629T093000Z
STATUS:CONFIRMED STATUS:CONFIRMED
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
skipping to change at page 93, line 13 skipping to change at page 94, line 13
The original event: The original event:
BEGIN:VCALENDAR BEGIN:VCALENDAR
METHOD:REQUEST METHOD:REQUEST
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
UID:123456789@host1.com UID:123456789@host1.com
SEQUENCE:0 SEQUENCE:0
RRULE:WKST=SU;BYDAY=TU;FREQ=WEEKLY RRULE:WKST=SU;BYDAY=TU;FREQ=WEEKLY
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE;RSVP=TRUE:Mailto:B@example.com ATTENDEE;RSVP=TRUE:mailto:b@example.com
SUMMARY:Review Accounts SUMMARY:Review Accounts
DTSTART:19980303T210000Z DTSTART:19980303T210000Z
DTEND:19980303T220000Z DTEND:19980303T220000Z
LOCATION:The White Room LOCATION:The White Room
DTSTAMP:19980301T093000Z DTSTAMP:19980301T093000Z
STATUS:CONFIRMED STATUS:CONFIRMED
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
Assume that many other updates happen to this event and that a lot of Assume that many other updates happen to this event and that a lot of
skipping to change at page 93, line 38 skipping to change at page 94, line 38
"Organizer" wants to add Thursdays to the event: "Organizer" wants to add Thursdays to the event:
BEGIN:VCALENDAR BEGIN:VCALENDAR
METHOD:ADD METHOD:ADD
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
UID:123456789@host1.com UID:123456789@host1.com
SEQUENCE:7 SEQUENCE:7
RRULE:WKST=SU;BYDAY=TH;FREQ=WEEKLY RRULE:WKST=SU;BYDAY=TH;FREQ=WEEKLY
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE;RSVP=TRUE:Mailto:B@example.com ATTENDEE;RSVP=TRUE:mailto:b@example.com
SUMMARY:Review Accounts SUMMARY:Review Accounts
DTSTART:19980303T210000Z DTSTART:19980303T210000Z
DTEND:19980303T220000Z DTEND:19980303T220000Z
DTSTAMP:19980303T193000Z DTSTAMP:19980303T193000Z
LOCATION:The Usual conference room LOCATION:The Usual conference room
STATUS:CONFIRMED STATUS:CONFIRMED
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
Alternatively, if the "Organizer" is not concerned with per-instance Alternatively, if the "Organizer" is not concerned with per-instance
updates, the entire event can be rescheduled using a "REQUEST". This updates, the entire event can be rescheduled using a "REQUEST". This
skipping to change at page 94, line 19 skipping to change at page 95, line 19
lost. lost.
BEGIN:VCALENDAR BEGIN:VCALENDAR
METHOD:REQUEST METHOD:REQUEST
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
UID:123456789@host1.com UID:123456789@host1.com
SEQUENCE:7 SEQUENCE:7
RRULE:WKST=SU;BYDAY=TU,TH;FREQ=WEEKLY RRULE:WKST=SU;BYDAY=TU,TH;FREQ=WEEKLY
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE;RSVP=TRUE:Mailto:B@example.com ATTENDEE;RSVP=TRUE:mailto:b@example.com
SUMMARY:Review Accounts SUMMARY:Review Accounts
DTSTART:19980303T210000Z DTSTART:19980303T210000Z
DTEND:19980303T220000Z DTEND:19980303T220000Z
DTSTAMP:19980303T193000Z DTSTAMP:19980303T193000Z
LOCATION:The White Room LOCATION:The White Room
STATUS:CONFIRMED STATUS:CONFIRMED
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
The next series of examples illustrate how an "Organizer" would The next series of examples illustrate how an "Organizer" would
skipping to change at page 95, line 15 skipping to change at page 96, line 15
BEGIN:VCALENDAR BEGIN:VCALENDAR
METHOD:REQUEST METHOD:REQUEST
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
UID:123456789@host1.com UID:123456789@host1.com
SEQUENCE:0 SEQUENCE:0
RDATE:19980304T180000Z RDATE:19980304T180000Z
RDATE:19980311T180000Z RDATE:19980311T180000Z
RDATE:19980318T180000Z RDATE:19980318T180000Z
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE;RSVP=TRUE:Mailto:B@example.com ATTENDEE;RSVP=TRUE:mailto:b@example.com
SUMMARY:Review Accounts SUMMARY:Review Accounts
DTSTART:19980304T180000Z DTSTART:19980304T180000Z
DTEND:19980304T200000Z DTEND:19980304T200000Z
DTSTAMP:19980303T193000Z DTSTAMP:19980303T193000Z
LOCATION:Conference Room A LOCATION:Conference Room A
STATUS:CONFIRMED STATUS:CONFIRMED
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
Organizer changes 2nd instance Location and Time: Organizer changes 2nd instance Location and Time:
BEGIN:VCALENDAR BEGIN:VCALENDAR
METHOD:REQUEST METHOD:REQUEST
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
UID:123456789@host1.com UID:123456789@host1.com
SEQUENCE:1 SEQUENCE:1
RECURRENCE-ID:19980311T180000Z RECURRENCE-ID:19980311T180000Z
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE;RSVP=TRUE:Mailto:B@example.com ATTENDEE;RSVP=TRUE:mailto:b@example.com
SUMMARY:Review Accounts SUMMARY:Review Accounts
DTSTART:19980311T160000Z DTSTART:19980311T160000Z
DTEND:19980311T180000Z DTEND:19980311T180000Z
DTSTAMP:19980306T193000Z DTSTAMP:19980306T193000Z
LOCATION:The Small conference room LOCATION:The Small conference room
STATUS:CONFIRMED STATUS:CONFIRMED
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
Organizer adds a 4th instance of the meeting using the "ADD" method Organizer adds a 4th instance of the meeting using the "ADD" method
BEGIN:VCALENDAR BEGIN:VCALENDAR
METHOD:ADD METHOD:ADD
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
UID:123456789@host1.com UID:123456789@host1.com
SEQUENCE:2 SEQUENCE:2
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE;RSVP=TRUE:Mailto:B@example.com ATTENDEE;RSVP=TRUE:mailto:b@example.com
SUMMARY:Review Accounts SUMMARY:Review Accounts
DTSTART:19980315T180000Z DTSTART:19980315T180000Z
DTEND:19980315T200000Z DTEND:19980315T200000Z
DTSTAMP:19980307T193000Z DTSTAMP:19980307T193000Z
LOCATION:Conference Room A LOCATION:Conference Room A
STATUS:CONFIRMED STATUS:CONFIRMED
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
If "B" requests a "REFRESH", "A" responds with the following to If "B" requests a "REFRESH", "A" responds with the following to
skipping to change at page 97, line 15 skipping to change at page 98, line 15
BEGIN:VCALENDAR BEGIN:VCALENDAR
METHOD:REQUEST METHOD:REQUEST
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
UID:123456789@host1.com UID:123456789@host1.com
SEQUENCE:2 SEQUENCE:2
RDATE:19980304T180000Z RDATE:19980304T180000Z
RDATE:19980311T160000Z RDATE:19980311T160000Z
RDATE:19980315T180000Z RDATE:19980315T180000Z
Error! Bookmark not defined. ORGANIZER:mailto:a@example.com
ORGANIZER:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;RSVP=TRUE:mailto:b@example.com
ATTENDEE;RSVP=TRUE:Mailto:B@example.com
SUMMARY:Review Accounts SUMMARY:Review Accounts
DTSTART:19980304T180000Z DTSTART:19980304T180000Z
DTEND:19980304T200000Z DTEND:19980304T200000Z
DTSTAMP:19980303T193000Z DTSTAMP:19980303T193000Z
LOCATION:Conference Room A LOCATION:Conference Room A
STATUS:CONFIRMED STATUS:CONFIRMED
END:VEVENT END:VEVENT
BEGIN:VEVENT BEGIN:VEVENT
Error! Bookmark not defined.
SEQUENCE:2 SEQUENCE:2
RECURRENCE-ID:19980311T160000Z RECURRENCE-ID:19980311T160000Z
Error! Bookmark not defined. ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;Error! Bookmark not defined. ATTENDEE;RSVP=TRUE:mailto:b@example.com
ATTENDEE;Error! Bookmark not defined.
SUMMARY:Review Accounts SUMMARY:Review Accounts
DTSTART:19980311T160000Z DTSTART:19980311T160000Z
DTEND:19980304T180000Z DTEND:19980304T180000Z
DTSTAMP:19980306T193000Z DTSTAMP:19980306T193000Z
LOCATION:The Small conference room LOCATION:The Small conference room
STATUS:CONFIRMED STATUS:CONFIRMED
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
4.4.8. Counter An Instance Of A Recurring Event 4.4.8. Counter An Instance Of A Recurring Event
skipping to change at page 98, line 13 skipping to change at page 99, line 13
property of the proposed second July meeting. property of the proposed second July meeting.
BEGIN:VCALENDAR BEGIN:VCALENDAR
METHOD:COUNTER METHOD:COUNTER
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
UID:guid-1@host1.com UID:guid-1@host1.com
RECURRENCE-ID:19970715T210000Z RECURRENCE-ID:19970715T210000Z
SEQUENCE:4 SEQUENCE:4
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;RSVP=TRUE:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;RSVP=TRUE:mailto:a@example.com
ATTENDEE;RSVP=TRUE:Mailto:B@example.com ATTENDEE;RSVP=TRUE:mailto:b@example.com
ATTENDEE;RSVP=TRUE:Mailto:C@example.com ATTENDEE;RSVP=TRUE:mailto:c@example.com
ATTENDEE;RSVP=TRUE:Mailto:D@example.com ATTENDEE;RSVP=TRUE:mailto:d@example.com
DESCRIPTION:IETF-C&S Conference Call DESCRIPTION:IETF-C&S Conference Call
CLASS:PUBLIC CLASS:PUBLIC
SUMMARY:IETF Calendaring Working Group Meeting SUMMARY:IETF Calendaring Working Group Meeting
DTSTART:19970715T220000Z DTSTART:19970715T220000Z
DTEND:19970715T230000Z DTEND:19970715T230000Z
LOCATION:Conference Call LOCATION:Conference Call
COMMENT:May we bump this by an hour? I have a conflict COMMENT:May we bump this by an hour? I have a conflict
DTSTAMP:19970629T094000Z DTSTAMP:19970629T094000Z
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
skipping to change at page 99, line 12 skipping to change at page 100, line 12
Original Request Original Request
BEGIN:VCALENDAR BEGIN:VCALENDAR
METHOD:REQUEST METHOD:REQUEST
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
UID:guid-1@host1.com UID:guid-1@host1.com
SEQUENCE:0 SEQUENCE:0
RRULE:FREQ=MONTHLY;BYMONTHDAY=1 RRULE:FREQ=MONTHLY;BYMONTHDAY=1
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR:Mailto:A@example.com ATTENDEE;ROLE=CHAIR:mailto:a@example.com
ATTENDEE;RSVP=TRUE:Mailto:B@example.com ATTENDEE;RSVP=TRUE:mailto:b@example.com
ATTENDEE;RSVP=TRUE:Mailto:C@example.com ATTENDEE;RSVP=TRUE:mailto:c@example.com
ATTENDEE;RSVP=TRUE:Mailto:D@example.com ATTENDEE;RSVP=TRUE:mailto:d@example.com
DESCRIPTION:IETF-C&S Conference Call DESCRIPTION:IETF-C&S Conference Call
CLASS:PUBLIC CLASS:PUBLIC
SUMMARY:IETF Calendaring Working Group Meeting SUMMARY:IETF Calendaring Working Group Meeting
DTSTART:19970601T210000Z DTSTART:19970601T210000Z
DTEND:19970601T220000Z DTEND:19970601T220000Z
DTSTAMP:19970602T094000Z DTSTAMP:19970602T094000Z
LOCATION:Conference Call LOCATION:Conference Call
STATUS:CONFIRMED STATUS:CONFIRMED
FOO:BAR FOO:BAR
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
Response from "B" to indicate that RRULE is not supported and an Response from "B" to indicate that RRULE is not supported and an
unrecognized property was encountered unrecognized property was encountered
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
METHOD:REPLY METHOD:REPLY
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE:Mailto:B@example.com ATTENDEE:mailto:b@example.com
REQUEST-STATUS:2.8;Repeating event ignored. Scheduled as a single REQUEST-STATUS:2.8;Repeating event ignored. Scheduled as a single
event;RRULE event;RRULE
REQUEST-STATUS:3.0;Invalid Property Name;FOO REQUEST-STATUS:3.0;Invalid Property Name;FOO
UID:guid-1@host1.com UID:guid-1@host1.com
SEQUENCE:0 SEQUENCE:0
DTSTAMP:19970603T094000Z DTSTAMP:19970603T094000Z
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
4.5. Group To-do Examples 4.5. Group To-do Examples
skipping to change at page 101, line 15 skipping to change at page 102, line 15
4.5.1. A VTODO Request 4.5.1. A VTODO Request
A sample "REQUEST" for a "VTODO" calendar component that "A" sends to A sample "REQUEST" for a "VTODO" calendar component that "A" sends to
"B", "C", and "D". "B", "C", and "D".
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REQUEST METHOD:REQUEST
VERSION:2.0 VERSION:2.0
BEGIN:VTODO BEGIN:VTODO
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR:Mailto:A@example.com ATTENDEE;ROLE=CHAIR:mailto:a@example.com
ATTENDEE;RSVP=TRUE:Mailto:B@example.com ATTENDEE;RSVP=TRUE:mailto:b@example.com
ATTENDEE;RSVP=TRUE:Mailto:C@example.com ATTENDEE;RSVP=TRUE:mailto:c@example.com
ATTENDEE;RSVP=TRUE:Mailto:D@example.com ATTENDEE;RSVP=TRUE:mailto:d@example.com
DTSTART:19970701T170000Z DTSTART:19970701T170000Z
DUE:19970722T170000Z DUE:19970722T170000Z
PRIORITY:1 PRIORITY:1
SUMMARY:Create the requirements document SUMMARY:Create the requirements document
UID:calsrv.example.com-873970198738777-00@example.com UID:calsrv.example.com-873970198738777-00@example.com
SEQUENCE:0 SEQUENCE:0
DTSTAMP:19970717T200000Z DTSTAMP:19970717T200000Z
STATUS:Needs Action STATUS:Needs Action
END:VTODO END:VTODO
END:VCALENDAR END:VCALENDAR
4.5.2. A VTODO Reply 4.5.2. A VTODO Reply
"B" accepts the to-do. "B" accepts the to-do.
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REPLY METHOD:REPLY
VERSION:2.0 VERSION:2.0
BEGIN:VTODO BEGIN:VTODO
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;PARTSTAT=ACCEPTED:Mailto:B@example.com ATTENDEE;PARTSTAT=ACCEPTED:mailto:b@example.com
UID:calsrv.example.com-873970198738777-00@example.com UID:calsrv.example.com-873970198738777-00@example.com
COMMENT:I'll send you my input by e-mail COMMENT:I'll send you my input by e-mail
SEQUENCE:0 SEQUENCE:0
DTSTAMP:19970717T203000Z DTSTAMP:19970717T203000Z
REQUEST-STATUS:2.0;Success REQUEST-STATUS:2.0;Success
END:VTODO END:VTODO
END:VCALENDAR END:VCALENDAR
"B" could have declined the TODO or indicated tentative acceptance by "B" could have declined the TODO or indicated tentative acceptance by
setting the "PARTSTAT" property parameter sequence to "DECLINED" or setting the "PARTSTAT" property parameter sequence to "DECLINED" or
"TENTATIVE", respectively. "TENTATIVE", respectively.
4.5.3. A VTODO Request for Updated Status 4.5.3. A VTODO Request for Updated Status
"A" requests status from all "Attendees". "A" requests status from all "Attendees".
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REQUEST METHOD:REQUEST
VERSION:2.0 VERSION:2.0
BEGIN:VTODO BEGIN:VTODO
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR:Mailto:A@example.com ATTENDEE;ROLE=CHAIR:mailto:a@example.com
ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL:Mailto:B@example.com ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL:Mailto:D@example.com ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:d@example.com
UID:calsrv.example.com-873970198738777-00@example.com UID:calsrv.example.com-873970198738777-00@example.com
SUMMARY:Create the requirements document SUMMARY:Create the requirements document
PRIORITY:1 PRIORITY:1
SEQUENCE:0 SEQUENCE:0
STATUS:IN-PROCESS STATUS:IN-PROCESS
DTSTART:19970701T170000Z DTSTART:19970701T170000Z
DTSTAMP:19970717T230000Z DTSTAMP:19970717T230000Z
END:VTODO END:VTODO
END:VCALENDAR END:VCALENDAR
4.5.4. A Reply: Percent-Complete 4.5.4. A Reply: Percent-Complete
A reply indicating the task being worked on and that "B" is 75% A reply indicating the task being worked on and that "B" is 75%
complete with "B's" part of the assignment. complete with "B's" part of the assignment.
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REPLY METHOD:REPLY
VERSION:2.0 VERSION:2.0
BEGIN:VTODO BEGIN:VTODO
ORGANIZER:MAILTO:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;PARTSTAT=IN-PROCESS:Mailto:B@example.com ATTENDEE;PARTSTAT=IN-PROCESS:mailto:b@example.com
PERCENT-COMPLETE:75 PERCENT-COMPLETE:75
UID:calsrv.example.com-873970198738777-00@example.com UID:calsrv.example.com-873970198738777-00@example.com
DTSTAMP:19970717T233000Z DTSTAMP:19970717T233000Z
SEQUENCE:0 SEQUENCE:0
END:VTODO END:VTODO
END:VCALENDAR END:VCALENDAR
4.5.5. A Reply: Completed 4.5.5. A Reply: Completed
A reply indicating that "D" completed "D's" part of the assignment. A reply indicating that "D" completed "D's" part of the assignment.
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REPLY METHOD:REPLY
VERSION:2.0 VERSION:2.0
BEGIN:VTODO BEGIN:VTODO
ORGANIZER:MAILTO:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;PARTSTAT=COMPLETED:Mailto:D@example.com ATTENDEE;PARTSTAT=COMPLETED:mailto:d@example.com
UID:calsrv.example.com-873970198738777-00@example.com UID:calsrv.example.com-873970198738777-00@example.com
DTSTAMP:19970717T233000Z DTSTAMP:19970717T233000Z
SEQUENCE:0 SEQUENCE:0
END:VTODO END:VTODO
END:VCALENDAR END:VCALENDAR
4.5.6. An Updated VTODO Request 4.5.6. An Updated VTODO Request
Organizer "A" resends the "VTODO" calendar component. "A" sets the Organizer "A" resends the "VTODO" calendar component. "A" sets the
overall completion for the to-do at 40%. overall completion for the to-do at 40%.
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REQUEST METHOD:REQUEST
VERSION:2.0 VERSION:2.0
BEGIN:VTODO BEGIN:VTODO
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE;PARTSTAT=ACCEPTED;TYPE=INDIVIDUAL:Mailto:B@example.com ATTENDEE;PARTSTAT=ACCEPTED;CUTYPE=INDIVIDUAL:mailto:b@example.com
ATTENDEE;PARTSTAT=IN-PROCESS;TYPE=INDIVIDUAL:Mailto:D@example.com ATTENDEE;PARTSTAT=IN-PROCESS;CUTYPE=INDIVIDUAL:mailto:d@example.com
DTSTART:19970701T170000Z DTSTART:19970701T170000Z
DUE:19970722T170000Z DUE:19970722T170000Z
PRIORITY:1 PRIORITY:1
SUMMARY:Create the requirements document SUMMARY:Create the requirements document
UID:calsrv.example.com-873970198738777-00@example.com UID:calsrv.example.com-873970198738777-00@example.com
SEQUENCE:1 SEQUENCE:1
DTSTAMP:19970718T100000Z DTSTAMP:19970718T100000Z
STATUS:IN-PROGRESS STATUS:IN-PROGRESS
PERCENT-COMPLETE:40 PERCENT-COMPLETE:40
END:VTODO END:VTODO
skipping to change at page 104, line 20 skipping to change at page 105, line 20
4.5.7.1. Request for a Recurring VTODO 4.5.7.1. Request for a Recurring VTODO
In this example "A" sends a recurring "VTODO" calendar component to In this example "A" sends a recurring "VTODO" calendar component to
"B" and "D". "B" and "D".
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REQUEST METHOD:REQUEST
VERSION:2.0 VERSION:2.0
BEGIN:VTODO BEGIN:VTODO
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR:Mailto:A@example.com ATTENDEE;ROLE=CHAIR:mailto:a@example.com
ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL:Mailto:B@example.com ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:b@example.com
ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL:Mailto:D@example.com ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:d@example.com
RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR
DTSTART:19980101T100000-0700 DTSTART:19980101T100000-0700
DUE:19980103T100000-0700 DUE:19980103T100000-0700
SUMMARY:Send Status Reports to Area Managers SUMMARY:Send Status Reports to Area Managers
UID:calsrv.example.com-873970198738777-00@example.com UID:calsrv.example.com-873970198738777-00@example.com
SEQUENCE:0 SEQUENCE:0
DTSTAMP:19970717T200000Z DTSTAMP:19970717T200000Z
STATUS:NEEDS ACTION STATUS:NEEDS ACTION
PRIORITY:1 PRIORITY:1
END:VTODO END:VTODO
skipping to change at page 105, line 15 skipping to change at page 106, line 15
4.5.7.3. Replying to an instance of a recurring VTODO 4.5.7.3. Replying to an instance of a recurring VTODO
In this example "B" updates "A" on a single instance of the "VTODO" In this example "B" updates "A" on a single instance of the "VTODO"
calendar component. calendar component.
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
METHOD:REPLY METHOD:REPLY
VERSION:2.0 VERSION:2.0
BEGIN:VTODO BEGIN:VTODO
ATTENDEE;PARTSTAT=IN-PROCESS:Mailto:B@example.com ATTENDEE;PARTSTAT=IN-PROCESS:mailto:b@example.com
PERCENT-COMPLETE:75 PERCENT-COMPLETE:75
UID:calsrv.example.com-873970198738777-00@example.com UID:calsrv.example.com-873970198738777-00@example.com
DTSTAMP:19970717T233000Z DTSTAMP:19970717T233000Z
RECURRENCE-ID:19980101T170000Z RECURRENCE-ID:19980101T170000Z
SEQUENCE:1 SEQUENCE:1
END:VTODO END:VTODO
END:VCALENDAR END:VCALENDAR
4.6. Journal Examples 4.6. Journal Examples
The iCalendar object below describes a single journal entry for The iCalendar object below describes a single journal entry for
October 2, 1997. The "RELATED-TO" property references the phone October 2, 1997. The "RELATED-TO" property references the phone
conference event for which minutes were taken. conference event for which minutes were taken.
BEGIN:VCALENDAR BEGIN:VCALENDAR
METHOD:PUBLISH METHOD:PUBLISH
PRODID:-//ACME/DesktopCalendar//EN PRODID:-//ACME/DesktopCalendar//EN
VERSION:2.0 VERSION:2.0
BEGIN:VJOURNAL BEGIN:VJOURNAL
DTSTART:19971002T200000Z DTSTART:19971002T200000Z
ORGANIZER:MAILTO:A@Example.com ORGANIZER:mailto:a@example.com
SUMMARY:Phone conference minutes SUMMARY:Phone conference minutes
DESCRIPTION:The editors meeting was held on October 1, 1997. DESCRIPTION:The editors meeting was held on October 1, 1997.
Details are in the attached document. Details are in the attached document.
UID:0981234-1234234-2410@example.com UID:0981234-1234234-2410@example.com
RELATED-TO:0981234-1234234-2402-35@example.com RELATED-TO:0981234-1234234-2402-35@example.com
ATTACH:ftp://ftp.example.com/pub/ed/minutes100197.txt ATTACH:ftp://ftp.example.com/pub/ed/minutes100197.txt
END:VJOURNAL END:VJOURNAL
END:VCALENDAR END:VCALENDAR
4.7. Other Examples 4.7. Other Examples
skipping to change at page 106, line 17 skipping to change at page 107, line 17
4.7.1. Event Refresh 4.7.1. Event Refresh
Refresh the event with "UID" property value of "guid-1- Refresh the event with "UID" property value of "guid-1-
12345@host1.com": 12345@host1.com":
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
METHOD:REFRESH METHOD:REFRESH
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE:Mailto:B@example.com ATTENDEE:mailto:b@example.com
ATTENDEE:Mailto:C@example.com ATTENDEE:mailto:c@example.com
ATTENDEE:Mailto:D@example.com ATTENDEE:mailto:d@example.com
UID: guid-1-12345@host1.com UID: guid-1-12345@host1.com
DTSTAMP:19970603T094000 DTSTAMP:19970603T094000
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
4.7.2. Bad RECURRENCE-ID 4.7.2. Bad RECURRENCE-ID
Component instances are identified by the combination of "UID", Component instances are identified by the combination of "UID",
"RECURRENCE-ID", and "SEQUENCE". When an "Organizer" sends a request "RECURRENCE-ID", and "SEQUENCE". When an "Organizer" sends a request
to an "Attendee", there are three cases in which an instance cannot to an "Attendee", there are three cases in which an instance cannot
skipping to change at page 108, line 14 skipping to change at page 109, line 14
BEGIN:VCALENDAR BEGIN:VCALENDAR
METHOD:REQUEST METHOD:REQUEST
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
UID:acme-12345@host1.com UID:acme-12345@host1.com
SEQUENCE:3 SEQUENCE:3
RRULE:FREQ=WEEKLY RRULE:FREQ=WEEKLY
RDATE;VALUE=PERIOD:19970819T210000Z/199700819T220000Z RDATE;VALUE=PERIOD:19970819T210000Z/199700819T220000Z
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:Mailto:A@example.com ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:a@example.com
ATTENDEE:Mailto:B@example.com ATTENDEE:mailto:b@example.com
DESCRIPTION:IETF-C&S Conference Call DESCRIPTION:IETF-C&S Conference Call
SUMMARY:IETF Calendaring Working Group Meeting SUMMARY:IETF Calendaring Working Group Meeting
DTSTART:19970801T210000Z DTSTART:19970801T210000Z
DTEND:19970801T220000Z DTEND:19970801T220000Z
RECURRENCE-ID:19970809T210000Z RECURRENCE-ID:19970809T210000Z
DTSTAMP:19970726T083000 DTSTAMP:19970726T083000
STATUS:CONFIRMED STATUS:CONFIRMED
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
skipping to change at page 108, line 39 skipping to change at page 109, line 39
instance at the specified recurrence time. This means that "B" has 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" 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 requests the latest copy of the event with the following refresh
message: message:
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
METHOD:REFRESH METHOD:REFRESH
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
ORGANIZER:Mailto:A@example.com ORGANIZER:mailto:a@example.com
ATTENDEE:Mailto:B@example.com ATTENDEE:mailto:b@example.com
UID:acme-12345@host1.com UID:acme-12345@host1.com
DTSTAMP:19970603T094000 DTSTAMP:19970603T094000
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
5. Application Protocol Fallbacks 5. Application Protocol Fallbacks
5.1. Partial Implementation 5.1. Partial Implementation
Applications that support this memo are not required to support the Applications that support this specification are not required to
entire protocol. The following describes how methods and properties support the entire protocol. The following describes how methods and
SHOULD "fallback" in applications that do not support the complete properties SHOULD "fallback" in applications that do not support the
protocol. If a method or property is not addressed in this section, complete protocol. If a method or property is not addressed in this
it may be ignored. section, it may be ignored.
5.1.1. Event-Related Fallbacks 5.1.1. Event-Related Fallbacks
+----------------+--------------------------------------------------+ +----------------+--------------------------------------------------+
| Method | Fallback | | Method | Fallback |
+----------------+--------------------------------------------------+ +----------------+--------------------------------------------------+
| PUBLISH | Required | | PUBLISH | Required |
| REQUEST | PUBLISH | | REQUEST | PUBLISH |
| REPLY | Required | | REPLY | Required |
| ADD | Required | | ADD | Required |
skipping to change at page 110, line 23 skipping to change at page 111, line 23
| COMMENT | Ignore | | COMMENT | Ignore |
| COMPLETED | Ignore | | COMPLETED | Ignore |
| CONTACT | Ignore | | CONTACT | Ignore |
| CREATED | Ignore | | CREATED | Ignore |
| DESCRIPTION | Required | | DESCRIPTION | Required |
| DURATION | Reply with Not Supported | | DURATION | Reply with Not Supported |
| DTSTAMP | Required | | DTSTAMP | Required |
| DTSTART | Required | | DTSTART | Required |
| DTEND | Required | | DTEND | Required |
| EXDATE | Ignore | | EXDATE | Ignore |
| EXRULE | Ignore Reply with Not Supported. If |
| | implemented, VTIMEZONE MUST also be |
| | implemented. |
| GEO | Ignore | | GEO | Ignore |
| LAST-MODIFIED | Ignore | | LAST-MODIFIED | Ignore |
| LOCATION | Required | | LOCATION | Required |
| ORGANIZER | Ignore | | ORGANIZER | Ignore |
| PRIORITY | Ignore | | PRIORITY | Ignore |
| RELATED-TO | Ignore | | RELATED-TO | Ignore |
| RDATE | Ignore | | RDATE | Ignore |
| RRULE | Ignore. The first instance occurs on the | | RRULE | Ignore. The first instance occurs on the |
| | DTStart property. If implemented, VTIMEZONE | | | DTStart property. If implemented, VTIMEZONE |
| | MUST also be implemented. | | | MUST also be implemented. |
skipping to change at page 113, line 23 skipping to change at page 114, line 23
| COMMENT | Ignore | | COMMENT | Ignore |
| COMPLETED | Required | | COMPLETED | Required |
| CONTACT | Ignore | | CONTACT | Ignore |
| CREATED | Ignore | | CREATED | Ignore |
| DESCRIPTION | Required | | DESCRIPTION | Required |
| DUE | Required | | DUE | Required |
| DURATION | Ignore Reply with Not Supported | | DURATION | Ignore Reply with Not Supported |
| DTSTAMP | Required | | DTSTAMP | Required |
| DTSTART | Required | | DTSTART | Required |
| EXDATE | Ignore Reply with Not Supported | | EXDATE | Ignore Reply with Not Supported |
| EXRULE | Ignore Reply with Not Supported. If |
| | implemented, VTIMEZONE MUST also be |
| | implemented. |
| LAST-MODIFIED | Ignore | | LAST-MODIFIED | Ignore |
| LOCATION | Ignore | | LOCATION | Ignore |
| ORGANIZER | Ignore | | ORGANIZER | Ignore |
| PERCENT-COMPLETE | Ignore | | PERCENT-COMPLETE | Ignore |
| PRIORITY | Required | | PRIORITY | Required |
| RECURRENCE-ID | Ignore | | RECURRENCE-ID | Ignore |
| RELATED-TO | Ignore | | RELATED-TO | Ignore |
| REQUEST-STATUS | Ignore | | REQUEST-STATUS | Ignore |
| RDATE | Ignore | | RDATE | Ignore |
| RRULE | Ignore. The first instance occurs on the | | RRULE | Ignore. The first instance occurs on the |
skipping to change at page 115, line 20 skipping to change at page 116, line 20
| | otherwise ignore | | | otherwise ignore |
| CATEGORIES | Ignore | | CATEGORIES | Ignore |
| CLASS | Ignore | | CLASS | Ignore |
| COMMENT | Ignore | | COMMENT | Ignore |
| CONTACT | Ignore | | CONTACT | Ignore |
| CREATED | Ignore | | CREATED | Ignore |
| DESCRIPTION | Required | | DESCRIPTION | Required |
| DTSTAMP | Required | | DTSTAMP | Required |
| DTSTART | Required | | DTSTART | Required |
| EXDATE | Ignore | | EXDATE | Ignore |
| EXRULE | Ignore Reply with Not Supported. If |
| | implemented, VTIMEZONE MUST also be |
| | implemented. |
| LAST-MODIFIED | Ignore | | LAST-MODIFIED | Ignore |
| ORGANIZER | Ignore | | ORGANIZER | Ignore |
| RECURRENCE-ID | Ignore | | RECURRENCE-ID | Ignore |
| RELATED-TO | Ignore | | RELATED-TO | Ignore |
| RDATE | Ignore. | | RDATE | Ignore. |
| RRULE | Ignore. The first instance occurs on the | | RRULE | Ignore. The first instance occurs on the |
| | DTSTART property. If implemented, VTIMEZONE | | | DTSTART property. If implemented, VTIMEZONE |
| | MUST also be implemented. | | | MUST also be implemented. |
| SEQUENCE | Required | | SEQUENCE | Required |
| STATUS | Ignore | | STATUS | Ignore |
skipping to change at page 117, line 36 skipping to change at page 118, line 30
Any information contained in an iCalendar object may be read and/or Any information contained in an iCalendar object may be read and/or
changed by unauthorized persons while the object is in transit. changed by unauthorized persons while the object is in transit.
6.1.5. Flooding a Calendar 6.1.5. Flooding a Calendar
Implementations MAY provide a means to automatically incorporate Implementations MAY provide a means to automatically incorporate
"REQUEST" methods into a calendar. This presents the opportunity for "REQUEST" methods into a calendar. This presents the opportunity for
a calendar to be flooded with requests, which effectively block all a calendar to be flooded with requests, which effectively block all
the calendar's free time. the calendar's free time.
6.1.6. Procedural Alarms 6.1.6. Unauthorized REFRESH Requests
The "REQUEST" methods for "VEVENT" and "VTODO" calendar components
MAY contain "VALARM" calendar components. The "VALARM" calendar
component may be of type "PROCEDURE" and MAY have an attachment
containing an executable program. Implementations that incorporate
these types of alarms are subject to any virus or malicious attack
that may occur as a result of executing the attachment.
6.1.7. Unauthorized REFRESH Requests
It is possible for an "Organizer" to receive a "REFRESH" request from 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 someone who is not an "Attendee" of an event or to-do. Only
"Attendee's" of an event or to-do are authorized to receive replies "Attendee's" of an event or to-do are authorized to receive replies
to "REFRESH" requests. Replying to such requests to anyone who is to "REFRESH" requests. Replying to such requests to anyone who is
not an "Attendee" may be a security problem. not an "Attendee" may be a security problem.
6.2. Recommendations 6.2. Recommendations
For an application where the information is sensitive or critical and For an application where the information is sensitive or critical and
skipping to change at page 119, line 21 skipping to change at page 120, line 10
TBD. Will be based on 2445bis changes. TBD. Will be based on 2445bis changes.
8. References 8. References
8.1. Normative References 8.1. Normative References
[I-D.ietf-calsify-rfc2445bis] [I-D.ietf-calsify-rfc2445bis]
Desruisseaux, B., "Internet Calendaring and Scheduling Desruisseaux, B., "Internet Calendaring and Scheduling
Core Object Specification (iCalendar)", Core Object Specification (iCalendar)",
draft-ietf-calsify-rfc2445bis-07 (work in progress), draft-ietf-calsify-rfc2445bis-08 (work in progress),
July 2007. February 2008.
[I-D.ietf-calsify-rfc2447bis] [I-D.ietf-calsify-rfc2447bis]
Melnikov, A., "iCalendar Message-Based Interoperability Melnikov, A., "iCalendar Message-Based Interoperability
Protocol (iMIP)", draft-ietf-calsify-rfc2447bis-03 (work Protocol (iMIP)", draft-ietf-calsify-rfc2447bis-03 (work
in progress), February 2007. in progress), February 2007.
[RFC1847] Galvin, J., Murphy, S., Crocker, S., and N. Freed, [RFC1847] Galvin, J., Murphy, S., Crocker, S., and N. Freed,
"Security Multiparts for MIME: Multipart/Signed and "Security Multiparts for MIME: Multipart/Signed and
Multipart/Encrypted", RFC 1847, October 1995. Multipart/Encrypted", RFC 1847, October 1995.
skipping to change at page 120, line 8 skipping to change at page 120, line 38
8.2. Informative References 8.2. Informative References
Appendix A. Acknowledgments Appendix A. Acknowledgments
This is an update to the original iTIP document authored by 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 and R. Hopson.
Appendix B. Change History (to be removed prior to publication as an Appendix B. Change History (to be removed prior to publication as an
RFC) RFC)
Changes in -05:
a. Changed "memo" to "specification".
b. Removed EXRULE as it is no longer in 2445bis.
c. Removed section on PROCEDURE alarms since those are no longer in
2445bis.
d. Changed TYPE= to CUTYPE=.
e. Fixed formatting of examples.
f. Use lowercase mailto everywhere.
Changes in -04: Changes in -04:
a. Added empty IANA Considerations section - to be done. a. Added empty IANA Considerations section - to be done.
b. Formatting fixes. b. Formatting fixes.
c. Changed VEVENT, VTODO, VJOURNAL cancel descriptions that c. Changed VEVENT, VTODO, VJOURNAL cancel descriptions that
incorrectly implied RECURRENCE-ID could appear multiple times in incorrectly implied RECURRENCE-ID could appear multiple times in
a single component. a single component.
d. [Issue91] FREEBUSY properties changed to '0+' from '1+' in d. [Issue91] FREEBUSY properties changed to '0+' from '1+' in
VFREEBUSY PUBLISH and REPLY tables. VFREEBUSY PUBLISH and REPLY tables.
e. [Issue89] Description for VEVENT ADD method simplified for e. [Issue89] Description for VEVENT ADD method simplified for
clarity. clarity.
f. Fixed some iCalendar property/parameter/value capitalization f. Fixed some iCalendar property/parameter/value capitalization
issues. issues.
skipping to change at page 122, line 7 skipping to change at page 123, line 7
Apple Inc. Apple Inc.
1 Infinite Loop 1 Infinite Loop
Cupertino, CA 95014 Cupertino, CA 95014
USA USA
Email: cyrus@daboo.name Email: cyrus@daboo.name
URI: http://www.apple.com/ URI: http://www.apple.com/
Full Copyright Statement Full Copyright Statement
Copyright (C) The IETF Trust (2007). Copyright (C) The IETF Trust (2008).
This document is subject to the rights, licenses and restrictions This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors contained in BCP 78, and except as set forth therein, the authors
retain all their rights. retain all their rights.
This document and the information contained herein are provided on an This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
 End of changes. 122 change blocks. 
351 lines changed or deleted 329 lines changed or added

This html diff was produced by rfcdiff 1.34. The latest version is available from http://tools.ietf.org/tools/rfcdiff/