draft-ietf-calsify-rfc2445bis-02.txt   draft-ietf-calsify-rfc2445bis-03.txt 
Network Working Group B. Desruisseaux, Ed. Network Working Group B. Desruisseaux, Ed.
Internet-Draft Oracle Internet-Draft Oracle
Obsoletes: 2445 (if approved) October 11, 2006 Obsoletes: 2445 (if approved) October 23, 2006
Expires: April 14, 2007 Expires: April 26, 2007
Internet Calendaring and Scheduling Core Object Specification Internet Calendaring and Scheduling Core Object Specification
(iCalendar) (iCalendar)
draft-ietf-calsify-rfc2445bis-02 draft-ietf-calsify-rfc2445bis-03
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 April 14, 2007. This Internet-Draft will expire on April 26, 2007.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2006). Copyright (C) The Internet Society (2006).
Abstract Abstract
There is a clear need to provide and deploy interoperable calendaring There is a clear need to provide and deploy interoperable calendaring
and scheduling services for the Internet. Current group scheduling and scheduling services for the Internet. Current group scheduling
and Personal Information Management (PIM) products are being extended and Personal Information Management (PIM) products are being extended
skipping to change at page 3, line 28 skipping to change at page 3, line 28
3.2. Property Parameters . . . . . . . . . . . . . . . . . . . 13 3.2. Property Parameters . . . . . . . . . . . . . . . . . . . 13
3.2.1. Alternate Text Representation . . . . . . . . . . . . 14 3.2.1. Alternate Text Representation . . . . . . . . . . . . 14
3.2.2. Common Name . . . . . . . . . . . . . . . . . . . . . 15 3.2.2. Common Name . . . . . . . . . . . . . . . . . . . . . 15
3.2.3. Calendar User Type . . . . . . . . . . . . . . . . . 16 3.2.3. Calendar User Type . . . . . . . . . . . . . . . . . 16
3.2.4. Delegators . . . . . . . . . . . . . . . . . . . . . 17 3.2.4. Delegators . . . . . . . . . . . . . . . . . . . . . 17
3.2.5. Delegatees . . . . . . . . . . . . . . . . . . . . . 17 3.2.5. Delegatees . . . . . . . . . . . . . . . . . . . . . 17
3.2.6. Directory Entry Reference . . . . . . . . . . . . . . 18 3.2.6. Directory Entry Reference . . . . . . . . . . . . . . 18
3.2.7. Inline Encoding . . . . . . . . . . . . . . . . . . . 18 3.2.7. Inline Encoding . . . . . . . . . . . . . . . . . . . 18
3.2.8. Format Type . . . . . . . . . . . . . . . . . . . . . 19 3.2.8. Format Type . . . . . . . . . . . . . . . . . . . . . 19
3.2.9. Free/Busy Time Type . . . . . . . . . . . . . . . . . 20 3.2.9. Free/Busy Time Type . . . . . . . . . . . . . . . . . 20
3.2.10. Language . . . . . . . . . . . . . . . . . . . . . . 20 3.2.10. Language . . . . . . . . . . . . . . . . . . . . . . 21
3.2.11. Group or List Membership . . . . . . . . . . . . . . 21 3.2.11. Group or List Membership . . . . . . . . . . . . . . 21
3.2.12. Participation Status . . . . . . . . . . . . . . . . 22 3.2.12. Participation Status . . . . . . . . . . . . . . . . 22
3.2.13. Recurrence Identifier Range . . . . . . . . . . . . . 24 3.2.13. Recurrence Identifier Range . . . . . . . . . . . . . 24
3.2.14. Alarm Trigger Relationship . . . . . . . . . . . . . 24 3.2.14. Alarm Trigger Relationship . . . . . . . . . . . . . 24
3.2.15. Relationship Type . . . . . . . . . . . . . . . . . . 25 3.2.15. Relationship Type . . . . . . . . . . . . . . . . . . 25
3.2.16. Participation Role . . . . . . . . . . . . . . . . . 26 3.2.16. Participation Role . . . . . . . . . . . . . . . . . 26
3.2.17. RSVP Expectation . . . . . . . . . . . . . . . . . . 26 3.2.17. RSVP Expectation . . . . . . . . . . . . . . . . . . 26
3.2.18. Sent By . . . . . . . . . . . . . . . . . . . . . . . 27 3.2.18. Sent By . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.19. Time Zone Identifier . . . . . . . . . . . . . . . . 28 3.2.19. Time Zone Identifier . . . . . . . . . . . . . . . . 28
3.2.20. Value Data Types . . . . . . . . . . . . . . . . . . 29 3.2.20. Value Data Types . . . . . . . . . . . . . . . . . . 29
skipping to change at page 4, line 8 skipping to change at page 4, line 8
3.3.8. Integer . . . . . . . . . . . . . . . . . . . . . . . 36 3.3.8. Integer . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.9. Period of Time . . . . . . . . . . . . . . . . . . . 36 3.3.9. Period of Time . . . . . . . . . . . . . . . . . . . 36
3.3.10. Recurrence Rule . . . . . . . . . . . . . . . . . . . 38 3.3.10. Recurrence Rule . . . . . . . . . . . . . . . . . . . 38
3.3.11. Text . . . . . . . . . . . . . . . . . . . . . . . . 43 3.3.11. Text . . . . . . . . . . . . . . . . . . . . . . . . 43
3.3.12. Time . . . . . . . . . . . . . . . . . . . . . . . . 45 3.3.12. Time . . . . . . . . . . . . . . . . . . . . . . . . 45
3.3.13. URI . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.3.13. URI . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.3.14. UTC Offset . . . . . . . . . . . . . . . . . . . . . 48 3.3.14. UTC Offset . . . . . . . . . . . . . . . . . . . . . 48
3.4. iCalendar Object . . . . . . . . . . . . . . . . . . . . 48 3.4. iCalendar Object . . . . . . . . . . . . . . . . . . . . 48
3.5. Property . . . . . . . . . . . . . . . . . . . . . . . . 49 3.5. Property . . . . . . . . . . . . . . . . . . . . . . . . 49
3.6. Calendar Components . . . . . . . . . . . . . . . . . . . 49 3.6. Calendar Components . . . . . . . . . . . . . . . . . . . 49
3.6.1. Event Component . . . . . . . . . . . . . . . . . . . 51 3.6.1. Event Component . . . . . . . . . . . . . . . . . . . 50
3.6.2. To-do Component . . . . . . . . . . . . . . . . . . . 53 3.6.2. To-do Component . . . . . . . . . . . . . . . . . . . 53
3.6.3. Journal Component . . . . . . . . . . . . . . . . . . 55 3.6.3. Journal Component . . . . . . . . . . . . . . . . . . 55
3.6.4. Free/Busy Component . . . . . . . . . . . . . . . . . 57 3.6.4. Free/Busy Component . . . . . . . . . . . . . . . . . 57
3.6.5. Time Zone Component . . . . . . . . . . . . . . . . . 60 3.6.5. Time Zone Component . . . . . . . . . . . . . . . . . 60
3.6.6. Alarm Component . . . . . . . . . . . . . . . . . . . 67 3.6.6. Alarm Component . . . . . . . . . . . . . . . . . . . 68
3.7. Calendar Properties . . . . . . . . . . . . . . . . . . . 73 3.7. Calendar Properties . . . . . . . . . . . . . . . . . . . 74
3.7.1. Calendar Scale . . . . . . . . . . . . . . . . . . . 73 3.7.1. Calendar Scale . . . . . . . . . . . . . . . . . . . 74
3.7.2. Method . . . . . . . . . . . . . . . . . . . . . . . 74 3.7.2. Method . . . . . . . . . . . . . . . . . . . . . . . 75
3.7.3. Product Identifier . . . . . . . . . . . . . . . . . 75 3.7.3. Product Identifier . . . . . . . . . . . . . . . . . 76
3.7.4. Version . . . . . . . . . . . . . . . . . . . . . . . 76 3.7.4. Version . . . . . . . . . . . . . . . . . . . . . . . 77
3.8. Component Properties . . . . . . . . . . . . . . . . . . 77 3.8. Component Properties . . . . . . . . . . . . . . . . . . 78
3.8.1. Descriptive Component Properties . . . . . . . . . . 77 3.8.1. Descriptive Component Properties . . . . . . . . . . 78
3.8.1.1. Attachment . . . . . . . . . . . . . . . . . . . 77 3.8.1.1. Attachment . . . . . . . . . . . . . . . . . . . 78
3.8.1.2. Categories . . . . . . . . . . . . . . . . . . . 78 3.8.1.2. Categories . . . . . . . . . . . . . . . . . . . 79
3.8.1.3. Classification . . . . . . . . . . . . . . . . . 79 3.8.1.3. Classification . . . . . . . . . . . . . . . . . 80
3.8.1.4. Comment . . . . . . . . . . . . . . . . . . . . . 80 3.8.1.4. Comment . . . . . . . . . . . . . . . . . . . . . 81
3.8.1.5. Description . . . . . . . . . . . . . . . . . . . 81 3.8.1.5. Description . . . . . . . . . . . . . . . . . . . 82
3.8.1.6. Geographic Position . . . . . . . . . . . . . . . 82 3.8.1.6. Geographic Position . . . . . . . . . . . . . . . 83
3.8.1.7. Location . . . . . . . . . . . . . . . . . . . . 84 3.8.1.7. Location . . . . . . . . . . . . . . . . . . . . 85
3.8.1.8. Percent Complete . . . . . . . . . . . . . . . . 85 3.8.1.8. Percent Complete . . . . . . . . . . . . . . . . 86
3.8.1.9. Priority . . . . . . . . . . . . . . . . . . . . 86 3.8.1.9. Priority . . . . . . . . . . . . . . . . . . . . 87
3.8.1.10. Resources . . . . . . . . . . . . . . . . . . . . 88 3.8.1.10. Resources . . . . . . . . . . . . . . . . . . . . 89
3.8.1.11. Status . . . . . . . . . . . . . . . . . . . . . 88 3.8.1.11. Status . . . . . . . . . . . . . . . . . . . . . 89
3.8.1.12. Summary . . . . . . . . . . . . . . . . . . . . . 90 3.8.1.12. Summary . . . . . . . . . . . . . . . . . . . . . 91
3.8.2. Date and Time Component Properties . . . . . . . . . 91 3.8.2. Date and Time Component Properties . . . . . . . . . 92
3.8.2.1. Date/Time Completed . . . . . . . . . . . . . . . 91 3.8.2.1. Date/Time Completed . . . . . . . . . . . . . . . 92
3.8.2.2. Date/Time End . . . . . . . . . . . . . . . . . . 92 3.8.2.2. Date/Time End . . . . . . . . . . . . . . . . . . 93
3.8.2.3. Date/Time Due . . . . . . . . . . . . . . . . . . 93 3.8.2.3. Date/Time Due . . . . . . . . . . . . . . . . . . 94
3.8.2.4. Date/Time Start . . . . . . . . . . . . . . . . . 94 3.8.2.4. Date/Time Start . . . . . . . . . . . . . . . . . 95
3.8.2.5. Duration . . . . . . . . . . . . . . . . . . . . 95 3.8.2.5. Duration . . . . . . . . . . . . . . . . . . . . 96
3.8.2.6. Free/Busy Time . . . . . . . . . . . . . . . . . 96 3.8.2.6. Free/Busy Time . . . . . . . . . . . . . . . . . 97
3.8.2.7. Time Transparency . . . . . . . . . . . . . . . . 97 3.8.2.7. Time Transparency . . . . . . . . . . . . . . . . 98
3.8.3. Time Zone Component Properties . . . . . . . . . . . 98 3.8.3. Time Zone Component Properties . . . . . . . . . . . 99
3.8.3.1. Time Zone Identifier . . . . . . . . . . . . . . 99 3.8.3.1. Time Zone Identifier . . . . . . . . . . . . . . 100
3.8.3.2. Time Zone Name . . . . . . . . . . . . . . . . . 100 3.8.3.2. Time Zone Name . . . . . . . . . . . . . . . . . 101
3.8.3.3. Time Zone Offset From . . . . . . . . . . . . . . 101 3.8.3.3. Time Zone Offset From . . . . . . . . . . . . . . 102
3.8.3.4. Time Zone Offset To . . . . . . . . . . . . . . . 102 3.8.3.4. Time Zone Offset To . . . . . . . . . . . . . . . 103
3.8.3.5. Time Zone URL . . . . . . . . . . . . . . . . . . 102 3.8.3.5. Time Zone URL . . . . . . . . . . . . . . . . . . 103
3.8.4. Relationship Component Properties . . . . . . . . . . 103 3.8.4. Relationship Component Properties . . . . . . . . . . 104
3.8.4.1. Attendee . . . . . . . . . . . . . . . . . . . . 103 3.8.4.1. Attendee . . . . . . . . . . . . . . . . . . . . 104
3.8.4.2. Contact . . . . . . . . . . . . . . . . . . . . . 106 3.8.4.2. Contact . . . . . . . . . . . . . . . . . . . . . 107
3.8.4.3. Organizer . . . . . . . . . . . . . . . . . . . . 107 3.8.4.3. Organizer . . . . . . . . . . . . . . . . . . . . 108
3.8.4.4. Recurrence ID . . . . . . . . . . . . . . . . . . 109 3.8.4.4. Recurrence ID . . . . . . . . . . . . . . . . . . 110
3.8.4.5. Related To . . . . . . . . . . . . . . . . . . . 111 3.8.4.5. Related To . . . . . . . . . . . . . . . . . . . 112
3.8.4.6. Uniform Resource Locator . . . . . . . . . . . . 113 3.8.4.6. Uniform Resource Locator . . . . . . . . . . . . 114
3.8.4.7. Unique Identifier . . . . . . . . . . . . . . . . 113 3.8.4.7. Unique Identifier . . . . . . . . . . . . . . . . 114
3.8.5. Recurrence Component Properties . . . . . . . . . . . 115 3.8.5. Recurrence Component Properties . . . . . . . . . . . 116
3.8.5.1. Exception Date/Times . . . . . . . . . . . . . . 115 3.8.5.1. Exception Date/Times . . . . . . . . . . . . . . 116
3.8.5.2. Exception Rule . . . . . . . . . . . . . . . . . 116 3.8.5.2. Recurrence Date/Times . . . . . . . . . . . . . . 117
3.8.5.3. Recurrence Date/Times . . . . . . . . . . . . . . 118 3.8.5.3. Recurrence Rule . . . . . . . . . . . . . . . . . 119
3.8.5.4. Recurrence Rule . . . . . . . . . . . . . . . . . 119
3.8.6. Alarm Component Properties . . . . . . . . . . . . . 128 3.8.6. Alarm Component Properties . . . . . . . . . . . . . 128
3.8.6.1. Action . . . . . . . . . . . . . . . . . . . . . 129 3.8.6.1. Action . . . . . . . . . . . . . . . . . . . . . 129
3.8.6.2. Repeat Count . . . . . . . . . . . . . . . . . . 129 3.8.6.2. Repeat Count . . . . . . . . . . . . . . . . . . 129
3.8.6.3. Trigger . . . . . . . . . . . . . . . . . . . . . 130 3.8.6.3. Trigger . . . . . . . . . . . . . . . . . . . . . 130
3.8.7. Change Management Component Properties . . . . . . . 132 3.8.7. Change Management Component Properties . . . . . . . 132
3.8.7.1. Date/Time Created . . . . . . . . . . . . . . . . 133 3.8.7.1. Date/Time Created . . . . . . . . . . . . . . . . 133
3.8.7.2. Date/Time Stamp . . . . . . . . . . . . . . . . . 133 3.8.7.2. Date/Time Stamp . . . . . . . . . . . . . . . . . 133
3.8.7.3. Last Modified . . . . . . . . . . . . . . . . . . 134 3.8.7.3. Last Modified . . . . . . . . . . . . . . . . . . 134
3.8.7.4. Sequence Number . . . . . . . . . . . . . . . . . 135 3.8.7.4. Sequence Number . . . . . . . . . . . . . . . . . 135
3.8.8. Miscellaneous Component Properties . . . . . . . . . 137 3.8.8. Miscellaneous Component Properties . . . . . . . . . 136
3.8.8.1. Non-standard Properties . . . . . . . . . . . . . 137 3.8.8.1. Non-standard Properties . . . . . . . . . . . . . 137
3.8.8.2. Request Status . . . . . . . . . . . . . . . . . 138 3.8.8.2. Request Status . . . . . . . . . . . . . . . . . 138
4. iCalendar Object Examples . . . . . . . . . . . . . . . . . . 141 4. iCalendar Object Examples . . . . . . . . . . . . . . . . . . 141
5. Recommended Practices . . . . . . . . . . . . . . . . . . . . 145 5. Recommended Practices . . . . . . . . . . . . . . . . . . . . 145
6. Registration of Content Type Elements . . . . . . . . . . . . 146 6. Registration of Content Type Elements . . . . . . . . . . . . 146
6.1. Registration of New and Modified iCalendar Object 6.1. Registration of New and Modified iCalendar Object
Methods . . . . . . . . . . . . . . . . . . . . . . . . . 146 Methods . . . . . . . . . . . . . . . . . . . . . . . . . 146
6.2. Registration of New Properties . . . . . . . . . . . . . 147 6.2. Registration of New Properties . . . . . . . . . . . . . 147
6.2.1. Define the property . . . . . . . . . . . . . . . . . 147 6.2.1. Define the property . . . . . . . . . . . . . . . . . 147
6.2.2. Post the Property definition . . . . . . . . . . . . 148 6.2.2. Post the Property definition . . . . . . . . . . . . 148
skipping to change at page 5, line 43 skipping to change at page 5, line 42
6.2.4. Submit the property for approval . . . . . . . . . . 148 6.2.4. Submit the property for approval . . . . . . . . . . 148
6.3. Property Change Control . . . . . . . . . . . . . . . . . 149 6.3. Property Change Control . . . . . . . . . . . . . . . . . 149
7. Internationalization Considerations . . . . . . . . . . . . . 149 7. Internationalization Considerations . . . . . . . . . . . . . 149
8. Security Considerations . . . . . . . . . . . . . . . . . . . 149 8. Security Considerations . . . . . . . . . . . . . . . . . . . 149
9. IANA Consideration . . . . . . . . . . . . . . . . . . . . . 150 9. IANA Consideration . . . . . . . . . . . . . . . . . . . . . 150
9.1. Media Type Registration Information . . . . . . . . . . . 150 9.1. Media Type Registration Information . . . . . . . . . . . 150
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 153 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 153
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 154 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 154
11.1. Normative References . . . . . . . . . . . . . . . . . . 154 11.1. Normative References . . . . . . . . . . . . . . . . . . 154
11.2. Informative References . . . . . . . . . . . . . . . . . 155 11.2. Informative References . . . . . . . . . . . . . . . . . 155
Appendix A. Change Log (to be removed by RFC Editor before Appendix A. Differences from RFC 2445 . . . . . . . . . . . . . 155
publication) . . . . . . . . . . . . . . . . . . . . 155 A.1. New restrictions . . . . . . . . . . . . . . . . . . . . 155
A.1. Changes in -02 . . . . . . . . . . . . . . . . . . . . . 155 A.2. Deprecated features . . . . . . . . . . . . . . . . . . . 156
A.2. Changes in -01 . . . . . . . . . . . . . . . . . . . . . 156 Appendix B. Change Log (to be removed by RFC Editor before
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 157 publication) . . . . . . . . . . . . . . . . . . . . 156
Intellectual Property and Copyright Statements . . . . . . . . . 158 B.1. Changes in -03 . . . . . . . . . . . . . . . . . . . . . 156
B.2. Changes in -02 . . . . . . . . . . . . . . . . . . . . . 156
B.3. Changes in -01 . . . . . . . . . . . . . . . . . . . . . 157
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 158
Intellectual Property and Copyright Statements . . . . . . . . . 159
1. Introduction 1. Introduction
The use of calendaring and scheduling has grown considerably in the The use of calendaring and scheduling has grown considerably in the
last decade. Enterprise and inter-enterprise business has become last decade. Enterprise and inter-enterprise business has become
dependent on rapid scheduling of events and actions using this dependent on rapid scheduling of events and actions using this
information technology. However, the longer term growth of information technology. However, the longer term growth of
calendaring and scheduling, is currently limited by the lack of calendaring and scheduling, is currently limited by the lack of
Internet standards for the message content types that are central to Internet standards for the message content types that are central to
these knowledgeware applications. This memo is intended to progress these knowledgeware applications. This memo is intended to progress
skipping to change at page 13, line 6 skipping to change at page 13, line 6
3.1.3. Binary Content 3.1.3. Binary Content
Binary content information in an iCalendar object SHOULD be Binary content information in an iCalendar object SHOULD be
referenced using a URI within a property value. That is the binary referenced using a URI within a property value. That is the binary
content information SHOULD be placed in an external MIME entity that content information SHOULD be placed in an external MIME entity that
can be referenced by a URI from within the iCalendar object. In can be referenced by a URI from within the iCalendar object. In
applications where this is not feasible, binary content information applications where this is not feasible, binary content information
can be included within an iCalendar object, but only after first can be included within an iCalendar object, but only after first
encoding it into text using the "BASE64" encoding method defined in encoding it into text using the "BASE64" encoding method defined in
[RFC2045]. Inline binary contact SHOULD only be used in applications [RFC4648] . Inline binary contact SHOULD only be used in
whose special circumstances demand that an iCalendar object be applications whose special circumstances demand that an iCalendar
expressed as a single entity. A property containing inline binary object be expressed as a single entity. A property containing inline
content information MUST specify the "ENCODING" property parameter. binary content information MUST specify the "ENCODING" property
Binary content information placed external to the iCalendar object parameter. Binary content information placed external to the
MUST be referenced by a uniform resource identifier (URI). iCalendar object MUST be referenced by a uniform resource identifier
(URI).
The following example specifies an "ATTACH" property that references The following example specifies an "ATTACH" property that references
an attachment external to the iCalendar object with a URI reference: an attachment external to the iCalendar object with a URI reference:
ATTACH:http://example.com/public/quarterly-report.doc ATTACH:http://example.com/public/quarterly-report.doc
The following example specifies an "ATTACH" property with inline The following example specifies an "ATTACH" property with inline
binary encoded content information: binary encoded content information:
ATTACH;FMTTYPE=image/basic;ENCODING=BASE64;VALUE=BINARY: ATTACH;FMTTYPE=image/basic;ENCODING=BASE64;VALUE=BINARY:
skipping to change at page 19, line 7 skipping to change at page 19, line 7
Parameter Name: ENCODING Parameter Name: ENCODING
Purpose: To specify an alternate inline encoding for the property Purpose: To specify an alternate inline encoding for the property
value. value.
Format Definition: The property parameter is defined by the following Format Definition: The property parameter is defined by the following
notation: notation:
encodingparam = "ENCODING" "=" encodingparam = "ENCODING" "="
("8BIT" ("8BIT"
; "8bit" text encoding is defined in [RFC2045] ; "8bit" text encoding is defined in
[RFC2045]
/ "BASE64" / "BASE64"
; "BASE64" binary encoding format is defined in [RFC2045] ; "BASE64" binary encoding format is defined in
[RFC4648]
/ iana-token / iana-token
; Some other IANA registered iCalendar encoding type ; Some other IANA registered iCalendar encoding type
/ x-name) / x-name)
; A non-standard, experimental encoding type ; A non-standard, experimental encoding type
Description: The property parameter identifies the inline encoding Description: The property parameter identifies the inline encoding
used in a property value. The default encoding is "8BIT", used in a property value. The default encoding is "8BIT",
corresponding to a property value consisting of text. The corresponding to a property value consisting of text. The
"BASE64" encoding type corresponds to a property value encoded "BASE64" encoding type corresponds to a property value encoded
using the "BASE64" encoding defined in [RFC2045]. using the "BASE64" encoding defined in [RFC2045].
skipping to change at page 23, line 18 skipping to change at page 23, line 18
/ "DECLINED" ; Event declined / "DECLINED" ; Event declined
/ "TENTATIVE" ; Event tentatively / "TENTATIVE" ; Event tentatively
; accepted ; accepted
/ "DELEGATED" ; Event delegated / "DELEGATED" ; Event delegated
/ x-name ; Experimental status / x-name ; Experimental status
/ iana-token) ; Other IANA registered / iana-token) ; Other IANA registered
; status ; status
; These are the participation statuses for a "VEVENT". ; These are the participation statuses for a "VEVENT".
; Default is NEEDS-ACTION. ; Default is NEEDS-ACTION.
partstatparam /= "PARTSTAT" "=" /
("NEEDS-ACTION" ; To-do needs action ("NEEDS-ACTION" ; To-do needs action
/ "ACCEPTED" ; To-do accepted / "ACCEPTED" ; To-do accepted
/ "DECLINED" ; To-do declined / "DECLINED" ; To-do declined
/ "TENTATIVE" ; To-do tentatively / "TENTATIVE" ; To-do tentatively
; accepted ; accepted
/ "DELEGATED" ; To-do delegated / "DELEGATED" ; To-do delegated
/ "COMPLETED" ; To-do completed. / "COMPLETED" ; To-do completed.
; COMPLETED property has ; COMPLETED property has
; date/time completed. ; date/time completed.
/ "IN-PROCESS" ; To-do in process of / "IN-PROCESS" ; To-do in process of
; being completed ; being completed
/ x-name ; Experimental status / x-name ; Experimental status
/ iana-token) ; Other IANA registered / iana-token) ; Other IANA registered
; status ; status
; These are the participation statuses for a "VTODO". ; These are the participation statuses for a "VTODO".
; Default is NEEDS-ACTION. ; Default is NEEDS-ACTION.
partstatparam /= "PARTSTAT" "=" /
("NEEDS-ACTION" ; Journal needs action ("NEEDS-ACTION" ; Journal needs action
/ "ACCEPTED" ; Journal accepted / "ACCEPTED" ; Journal accepted
/ "DECLINED" ; Journal declined / "DECLINED" ; Journal declined
/ x-name ; Experimental status / x-name ; Experimental status
/ iana-token) ; Other IANA registered / iana-token) ; Other IANA registered
; status ; status
; These are the participation statuses for a "VJOURNAL". ; These are the participation statuses for a "VJOURNAL".
; Default is NEEDS-ACTION. ; Default is NEEDS-ACTION.
Description: This parameter can be specified on properties with a Description: This parameter can be specified on properties with a
skipping to change at page 25, line 38 skipping to change at page 25, line 38
Purpose: To specify the type of hierarchical relationship associated Purpose: To specify the type of hierarchical relationship associated
with the calendar component specified by the property. with the calendar component specified by the property.
Format Definition: The property parameter is defined by the following Format Definition: The property parameter is defined by the following
notation: notation:
reltypeparam = "RELTYPE" "=" reltypeparam = "RELTYPE" "="
("PARENT" ; Parent relationship. Default. ("PARENT" ; Parent relationship. Default.
/ "CHILD" ; Child relationship / "CHILD" ; Child relationship
/ "SIBLING ; Sibling relationship / "SIBLING" ; Sibling relationship
/ iana-token ; Some other IANA registered / iana-token ; Some other IANA registered
; iCalendar relationship type ; iCalendar relationship type
/ x-name) ; A non-standard, experimental / x-name) ; A non-standard, experimental
; relationship type ; relationship type
Description: This parameter can be specified on a property that Description: This parameter can be specified on a property that
references another related calendar. The parameter specifies the references another related calendar. The parameter specifies the
hierarchical relationship type of the calendar component hierarchical relationship type of the calendar component
referenced by the property. The parameter value can be PARENT, to referenced by the property. The parameter value can be PARENT, to
indicate that the referenced calendar component is a superior of indicate that the referenced calendar component is a superior of
skipping to change at page 30, line 39 skipping to change at page 30, line 34
Purpose: This value type is used to identify properties that contain Purpose: This value type is used to identify properties that contain
a character encoding of inline binary data. For example, an a character encoding of inline binary data. For example, an
inline attachment of an object code might be included in an inline attachment of an object code might be included in an
iCalendar object. iCalendar object.
Format Definition: The value type is defined by the following Format Definition: The value type is defined by the following
notation: notation:
binary = *(4b-char) [b-end] binary = *(4b-char) [b-end]
; A "BASE64" encoded character string, as defined by [RFC2045]. ; A "BASE64" encoded character string, as defined by
[RFC4648]
.
b-end = (2b-char "==") / (3b-char "=") b-end = (2b-char "==") / (3b-char "=")
b-char = ALPHA / DIGIT / "+" / "/" b-char = ALPHA / DIGIT / "+" / "/"
Description: Property values with this value type MUST also include Description: Property values with this value type MUST also include
the inline encoding parameter sequence of ";ENCODING=BASE64". the inline encoding parameter sequence of ";ENCODING=BASE64".
That is, all inline binary data MUST first be character encoded That is, all inline binary data MUST first be character encoded
using the "BASE64" encoding method defined in [RFC2045]. No using the "BASE64" encoding method defined in [RFC2045]. No
additional content value encoding (i.e., BACKSLASH character additional content value encoding (i.e., BACKSLASH character
skipping to change at page 38, line 15 skipping to change at page 38, line 15
3.3.10. Recurrence Rule 3.3.10. Recurrence Rule
Value Name: RECUR Value Name: RECUR
Purpose: This value type is used to identify properties that contain Purpose: This value type is used to identify properties that contain
a recurrence rule specification. a recurrence rule specification.
Format Definition: The value type is defined by the following Format Definition: The value type is defined by the following
notation: notation:
recur = "FREQ" = freq *( recur = "FREQ" "=" freq *(
; either UNTIL or COUNT may appear in a 'recur', ; either UNTIL or COUNT may appear in a 'recur',
; but UNTIL and COUNT MUST NOT occur in the same ; but UNTIL and COUNT MUST NOT occur in the same
; 'recur' ; 'recur'
( ";" "UNTIL" "=" enddate ) / ( ";" "UNTIL" "=" enddate ) /
( ";" "COUNT" "=" 1*DIGIT ) / ( ";" "COUNT" "=" 1*DIGIT ) /
; the rest of these keywords are optional, ; the rest of these keywords are optional,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
skipping to change at page 38, line 49 skipping to change at page 38, line 49
) )
freq = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY" freq = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY"
/ "WEEKLY" / "MONTHLY" / "YEARLY" / "WEEKLY" / "MONTHLY" / "YEARLY"
enddate = date enddate = date
/ date-time ;A UTC value / date-time ;A UTC value
byseclist = seconds / ( seconds *("," seconds) ) byseclist = seconds / ( seconds *("," seconds) )
seconds = 1DIGIT / 2DIGIT ;0 to 59 seconds = DIGIT / 2DIGIT ;0 to 59
byminlist = minutes / ( minutes *("," minutes) ) byminlist = minutes / ( minutes *("," minutes) )
minutes = 1DIGIT / 2DIGIT ;0 to 59 minutes = DIGIT / 2DIGIT ;0 to 59
byhrlist = hour / ( hour *("," hour) ) byhrlist = hour / ( hour *("," hour) )
hour = 1DIGIT / 2DIGIT ;0 to 23 hour = DIGIT / 2DIGIT ;0 to 23
bywdaylist = weekdaynum / ( weekdaynum *("," weekdaynum) ) bywdaylist = weekdaynum / ( weekdaynum *("," weekdaynum) )
weekdaynum = [([plus] ordwk / minus ordwk)] weekday weekdaynum = [([plus] ordwk / minus ordwk)] weekday
plus = "+" plus = "+"
minus = "-" minus = "-"
ordwk = 1DIGIT / 2DIGIT ;1 to 53 ordwk = DIGIT / 2DIGIT ;1 to 53
weekday = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA" weekday = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA"
;Corresponding to SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, ;Corresponding to SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY,
;FRIDAY, SATURDAY and SUNDAY days of the week. ;FRIDAY, and SATURDAY days of the week.
bymodaylist = monthdaynum / ( monthdaynum *("," monthdaynum) ) bymodaylist = monthdaynum / ( monthdaynum *("," monthdaynum) )
monthdaynum = ([plus] ordmoday) / (minus ordmoday) monthdaynum = ([plus] ordmoday) / (minus ordmoday)
ordmoday = 1DIGIT / 2DIGIT ;1 to 31 ordmoday = DIGIT / 2DIGIT ;1 to 31
byyrdaylist = yeardaynum / ( yeardaynum *("," yeardaynum) ) byyrdaylist = yeardaynum / ( yeardaynum *("," yeardaynum) )
yeardaynum = ([plus] ordyrday) / (minus ordyrday) yeardaynum = ([plus] ordyrday) / (minus ordyrday)
ordyrday = 1DIGIT / 2DIGIT / 3DIGIT ;1 to 366 ordyrday = DIGIT / 2DIGIT / 3DIGIT ;1 to 366
bywknolist = weeknum / ( weeknum *("," weeknum) ) bywknolist = weeknum / ( weeknum *("," weeknum) )
weeknum = ([plus] ordwk) / (minus ordwk) weeknum = ([plus] ordwk) / (minus ordwk)
bymolist = monthnum / ( monthnum *("," monthnum) ) bymolist = monthnum / ( monthnum *("," monthnum) )
monthnum = 1DIGIT / 2DIGIT ;1 to 12 monthnum = DIGIT / 2DIGIT ;1 to 12
bysplist = setposday / ( setposday *("," setposday) ) bysplist = setposday / ( setposday *("," setposday) )
setposday = yeardaynum setposday = yeardaynum
Description: If the property permits, multiple "recur" values are Description: The value type is a structured value consisting of a
specified by a COMMA character (US-ASCII decimal 44) separated list of one or more recurrence grammar parts. Each rule part is
list of values. The value type is a structured value consisting defined by a NAME=VALUE pair. The rule parts are separated from
of a list of one or more recurrence grammar parts. Each rule part each other by the SEMICOLON character (US-ASCII decimal 59). The
is defined by a NAME=VALUE pair. The rule parts are separated rule parts are not ordered in any particular sequence. Individual
from each other by the SEMICOLON character (US-ASCII decimal 59). rule parts MUST only be specified once.
The rule parts are not ordered in any particular sequence.
Individual rule parts MUST only be specified once.
The FREQ rule part identifies the type of recurrence rule. This The FREQ rule part identifies the type of recurrence rule. This
rule part MUST be specified in the recurrence rule. Valid values rule part MUST be specified in the recurrence rule. Valid values
include SECONDLY, to specify repeating events based on an interval include SECONDLY, to specify repeating events based on an interval
of a second or more; MINUTELY, to specify repeating events based of a second or more; MINUTELY, to specify repeating events based
on an interval of a minute or more; HOURLY, to specify repeating on an interval of a minute or more; HOURLY, to specify repeating
events based on an interval of an hour or more; DAILY, to specify events based on an interval of an hour or more; DAILY, to specify
repeating events based on an interval of a day or more; WEEKLY, to repeating events based on an interval of a day or more; WEEKLY, to
specify repeating events based on an interval of a week or more; specify repeating events based on an interval of a week or more;
MONTHLY, to specify repeating events based on an interval of a MONTHLY, to specify repeating events based on an interval of a
skipping to change at page 40, line 41 skipping to change at page 40, line 39
The UNTIL rule part defines a date-time value which bounds the The UNTIL rule part defines a date-time value which bounds the
recurrence rule in an inclusive manner. If the value specified by recurrence rule in an inclusive manner. If the value specified by
UNTIL is synchronized with the specified recurrence, this date or UNTIL is synchronized with the specified recurrence, this date or
date-time becomes the last instance of the recurrence. If date-time becomes the last instance of the recurrence. If
specified as a date-time value, then it MUST be specified in a UTC specified as a date-time value, then it MUST be specified in a UTC
time format. If not present, and the COUNT rule part is also not time format. If not present, and the COUNT rule part is also not
present, the RRULE is considered to repeat forever. present, the RRULE is considered to repeat forever.
The COUNT rule part defines the number of occurrences at which to The COUNT rule part defines the number of occurrences at which to
range-bound the recurrence. The "DTSTART" property value, if range-bound the recurrence. The "DTSTART" property value always
specified, counts as the first occurrence. counts as the first occurrence.
The BYSECOND rule part specifies a COMMA character (US-ASCII The BYSECOND rule part specifies a COMMA character (US-ASCII
decimal 44) separated list of seconds within a minute. Valid decimal 44) separated list of seconds within a minute. Valid
values are 0 to 59. The BYMINUTE rule part specifies a COMMA values are 0 to 59. The BYMINUTE rule part specifies a COMMA
character (US-ASCII decimal 44) separated list of minutes within character (US-ASCII decimal 44) separated list of minutes within
an hour. Valid values are 0 to 59. The BYHOUR rule part an hour. Valid values are 0 to 59. The BYHOUR rule part
specifies a COMMA character (US-ASCII decimal 44) separated list specifies a COMMA character (US-ASCII decimal 44) separated list
of hours of the day. Valid values are 0 to 23. of hours of the day. Valid values are 0 to 23.
The BYDAY rule part specifies a COMMA character (US-ASCII decimal The BYDAY rule part specifies a COMMA character (US-ASCII decimal
skipping to change at page 48, line 24 skipping to change at page 48, line 24
Value Name: UTC-OFFSET Value Name: UTC-OFFSET
Purpose: This value type is used to identify properties that contain Purpose: This value type is used to identify properties that contain
an offset from UTC to local time. an offset from UTC to local time.
Format Definition: The data type is defined by the following Format Definition: The data type is defined by the following
notation: notation:
utc-offset = time-numzone ;As defined above in time data type utc-offset = time-numzone ;As defined above in time data type
time-numzone = ("+" / "-") time-hour time-minute [time- time-numzone = ("+" / "-") time-hour time-minute [time-second]
second]
Description: The PLUS SIGN (US-ASCII decimal 43) character MUST be Description: The PLUS SIGN (US-ASCII decimal 43) character MUST be
specified for positive UTC offsets (i.e., ahead of UTC). The specified for positive UTC offsets (i.e., ahead of UTC). The
HYPHEN-MINUS character (US-ASCII decimal 45) MUST be specified for HYPHEN-MINUS character (US-ASCII decimal 45) MUST be specified for
negative UTC offsets (i.e., behind of UTC). The value of "-0000" negative UTC offsets (i.e., behind of UTC). The value of "-0000"
and "-000000" are not allowed. The time-second, if present, may and "-000000" are not allowed. The time-second, if present, may
not be 60; if absent, it defaults to zero. not be 60; if absent, it defaults to zero.
No additional content value encoding (i.e., BACKSLASH character No additional content value encoding (i.e., BACKSLASH character
encoding) is defined for this value type. encoding) is defined for this value type.
skipping to change at page 51, line 35 skipping to change at page 51, line 31
dtstamp / dtstart / uid / dtstamp / dtstart / uid /
; the following are optional, ; the following are optional,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
class / created / description / geo / class / created / description / geo /
last-mod / location / organizer / priority / last-mod / location / organizer / priority /
seq / status / summary / transp / seq / status / summary / transp /
url / recurid / url / recurid /
; the following is OPTIONAL,
; but SHOULD NOT occur more than once
rrule /
; either 'dtend' or 'duration' may appear in ; either 'dtend' or 'duration' may appear in
; a 'eventprop', but 'dtend' and 'duration' ; a 'eventprop', but 'dtend' and 'duration'
; MUST NOT occur in the same 'eventprop' ; MUST NOT occur in the same 'eventprop'
dtend / duration / dtend / duration /
; the following are optional, ; the following are optional,
; and MAY occur more than once ; and MAY occur more than once
attach / attendee / categories / comment / attach / attendee / categories / comment /
contact / exdate / exrule / rstatus / related / contact / exdate / rstatus / related /
resources / rdate / rrule / x-prop resources / rdate / x-prop
) )
Description: A "VEVENT" calendar component is a grouping of component Description: A "VEVENT" calendar component is a grouping of component
properties, and possibly including "VALARM" calendar components, properties, and possibly including "VALARM" calendar components,
that represents a scheduled amount of time on a calendar. For that represents a scheduled amount of time on a calendar. For
example, it can be an activity; such as a one-hour long, example, it can be an activity; such as a one-hour long,
department meeting from 8:00 AM to 9:00 AM, tomorrow. Generally, department meeting from 8:00 AM to 9:00 AM, tomorrow. Generally,
an event will take up time on an individual calendar. Hence, the an event will take up time on an individual calendar. Hence, the
event will appear as an opaque interval in a search for busy time. event will appear as an opaque interval in a search for busy time.
Alternately, the event can have its Time Transparency set to Alternately, the event can have its Time Transparency set to
skipping to change at page 54, line 29 skipping to change at page 54, line 29
dtstamp / uid / dtstamp / uid /
; the following are optional, ; the following are optional,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
class / completed / created / description / class / completed / created / description /
dtstart / geo / last-mod / location / organizer / dtstart / geo / last-mod / location / organizer /
percent / priority / recurid / seq / status / percent / priority / recurid / seq / status /
summary / url / summary / url /
; the following is OPTIONAL,
; but SHOULD NOT occur more than once
rrule /
; either 'due' or 'duration' may appear in ; either 'due' or 'duration' may appear in
; a 'todoprop', but 'due' and 'duration' ; a 'todoprop', but 'due' and 'duration'
; MUST NOT occur in the same 'todoprop' ; MUST NOT occur in the same 'todoprop'
due / duration / due / duration /
; the following are optional, ; the following are optional,
; and MAY occur more than once ; and MAY occur more than once
attach / attendee / categories / comment / contact / attach / attendee / categories / comment / contact /
exdate / exrule / rstatus / related / resources / exdate / rstatus / related / resources /
rdate / rrule / x-prop rdate / x-prop
) )
Description: A "VTODO" calendar component is a grouping of component Description: A "VTODO" calendar component is a grouping of component
properties and possibly "VALARM" calendar components that properties and possibly "VALARM" calendar components that
represent an action-item or assignment. For example, it can be represent an action-item or assignment. For example, it can be
used to represent an item of work assigned to an individual; such used to represent an item of work assigned to an individual; such
as "turn in travel expense today". as "turn in travel expense today".
The "VTODO" calendar component cannot be nested within another The "VTODO" calendar component cannot be nested within another
calendar component. However, "VTODO" calendar components can be calendar component. However, "VTODO" calendar components can be
related to each other or to a "VEVENT" or to a "VJOURNAL" calendar related to each other or to a "VEVENT" or to a "VJOURNAL" calendar
component with the "RELATED-TO" property. component with the "RELATED-TO" property.
skipping to change at page 56, line 20 skipping to change at page 56, line 20
; the following are REQUIRED, ; the following are REQUIRED,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
dtstamp / uid / dtstamp / uid /
; the following are optional, ; the following are optional,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
class / created / description / dtstart / class / created / description / dtstart /
last-mod / organizer / recurid / seq / status / last-mod / organizer / recurid / seq /
summary / url / status / summary / url /
; the following is OPTIONAL,
; but SHOULD NOT occur more than once
rrule /
; the following are optional, ; the following are optional,
; and MAY occur more than once ; and MAY occur more than once
attach / attendee / categories / comment / attach / attendee / categories / comment /
contact / exdate / exrule / related / rdate / contact / exdate / related / rdate /
rrule / rstatus / x-prop rstatus / x-prop
) )
Description: A "VJOURNAL" calendar component is a grouping of Description: A "VJOURNAL" calendar component is a grouping of
component properties that represent one or more descriptive text component properties that represent one or more descriptive text
notes associated with a particular calendar date. The "DTSTART" notes associated with a particular calendar date. The "DTSTART"
property is used to specify the calendar date that the journal property is used to specify the calendar date that the journal
entry is associated with. Generally, it will have a DATE value entry is associated with. Generally, it will have a DATE value
data type, but it can also be used to specify a DATE-TIME value data type, but it can also be used to specify a DATE-TIME value
data type. Examples of a journal entry include a daily record of data type. Examples of a journal entry include a daily record of
a legislative body or a journal entry of individual telephone a legislative body or a journal entry of individual telephone
skipping to change at page 59, line 11 skipping to change at page 59, line 27
This property provides a terse representation of time periods. This property provides a terse representation of time periods.
One or more "FREEBUSY" properties can be specified in the One or more "FREEBUSY" properties can be specified in the
"VFREEBUSY" calendar component. "VFREEBUSY" calendar component.
When present in a "VFREEBUSY" calendar component, the "DTSTART" When present in a "VFREEBUSY" calendar component, the "DTSTART"
and "DTEND" properties SHOULD be specified prior to any "FREEBUSY" and "DTEND" properties SHOULD be specified prior to any "FREEBUSY"
properties. In a free time request, these properties can be used properties. In a free time request, these properties can be used
in combination with the "DURATION" property to represent a request in combination with the "DURATION" property to represent a request
for a duration of free time within a specified window of time. for a duration of free time within a specified window of time.
The recurrence properties ("RRULE", "EXRULE", "RDATE", "EXDATE") The recurrence properties ("RRULE", "RDATE", "EXDATE") are not
are not permitted within a "VFREEBUSY" calendar component. Any permitted within a "VFREEBUSY" calendar component. Any recurring
recurring events are resolved into their individual busy time events are resolved into their individual busy time periods using
periods using the "FREEBUSY" property. the "FREEBUSY" property.
Example: The following is an example of a "VFREEBUSY" calendar Example: The following is an example of a "VFREEBUSY" calendar
component used to request free or busy time information: component used to request free or busy time information:
BEGIN:VFREEBUSY BEGIN:VFREEBUSY
ORGANIZER:MAILTO:jane_doe@example.com ORGANIZER:MAILTO:jane_doe@example.com
ATTENDEE:MAILTO:john_public@example.com ATTENDEE:MAILTO:john_public@example.com
DTSTART:19971015T050000Z DTSTART:19971015T050000Z
DTEND:19971016T050000Z DTEND:19971016T050000Z
DTSTAMP:19970901T083000Z DTSTAMP:19970901T083000Z
skipping to change at page 60, line 17 skipping to change at page 60, line 41
Component Name: VTIMEZONE Component Name: VTIMEZONE
Purpose: Provide a grouping of component properties that defines a Purpose: Provide a grouping of component properties that defines a
time zone. time zone.
Format Definition: A "VTIMEZONE" calendar component is defined by the Format Definition: A "VTIMEZONE" calendar component is defined by the
following notation: following notation:
timezonec = "BEGIN" ":" "VTIMEZONE" CRLF timezonec = "BEGIN" ":" "VTIMEZONE" CRLF
2*( 2*(
; 'tzid' is required, but MUST NOT occur more ; 'tzid' is required, but MUST NOT occur more
; than once ; than once
tzid / tzid /
; 'last-mod' and 'tzurl' are optional, ; 'last-mod' and 'tzurl' are optional,
but MUST NOT occur more than once ; but MUST NOT occur more than once
last-mod / tzurl / last-mod / tzurl /
; one of 'standardc' or 'daylightc' MUST occur ; one of 'standardc' or 'daylightc' MUST occur
; and each MAY occur more than once. ; and each MAY occur more than once.
standardc / daylightc / standardc / daylightc /
; the following is optional, ; the following is optional,
; and MAY occur more than once ; and MAY occur more than once
x-prop x-prop
skipping to change at page 60, line 45 skipping to change at page 61, line 19
; the following is optional, ; the following is optional,
; and MAY occur more than once ; and MAY occur more than once
x-prop x-prop
) )
"END" ":" "VTIMEZONE" CRLF "END" ":" "VTIMEZONE" CRLF
standardc = "BEGIN" ":" "STANDARD" CRLF standardc = "BEGIN" ":" "STANDARD" CRLF
tzprop tzprop
"END" ":" "STANDARD" CRLF "END" ":" "STANDARD" CRLF
daylightc = "BEGIN" ":" "DAYLIGHT" CRLF daylightc = "BEGIN" ":" "DAYLIGHT" CRLF
tzprop tzprop
"END" ":" "DAYLIGHT" CRLF "END" ":" "DAYLIGHT" CRLF
tzprop = 3*( tzprop = 3*(
; the following are each REQUIRED, ; the following are each REQUIRED,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
dtstart / tzoffsetto / tzoffsetfrom / dtstart / tzoffsetto / tzoffsetfrom /
; the following is OPTIONAL,
; but SHOULD NOT occur more than once
rrule /
; the following are optional, ; the following are optional,
; and MAY occur more than once ; and MAY occur more than once
comment / rdate / rrule / tzname / x-prop comment / rdate / tzname / x-prop
) )
Description: A time zone is unambiguously defined by the set of time Description: A time zone is unambiguously defined by the set of time
measurement rules determined by the governing body for a given measurement rules determined by the governing body for a given
geographic area. These rules describe at a minimum the base geographic area. These rules describe at a minimum the base
offset from UTC for the time zone, often referred to as the offset from UTC for the time zone, often referred to as the
Standard Time offset. Many locations adjust their Standard Time Standard Time offset. Many locations adjust their Standard Time
forward or backward by one hour, in order to accommodate seasonal forward or backward by one hour, in order to accommodate seasonal
changes in number of daylight hours, often referred to as Daylight changes in number of daylight hours, often referred to as Daylight
skipping to change at page 63, line 42 skipping to change at page 64, line 10
described using either a "STANDARD" or "DAYLIGHT" sub-component. described using either a "STANDARD" or "DAYLIGHT" sub-component.
The collection of these sub-components is used to describe the The collection of these sub-components is used to describe the
time zone for a given period of time. The offset to apply at any time zone for a given period of time. The offset to apply at any
given time is found by locating the observance that has the last given time is found by locating the observance that has the last
onset date and time before the time in question, and using the onset date and time before the time in question, and using the
offset value from that observance. offset value from that observance.
The top-level properties in a "VTIMEZONE" calendar component are: The top-level properties in a "VTIMEZONE" calendar component are:
The mandatory "TZID" property is a text value that uniquely The mandatory "TZID" property is a text value that uniquely
identifies the VTIMEZONE; and each MAY occur more than once. identifies the "VTIMEZONE" calendar component within the scope of
calendar component within the scope of an iCalendar object. an iCalendar object.
The optional "LAST-MODIFIED" property is a UTC value that The optional "LAST-MODIFIED" property is a UTC value that
specifies the date and time that this time zone definition was specifies the date and time that this time zone definition was
last updated. last updated.
The optional "TZURL" property is a url value that points to a The optional "TZURL" property is a url value that points to a
published VTIMEZONE definition. TZURL SHOULD refer to a resource published VTIMEZONE definition. TZURL SHOULD refer to a resource
that is accessible by anyone who might need to interpret the that is accessible by anyone who might need to interpret the
object. This SHOULD NOT normally be a "file" URL or other URL object. This SHOULD NOT normally be a "file" URL or other URL
that is not widely-accessible. that is not widely-accessible.
skipping to change at page 78, line 5 skipping to change at page 79, line 5
Conformance: The property can be specified in a "VEVENT", "VTODO", Conformance: The property can be specified in a "VEVENT", "VTODO",
"VJOURNAL" or "VALARM" calendar components. "VJOURNAL" or "VALARM" calendar components.
Description: The property can be specified within "VEVENT", "VTODO", Description: The property can be specified within "VEVENT", "VTODO",
"VJOURNAL", or "VALARM" calendar components. This property can be "VJOURNAL", or "VALARM" calendar components. This property can be
specified multiple times within an iCalendar object. specified multiple times within an iCalendar object.
Format Definition: The property is defined by the following notation: Format Definition: The property is defined by the following notation:
attach = "ATTACH" attparam ":" uri CRLF attach = "ATTACH" attachparam ":" uri CRLF
attach =/ "ATTACH" attparam ";" "ENCODING" "=" "BASE64" / "ATTACH" attparam ";" "ENCODING" "=" "BASE64"
";" "VALUE" "=" "BINARY" ":" binary ";" "VALUE" "=" "BINARY" ":" binary
attparam = *( attachparam = *(
; the following is optional, ; the following is optional,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" fmttypeparam) / (";" fmttypeparam) /
; the following is optional, ; the following is optional,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" xparam)
skipping to change at page 85, line 7 skipping to change at page 86, line 7
be explicitly specified using this property. An alternate be explicitly specified using this property. An alternate
representation may be specified that is a URI that points to representation may be specified that is a URI that points to
directory information with more structured specification of the directory information with more structured specification of the
location. For example, the alternate representation may specify location. For example, the alternate representation may specify
either an LDAP URI pointing to an LDAP server entry or a CID URI either an LDAP URI pointing to an LDAP server entry or a CID URI
pointing to a MIME body part containing a vCard [RFC2426] for the pointing to a MIME body part containing a vCard [RFC2426] for the
location. location.
Format Definition: The property is defined by the following notation: Format Definition: The property is defined by the following notation:
location = "LOCATION locparam ":" text CRLF location = "LOCATION" locparam ":" text CRLF
locparam = *( locparam = *(
; the following are optional, ; the following are optional,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" altrepparam) / (";" languageparam) / (";" altrepparam) / (";" languageparam) /
; the following is optional, ; the following is optional,
; and MAY occur more than once ; and MAY occur more than once
skipping to change at page 89, line 34 skipping to change at page 90, line 34
cancelled. In a "VJOURNAL" calendar component, the "Organizer" cancelled. In a "VJOURNAL" calendar component, the "Organizer"
can indicate that a journal entry is draft, final or has been can indicate that a journal entry is draft, final or has been
cancelled or removed. cancelled or removed.
Format Definition: The property is defined by the following notation: Format Definition: The property is defined by the following notation:
status = "STATUS" statparam":" statvalue CRLF status = "STATUS" statparam":" statvalue CRLF
statparam = *(";" xparam) statparam = *(";" xparam)
statvalue = "TENTATIVE" ;Indicates event is statvalue = ( "TENTATIVE" ;Indicates event is tentative.
;tentative. / "CONFIRMED" ;Indicates event is definite.
/ "CONFIRMED" ;Indicates event is / "CANCELLED" ) ;Indicates event was cancelled.
;definite.
/ "CANCELLED" ;Indicates event was
;cancelled.
;Status values for a "VEVENT" ;Status values for a "VEVENT"
statvalue = "NEEDS-ACTION" ;Indicates to-do needs action. /
( "NEEDS-ACTION" ;Indicates to-do needs action.
/ "COMPLETED" ;Indicates to-do completed. / "COMPLETED" ;Indicates to-do completed.
/ "IN-PROCESS" ;Indicates to-do in process. / "IN-PROCESS" ;Indicates to-do in process.
/ "CANCELLED" ;Indicates to-do was cancelled. / "CANCELLED" ) ;Indicates to-do was cancelled.
;Status values for "VTODO". ;Status values for "VTODO".
statvalue = "DRAFT" ;Indicates journal is draft. /
( "DRAFT" ;Indicates journal is draft.
/ "FINAL" ;Indicates journal is final. / "FINAL" ;Indicates journal is final.
/ "CANCELLED" ;Indicates journal is removed. / "CANCELLED" ) ;Indicates journal is removed.
;Status values for "VJOURNAL". ;Status values for "VJOURNAL".
Example: The following is an example of this property for a "VEVENT" Example: The following is an example of this property for a "VEVENT"
calendar component: calendar component:
STATUS:TENTATIVE STATUS:TENTATIVE
The following is an example of this property for a "VTODO" The following is an example of this property for a "VTODO"
calendar component: calendar component:
skipping to change at page 97, line 36 skipping to change at page 98, line 36
(";" fbtypeparam) / (";" fbtypeparam) /
; the following is optional, ; the following is optional,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" xparam)
) )
fbvalue = period *("," period fbvalue = period *("," period)
;Time value MUST be in the UTC time format. ;Time value MUST be in the UTC time format.
Example: The following are some examples of this property: Example: The following are some examples of this property:
FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M
FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H
FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H
,19970308T230000Z/19970309T000000Z ,19970308T230000Z/19970309T000000Z
skipping to change at page 111, line 12 skipping to change at page 112, line 12
Format Definition: The property is defined by the following notation: Format Definition: The property is defined by the following notation:
recurid = "RECURRENCE-ID" ridparam ":" ridval CRLF recurid = "RECURRENCE-ID" ridparam ":" ridval CRLF
ridparam = *( ridparam = *(
; the following are optional, ; the following are optional,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" "VALUE" "=" ("DATE-TIME" / "DATE)) / (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
(";" tzidparam) / (";" rangeparam) / (";" tzidparam) / (";" rangeparam) /
; the following is optional, ; the following is optional,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" xparam)
) )
ridval = date-time / date ridval = date-time / date
skipping to change at page 115, line 24 skipping to change at page 116, line 24
3.8.5. Recurrence Component Properties 3.8.5. Recurrence Component Properties
The following properties specify recurrence information in calendar The following properties specify recurrence information in calendar
components. components.
3.8.5.1. Exception Date/Times 3.8.5.1. Exception Date/Times
Property Name: EXDATE Property Name: EXDATE
Purpose: This property defines the list of date/time exceptions for a Purpose: This property defines the list of date/time exceptions for
recurring calendar component. recurring events, to-dos, journal entries or time zone
definitions.
Value Type: The default value type for this property is DATE-TIME. Value Type: The default value type for this property is DATE-TIME.
The value type can be set to DATE. The value type can be set to DATE.
Property Parameters: Non-standard, value data type and time zone Property Parameters: Non-standard, value data type and time zone
identifier property parameters can be specified on this property. identifier property parameters can be specified on this property.
Conformance: This property can be specified in an iCalendar object Conformance: This property can be specified in recurring "VEVENT",
that includes a recurring calendar component. "VTODO", and "VJOURNAL" calendar components as well as in the
"STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE"
calendar component.
Description: The exception dates, if specified, are used in computing Description: The exception dates, if specified, are used in computing
the recurrence set. The recurrence set is the complete set of the recurrence set. The recurrence set is the complete set of
recurrence instances for a calendar component. The recurrence set recurrence instances for a calendar component. The recurrence set
is generated by considering the initial "DTSTART" property along is generated by considering the initial "DTSTART" property along
with the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties with the "RRULE", "RDATE", and "EXDATE" properties contained
contained within the iCalendar object. The "DTSTART" property within the recurring component. The "DTSTART" property defines
defines the first instance in the recurrence set. Multiple the first instance in the recurrence set. The "DTSTART" property
instances of the "RRULE" and "EXRULE" properties can also be value SHOULD match the pattern of the recurrence rule, if
specified to define more sophisticated recurrence sets. The final specified. The recurrence set generated with a "DTSTART" property
recurrence set is generated by gathering all of the start date- value that doesn't match the pattern of the rule is undefined.
times generated by any of the specified "RRULE" and "RDATE" The final recurrence set is generated by gathering all of the
properties, and then excluding any start date and times which fall start date-times generated by any of the specified "RRULE" and
within the union of start date and times generated by any "RDATE" properties, and then excluding any start date and times
specified "EXRULE" and "EXDATE" properties. This implies that specified by "EXDATE" properties. This implies that start date
start date and times within exclusion related properties (i.e., and times specified by "EXDATE" properties take precedence over
"EXDATE" and "EXRULE") take precedence over those specified by those specified by inclusion properties (i.e., "RDATE" and
inclusion properties (i.e., "RDATE" and "RRULE"). Where duplicate "RRULE"). Where duplicate instances are generated by the "RRULE"
instances are generated by the "RRULE" and "RDATE" properties, and "RDATE" properties, only one recurrence is considered.
only one recurrence is considered. Duplicate instances are Duplicate instances are ignored.
ignored.
The "EXDATE" property can be used to exclude the value specified The "EXDATE" property can be used to exclude the value specified
in "DTSTART". However, in such cases the original "DTSTART" date in "DTSTART". However, in such cases the original "DTSTART" date
MUST still be maintained by the calendaring and scheduling system MUST still be maintained by the calendaring and scheduling system
because the original "DTSTART" value has inherent usage because the original "DTSTART" value has inherent usage
dependencies by other properties such as the "RECURRENCE-ID". dependencies by other properties such as the "RECURRENCE-ID".
Format Definition: The property is defined by the following notation: Format Definition: The property is defined by the following notation:
exdate = "EXDATE" exdtparam ":" exdtval *("," exdtval) CRLF exdate = "EXDATE" exdtparam ":" exdtval *("," exdtval) CRLF
skipping to change at page 116, line 41 skipping to change at page 117, line 43
) )
exdtval = date-time / date exdtval = date-time / date
;Value MUST match value type ;Value MUST match value type
Example: The following is an example of this property: Example: The following is an example of this property:
EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z
3.8.5.2. Exception Rule 3.8.5.2. Recurrence Date/Times
Property Name: EXRULE
Purpose: This property defines a rule or repeating pattern for an
exception to a recurrence set.
Value Type: RECUR
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property can be specified in "VEVENT", "VTODO" or
"VJOURNAL" calendar components.
Description: The exception rule, if specified, is used in computing
the recurrence set. The recurrence set is the complete set of
recurrence instances for a calendar component. The recurrence set
is generated by considering the initial "DTSTART" property along
with the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties
contained within the iCalendar object. The "DTSTART" defines the
first instance in the recurrence set. Multiple instances of the
"RRULE" and "EXRULE" properties can also be specified to define
more sophisticated recurrence sets. The final recurrence set is
generated by gathering all of the start date-times generated by
any of the specified "RRULE" and "RDATE" properties, and excluding
any start date and times which fall within the union of start date
and times generated by any specified "EXRULE" and "EXDATE"
properties. This implies that start date and times within
exclusion related properties (i.e., "EXDATE" and "EXRULE") take
precedence over those specified by inclusion properties (i.e.,
"RDATE" and "RRULE"). Where duplicate instances are generated by
the "RRULE" and "RDATE" properties, only one recurrence is
considered. Duplicate instances are ignored.
The "EXRULE" property can be used to exclude the value specified
in "DTSTART". However, in such cases the original "DTSTART" date
MUST still be maintained by the calendaring and scheduling system
because the original "DTSTART" value has inherent usage
dependencies by other properties such as the "RECURRENCE-ID".
Format Definition: The property is defined by the following notation:
exrule = "EXRULE" exrparam ":" recur CRLF
exrparam = *(";" xparam)
Example: The following are examples of this property. Except every
other week, on Tuesday and Thursday for 4 occurrences:
EXRULE:FREQ=WEEKLY;COUNT=4;INTERVAL=2;BYDAY=TU,TH
Except daily for 10 occurrences:
EXRULE:FREQ=DAILY;COUNT=10
Except yearly in June and July for 8 occurrences:
EXRULE:FREQ=YEARLY;COUNT=8;BYMONTH=6,7
3.8.5.3. Recurrence Date/Times
Property Name: RDATE Property Name: RDATE
Purpose: This property defines the list of date/times for a Purpose: This property defines the list of date/times for recurring
recurrence set. events, to-dos, journal entries or time zone definitions.
Value Type: The default value type for this property is DATE-TIME. Value Type: The default value type for this property is DATE-TIME.
The value type can be set to DATE or PERIOD. The value type can be set to DATE or PERIOD.
Property Parameters: Non-standard, value data type and time zone Property Parameters: Non-standard, value data type and time zone
identifier property parameters can be specified on this property. identifier property parameters can be specified on this property.
Conformance: The property can be specified in "VEVENT", "VTODO", Conformance: This property can be specified in recurring "VEVENT",
"VJOURNAL" or "VTIMEZONE" calendar components. "VTODO", and "VJOURNAL" calendar components as well as in the
"STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE"
calendar component.
Description: This property can appear along with the "RRULE" property Description: This property can appear along with the "RRULE" property
to define an aggregate set of repeating occurrences. When they to define an aggregate set of repeating occurrences. When they
both appear in an iCalendar object, the recurring events are both appear in a recurring component, the recurrence instances are
defined by the union of occurrences defined by both the "RDATE" defined by the union of occurrences defined by both the "RDATE"
and "RRULE". and "RRULE".
The recurrence dates, if specified, are used in computing the The recurrence dates, if specified, are used in computing the
recurrence set. The recurrence set is the complete set of recurrence set. The recurrence set is the complete set of
recurrence instances for a calendar component. The recurrence set recurrence instances for a calendar component. The recurrence set
is generated by considering the initial "DTSTART" property along is generated by considering the initial "DTSTART" property along
with the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties with the "RRULE", "RDATE", and "EXDATE" properties contained
contained within the iCalendar object. The "DTSTART" property within the recurring component. The "DTSTART" property defines
defines the first instance in the recurrence set. Multiple the first instance in the recurrence set. The "DTSTART" property
instances of the "RRULE" and "EXRULE" properties can also be value SHOULD match the pattern of the recurrence rule, if
specified to define more sophisticated recurrence sets. The final specified. The recurrence set generated with a "DTSTART" property
recurrence set is generated by gathering all of the start date/ value that doesn't match the pattern of the rule is undefined.
times generated by any of the specified "RRULE" and "RDATE" The final recurrence set is generated by gathering all of the
properties, and excluding any start date/times which fall within start date-times generated by any of the specified "RRULE" and
the union of start date/times generated by any specified "EXRULE" "RDATE" properties, and then excluding any start date and times
and "EXDATE" properties. This implies that start date/times specified by "EXDATE" properties. This implies that start date/
within exclusion related properties (i.e., "EXDATE" and "EXRULE") times specified by "EXDATE" properties take precedence over those
take precedence over those specified by inclusion properties specified by inclusion properties (i.e., "RDATE" and "RRULE").
(i.e., "RDATE" and "RRULE"). Where duplicate instances are Where duplicate instances are generated by the "RRULE" and "RDATE"
generated by the "RRULE" and "RDATE" properties, only one properties, only one recurrence is considered. Duplicate
recurrence is considered. Duplicate instances are ignored. instances are ignored.
Format Definition: The property is defined by the following notation: Format Definition: The property is defined by the following notation:
rdate = "RDATE" rdtparam ":" rdtval *("," rdtval) CRLF rdate = "RDATE" rdtparam ":" rdtval *("," rdtval) CRLF
rdtparam = *( rdtparam = *(
; the following are optional, ; the following are optional,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
skipping to change at page 119, line 39 skipping to change at page 119, line 37
RDATE:19970714T123000Z RDATE:19970714T123000Z
RDATE;TZID=US-EASTERN:19970714T083000 RDATE;TZID=US-EASTERN:19970714T083000
RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z, RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z,
19960404T010000Z/PT3H 19960404T010000Z/PT3H
RDATE;VALUE=DATE:19970101,19970120,19970217,19970421 RDATE;VALUE=DATE:19970101,19970120,19970217,19970421
19970526,19970704,19970901,19971014,19971128,19971129,19971225 19970526,19970704,19970901,19971014,19971128,19971129,19971225
3.8.5.4. Recurrence Rule 3.8.5.3. Recurrence Rule
Property Name: RRULE Property Name: RRULE
Purpose: This property defines a rule or repeating pattern for Purpose: This property defines a rule or repeating pattern for
recurring events, to-dos, or time zone definitions. recurring events, to-dos, journal entries or time zone
definitions.
Value Type: RECUR Value Type: RECUR
Property Parameters: Non-standard property parameters can be Property Parameters: Non-standard property parameters can be
specified on this property. specified on this property.
Conformance: This property can be specified one or more times in Conformance: This property can be specified in recurring "VEVENT",
recurring "VEVENT", "VTODO" and "VJOURNAL" calendar components. "VTODO" and "VJOURNAL" calendar components as well as in the
It can also be specified once in each STANDARD or DAYLIGHT sub- "STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE"
component of the "VTIMEZONE" calendar component. calendar component, but it SHOULD NOT be specified more than once.
The recurrence set generated with multiple RRULE properties is
undefined.
Description: The recurrence rule, if specified, is used in computing Description: The recurrence rule, if specified, is used in computing
the recurrence set. The recurrence set is the complete set of the recurrence set. The recurrence set is the complete set of
recurrence instances for a calendar component. The recurrence set recurrence instances for a calendar component. The recurrence set
is generated by considering the initial "DTSTART" property along is generated by considering the initial "DTSTART" property along
with the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties with the "RRULE", "RDATE", and "EXDATE" properties contained
contained within the iCalendar object. The "DTSTART" property within the recurring component. The "DTSTART" property defines
defines the first instance in the recurrence set. Multiple the first instance in the recurrence set. The "DTSTART" property
instances of the "RRULE" and "EXRULE" properties can also be value SHOULD match the pattern of the recurrence rule, if
specified to define more sophisticated recurrence sets. The final specified. The recurrence set generated with a "DTSTART" property
recurrence set is generated by gathering all of the start date/ value that doesn't match the pattern of the rule is undefined.
times generated by any of the specified "RRULE" and "RDATE" The final recurrence set is generated by gathering all of the
properties, and excluding any start date/times which fall within start date/times generated by any of the specified "RRULE" and
the union of start date/times generated by any specified "EXRULE" "RDATE" properties, and then excluding any start date/times
and "EXDATE" properties. This implies that start date/times specified by "EXDATE" properties. This implies that start date/
within exclusion related properties (i.e., "EXDATE" and "EXRULE") times specified by "EXDATE" properties take precedence over those
take precedence over those specified by inclusion properties specified by inclusion properties (i.e., "RDATE" and "RRULE").
(i.e., "RDATE" and "RRULE"). Where duplicate instances are Where duplicate instances are generated by the "RRULE" and "RDATE"
generated by the "RRULE" and "RDATE" properties, only one properties, only one recurrence is considered. Duplicate
recurrence is considered. Duplicate instances are ignored. instances are ignored.
The "DTSTART" and "DTEND" property pair or "DTSTART" and The "DTSTART" and "DTEND" property pair or "DTSTART" and
"DURATION" property pair, specified within the iCalendar object "DURATION" property pair, specified within the iCalendar object
defines the first instance of the recurrence. When used with a defines the first instance of the recurrence. When used with a
recurrence rule, the "DTSTART" and "DTEND" properties MUST be recurrence rule, the "DTSTART" and "DTEND" properties MUST be
specified in local time and the appropriate set of "VTIMEZONE" specified in local time and the appropriate set of "VTIMEZONE"
calendar components MUST be included. For detail on the usage of calendar components MUST be included. For detail on the usage of
the "VTIMEZONE" calendar component, see the "VTIMEZONE" calendar the "VTIMEZONE" calendar component, see the "VTIMEZONE" calendar
component definition. component definition.
skipping to change at page 130, line 15 skipping to change at page 130, line 15
specified on this property. specified on this property.
Conformance: This property can be specified in a "VALARM" calendar Conformance: This property can be specified in a "VALARM" calendar
component. component.
Description: If the alarm triggers more than once, then this property Description: If the alarm triggers more than once, then this property
MUST be specified along with the "DURATION" property. MUST be specified along with the "DURATION" property.
Format Definition: The property is defined by the following notation: Format Definition: The property is defined by the following notation:
repeatcnt = "REPEAT" repparam ":" integer CRLF repeat = "REPEAT" repparam ":" integer CRLF
;Default is "0", zero. ;Default is "0", zero.
repparam = *(";" xparam) repparam = *(";" xparam)
Example: The following is an example of this property for an alarm Example: The following is an example of this property for an alarm
that repeats 4 additional times with a 5 minute delay after the that repeats 4 additional times with a 5 minute delay after the
initial triggering of the alarm: initial triggering of the alarm:
REPEAT:4 REPEAT:4
DURATION:PT5M DURATION:PT5M
skipping to change at page 135, line 51 skipping to change at page 135, line 51
* "DURATION" * "DURATION"
* "DUE" * "DUE"
* "RDATE" * "RDATE"
* "RRULE" * "RRULE"
* "EXDATE" * "EXDATE"
* "EXRULE"
* "STATUS" * "STATUS"
In addition, changes made by the "Organizer" to other properties In addition, changes made by the "Organizer" to other properties
can also force the sequence number to be incremented. The can also force the sequence number to be incremented. The
"Organizer" CUA MUST increment the sequence number when ever it "Organizer" CUA MUST increment the sequence number when ever it
makes changes to properties in the calendar component that the makes changes to properties in the calendar component that the
"Organizer" deems will jeopardize the validity of the "Organizer" deems will jeopardize the validity of the
participation status of the "Attendees". For example, changing participation status of the "Attendees". For example, changing
the location of a meeting from one locale to another distant the location of a meeting from one locale to another distant
locale could effectively impact the participation status of the locale could effectively impact the participation status of the
"Attendees". "Attendees".
skipping to change at page 140, line 13 skipping to change at page 140, line 13
Format Definition: The property is defined by the following notation: Format Definition: The property is defined by the following notation:
rstatus = "REQUEST-STATUS" rstatparam ":" rstatus = "REQUEST-STATUS" rstatparam ":"
statcode ";" statdesc [";" extdata] statcode ";" statdesc [";" extdata]
rstatparam = *( rstatparam = *(
; the following is optional, ; the following is optional,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" languageparm) / (";" languageparam) /
; the following is optional, ; the following is optional,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" xparam)
) )
statcode = 1*DIGIT *("." 1*DIGIT) statcode = 1*DIGIT *("." 1*DIGIT)
;Hierarchical, numeric return status code ;Hierarchical, numeric return status code
skipping to change at page 155, line 5 skipping to change at page 154, line 52
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, November 2003. 10646", STD 63, RFC 3629, November 2003.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66, Resource Identifier (URI): Generic Syntax", STD 66,
RFC 3986, January 2005. RFC 3986, January 2005.
[RFC4234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax [RFC4234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", RFC 4234, October 2005. Specifications: ABNF", RFC 4234, October 2005.
[RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data
Encodings", RFC 4648, October 2006.
11.2. Informative References 11.2. Informative References
[I-D.dusseault-caldav] [I-D.dusseault-caldav]
Daboo, C., Desruisseaux, B., and L. Dusseault, Daboo, C., Desruisseaux, B., and L. Dusseault,
"Calendaring Extensions to WebDAV (CalDAV)", "Calendaring Extensions to WebDAV (CalDAV)",
draft-dusseault-caldav-15 (work in progress), draft-dusseault-caldav-15 (work in progress),
September 2006. September 2006.
[I-D.ietf-calsify-2446bis] [I-D.ietf-calsify-2446bis]
Daboo, C., "iCalendar Transport-Independent Daboo, C., "iCalendar Transport-Independent
skipping to change at page 155, line 41 skipping to change at page 155, line 42
<ftp://elsie.nci.nih.gov/pub/>. <ftp://elsie.nci.nih.gov/pub/>.
[VCAL] Internet Mail Consortium, "vCalendar: The Electronic [VCAL] Internet Mail Consortium, "vCalendar: The Electronic
Calendaring and Scheduling Exchange Format", Calendaring and Scheduling Exchange Format",
September 1996, <http://www.imc.org/pdi/vcal-10.txt>. September 1996, <http://www.imc.org/pdi/vcal-10.txt>.
URIs URIs
[1] <mailto:ietf-calsify@osafoundation.org> [1] <mailto:ietf-calsify@osafoundation.org>
Appendix A. Change Log (to be removed by RFC Editor before publication) Appendix A. Differences from RFC 2445
A.1. Changes in -02 This appendix contains a list of changes that have been made in the
Internet Calendaring and Scheduling Core Object Specification from
RFC 2445.
A.1. New restrictions
1. The "DTSTART" property SHOULD match the pattern of the recurrence
rule, if specified.
2. The "RRULE" property SHOULD NOT occur more than once in a
component.
A.2. Deprecated features
1. The "EXRULE" property can no longer be specified in a component.
Appendix B. Change Log (to be removed by RFC Editor before publication)
B.1. Changes in -03
A detailed list of changes is available at the following page:
http://tools.ietf.org/wg/calsify/draft-ietf-calsify-rfc2445bis/
draft-ietf-calsify-rfc2445bis-03.html.
a. Numerous editorial changes.
b. Specified that DTSTART should match the pattern of RRULE and is
always part of the COUNT.
c. Specified RRULE should not occur more than once in recurring
components.
d. Deprecated EXRULE.
e. Fixed all ABNF errors reported by Bill Fenner's ABNF parsing web
service available at:
http://rtg.ietf.org/~fenner/abnf.cgi.
f. Changed reference to RFC 4648 for Base64 encoding.
B.2. Changes in -02
A detailed list of changes is available at the following page: A detailed list of changes is available at the following page:
http://tools.ietf.org/wg/calsify/draft-ietf-calsify-rfc2445bis/ http://tools.ietf.org/wg/calsify/draft-ietf-calsify-rfc2445bis/
draft-ietf-calsify-rfc2445bis-02.html. draft-ietf-calsify-rfc2445bis-02.html.
a. Numerous editorial changes including the typos listed in the a. Numerous editorial changes including the typos listed in the
"RFC2445 Errata": "RFC2445 Errata":
http://www.rfc-editor.org/cgi-bin/errataSearch.pl?rfc=2445& http://www.rfc-editor.org/cgi-bin/errataSearch.pl?rfc=2445&
and in the "RFC2445 Issues List": and in the "RFC2445 Issues List":
http://www.softwarestudio.org/iCal/2445Issues.html. http://www.softwarestudio.org/iCal/2445Issues.html.
skipping to change at page 156, line 28 skipping to change at page 157, line 26
g. Fixed all the examples to use RFC2606-compliant FQDNs. g. Fixed all the examples to use RFC2606-compliant FQDNs.
h. Fixed the Content-ID URLs in the examples. h. Fixed the Content-ID URLs in the examples.
i. Fixed the LDAP URLs in the examples. i. Fixed the LDAP URLs in the examples.
j. Moved multiple references in the Informative References section. j. Moved multiple references in the Informative References section.
k. Updated the Acknowledgments section. k. Updated the Acknowledgments section.
A.2. Changes in -01 B.3. Changes in -01
A detailed list of changes is available at the following page: A detailed list of changes is available at the following page:
http://tools.ietf.org/wg/calsify/draft-ietf-calsify-rfc2445bis/ http://tools.ietf.org/wg/calsify/draft-ietf-calsify-rfc2445bis/
draft-ietf-calsify-rfc2445bis-01.html. draft-ietf-calsify-rfc2445bis-01.html.
a. Numerous editorial changes (typos, errors in examples, etc.). a. Numerous editorial changes (typos, errors in examples, etc.).
b. Fixed invalid media types in examples. b. Fixed invalid media types in examples.
c. Fixed the DTSTAMP values in the examples. c. Fixed the DTSTAMP values in the examples.
 End of changes. 75 change blocks. 
258 lines changed or deleted 267 lines changed or added

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