draft-ietf-calsify-rfc2445bis-07.txt   draft-ietf-calsify-rfc2445bis-08.txt 
Network Working Group B. Desruisseaux, Ed. Network Working Group B. Desruisseaux, Ed.
Internet-Draft Oracle Internet-Draft Oracle
Obsoletes: 2445 (if approved) July 8, 2007 Obsoletes: 2445 (if approved) February 6, 2008
Intended status: Standards Track Intended status: Standards Track
Expires: January 9, 2008 Expires: August 9, 2008
Internet Calendaring and Scheduling Core Object Specification Internet Calendaring and Scheduling Core Object Specification
(iCalendar) (iCalendar)
draft-ietf-calsify-rfc2445bis-07 draft-ietf-calsify-rfc2445bis-08
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 36 skipping to change at page 1, line 36
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 January 9, 2008. This Internet-Draft will expire on August 9, 2008.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2007). Copyright (C) The IETF Trust (2008).
Abstract Abstract
This document defines the iCalendar data format for representing and This document defines the iCalendar data format for representing and
exchanging calendaring and scheduling information such as events, to- exchanging calendaring and scheduling information such as events, to-
dos, journal entries and free/busy information, independent of any dos, journal entries and free/busy information, independent of any
particular calendar service or protocol. particular calendar service or protocol.
Editorial Note (To be removed by RFC Editor prior to publication) Editorial Note (To be removed by RFC Editor prior to publication)
skipping to change at page 2, line 37 skipping to change at page 2, line 37
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 . . . . . . . . . . . . . . . . . . . . . 16 3.2.4. Delegators . . . . . . . . . . . . . . . . . . . . . 16
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 . . . . . . . . . . . . . . . . . 19 3.2.9. Free/Busy Time Type . . . . . . . . . . . . . . . . . 19
3.2.10. Language . . . . . . . . . . . . . . . . . . . . . . 20 3.2.10. Language . . . . . . . . . . . . . . . . . . . . . . 20
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 . . . . . . . . . . . . . . . . 21
3.2.13. Alarm Trigger Relationship . . . . . . . . . . . . . 24 3.2.13. Recurrence Identifier Range . . . . . . . . . . . . . 24
3.2.14. Relationship Type . . . . . . . . . . . . . . . . . . 24 3.2.14. Alarm Trigger Relationship . . . . . . . . . . . . . 24
3.2.15. Participation Role . . . . . . . . . . . . . . . . . 25 3.2.15. Relationship Type . . . . . . . . . . . . . . . . . . 25
3.2.16. RSVP Expectation . . . . . . . . . . . . . . . . . . 26 3.2.16. Participation Role . . . . . . . . . . . . . . . . . 26
3.2.17. Sent By . . . . . . . . . . . . . . . . . . . . . . . 27 3.2.17. RSVP Expectation . . . . . . . . . . . . . . . . . . 27
3.2.18. Time Zone Identifier . . . . . . . . . . . . . . . . 27 3.2.18. Sent By . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.19. Value Data Types . . . . . . . . . . . . . . . . . . 28 3.2.19. Time Zone Identifier . . . . . . . . . . . . . . . . 28
3.3. Property Value Data Types . . . . . . . . . . . . . . . . 29 3.2.20. Value Data Types . . . . . . . . . . . . . . . . . . 29
3.3.1. Binary . . . . . . . . . . . . . . . . . . . . . . . 30 3.3. Property Value Data Types . . . . . . . . . . . . . . . . 30
3.3.2. Boolean . . . . . . . . . . . . . . . . . . . . . . . 30 3.3.1. Binary . . . . . . . . . . . . . . . . . . . . . . . 31
3.3.3. Calendar User Address . . . . . . . . . . . . . . . . 31 3.3.2. Boolean . . . . . . . . . . . . . . . . . . . . . . . 31
3.3.4. Date . . . . . . . . . . . . . . . . . . . . . . . . 31 3.3.3. Calendar User Address . . . . . . . . . . . . . . . . 32
3.3.5. Date-Time . . . . . . . . . . . . . . . . . . . . . . 32 3.3.4. Date . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3.6. Duration . . . . . . . . . . . . . . . . . . . . . . 34 3.3.5. Date-Time . . . . . . . . . . . . . . . . . . . . . . 33
3.3.7. Float . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3.6. Duration . . . . . . . . . . . . . . . . . . . . . . 36
3.3.8. Integer . . . . . . . . . . . . . . . . . . . . . . . 36 3.3.7. Float . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3.9. Period of Time . . . . . . . . . . . . . . . . . . . 37 3.3.8. Integer . . . . . . . . . . . . . . . . . . . . . . . 37
3.3.10. Recurrence Rule . . . . . . . . . . . . . . . . . . . 38 3.3.9. Period of Time . . . . . . . . . . . . . . . . . . . 38
3.3.11. Text . . . . . . . . . . . . . . . . . . . . . . . . 45 3.3.10. Recurrence Rule . . . . . . . . . . . . . . . . . . . 39
3.3.12. Time . . . . . . . . . . . . . . . . . . . . . . . . 47 3.3.11. Text . . . . . . . . . . . . . . . . . . . . . . . . 46
3.3.13. URI . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.3.12. Time . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3.14. UTC Offset . . . . . . . . . . . . . . . . . . . . . 49 3.3.13. URI . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.4. iCalendar Object . . . . . . . . . . . . . . . . . . . . 50 3.3.14. UTC Offset . . . . . . . . . . . . . . . . . . . . . 50
3.5. Property . . . . . . . . . . . . . . . . . . . . . . . . 51 3.4. iCalendar Object . . . . . . . . . . . . . . . . . . . . 51
3.6. Calendar Components . . . . . . . . . . . . . . . . . . . 51 3.5. Property . . . . . . . . . . . . . . . . . . . . . . . . 52
3.6.1. Event Component . . . . . . . . . . . . . . . . . . . 52 3.6. Calendar Components . . . . . . . . . . . . . . . . . . . 52
3.6.2. To-do Component . . . . . . . . . . . . . . . . . . . 56 3.6.1. Event Component . . . . . . . . . . . . . . . . . . . 53
3.6.3. Journal Component . . . . . . . . . . . . . . . . . . 58 3.6.2. To-do Component . . . . . . . . . . . . . . . . . . . 57
3.6.4. Free/Busy Component . . . . . . . . . . . . . . . . . 60 3.6.3. Journal Component . . . . . . . . . . . . . . . . . . 59
3.6.5. Time Zone Component . . . . . . . . . . . . . . . . . 63 3.6.4. Free/Busy Component . . . . . . . . . . . . . . . . . 61
3.6.6. Alarm Component . . . . . . . . . . . . . . . . . . . 72 3.6.5. Time Zone Component . . . . . . . . . . . . . . . . . 64
3.7. Calendar Properties . . . . . . . . . . . . . . . . . . . 77 3.6.6. Alarm Component . . . . . . . . . . . . . . . . . . . 73
3.7.1. Calendar Scale . . . . . . . . . . . . . . . . . . . 77 3.7. Calendar Properties . . . . . . . . . . . . . . . . . . . 78
3.7.2. Method . . . . . . . . . . . . . . . . . . . . . . . 78 3.7.1. Calendar Scale . . . . . . . . . . . . . . . . . . . 78
3.7.3. Product Identifier . . . . . . . . . . . . . . . . . 79 3.7.2. Method . . . . . . . . . . . . . . . . . . . . . . . 79
3.7.4. Version . . . . . . . . . . . . . . . . . . . . . . . 80 3.7.3. Product Identifier . . . . . . . . . . . . . . . . . 80
3.8. Component Properties . . . . . . . . . . . . . . . . . . 81 3.7.4. Version . . . . . . . . . . . . . . . . . . . . . . . 81
3.8.1. Descriptive Component Properties . . . . . . . . . . 81 3.8. Component Properties . . . . . . . . . . . . . . . . . . 82
3.8.1.1. Attachment . . . . . . . . . . . . . . . . . . . 81 3.8.1. Descriptive Component Properties . . . . . . . . . . 82
3.8.1.2. Categories . . . . . . . . . . . . . . . . . . . 82 3.8.1.1. Attachment . . . . . . . . . . . . . . . . . . . 82
3.8.1.3. Classification . . . . . . . . . . . . . . . . . 83 3.8.1.2. Categories . . . . . . . . . . . . . . . . . . . 83
3.8.1.4. Comment . . . . . . . . . . . . . . . . . . . . . 84 3.8.1.3. Classification . . . . . . . . . . . . . . . . . 84
3.8.1.5. Description . . . . . . . . . . . . . . . . . . . 85 3.8.1.4. Comment . . . . . . . . . . . . . . . . . . . . . 85
3.8.1.6. Geographic Position . . . . . . . . . . . . . . . 86 3.8.1.5. Description . . . . . . . . . . . . . . . . . . . 87
3.8.1.7. Location . . . . . . . . . . . . . . . . . . . . 88 3.8.1.6. Geographic Position . . . . . . . . . . . . . . . 88
3.8.1.8. Percent Complete . . . . . . . . . . . . . . . . 89 3.8.1.7. Location . . . . . . . . . . . . . . . . . . . . 89
3.8.1.9. Priority . . . . . . . . . . . . . . . . . . . . 90 3.8.1.8. Percent Complete . . . . . . . . . . . . . . . . 91
3.8.1.10. Resources . . . . . . . . . . . . . . . . . . . . 92 3.8.1.9. Priority . . . . . . . . . . . . . . . . . . . . 91
3.8.1.11. Status . . . . . . . . . . . . . . . . . . . . . 93 3.8.1.10. Resources . . . . . . . . . . . . . . . . . . . . 93
3.8.1.12. Summary . . . . . . . . . . . . . . . . . . . . . 94 3.8.1.11. Status . . . . . . . . . . . . . . . . . . . . . 94
3.8.2. Date and Time Component Properties . . . . . . . . . 95 3.8.1.12. Summary . . . . . . . . . . . . . . . . . . . . . 96
3.8.2.1. Date/Time Completed . . . . . . . . . . . . . . . 95 3.8.2. Date and Time Component Properties . . . . . . . . . 97
3.8.2.2. Date/Time End . . . . . . . . . . . . . . . . . . 96 3.8.2.1. Date/Time Completed . . . . . . . . . . . . . . . 97
3.8.2.3. Date/Time Due . . . . . . . . . . . . . . . . . . 97 3.8.2.2. Date/Time End . . . . . . . . . . . . . . . . . . 97
3.8.2.4. Date/Time Start . . . . . . . . . . . . . . . . . 99 3.8.2.3. Date/Time Due . . . . . . . . . . . . . . . . . . 99
3.8.2.5. Duration . . . . . . . . . . . . . . . . . . . . 100 3.8.2.4. Date/Time Start . . . . . . . . . . . . . . . . . 100
3.8.2.6. Free/Busy Time . . . . . . . . . . . . . . . . . 101 3.8.2.5. Duration . . . . . . . . . . . . . . . . . . . . 101
3.8.2.7. Time Transparency . . . . . . . . . . . . . . . . 102 3.8.2.6. Free/Busy Time . . . . . . . . . . . . . . . . . 102
3.8.3. Time Zone Component Properties . . . . . . . . . . . 103 3.8.2.7. Time Transparency . . . . . . . . . . . . . . . . 103
3.8.3.1. Time Zone Identifier . . . . . . . . . . . . . . 103 3.8.3. Time Zone Component Properties . . . . . . . . . . . 104
3.8.3.2. Time Zone Name . . . . . . . . . . . . . . . . . 105 3.8.3.1. Time Zone Identifier . . . . . . . . . . . . . . 104
3.8.3.3. Time Zone Offset From . . . . . . . . . . . . . . 106 3.8.3.2. Time Zone Name . . . . . . . . . . . . . . . . . 106
3.8.3.4. Time Zone Offset To . . . . . . . . . . . . . . . 106 3.8.3.3. Time Zone Offset From . . . . . . . . . . . . . . 107
3.8.3.5. Time Zone URL . . . . . . . . . . . . . . . . . . 107 3.8.3.4. Time Zone Offset To . . . . . . . . . . . . . . . 107
3.8.4. Relationship Component Properties . . . . . . . . . . 108 3.8.3.5. Time Zone URL . . . . . . . . . . . . . . . . . . 108
3.8.4.1. Attendee . . . . . . . . . . . . . . . . . . . . 108 3.8.4. Relationship Component Properties . . . . . . . . . . 109
3.8.4.2. Contact . . . . . . . . . . . . . . . . . . . . . 111 3.8.4.1. Attendee . . . . . . . . . . . . . . . . . . . . 109
3.8.4.3. Organizer . . . . . . . . . . . . . . . . . . . . 112 3.8.4.2. Contact . . . . . . . . . . . . . . . . . . . . . 112
3.8.4.4. Recurrence ID . . . . . . . . . . . . . . . . . . 114 3.8.4.3. Organizer . . . . . . . . . . . . . . . . . . . . 113
3.8.4.5. Related To . . . . . . . . . . . . . . . . . . . 116 3.8.4.4. Recurrence ID . . . . . . . . . . . . . . . . . . 115
3.8.4.6. Uniform Resource Locator . . . . . . . . . . . . 118 3.8.4.5. Related To . . . . . . . . . . . . . . . . . . . 117
3.8.4.7. Unique Identifier . . . . . . . . . . . . . . . . 118 3.8.4.6. Uniform Resource Locator . . . . . . . . . . . . 119
3.8.5. Recurrence Component Properties . . . . . . . . . . . 120 3.8.4.7. Unique Identifier . . . . . . . . . . . . . . . . 120
3.8.5.1. Exception Date/Times . . . . . . . . . . . . . . 120 3.8.5. Recurrence Component Properties . . . . . . . . . . . 121
3.8.5.2. Recurrence Date/Times . . . . . . . . . . . . . . 122 3.8.5.1. Exception Date/Times . . . . . . . . . . . . . . 121
3.8.5.3. Recurrence Rule . . . . . . . . . . . . . . . . . 123 3.8.5.2. Recurrence Date/Times . . . . . . . . . . . . . . 123
3.8.6. Alarm Component Properties . . . . . . . . . . . . . 134 3.8.5.3. Recurrence Rule . . . . . . . . . . . . . . . . . 125
3.8.6.1. Action . . . . . . . . . . . . . . . . . . . . . 134 3.8.6. Alarm Component Properties . . . . . . . . . . . . . 135
3.8.6.2. Repeat Count . . . . . . . . . . . . . . . . . . 134 3.8.6.1. Action . . . . . . . . . . . . . . . . . . . . . 135
3.8.6.3. Trigger . . . . . . . . . . . . . . . . . . . . . 135 3.8.6.2. Repeat Count . . . . . . . . . . . . . . . . . . 136
3.8.7. Change Management Component Properties . . . . . . . 138 3.8.6.3. Trigger . . . . . . . . . . . . . . . . . . . . . 136
3.8.7.1. Date/Time Created . . . . . . . . . . . . . . . . 138 3.8.7. Change Management Component Properties . . . . . . . 139
3.8.7.2. Date/Time Stamp . . . . . . . . . . . . . . . . . 138 3.8.7.1. Date/Time Created . . . . . . . . . . . . . . . . 139
3.8.7.3. Last Modified . . . . . . . . . . . . . . . . . . 139 3.8.7.2. Date/Time Stamp . . . . . . . . . . . . . . . . . 140
3.8.7.4. Sequence Number . . . . . . . . . . . . . . . . . 140 3.8.7.3. Last Modified . . . . . . . . . . . . . . . . . . 141
3.8.8. Miscellaneous Component Properties . . . . . . . . . 142 3.8.7.4. Sequence Number . . . . . . . . . . . . . . . . . 142
3.8.8.1. IANA Properties . . . . . . . . . . . . . . . . . 142 3.8.8. Miscellaneous Component Properties . . . . . . . . . 143
3.8.8.1. IANA Properties . . . . . . . . . . . . . . . . . 143
3.8.8.2. Non-standard Properties . . . . . . . . . . . . . 143 3.8.8.2. Non-standard Properties . . . . . . . . . . . . . 143
3.8.8.3. Request Status . . . . . . . . . . . . . . . . . 144 3.8.8.3. Request Status . . . . . . . . . . . . . . . . . 144
4. iCalendar Object Examples . . . . . . . . . . . . . . . . . . 147 4. iCalendar Object Examples . . . . . . . . . . . . . . . . . . 148
5. Recommended Practices . . . . . . . . . . . . . . . . . . . . 151 5. Recommended Practices . . . . . . . . . . . . . . . . . . . . 152
6. Internationalization Considerations . . . . . . . . . . . . . 152 6. Internationalization Considerations . . . . . . . . . . . . . 153
7. Security Considerations . . . . . . . . . . . . . . . . . . . 152 7. Security Considerations . . . . . . . . . . . . . . . . . . . 153
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 152 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 153
8.1. iCalendar Media Type Registration . . . . . . . . . . . . 153 8.1. iCalendar Media Type Registration . . . . . . . . . . . . 154
8.2. New iCalendar Elements Registration . . . . . . . . . . . 156 8.2. New iCalendar Elements Registration . . . . . . . . . . . 157
8.2.1. iCalendar Elements Registration Procedure . . . . . . 156 8.2.1. iCalendar Elements Registration Procedure . . . . . . 157
8.2.2. Registration Template for Components . . . . . . . . 156 8.2.2. Registration Template for Components . . . . . . . . 157
8.2.3. Registration Template for Properties . . . . . . . . 157 8.2.3. Registration Template for Properties . . . . . . . . 158
8.2.4. Registration Template for Parameters . . . . . . . . 158 8.2.4. Registration Template for Parameters . . . . . . . . 158
8.2.5. Registration Template for Value Data Types . . . . . 158 8.2.5. Registration Template for Value Data Types . . . . . 159
8.2.6. Registration Template for Values . . . . . . . . . . 158 8.2.6. Registration Template for Values . . . . . . . . . . 159
8.3. Initial iCalendar Elements Registries . . . . . . . . . . 159 8.3. Initial iCalendar Elements Registries . . . . . . . . . . 160
8.3.1. Components Registry . . . . . . . . . . . . . . . . . 159 8.3.1. Components Registry . . . . . . . . . . . . . . . . . 160
8.3.2. Properties Registry . . . . . . . . . . . . . . . . . 160 8.3.2. Properties Registry . . . . . . . . . . . . . . . . . 161
8.3.3. Parameters Registry . . . . . . . . . . . . . . . . . 161 8.3.3. Parameters Registry . . . . . . . . . . . . . . . . . 162
8.3.4. Value Data Types Registry . . . . . . . . . . . . . . 162 8.3.4. Value Data Types Registry . . . . . . . . . . . . . . 162
8.3.5. Calendar User Types Registry . . . . . . . . . . . . 163 8.3.5. Calendar User Types Registry . . . . . . . . . . . . 163
8.3.6. Free/Busy Time Types Registry . . . . . . . . . . . . 163 8.3.6. Free/Busy Time Types Registry . . . . . . . . . . . . 163
8.3.7. Participation Statuses Registry . . . . . . . . . . . 163 8.3.7. Participation Statuses Registry . . . . . . . . . . . 164
8.3.8. Relationship Types Registry . . . . . . . . . . . . . 164 8.3.8. Relationship Types Registry . . . . . . . . . . . . . 164
8.3.9. Participation Roles Registry . . . . . . . . . . . . 164 8.3.9. Participation Roles Registry . . . . . . . . . . . . 164
8.3.10. Actions Registry . . . . . . . . . . . . . . . . . . 164 8.3.10. Actions Registry . . . . . . . . . . . . . . . . . . 165
8.3.11. Classifications Registry . . . . . . . . . . . . . . 164 8.3.11. Classifications Registry . . . . . . . . . . . . . . 165
8.3.12. Methods Registry . . . . . . . . . . . . . . . . . . 165 8.3.12. Methods Registry . . . . . . . . . . . . . . . . . . 165
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 165 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 165
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 165 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 166
10.1. Normative References . . . . . . . . . . . . . . . . . . 165 10.1. Normative References . . . . . . . . . . . . . . . . . . 166
10.2. Informative References . . . . . . . . . . . . . . . . . 167 10.2. Informative References . . . . . . . . . . . . . . . . . 167
Appendix A. Differences from RFC 2445 . . . . . . . . . . . . . 168 Appendix A. Differences from RFC 2445 . . . . . . . . . . . . . 168
A.1. New restrictions . . . . . . . . . . . . . . . . . . . . 168 A.1. New restrictions . . . . . . . . . . . . . . . . . . . . 168
A.2. Restrictions removed . . . . . . . . . . . . . . . . . . 168 A.2. Restrictions removed . . . . . . . . . . . . . . . . . . 168
A.3. Deprecated features . . . . . . . . . . . . . . . . . . . 168 A.3. Deprecated features . . . . . . . . . . . . . . . . . . . 169
Appendix B. Change Log (to be removed by RFC Editor prior to Appendix B. Change Log (to be removed by RFC Editor prior to
publication) . . . . . . . . . . . . . . . . . . . . 169 publication) . . . . . . . . . . . . . . . . . . . . 169
B.1. Changes in -07 . . . . . . . . . . . . . . . . . . . . . 169 B.1. Changes in -08 . . . . . . . . . . . . . . . . . . . . . 169
B.2. Changes in -06 . . . . . . . . . . . . . . . . . . . . . 170 B.2. Changes in -07 . . . . . . . . . . . . . . . . . . . . . 170
B.3. Changes in -05 . . . . . . . . . . . . . . . . . . . . . 172 B.3. Changes in -06 . . . . . . . . . . . . . . . . . . . . . 171
B.4. Changes in -04 . . . . . . . . . . . . . . . . . . . . . 172 B.4. Changes in -05 . . . . . . . . . . . . . . . . . . . . . 173
B.5. Changes in -03 . . . . . . . . . . . . . . . . . . . . . 174 B.5. Changes in -04 . . . . . . . . . . . . . . . . . . . . . 173
B.6. Changes in -02 . . . . . . . . . . . . . . . . . . . . . 174 B.6. Changes in -03 . . . . . . . . . . . . . . . . . . . . . 175
B.7. Changes in -01 . . . . . . . . . . . . . . . . . . . . . 175 B.7. Changes in -02 . . . . . . . . . . . . . . . . . . . . . 175
Appendix C. Open issues (to be removed by RFC Editor prior to B.8. Changes in -01 . . . . . . . . . . . . . . . . . . . . . 176
publication) . . . . . . . . . . . . . . . . . . . . 175
C.1. introduction . . . . . . . . . . . . . . . . . . . . . . 175
C.2. #issue11+4.3.10_byxxx_rule_part_examples . . . . . . . . 175
C.3. #issue63+4.8.5.3_rdate_and_dtstart . . . . . . . . . . . 176
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 6, line 43 skipping to change at page 6, line 43
that will map this content type to a set of messages for supporting that will map this content type to a set of messages for supporting
calendaring and scheduling operations such as requesting, replying calendaring and scheduling operations such as requesting, replying
to, modifying, and canceling meetings or appointments, to-dos and to, modifying, and canceling meetings or appointments, to-dos and
journal entries. The iCalendar object methods can be used to define journal entries. The iCalendar object methods can be used to define
other calendaring and scheduling operations such a requesting for and other calendaring and scheduling operations such a requesting for and
replying with free/busy time data. Such a scheduling protocol is replying with free/busy time data. Such a scheduling protocol is
defined in the iCalendar Transport-independent Interoperability defined in the iCalendar Transport-independent Interoperability
Protocol (iTIP) defined in [I-D.ietf-calsify-2446bis]. Protocol (iTIP) defined in [I-D.ietf-calsify-2446bis].
The memo also includes a formal grammar for the content type based on The memo also includes a formal grammar for the content type based on
the Internet ABNF defined in [RFC4234]. This ABNF is required for the Internet ABNF defined in [RFC5234]. This ABNF is required for
the implementation of parsers and to serve as the definitive the implementation of parsers and to serve as the definitive
reference when ambiguities or questions arise in interpreting the reference when ambiguities or questions arise in interpreting the
descriptive prose definition of the memo. Additional restrictions descriptive prose definition of the memo. Additional restrictions
that could not easily be expressed with the ABNF syntax are specified that could not easily be expressed with the ABNF syntax are specified
as comments in the ABNF. Comments with normative statements should as comments in the ABNF. Comments with normative statements should
be treated as such. be treated as such.
2. Basic Grammar and Conventions 2. Basic Grammar and Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" and
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in
[RFC2119]. [RFC2119].
This memo makes use of both a descriptive prose and a more formal This memo makes use of both a descriptive prose and a more formal
notation for defining the calendaring and scheduling format. notation for defining the calendaring and scheduling format.
The notation used in this memo is the ABNF notation of [RFC4234]. The notation used in this memo is the ABNF notation of [RFC5234].
Readers intending on implementing the format defined in this memo Readers intending on implementing the format defined in this memo
should be familiar with this notation in order to properly interpret should be familiar with this notation in order to properly interpret
the specifications of this memo. the specifications of this memo.
All numeric values used in this memo are given in decimal notation. All numeric values used in this memo are given in decimal notation.
All names of properties, property parameters, enumerated property All names of properties, property parameters, enumerated property
values and property parameter values are case-insensitive. However, values and property parameter values are case-insensitive. However,
all other property values are case-sensitive, unless otherwise all other property values are case-sensitive, unless otherwise
stated. stated.
skipping to change at page 9, line 8 skipping to change at page 9, line 8
binding for [I-D.ietf-calsify-2446bis]. binding for [I-D.ietf-calsify-2446bis].
This memo does not attempt to repeat the specification of concepts or This memo does not attempt to repeat the specification of concepts or
definitions from these other memos. Where possible, references are definitions from these other memos. Where possible, references are
made to the memo that provides for the specification of these made to the memo that provides for the specification of these
concepts or definitions. concepts or definitions.
3. iCalendar Object Specification 3. iCalendar Object Specification
The following sections define the details of a Calendaring and The following sections define the details of a Calendaring and
Scheduling Core Object Specification. This information is intended Scheduling Core Object Specification. The Calendaring and Scheduling
to be an integral part of the MIME content type registration. In Core Object is a collection of calendaring and scheduling
addition, this information can be used independent of such content information. Typically, this information will consist of an
registration. In particular, this memo has direct applicability for iCalendar stream with one or more iCalendar objects. The body of the
use as a calendaring and scheduling exchange format in file-, memory- iCalendar object consists of a sequence of calendar properties and
or network-based transport mechanisms. one or more calendar components.
Section 3.1. defines the content line format; Section 3.2. defines
the property parameter format; Section 3.3. defines the data types
for property values; Section 3.4. defines the iCalendar object
format; Section 3.5. defines the iCalendar property format; Section
3.6. defines the calendar component format; Section 3.7. defines
calendar properties; and Sectiopn 3.8. defines calendar component
properties.
This information is intended to be an integral part of the MIME
content type registration. In addition, this information can be used
independent of such content registration. In particular, this memo
has direct applicability for use as a calendaring and scheduling
exchange format in file-, memory- or network-based transport
mechanisms.
3.1. Content Lines 3.1. Content Lines
The iCalendar object is organized into individual lines of text, The iCalendar object is organized into individual lines of text,
called content lines. Content lines are delimited by a line break, called content lines. Content lines are delimited by a line break,
which is a CRLF sequence (US-ASCII decimal 13, followed by US-ASCII which is a CRLF sequence (US-ASCII decimal 13, followed by US-ASCII
decimal 10). decimal 10).
Lines of text SHOULD NOT be longer than 75 octets, excluding the line Lines of text SHOULD NOT be longer than 75 octets, excluding the line
break. Long content lines SHOULD be split into a multiple line break. Long content lines SHOULD be split into a multiple line
skipping to change at page 14, line 17 skipping to change at page 14, line 17
/ cutypeparam ; Calendar user type / cutypeparam ; Calendar user type
/ delfromparam ; Delegator / delfromparam ; Delegator
/ deltoparam ; Delegatee / deltoparam ; Delegatee
/ dirparam ; Directory entry / dirparam ; Directory entry
/ encodingparam ; Inline encoding / encodingparam ; Inline encoding
/ fmttypeparam ; Format type / fmttypeparam ; Format type
/ fbtypeparam ; Free/busy time type / fbtypeparam ; Free/busy time type
/ languageparam ; Language for text / languageparam ; Language for text
/ memberparam ; Group or list membership / memberparam ; Group or list membership
/ partstatparam ; Participation status / partstatparam ; Participation status
/ rangeparam ; Recurrence identifier range
/ trigrelparam ; Alarm trigger relationship / trigrelparam ; Alarm trigger relationship
/ reltypeparam ; Relationship type / reltypeparam ; Relationship type
/ roleparam ; Participation role / roleparam ; Participation role
/ rsvpparam ; RSVP expectation / rsvpparam ; RSVP expectation
/ sentbyparam ; Sent by / sentbyparam ; Sent by
/ tzidparam ; Reference to time zone object / tzidparam ; Reference to time zone object
/ valuetypeparam ; Property value data type / valuetypeparam ; Property value data type
/ other-param / other-param
other-param = (iana-param / x-param) other-param = (iana-param / x-param)
skipping to change at page 16, line 41 skipping to change at page 16, line 41
/ x-name ; Experimental type / x-name ; Experimental type
/ iana-token) ; Other IANA registered / iana-token) ; Other IANA registered
; type ; type
; Default is INDIVIDUAL ; Default is INDIVIDUAL
Description: This parameter can be specified on properties with a Description: This parameter can be specified on properties with a
CAL-ADDRESS value type. The parameter identifies the type of CAL-ADDRESS value type. The parameter identifies the type of
calendar user specified by the property. If not specified on a calendar user specified by the property. If not specified on a
property that allows this parameter, the default is INDIVIDUAL. property that allows this parameter, the default is INDIVIDUAL.
Applications MUST treat x-name and iana-token value they don't Applications MUST treat x-name and iana-token value they don't
recognized the same way as the INDIVIDUAL value. recognized the same way as they would the UNKNOWN value.
Example: Example:
ATTENDEE;CUTYPE=GROUP:mailto:ietf-calsch@example.org ATTENDEE;CUTYPE=GROUP:mailto:ietf-calsch@example.org
3.2.4. Delegators 3.2.4. Delegators
Parameter Name: DELEGATED-FROM Parameter Name: DELEGATED-FROM
Purpose: To specify the calendar users that have delegated their Purpose: To specify the calendar users that have delegated their
participation to the calendar user specified by the property. participation to the calendar user specified by the property.
skipping to change at page 17, line 19 skipping to change at page 17, line 19
Format Definition: This property parameter is defined by the Format Definition: This property parameter is defined by the
following notation: following notation:
delfromparam = "DELEGATED-FROM" "=" DQUOTE cal-address delfromparam = "DELEGATED-FROM" "=" DQUOTE cal-address
DQUOTE *("," DQUOTE cal-address DQUOTE) DQUOTE *("," DQUOTE cal-address DQUOTE)
Description: This parameter can be specified on properties with a Description: This parameter can be specified on properties with a
CAL-ADDRESS value type. This parameter specifies those calendar CAL-ADDRESS value type. This parameter specifies those calendar
users that have delegated their participation in a group scheduled users that have delegated their participation in a group scheduled
event or to-do to the calendar user specified by the property. event or to-do to the calendar user specified by the property.
The value MUST be a mailto URI as defined in [RFC2368]. The The individual calendar address parameter values MUST each be
individual calendar address parameter values MUST each be
specified in a quoted-string. specified in a quoted-string.
Example: Example:
ATTENDEE;DELEGATED-FROM="mailto:jsmith@example.com":mailto: ATTENDEE;DELEGATED-FROM="mailto:jsmith@example.com":mailto:
jdoe@example.com jdoe@example.com
3.2.5. Delegatees 3.2.5. Delegatees
Parameter Name: DELEGATED-TO Parameter Name: DELEGATED-TO
skipping to change at page 17, line 45 skipping to change at page 17, line 44
Format Definition: This property parameter is defined by the Format Definition: This property parameter is defined by the
following notation: following notation:
deltoparam = "DELEGATED-TO" "=" DQUOTE cal-address DQUOTE deltoparam = "DELEGATED-TO" "=" DQUOTE cal-address DQUOTE
*("," DQUOTE cal-address DQUOTE) *("," DQUOTE cal-address DQUOTE)
Description: This parameter can be specified on properties with a Description: This parameter can be specified on properties with a
CAL-ADDRESS value type. This parameter specifies those calendar CAL-ADDRESS value type. This parameter specifies those calendar
users whom have been delegated participation in a group scheduled users whom have been delegated participation in a group scheduled
event or to-do by the calendar user specified by the property. event or to-do by the calendar user specified by the property.
The value MUST be a mailto URI as defined in [RFC2368]. The The individual calendar address parameter values MUST each be
individual calendar address parameter values MUST each be
specified in a quoted-string. specified in a quoted-string.
Example: Example:
ATTENDEE;DELEGATED-TO="mailto:jdoe@example.com","mailto:jqpublic ATTENDEE;DELEGATED-TO="mailto:jdoe@example.com","mailto:jqpublic
@example.com":mailto:jsmith@example.com @example.com":mailto:jsmith@example.com
3.2.6. Directory Entry Reference 3.2.6. Directory Entry Reference
Parameter Name: DIR Parameter Name: DIR
skipping to change at page 20, line 28 skipping to change at page 20, line 22
Description: This parameter specifies the free or busy time type. Description: This parameter specifies the free or busy time type.
The value FREE indicates that the time interval is free for The value FREE indicates that the time interval is free for
scheduling. The value BUSY indicates that the time interval is scheduling. The value BUSY indicates that the time interval is
busy because one or more events have been scheduled for that busy because one or more events have been scheduled for that
interval. The value BUSY-UNAVAILABLE indicates that the time interval. The value BUSY-UNAVAILABLE indicates that the time
interval is busy and that the interval can not be scheduled. The interval is busy and that the interval can not be scheduled. The
value BUSY-TENTATIVE indicates that the time interval is busy value BUSY-TENTATIVE indicates that the time interval is busy
because one or more events have been tentatively scheduled for because one or more events have been tentatively scheduled for
that interval. If not specified on a property that allows this that interval. If not specified on a property that allows this
parameter, the default is BUSY. Applications MUST treat x-name parameter, the default is BUSY. Applications MUST treat x-name
and iana-token value they don't recognized the same way as the and iana-token value they don't recognized the same way as they
BUSY value. would the BUSY value.
Example: The following is an example of this parameter on a Example: The following is an example of this parameter on a
"FREEBUSY" property. "FREEBUSY" property.
FREEBUSY;FBTYPE=BUSY:19980415T133000Z/19980415T170000Z FREEBUSY;FBTYPE=BUSY:19980415T133000Z/19980415T170000Z
3.2.10. Language 3.2.10. Language
Parameter Name: LANGUAGE Parameter Name: LANGUAGE
skipping to change at page 24, line 8 skipping to change at page 24, line 8
Description: This parameter can be specified on properties with a Description: This parameter can be specified on properties with a
CAL-ADDRESS value type. The parameter identifies the CAL-ADDRESS value type. The parameter identifies the
participation status for the calendar user specified by the participation status for the calendar user specified by the
property value. The parameter values differ depending on whether property value. The parameter values differ depending on whether
they are associated with a group scheduled "VEVENT", "VTODO" or they are associated with a group scheduled "VEVENT", "VTODO" or
"VJOURNAL". The values MUST match one of the values allowed for "VJOURNAL". The values MUST match one of the values allowed for
the given calendar component. If not specified on a property that the given calendar component. If not specified on a property that
allows this parameter, the default value is NEEDS-ACTION. allows this parameter, the default value is NEEDS-ACTION.
Applications MUST treat x-name and iana-token value they don't Applications MUST treat x-name and iana-token value they don't
recognized the same way as the NEEDS-ACTION value. recognized the same way as they would the NEEDS-ACTION value.
Example: Example:
ATTENDEE;PARTSTAT=DECLINED:mailto:jsmith@example.com ATTENDEE;PARTSTAT=DECLINED:mailto:jsmith@example.com
3.2.13. Alarm Trigger Relationship 3.2.13. Recurrence Identifier Range
Parameter Name: RANGE
Purpose: To specify the effective range of recurrence instances from
the instance specified by the recurrence identifier specified by
the property.
Format Definition: This property parameter is defined by the
following notation:
rangeparam = "RANGE" "=" "THISANDFUTURE"
; To specify the instance specified by the recurrence identifier
; and all subsequent recurrence instances
Description: This parameter can be specified on a property that
specifies a recurrence identifier. The parameter specifies the
effective range of recurrence instances that is specified by the
property. The effective range is from the recurrence identifier
specified by the property. If this parameter is not specified on
an allowed property, then the default range is the single instance
specified by the recurrence identifier value of the property. The
parameter value can only be "THISANDFUTURE" to indicate a range
defined by the recurrence identifier and all subsequent instances.
Note: The value "THISANDPRIOR" is deprecated by this revision
of iCalendar and MUST NOT be generated by applications.
Example:
RECURRENCE-ID;RANGE=THISANDFUTURE:19980401T133000Z
3.2.14. Alarm Trigger Relationship
Parameter Name: RELATED Parameter Name: RELATED
Purpose: To specify the relationship of the alarm trigger with Purpose: To specify the relationship of the alarm trigger with
respect to the start or end of the calendar component. respect to the start or end of the calendar component.
Format Definition: This property parameter is defined by the Format Definition: This property parameter is defined by the
following notation: following notation:
trigrelparam = "RELATED" "=" trigrelparam = "RELATED" "="
("START" ; Trigger off of start ("START" ; Trigger off of start
skipping to change at page 24, line 41 skipping to change at page 25, line 29
start or end of the calendar component. The parameter value START start or end of the calendar component. The parameter value START
will set the alarm to trigger off the start of the calendar will set the alarm to trigger off the start of the calendar
component; the parameter value END will set the alarm to trigger component; the parameter value END will set the alarm to trigger
off the end of the calendar component. If the parameter is not off the end of the calendar component. If the parameter is not
specified on an allowable property, then the default is START. specified on an allowable property, then the default is START.
Example: Example:
TRIGGER;RELATED=END:PT5M TRIGGER;RELATED=END:PT5M
3.2.14. Relationship Type 3.2.15. Relationship Type
Parameter Name: RELTYPE Parameter Name: RELTYPE
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: This property parameter is defined by the Format Definition: This property parameter is defined by the
following notation: following notation:
reltypeparam = "RELTYPE" "=" reltypeparam = "RELTYPE" "="
skipping to change at page 25, line 25 skipping to change at page 26, line 15
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
calendar component; CHILD to indicate that the referenced calendar calendar component; CHILD to indicate that the referenced calendar
component is a subordinate of the calendar component; SIBLING to component is a subordinate of the calendar component; SIBLING to
indicate that the referenced calendar component is a peer of the indicate that the referenced calendar component is a peer of the
calendar component. If this parameter is not specified on an calendar component. If this parameter is not specified on an
allowable property, the default relationship type is PARENT. allowable property, the default relationship type is PARENT.
Applications MUST treat x-name and iana-token value they don't Applications MUST treat x-name and iana-token value they don't
recognized the same way as the PARENT value. recognized the same way as they would the PARENT value.
Example: Example:
RELATED-TO;RELTYPE=SIBLING:19960401-080045-4000F192713@ RELATED-TO;RELTYPE=SIBLING:19960401-080045-4000F192713@
example.com example.com
3.2.15. Participation Role 3.2.16. Participation Role
Parameter Name: ROLE Parameter Name: ROLE
Purpose: To specify the participation role for the calendar user Purpose: To specify the participation role for the calendar user
specified by the property. specified by the property.
Format Definition: This property parameter is defined by the Format Definition: This property parameter is defined by the
following notation: following notation:
roleparam = "ROLE" "=" roleparam = "ROLE" "="
skipping to change at page 26, line 25 skipping to change at page 27, line 4
/ x-name ; Experimental role / x-name ; Experimental role
/ iana-token) ; Other IANA role / iana-token) ; Other IANA role
; Default is REQ-PARTICIPANT ; Default is REQ-PARTICIPANT
Description: This parameter can be specified on properties with a Description: This parameter can be specified on properties with a
CAL-ADDRESS value type. The parameter specifies the participation CAL-ADDRESS value type. The parameter specifies the participation
role for the calendar user specified by the property in the group role for the calendar user specified by the property in the group
schedule calendar component. If not specified on a property that schedule calendar component. If not specified on a property that
allows this parameter, the default value is REQ-PARTICIPANT. allows this parameter, the default value is REQ-PARTICIPANT.
Applications MUST treat x-name and iana-token value they don't Applications MUST treat x-name and iana-token value they don't
recognized the same way as the REQ-PARTICIPANT value. recognized the same way as they would the REQ-PARTICIPANT value.
Example: Example:
ATTENDEE;ROLE=CHAIR:mailto:mrbig@example.com ATTENDEE;ROLE=CHAIR:mailto:mrbig@example.com
3.2.16. RSVP Expectation 3.2.17. RSVP Expectation
Parameter Name: RSVP Parameter Name: RSVP
Purpose: To specify whether there is an expectation of a favor of a Purpose: To specify whether there is an expectation of a favor of a
reply from the calendar user specified by the property value. reply from the calendar user specified by the property value.
Format Definition: This property parameter is defined by the Format Definition: This property parameter is defined by the
following notation: following notation:
rsvpparam = "RSVP" "=" ("TRUE" / "FALSE") rsvpparam = "RSVP" "=" ("TRUE" / "FALSE")
skipping to change at page 27, line 9 skipping to change at page 27, line 35
of a reply from the calendar user specified by the property value. of a reply from the calendar user specified by the property value.
This parameter is used by the "Organizer" to request a This parameter is used by the "Organizer" to request a
participation status reply from an "Attendee" of a group scheduled participation status reply from an "Attendee" of a group scheduled
event or to-do. If not specified on a property that allows this event or to-do. If not specified on a property that allows this
parameter, the default value is FALSE. parameter, the default value is FALSE.
Example: Example:
ATTENDEE;RSVP=TRUE:mailto:jsmith@example.com ATTENDEE;RSVP=TRUE:mailto:jsmith@example.com
3.2.17. Sent By 3.2.18. Sent By
Parameter Name: SENT-BY Parameter Name: SENT-BY
Purpose: To specify the calendar user that is acting on behalf of Purpose: To specify the calendar user that is acting on behalf of
the calendar user specified by the property. the calendar user specified by the property.
Format Definition: This property parameter is defined by the Format Definition: This property parameter is defined by the
following notation: following notation:
sentbyparam = "SENT-BY" "=" DQUOTE cal-address DQUOTE sentbyparam = "SENT-BY" "=" DQUOTE cal-address DQUOTE
skipping to change at page 27, line 33 skipping to change at page 28, line 11
that is acting on behalf of the calendar user specified by the that is acting on behalf of the calendar user specified by the
property. The parameter value MUST be a mailto URI as defined in property. The parameter value MUST be a mailto URI as defined in
[RFC2368]. The individual calendar address parameter values MUST [RFC2368]. The individual calendar address parameter values MUST
each be specified in a quoted-string. each be specified in a quoted-string.
Example: Example:
ORGANIZER;SENT-BY="mailto:sray@example.com":mailto: ORGANIZER;SENT-BY="mailto:sray@example.com":mailto:
jsmith@example.com jsmith@example.com
3.2.18. Time Zone Identifier 3.2.19. Time Zone Identifier
Parameter Name: TZID Parameter Name: TZID
Purpose: To specify the identifier for the time zone definition for Purpose: To specify the identifier for the time zone definition for
a time component in the property value. a time component in the property value.
Format Definition: This property parameter is defined by the Format Definition: This property parameter is defined by the
following notation: following notation:
tzidparam = "TZID" "=" [tzidprefix] paramtext tzidparam = "TZID" "=" [tzidprefix] paramtext
skipping to change at page 28, line 45 skipping to change at page 29, line 24
specified in UTC. specified in UTC.
The use of local time in a DATE-TIME or TIME value without the The use of local time in a DATE-TIME or TIME value without the
"TZID" property parameter is to be interpreted as a local time "TZID" property parameter is to be interpreted as a local time
value, regardless of the existence of "VTIMEZONE" calendar value, regardless of the existence of "VTIMEZONE" calendar
components in the iCalendar object. components in the iCalendar object.
For more information see the sections on the value types DATE-TIME For more information see the sections on the value types DATE-TIME
and TIME. and TIME.
3.2.19. Value Data Types 3.2.20. Value Data Types
Parameter Name: VALUE Parameter Name: VALUE
Purpose: To explicitly specify the value type format for a property Purpose: To explicitly specify the value type format for a property
value. value.
Format Definition: This property parameter is defined by the Format Definition: This property parameter is defined by the
following notation: following notation:
valuetypeparam = "VALUE" "=" valuetype valuetypeparam = "VALUE" "=" valuetype
valuetype = ("BINARY" valuetype = ("BINARY"
/ "BOOLEAN" / "BOOLEAN"
skipping to change at page 29, line 41 skipping to change at page 30, line 36
Description: This parameter specifies the value type and format of Description: This parameter specifies the value type and format of
the property value. The property values MUST be of a single value the property value. The property values MUST be of a single value
type. For example, a "RDATE" property cannot have a combination type. For example, a "RDATE" property cannot have a combination
of DATE-TIME and TIME value types. of DATE-TIME and TIME value types.
If the property's value is the default value type, then this If the property's value is the default value type, then this
parameter need not be specified. However, if the property's parameter need not be specified. However, if the property's
default value type is overridden by some other allowable value default value type is overridden by some other allowable value
type, then this parameter MUST be specified. type, then this parameter MUST be specified.
Applications MUST treat x-name and iana-token value they don't Applications MUST preserve the value data for x-name and iana-
recognized the same way as the TEXT value. token values that they don't recognize without attempting to
interpret or parse the value data.
3.3. Property Value Data Types 3.3. Property Value Data Types
The properties in an iCalendar object are strongly typed. The The properties in an iCalendar object are strongly typed. The
definition of each property restricts the value to be one of the definition of each property restricts the value to be one of the
value data types, or simply value types, defined in this section. value data types, or simply value types, defined in this section.
The value type for a property will either be specified implicitly as The value type for a property will either be specified implicitly as
the default value type or will be explicitly specified with the the default value type or will be explicitly specified with the
"VALUE" parameter. If the value type of a property is one of the "VALUE" parameter. If the value type of a property is one of the
alternate valid types, then it MUST be explicitly specified with the alternate valid types, then it MUST be explicitly specified with the
skipping to change at page 30, line 31 skipping to change at page 31, line 29
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
encoding) is defined for this value type. encoding, see Section 3.3.11) is defined for this value type.
Example: The following is an abridged example of a "BASE64" encoded Example: The following is an abridged example of a "BASE64" encoded
binary value data. binary value data.
JKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlI JKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlI
ENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZv ENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZv
<...remainder of "BASE64" encoded binary data...> <...remainder of "BASE64" encoded binary data...>
3.3.2. Boolean 3.3.2. Boolean
Value Name: BOOLEAN Value Name: BOOLEAN
Purpose: This value type is used to identify properties that contain Purpose: This value type is used to identify properties that contain
either a "TRUE" or "FALSE" Boolean value. either a "TRUE" or "FALSE" Boolean value.
Format Definition: This value type is defined by the following Format Definition: This value type is defined by the following
notation: notation:
boolean = "TRUE" / "FALSE" boolean = "TRUE" / "FALSE"
Description: These values are case insensitive text. No additional Description: These values are case insensitive text. No additional
content value encoding (i.e., BACKSLASH character encoding) is content value encoding (i.e., BACKSLASH character encoding, see
defined for this value type. Section 3.3.11) is defined for this value type.
Example: The following is an example of a hypothetical property that Example: The following is an example of a hypothetical property that
has a BOOLEAN value type: has a BOOLEAN value type:
TRUE TRUE
3.3.3. Calendar User Address 3.3.3. Calendar User Address
Value Name: CAL-ADDRESS Value Name: CAL-ADDRESS
skipping to change at page 31, line 29 skipping to change at page 32, line 29
Format Definition: This value type is defined by the following Format Definition: This value type is defined by the following
notation: notation:
cal-address = uri cal-address = uri
Description: The value is a URI as defined by [RFC3986] or any other Description: The value is a URI as defined by [RFC3986] or any other
IANA registered form for a URI. When used to address an Internet IANA registered form for a URI. When used to address an Internet
email transport address for a calendar user, the value MUST be a email transport address for a calendar user, the value MUST be a
mailto URI, as defined by [RFC2368]. No additional content value mailto URI, as defined by [RFC2368]. No additional content value
encoding (i.e., BACKSLASH character encoding) is defined for this encoding (i.e., BACKSLASH character encoding, see Section 3.3.11)
value type. is defined for this value type.
Example: Example:
mailto:jane_doe@example.com mailto:jane_doe@example.com
3.3.4. Date 3.3.4. Date
Value Name: DATE Value Name: DATE
Purpose: This value type is used to identify values that contain a Purpose: This value type is used to identify values that contain a
skipping to change at page 32, line 16 skipping to change at page 33, line 16
Description: If the property permits, multiple "date" values are Description: If the property permits, multiple "date" values are
specified as a COMMA character (US-ASCII decimal 44) separated specified as a COMMA character (US-ASCII decimal 44) separated
list of values. The format for the value type is based on the list of values. The format for the value type is based on the
[ISO.8601.2004] complete representation, basic format for a [ISO.8601.2004] complete representation, basic format for a
calendar date. The textual format specifies a four-digit year, calendar date. The textual format specifies a four-digit year,
two-digit month, and two-digit day of the month. There are no two-digit month, and two-digit day of the month. There are no
separator characters between the year, month and day component separator characters between the year, month and day component
text. text.
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, see Section 3.3.11) is defined for this value type.
Example: The following represents July 14, 1997: Example: The following represents July 14, 1997:
19970714 19970714
3.3.5. Date-Time 3.3.5. Date-Time
Value Name: DATE-TIME Value Name: DATE-TIME
Purpose: This value type is used to identify values that specify a Purpose: This value type is used to identify values that specify a
skipping to change at page 32, line 38 skipping to change at page 33, line 38
Format Definition: This value type is defined by the following Format Definition: This value type is defined by the following
notation: notation:
date-time = date "T" time ;As specified in the date and time date-time = date "T" time ;As specified in the date and time
;value definitions ;value definitions
Description: If the property permits, multiple "date-time" values Description: If the property permits, multiple "date-time" values
are specified as a COMMA character (US-ASCII decimal 44) separated are specified as a COMMA character (US-ASCII decimal 44) separated
list of values. No additional content value encoding (i.e., list of values. No additional content value encoding (i.e.,
BACKSLASH character encoding) is defined for this value type. BACKSLASH character encoding, see Section 3.3.11) is defined for
this value type.
The "DATE-TIME" value type is used to identify values that contain The "DATE-TIME" value type is used to identify values that contain
a precise calendar date and time of day. The format is based on a precise calendar date and time of day. The format is based on
the [ISO.8601.2004] complete representation, basic format for a the [ISO.8601.2004] complete representation, basic format for a
calendar date and time of day. The text format is a concatenation calendar date and time of day. The text format is a concatenation
of the "date", followed by the LATIN CAPITAL LETTER T character of the "date", followed by the LATIN CAPITAL LETTER T character
(US-ASCII decimal 84) time designator, followed by the "time" (US-ASCII decimal 84) time designator, followed by the "time"
format. format.
The "DATE-TIME" value type expresses time values in three forms: The "DATE-TIME" value type expresses time values in three forms:
skipping to change at page 34, line 4 skipping to change at page 35, line 6
the iCalendar object. the iCalendar object.
FORM #2: DATE WITH UTC TIME FORM #2: DATE WITH UTC TIME
The date with UTC time, or absolute time, is identified by a LATIN The date with UTC time, or absolute time, is identified by a LATIN
CAPITAL LETTER Z suffix character (US-ASCII decimal 90), the UTC CAPITAL LETTER Z suffix character (US-ASCII decimal 90), the UTC
designator, appended to the time value. For example, the designator, appended to the time value. For example, the
following represents January 19, 1998, at 0700 UTC: following represents January 19, 1998, at 0700 UTC:
19980119T070000Z 19980119T070000Z
The "TZID" property parameter MUST NOT be applied to DATE-TIME The "TZID" property parameter MUST NOT be applied to DATE-TIME
properties whose time values are specified in UTC. properties whose time values are specified in UTC.
FORM #3: DATE WITH LOCAL TIME AND TIME ZONE REFERENCE FORM #3: DATE WITH LOCAL TIME AND TIME ZONE REFERENCE
The date and local time with reference to time zone information is The date and local time with reference to time zone information is
identified by the use the "TZID" property parameter to reference identified by the use the "TZID" property parameter to reference
the appropriate time zone definition. "TZID" is discussed in the appropriate time zone definition. "TZID" is discussed in
detail in Section 3.2.18. For example, the following represents detail in Section 3.2.19. For example, the following represents
2:00 A.M. in New York on Janurary 19, 1998: 2:00 A.M. in New York on Janurary 19, 1998:
TZID=America/New_York:19980119T020000 TZID=America/New_York:19980119T020000
If, based on the definition of the referenced time zone, the local If, based on the definition of the referenced time zone, the local
time described occurs more than once (when changing from daylight time described occurs more than once (when changing from daylight
to standard time), the DATE-TIME value refers to the first to standard time), the DATE-TIME value refers to the first
occurence of the referenced time. Thus, TZID=America/ occurence of the referenced time. Thus, TZID=America/
New_York:20071104T013000 indicates November 4, 2007 at 1:30 A.M. New_York:20071104T013000 indicates November 4, 2007 at 1:30 A.M.
EDT (UTC-04:00). If the local time described does not occur (when EDT (UTC-04:00). If the local time described does not occur (when
skipping to change at page 35, line 47 skipping to change at page 36, line 50
seconds MUST NOT be considered when computing an exact duration. seconds MUST NOT be considered when computing an exact duration.
When computing an exact duration, the greatest order time When computing an exact duration, the greatest order time
components MUST be added first, that is, the number of weeks MUST components MUST be added first, that is, the number of weeks MUST
be added first, followed by the number of days, number of hours, be added first, followed by the number of days, number of hours,
number of minutes, and number of seconds. number of minutes, and number of seconds.
Negative durations are typically used to schedule an alarm to Negative durations are typically used to schedule an alarm to
trigger before an associated time (see Section 3.8.6.3). trigger before an associated time (see Section 3.8.6.3).
No additional content value encoding (i.e., BACKSLASH character No additional content value encoding (i.e., BACKSLASH character
encoding) are defined for this value type. encoding, see Section 3.3.11) are defined for this value type.
Example: A duration of 15 days, 5 hours and 20 seconds would be: Example: A duration of 15 days, 5 hours and 20 seconds would be:
P15DT5H0M20S P15DT5H0M20S
A duration of 7 weeks would be: A duration of 7 weeks would be:
P7W P7W
3.3.7. Float 3.3.7. Float
skipping to change at page 36, line 30 skipping to change at page 37, line 30
Format Definition: This value type is defined by the following Format Definition: This value type is defined by the following
notation: notation:
float = (["+"] / "-") 1*DIGIT ["." 1*DIGIT] float = (["+"] / "-") 1*DIGIT ["." 1*DIGIT]
Description: If the property permits, multiple "float" values are Description: If the property permits, multiple "float" values are
specified by a COMMA character (US-ASCII decimal 44) separated specified by a COMMA character (US-ASCII decimal 44) separated
list of values. list of values.
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, see Section 3.3.11) is defined for this value type.
Example: Example:
1000000.0000001 1000000.0000001
1.333 1.333
-3.14 -3.14
3.3.8. Integer 3.3.8. Integer
Value Name: INTEGER Value Name: INTEGER
skipping to change at page 37, line 11 skipping to change at page 38, line 11
notation: notation:
integer = (["+"] / "-") 1*DIGIT integer = (["+"] / "-") 1*DIGIT
Description: If the property permits, multiple "integer" values are Description: If the property permits, multiple "integer" values are
specified by a COMMA character (US-ASCII decimal 44) separated specified by a COMMA character (US-ASCII decimal 44) separated
list of values. The valid range for "integer" is -2147483648 to list of values. The valid range for "integer" is -2147483648 to
2147483647. If the sign is not specified, then the value is 2147483647. If the sign is not specified, then the value is
assumed to be positive. assumed to be positive.
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, see Section 3.3.11) is defined for this value type.
Example: Example:
1234567890 1234567890
-1234567890 -1234567890
+1234567890 +1234567890
432109876 432109876
3.3.9. Period of Time 3.3.9. Period of Time
skipping to change at page 38, line 20 skipping to change at page 39, line 20
ending at 07:00:00 UTC on January 2, 1997 would be: ending at 07:00:00 UTC on January 2, 1997 would be:
19970101T180000Z/19970102T070000Z 19970101T180000Z/19970102T070000Z
The period start at 18:00:00 on January 1, 1997 and lasting 5 The period start at 18:00:00 on January 1, 1997 and lasting 5
hours and 30 minutes would be: hours and 30 minutes would be:
19970101T180000Z/PT5H30M 19970101T180000Z/PT5H30M
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, see Section 3.3.11) is defined for this value type.
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: This value type is defined by the following Format Definition: This value type is defined by the following
notation: notation:
skipping to change at page 41, line 13 skipping to change at page 42, line 13
MONTHLY rule and every year for a YEARLY rule. MONTHLY rule and every year for a YEARLY rule.
The UNTIL rule part defines a DATE or DATE-TIME value which bounds The UNTIL rule part defines a DATE or DATE-TIME value which bounds
the recurrence rule in an inclusive manner. If the value the recurrence rule in an inclusive manner. If the value
specified by UNTIL is synchronized with the specified recurrence, specified by UNTIL is synchronized with the specified recurrence,
this DATE or DATE-TIME becomes the last instance of the this DATE or DATE-TIME becomes the last instance of the
recurrence. The value of the UNTIL rule part MUST have the same recurrence. The value of the UNTIL rule part MUST have the same
value type as the "DTSTART" property. Furthermore, if the value type as the "DTSTART" property. Furthermore, if the
"DTSTART" property is specified as a date with local time, then "DTSTART" property is specified as a date with local time, then
the UNTIL rule part MUST also be specified as a date with local the UNTIL rule part MUST also be specified as a date with local
time. Else, if the "DTSTART" property is specified as a date with time. If the "DTSTART" property is specified as a date with UTC
UTC time or a date with local time and time zone reference, then time or a date with local time and time zone reference, then the
the UNTIL rule part MUST be specified as a date with UTC time. In UNTIL rule part MUST be specified as a date with UTC time. In the
the case of the "STANDARD" and "DAYLIGHT" sub-components the UNTIL case of the "STANDARD" and "DAYLIGHT" sub-components the UNTIL
rule part MUST always be specified as a date with UTC time. If rule part MUST always be specified as a date with UTC time. 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 always range-bound the recurrence. The "DTSTART" property value always
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
skipping to change at page 41, line 46 skipping to change at page 42, line 46
requirement (e.g., generated by applications that pre-date this requirement (e.g., generated by applications that pre-date this
revision of iCalendar). revision of iCalendar).
The BYDAY rule part specifies a COMMA character (US-ASCII decimal The BYDAY rule part specifies a COMMA character (US-ASCII decimal
44) separated list of days of the week; SU indicates Sunday; MO 44) separated list of days of the week; SU indicates Sunday; MO
indicates Monday; TU indicates Tuesday; WE indicates Wednesday; TH indicates Monday; TU indicates Tuesday; WE indicates Wednesday; TH
indicates Thursday; FR indicates Friday; SA indicates Saturday. indicates Thursday; FR indicates Friday; SA indicates Saturday.
Each BYDAY value can also be preceded by a positive (+n) or Each BYDAY value can also be preceded by a positive (+n) or
negative (-n) integer. If present, this indicates the nth negative (-n) integer. If present, this indicates the nth
occurrence of the specific day within the MONTHLY or YEARLY occurrence of a specific day within the MONTHLY or YEARLY "RRULE".
"RRULE". For example, within a MONTHLY rule, +1MO (or simply 1MO) For example, within a MONTHLY rule, +1MO (or simply 1MO)
represents the first Monday within the month, whereas -1MO represents the first Monday within the month, whereas -1MO
represents the last Monday of the month. If an integer modifier represents the last Monday of the month. The numeric value in a
is not present, it means all days of this type within the BYDAY rule part with the FREQ rule part set to YEARLY corresponds
to an offset within the month when the BYMONTH rule part is
present, and corresponds to an offset within the year when the
BYWEEKNO or BYMONTH rule parts are present. If an integer
modifier is not present, it means all days of this type within the
specified frequency. For example, within a MONTHLY rule, MO specified frequency. For example, within a MONTHLY rule, MO
represents all Mondays within the month. The BYDAY rule part MUST represents all Mondays within the month. The BYDAY rule part MUST
NOT be specified with a numeric value when the FREQ rule part is NOT be specified with a numeric value when the FREQ rule part is
not set to MONTHLY or YEARLY. Furthermore, the BYDAY rule part not set to MONTHLY or YEARLY. Furthermore, the BYDAY rule part
MUST NOT be specified with a numeric value with the FREQ rule part MUST NOT be specified with a numeric value with the FREQ rule part
set to YEARLY when the BYWEEKNO rule part is specified. The set to YEARLY when the BYWEEKNO rule part is specified.
numeric value in a BYDAY rule part with the FREQ rule part set to
YEARLY corresponds to an offset within the month when the BYMONTH
rule part is present, and corresponds to an offset within the year
when the BYWEEKNO or BYMONTH rule parts are present.
The BYMONTHDAY rule part specifies a COMMA character (US-ASCII The BYMONTHDAY rule part specifies a COMMA character (US-ASCII
decimal 44) separated list of days of the month. Valid values are decimal 44) separated list of days of the month. Valid values are
1 to 31 or -31 to -1. For example, -10 represents the tenth to 1 to 31 or -31 to -1. For example, -10 represents the tenth to
the last day of the month. The BYMONTHDAY rule part MUST NOT be the last day of the month. The BYMONTHDAY rule part MUST NOT be
specified when the FREQ rule part is set to WEEKLY. specified when the FREQ rule part is set to WEEKLY.
The BYYEARDAY rule part specifies a COMMA character (US-ASCII The BYYEARDAY rule part specifies a COMMA character (US-ASCII
decimal 44) separated list of days of the year. Valid values are decimal 44) separated list of days of the year. Valid values are
1 to 366 or -366 to -1. For example, -1 represents the last day 1 to 366 or -366 to -1. For example, -1 represents the last day
of the year (December 31st) and -306 represents the 306th to the of the year (December 31st) and -306 represents the 306th to the
last day of the year (March 1st). The BYYEARDAY rule part MUST last day of the year (March 1st). The BYYEARDAY rule part MUST
NOT be specified when the FREQ rule part is set to DAILY, WEEKLY, NOT be specified when the FREQ rule part is set to DAILY, WEEKLY,
and MONTHLY. or MONTHLY.
The BYWEEKNO rule part specifies a COMMA character (US-ASCII The BYWEEKNO rule part specifies a COMMA character (US-ASCII
decimal 44) separated list of ordinals specifying weeks of the decimal 44) separated list of ordinals specifying weeks of the
year. Valid values are 1 to 53 or -53 to -1. This corresponds to year. Valid values are 1 to 53 or -53 to -1. This corresponds to
weeks according to week numbering as defined in [ISO.8601.2004]. weeks according to week numbering as defined in [ISO.8601.2004].
A week is defined as a seven day period, starting on the day of A week is defined as a seven day period, starting on the day of
the week defined to be the week start (see WKST). Week number one the week defined to be the week start (see WKST). Week number one
of the calendar year is the first week which contains at least of the calendar year is the first week which contains at least
four (4) days in that calendar year. This rule part MUST NOT be four (4) days in that calendar year. This rule part MUST NOT be
used when the FREQ rule part is not set to YEARLY. For example, 3 used when the FREQ rule part is set to anything other than YEARLY.
represents the third week of the year. For example, 3 represents the third week of the year.
Note: Assuming a Monday week start, week 53 can only occur when Note: Assuming a Monday week start, week 53 can only occur when
Thursday is January 1 or if it is a leap year and Wednesday is Thursday is January 1 or if it is a leap year and Wednesday is
January 1. January 1.
The BYMONTH rule part specifies a COMMA character (US-ASCII The BYMONTH rule part specifies a COMMA character (US-ASCII
decimal 44) separated list of months of the year. Valid values decimal 44) separated list of months of the year. Valid values
are 1 to 12. are 1 to 12.
The WKST rule part specifies the day on which the workweek starts. The WKST rule part specifies the day on which the workweek starts.
Valid values are MO, TU, WE, TH, FR, SA and SU. This is Valid values are MO, TU, WE, TH, FR, SA and SU. This is
significant when a WEEKLY "RRULE" has an interval greater than 1, significant when a WEEKLY "RRULE" has an interval greater than 1,
and a BYDAY rule part is specified. This is also significant when and a BYDAY rule part is specified. This is also significant when
in a YEARLY "RRULE" when a BYWEEKNO rule part is specified. The in a YEARLY "RRULE" when a BYWEEKNO rule part is specified. The
default value is MO. default value is MO.
The BYSETPOS rule part specifies a COMMA character (US-ASCII The BYSETPOS rule part specifies a COMMA character (US-ASCII
decimal 44) separated list of values which corresponds to the nth decimal 44) separated list of values which corresponds to the nth
occurrence within the set of recurrence instances specified by the occurrence within the set of recurrence instances specified by the
rule. BYSETPOS operates on a set of recurrence instances in one rule. BYSETPOS operates on a set of recurrence instances in one
interval of the recurrence rule. For a WEEKLY rule, the interval interval of the recurrence rule. For example, in a WEEKLY rule,
is one week, for a MONTHLY rule, one month, and for a YEARLY rule, the interval would be one week A set of recurrence instances
one year. Valid values are 1 to 366 or -366 to -1. It MUST only starts at the beginning of the interval defined by the FREQ rule
be used in conjunction with another BYxxx rule part. For example part. Valid values are 1 to 366 or -366 to -1. It MUST only be
used in conjunction with another BYxxx rule part. For example
"the last work day of the month" could be represented as: "the last work day of the month" could be represented as:
FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1 FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
Each BYSETPOS value can include a positive (+n) or negative (-n) Each BYSETPOS value can include a positive (+n) or negative (-n)
integer. If present, this indicates the nth occurrence of the integer. If present, this indicates the nth occurrence of the
specific occurrence within the set of occurences specified by the specific occurrence within the set of occurences specified by the
rule. rule.
Recurrence rules may generate recurrence instances with invalid Recurrence rules may generate recurrence instances with invalid
skipping to change at page 45, line 26 skipping to change at page 46, line 33
minute, hour, day or month would have been retrieved from the minute, hour, day or month would have been retrieved from the
"DTSTART" property. "DTSTART" property.
If the computed local start time of a recurrence instance does not If the computed local start time of a recurrence instance does not
exist, or occurs more than once, for the specified time zone, the exist, or occurs more than once, for the specified time zone, the
time of the recurrence instance is interpreted in the same manner time of the recurrence instance is interpreted in the same manner
as an explicit DATE-TIME value describing that date and time, as as an explicit DATE-TIME value describing that date and time, as
specified in Section 3.3.5. specified in Section 3.3.5.
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, see Section 3.3.11) is defined for this value type.
Example: The following is a rule which specifies 10 occurences which Example: The following is a rule which specifies 10 occurences which
occur every other day: occur every other day:
FREQ=DAILY;COUNT=10;INTERVAL=2 FREQ=DAILY;COUNT=10;INTERVAL=2
There are other examples specified in Section 3.8.5.3. There are other examples specified in Section 3.8.5.3.
3.3.11. Text 3.3.11. Text
skipping to change at page 47, line 27 skipping to change at page 48, line 27
time-hour = 2DIGIT ;00-23 time-hour = 2DIGIT ;00-23
time-minute = 2DIGIT ;00-59 time-minute = 2DIGIT ;00-59
time-second = 2DIGIT ;00-60 time-second = 2DIGIT ;00-60
;The "60" value is used to account for positive "leap" seconds. ;The "60" value is used to account for positive "leap" seconds.
time-utc = "Z" time-utc = "Z"
Description: If the property permits, multiple "time" values are Description: If the property permits, multiple "time" values are
specified by a COMMA character (US-ASCII decimal 44) separated specified by a COMMA character (US-ASCII decimal 44) separated
list of values. No additional content value encoding (i.e., list of values. No additional content value encoding (i.e.,
BACKSLASH character encoding) is defined for this value type. BACKSLASH character encoding, see Section 3.3.11) is defined for
this value type.
The "TIME" value type is used to identify values that contain a The "TIME" value type is used to identify values that contain a
time of day. The format is based on the [ISO.8601.2004] complete time of day. The format is based on the [ISO.8601.2004] complete
representation, basic format for a time of day. The text format representation, basic format for a time of day. The text format
consists of a two-digit 24-hour of the day (i.e., values 00-23), consists of a two-digit 24-hour of the day (i.e., values 00-23),
two-digit minute in the hour (i.e., values 00-59), and two-digit two-digit minute in the hour (i.e., values 00-59), and two-digit
seconds in the minute (i.e., values 00-60). The seconds value of seconds in the minute (i.e., values 00-60). The seconds value of
60 MUST only be used to account for positive "leap" seconds. 60 MUST only be used to account for positive "leap" seconds.
Fractions of a second are not supported by this format. Fractions of a second are not supported by this format.
skipping to change at page 48, line 44 skipping to change at page 49, line 47
070000Z 070000Z
The "TZID" property parameter MUST NOT be applied to TIME The "TZID" property parameter MUST NOT be applied to TIME
properties whose time values are specified in UTC. properties whose time values are specified in UTC.
FORM #3: LOCAL TIME AND TIME ZONE REFERENCE FORM #3: LOCAL TIME AND TIME ZONE REFERENCE
The local time with reference to time zone information form is The local time with reference to time zone information form is
identified by the use the "TZID" property parameter to reference identified by the use the "TZID" property parameter to reference
the appropriate time zone definition. "TZID" is discussed in the appropriate time zone definition. "TZID" is discussed in
detail in Section 3.2.18. detail in Section 3.2.19.
Example: The following represents 8:30 AM in New York in Winter, Example: The following represents 8:30 AM in New York in Winter,
five hours behind UTC, in each of the three formats: five hours behind UTC, in each of the three formats:
083000 083000
133000Z 133000Z
TZID=America/New_York:083000 TZID=America/New_York:083000
3.3.13. URI 3.3.13. URI
Value Name: URI Value Name: URI
Purpose: This value type is used to identify values that contain a Purpose: This value type is used to identify values that contain a
uniform resource identifier (URI) type of reference to the uniform resource identifier (URI) type of reference to the
property value. property value.
skipping to change at page 49, line 30 skipping to change at page 50, line 34
information, for values that are large, or otherwise undesirable information, for values that are large, or otherwise undesirable
to include directly in the iCalendar object. to include directly in the iCalendar object.
Property values with this value type MUST follow the generic URI Property values with this value type MUST follow the generic URI
syntax defined in [RFC3986]. syntax defined in [RFC3986].
When a property parameter value is a URI value type, the URI MUST When a property parameter value is a URI value type, the URI MUST
be specified as a quoted-string value. be specified as a quoted-string value.
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, see Section 3.3.11) is defined for this value type.
Example: The following is a URI for a network file: Example: The following is a URI for a network file:
http://example.com/my-report.txt http://example.com/my-report.txt
3.3.14. UTC Offset 3.3.14. UTC Offset
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
skipping to change at page 50, line 4 skipping to change at page 51, line 8
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: This value type is defined by the following Format Definition: This value type is defined by the following
notation: notation:
utc-offset = time-numzone utc-offset = time-numzone
time-numzone = ("+" / "-") time-hour time-minute [time-second] time-numzone = ("+" / "-") time-hour time-minute [time-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, MUST and "-000000" are not allowed. The time-second, if present, MUST
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, see Section 3.3.11) is defined for this value type.
Example: The following UTC offsets are given for standard time for Example: The following UTC offsets are given for standard time for
New York (five hours behind UTC) and Geneva (one hour ahead of New York (five hours behind UTC) and Geneva (one hour ahead of
UTC): UTC):
-0500 -0500
+0100 +0100
3.4. iCalendar Object 3.4. iCalendar Object
skipping to change at page 57, line 34 skipping to change at page 58, line 34
; the following is OPTIONAL, ; the following is OPTIONAL,
; but SHOULD NOT occur more than once ; but SHOULD NOT occur more than once
rrule / 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'.
; If 'duration' appear in a 'todoprop', ; If 'duration' appear in a 'todoprop',
; then 'dtstart' MUST also appear in ; then 'dtstart' MUST also appear in
' the same 'todoprop'. ; 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 / rstatus / related / resources / exdate / rstatus / related / resources /
rdate / x-prop / iana-prop rdate / x-prop / iana-prop
skipping to change at page 61, line 19 skipping to change at page 62, line 19
fbprop = *( fbprop = *(
; 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
contact / dtstart / dtend / duration / dtstamp / contact / dtstart / dtend / duration /
organizer / uid / url / organizer / url /
; the following are OPTIONAL, ; the following are OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
attendee / comment / freebusy / rstatus / x-prop / attendee / comment / freebusy / rstatus / x-prop /
iana-prop iana-prop
) )
Description: A "VFREEBUSY" calendar component is a grouping of Description: A "VFREEBUSY" calendar component is a grouping of
component properties that represents either a request for, a reply component properties that represents either a request for, a reply
skipping to change at page 76, line 27 skipping to change at page 77, line 27
In an EMAIL alarm, the intended alarm effect is for an email In an EMAIL alarm, the intended alarm effect is for an email
message to be composed and delivered to all the addresses message to be composed and delivered to all the addresses
specified by the "ATTENDEE" properties in the "VALARM" calendar specified by the "ATTENDEE" properties in the "VALARM" calendar
component. The "DESCRIPTION" property of the "VALARM" calendar component. The "DESCRIPTION" property of the "VALARM" calendar
component MUST be used as the body text of the message, and the component MUST be used as the body text of the message, and the
"SUMMARY" property MUST be used as the subject text. Any "ATTACH" "SUMMARY" property MUST be used as the subject text. Any "ATTACH"
properties in the "VALARM" calendar component SHOULD be sent as properties in the "VALARM" calendar component SHOULD be sent as
attachments to the message. attachments to the message.
Note: Implementations should carefully consider whether they
accept alarm components from untrusted sources, e.g., when
importing calendar objects from external sources. One
reasonable policy is to always ignore alarm components that the
calendar user has not set herself, or at least ask for
confirmation in such a case.
Example: The following example is for a "VALARM" calendar component Example: The following example is for a "VALARM" calendar component
that specifies an audio alarm that will sound at a precise time that specifies an audio alarm that will sound at a precise time
and repeat 4 more times at 15 minute intervals: and repeat 4 more times at 15 minute intervals:
BEGIN:VALARM BEGIN:VALARM
TRIGGER;VALUE=DATE-TIME:19970317T133000Z TRIGGER;VALUE=DATE-TIME:19970317T133000Z
REPEAT:4 REPEAT:4
DURATION:PT15M DURATION:PT15M
ACTION:AUDIO ACTION:AUDIO
ATTACH;FMTTYPE=audio/basic:ftp://example.com/pub/ ATTACH;FMTTYPE=audio/basic:ftp://example.com/pub/
skipping to change at page 81, line 32 skipping to change at page 82, line 50
Value Type: The default value type for this property is URI. The Value Type: The default value type for this property is URI. The
value type can also be set to BINARY to indicate inline binary value type can also be set to BINARY to indicate inline binary
encoded content information. encoded content information.
Property Parameters: IANA, non-standard, inline encoding, format Property Parameters: IANA, non-standard, inline encoding, format
type and value data type property parameters can be specified on type and value data type property parameters can be specified on
this property. this property.
Conformance: This property can be specified multiple times in a Conformance: This property can be specified multiple times in a
"VEVENT", "VTODO", "VJOURNAL" or "VALARM" calendar component with "VEVENT", "VTODO", "VJOURNAL" or "VALARM" calendar component with
the exception of AUDIO alarm which only allow this property to the exception of AUDIO alarm which only allows this property to
occur once. occur once.
Description: This property is used in "VEVENT", "VTODO", and Description: This property is used in "VEVENT", "VTODO", and
"VJOURNAL" calendar components to associate a resource (e.g., "VJOURNAL" calendar components to associate a resource (e.g.,
document) with the calendar component. This property is used in document) with the calendar component. This property is used in
"VALARM" calendar components to specify an audio sound resource or "VALARM" calendar components to specify an audio sound resource or
an email message attachment. This property can be specified as a an email message attachment. This property can be specified as a
URI pointing to a resource or as inline binary encoded content. URI pointing to a resource or as inline binary encoded content.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
skipping to change at page 84, line 14 skipping to change at page 85, line 30
authentication, authorization, access rights, access role, etc.). authentication, authorization, access rights, access role, etc.).
Hence, the semantics of the individual access classifications Hence, the semantics of the individual access classifications
cannot be completely defined by this memo alone. Additionally, cannot be completely defined by this memo alone. Additionally,
due to the "blind" nature of most exchange processes using this due to the "blind" nature of most exchange processes using this
memo, these access classifications cannot serve as an enforcement memo, these access classifications cannot serve as an enforcement
statement for a system receiving an iCalendar object. Rather, statement for a system receiving an iCalendar object. Rather,
they provide a method for capturing the intention of the calendar they provide a method for capturing the intention of the calendar
owner for the access to the calendar component. If not specified owner for the access to the calendar component. If not specified
in a component that allows this property, the default value is in a component that allows this property, the default value is
PUBLIC. Applications MUST treat x-name and iana-token value they PUBLIC. Applications MUST treat x-name and iana-token value they
don't recognized the same way as the PRIVATE value. don't recognized the same way as they would the PRIVATE value.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
class = "CLASS" classparam ":" classvalue CRLF class = "CLASS" classparam ":" classvalue CRLF
classparam = *(";" other-param) classparam = *(";" other-param)
classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token
/ x-name / x-name
skipping to change at page 98, line 15 skipping to change at page 99, line 22
Value Type: The default value type is DATE-TIME. The value type can Value Type: The default value type is DATE-TIME. The value type can
be set to a DATE value type. be set to a DATE value type.
Property Parameters: IANA, non-standard, value data type, and time Property Parameters: IANA, non-standard, value data type, and time
zone identifier property parameters can be specified on this zone identifier property parameters can be specified on this
property. property.
Conformance: The property can be specified once in a "VTODO" Conformance: The property can be specified once in a "VTODO"
calendar component. calendar component.
Description: This property defines the date and time that a to-do is Description: This property defines the date and time before which a
expected to be completed. For cases where this property is to-do is expected to be completed. For cases where this property
specified in a "VTODO" calendar component that also specifies a is specified in a "VTODO" calendar component that also specifies a
"DTSTART" property, the value type of this property MUST be the "DTSTART" property, the value type of this property MUST be the
same as the "DTSTART" property, and the value of this property same as the "DTSTART" property, and the value of this property
MUST be later in time than the value of the "DTSTART" property. MUST be later in time than the value of the "DTSTART" property.
Furthermore, this property MUST be specified as a date with local Furthermore, this property MUST be specified as a date with local
time if and only if the "DTSTART" property is also specified as a time if and only if the "DTSTART" property is also specified as a
date with local time. date with local time.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
skipping to change at page 115, line 11 skipping to change at page 116, line 11
"VEVENT", "VTODO" or "VJOURNAL" calendar component. The property "VEVENT", "VTODO" or "VJOURNAL" calendar component. The property
value is the original value of the "DTSTART" property of the value is the original value of the "DTSTART" property of the
recurrence instance. recurrence instance.
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 time format can be any of the valid forms defined for a DATE- The time format can be any of the valid forms defined for a DATE-
TIME value type. See DATE-TIME value type definition for specific TIME value type. See DATE-TIME value type definition for specific
interpretations of the various forms. The value type can be set interpretations of the various forms. The value type can be set
to DATE. to DATE.
Property Parameters: IANA, non-standard, value data type, and time Property Parameters: IANA, non-standard, value data type, time zone
zone identifier parameters can be specified on this property. identifier and recurrence identifier range parameters can be
specified on this property.
Conformance: This property can be specified in an iCalendar object Conformance: This property can be specified in an iCalendar object
containing a recurring calendar component. containing a recurring calendar component.
Description: The full range of calendar components specified by a Description: The full range of calendar components specified by a
recurrence set is referenced by referring to just the "UID" recurrence set is referenced by referring to just the "UID"
property value corresponding to the calendar component. The property value corresponding to the calendar component. The
"RECURRENCE-ID" property allows the reference to an individual "RECURRENCE-ID" property allows the reference to an individual
instance within the recurrence set. instance within the recurrence set.
skipping to change at page 115, line 37 skipping to change at page 116, line 38
recurrence instance would occur; meaning that if the intent is to recurrence instance would occur; meaning that if the intent is to
change a Friday meeting to Thursday, the date/time is still set to change a Friday meeting to Thursday, the date/time is still set to
the original Friday meeting. the original Friday meeting.
The "RECURRENCE-ID" property is used in conjunction with the "UID" The "RECURRENCE-ID" property is used in conjunction with the "UID"
and "SEQUENCE" property to identify a particular instance of a and "SEQUENCE" property to identify a particular instance of a
recurring event, to-do or journal. For a given pair of "UID" and recurring event, to-do or journal. For a given pair of "UID" and
"SEQUENCE" property values, the "RECURRENCE-ID" value for a "SEQUENCE" property values, the "RECURRENCE-ID" value for a
recurrence instance is fixed. recurrence instance is fixed.
The "RANGE" parameter is used to specify the effective range of
recurrence instances from the instance specified by the
"RECURRENCE-ID" property value. The value for the range parameter
can only be "THISANDFUTURE" to indicate a range defined by the
given recurrence instance and all subsequent instances.
Subsequent instances are determined by their "RECURRENCE-ID" value
and not their current scheduled start time. Subsequent instances
defined in separate components are not impacted by the given
recurrence instance. When the given recurrence instance is
rescheduled, all subsequent instances are also rescheduled by the
same time difference. For instance, if the given recurrence
instance is rescheduled to start 2 hours later, then all
subsequent instances are also rescheduled 2 hours later.
Similarly, if the duration of the given recurrence instance is
modified, then all subsequence instances are also modified to have
this same duration.
Note: The "RANGE" parameter may not be appropriate to
reschedule specific subsequent instances of complex recurring
calendar component. Assuming an unbounded recurring calendar
component scheduled to occur on Mondays and Wednesdays, the
"RANGE" parameter could not be used to reschedule only the
future Monday instances to occur on Tuesday instead. In such
cases, the calendar application could simply truncate the
unbounded recurring calendar component (i.e., with the "COUNT"
or "UNTIL" rule parts), and create two new unbounded recurring
calendar components for the future instances.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: 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) / (";" tzidparam) / (";" rangeparam) /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" other-param) (";" other-param)
) )
ridval = date-time / date ridval = date-time / date
;Value MUST match value type ;Value MUST match value type
Example: The following are examples of this property: Example: The following are examples of this property:
RECURRENCE-ID;VALUE=DATE:19960401 RECURRENCE-ID;VALUE=DATE:19960401
RECURRENCE-ID:19960120T120000Z RECURRENCE-ID;RANGE=THISANDFUTURE:19960120T120000Z
3.8.4.5. Related To 3.8.4.5. Related To
Property Name: RELATED-TO Property Name: RELATED-TO
Purpose: This property is used to represent a relationship or Purpose: This property is used to represent a relationship or
reference between one calendar component and another. reference between one calendar component and another.
Value Type: TEXT Value Type: TEXT
Property Parameters: IANA, non-standard, and relationship type Property Parameters: IANA, non-standard, and relationship type
property parameters can be specified on this property. property parameters can be specified on this property.
skipping to change at page 119, line 16 skipping to change at page 120, line 34
Property Parameters: IANA and non-standard property parameters can Property Parameters: IANA and non-standard property parameters can
be specified on this property. be specified on this property.
Conformance: The property MUST be specified in the "VEVENT", Conformance: The property MUST be specified in the "VEVENT",
"VTODO", "VJOURNAL" or "VFREEBUSY" calendar components. "VTODO", "VJOURNAL" or "VFREEBUSY" calendar components.
Description: The "UID" itself MUST be a globally unique identifier. Description: The "UID" itself MUST be a globally unique identifier.
The generator of the identifier MUST guarantee that the identifier The generator of the identifier MUST guarantee that the identifier
is unique. There are several algorithms that can be used to is unique. There are several algorithms that can be used to
accomplish this. The identifier is RECOMMENDED to be the accomplish this. A good method to assure uniqueness is to put the
identical syntax to the [RFC2822] addr-spec. A good method to domain name or a domain literal IP address of the host on which
assure uniqueness is to put the domain name or a domain literal IP the identifier was created on the right hand side of an "@", and
address of the host on which the identifier was created on the on the left hand side, put a combination of the current calendar
right hand side of the "@", and on the left hand side, put a date and time of day (i.e., formatted in as a DATE-TIME value)
combination of the current calendar date and time of day (i.e., along with some other currently unique (perhaps sequential)
formatted in as a DATE-TIME value) along with some other currently identifier available on the system (for example, a process id
unique (perhaps sequential) identifier available on the system number). Using a date/time value on the left hand side and a
(for example, a process id number). Using a date/time value on domain name or domain literal on the right hand side makes it
the left hand side and a domain name or domain literal on the possible to guarantee uniqueness since no two hosts should be
right hand side makes it possible to guarantee uniqueness since no using the same domain name or IP address at the same time. Though
two hosts should be using the same domain name or IP address at other algorithms will work, it is RECOMMENDED that the right hand
the same time. Though other algorithms will work, it is side contain some domain identifier (either of the host itself or
RECOMMENDED that the right hand side contain some domain otherwise) such that the generator of the message identifier can
identifier (either of the host itself or otherwise) such that the guarantee the uniqueness of the left hand side within the scope of
generator of the message identifier can guarantee the uniqueness that domain.
of the left hand side within the scope of that domain.
This is the method for correlating scheduling messages with the This is the method for correlating scheduling messages with the
referenced "VEVENT", "VTODO", or "VJOURNAL" calendar component. referenced "VEVENT", "VTODO", or "VJOURNAL" calendar component.
The full range of calendar components specified by a recurrence The full range of calendar components specified by a recurrence
set is referenced by referring to just the "UID" property value set is referenced by referring to just the "UID" property value
corresponding to the calendar component. The "RECURRENCE-ID" corresponding to the calendar component. The "RECURRENCE-ID"
property allows the reference to an individual instance within the property allows the reference to an individual instance within the
recurrence set. recurrence set.
skipping to change at page 134, line 28 skipping to change at page 135, line 36
Property Parameters: IANA and non-standard property parameters can Property Parameters: IANA and non-standard property parameters can
be specified on this property. be specified on this property.
Conformance: This property MUST be specified once in a "VALARM" Conformance: This property MUST be specified once in a "VALARM"
calendar component. calendar component.
Description: Each "VALARM" calendar component has a particular type Description: Each "VALARM" calendar component has a particular type
of action associated with it. This property specifies the type of of action associated with it. This property specifies the type of
action. Applications MUST ignore alarms with x-name and iana- action. Applications MUST ignore alarms with x-name and iana-
token value they don't recognized. token value they don't recognize.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
action = "ACTION" actionparam ":" actionvalue CRLF action = "ACTION" actionparam ":" actionvalue CRLF
actionparam = *(";" other-param) actionparam = *(";" other-param)
actionvalue = "AUDIO" / "DISPLAY" / "EMAIL" actionvalue = "AUDIO" / "DISPLAY" / "EMAIL"
/ iana-token / x-name / iana-token / x-name
skipping to change at page 134, line 39 skipping to change at page 136, line 4
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
action = "ACTION" actionparam ":" actionvalue CRLF action = "ACTION" actionparam ":" actionvalue CRLF
actionparam = *(";" other-param) actionparam = *(";" other-param)
actionvalue = "AUDIO" / "DISPLAY" / "EMAIL" actionvalue = "AUDIO" / "DISPLAY" / "EMAIL"
/ iana-token / x-name / iana-token / x-name
Example: The following are examples of this property in a "VALARM" Example: The following are examples of this property in a "VALARM"
calendar component: calendar component:
ACTION:AUDIO ACTION:AUDIO
ACTION:DISPLAY ACTION:DISPLAY
3.8.6.2. Repeat Count 3.8.6.2. Repeat Count
Property Name: REPEAT Property Name: REPEAT
Purpose: This property defines the number of time the alarm should Purpose: This property defines the number of times the alarm should
be repeated, after the initial trigger. be repeated, after the initial trigger.
Value Type: INTEGER Value Type: INTEGER
Property Parameters: IANA and non-standard property parameters can Property Parameters: IANA and non-standard property parameters can
be specified on this property. be 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.
skipping to change at page 139, line 24 skipping to change at page 140, line 38
"VTODO", "VJOURNAL" or "VFREEBUSY" calendar components. "VTODO", "VJOURNAL" or "VFREEBUSY" calendar components.
Description: The value MUST be specified in the UTC time format. Description: The value MUST be specified in the UTC time format.
This property is also useful to protocols such as This property is also useful to protocols such as
[I-D.ietf-calsify-rfc2447bis] that have inherent latency issues [I-D.ietf-calsify-rfc2447bis] that have inherent latency issues
with the delivery of content. This property will assist in the with the delivery of content. This property will assist in the
proper sequencing of messages containing iCalendar objects. proper sequencing of messages containing iCalendar objects.
In the case of an iCalendar object that specifies a "METHOD" In the case of an iCalendar object that specifies a "METHOD"
property, this property is different than the "CREATED" and "LAST- property, this property differs from the "CREATED" and "LAST-
MODIFIED" properties. These two properties are used to specify MODIFIED" properties. These two properties are used to specify
when the particular calendar data in the calendar store was when the particular calendar data in the calendar store was
created and last modified. This is different than when the created and last modified. This is different than when the
iCalendar object representation of the calendar service iCalendar object representation of the calendar service
information was created or last modified. information was created or last modified.
In the case of an iCalendar object that doesn't specify a "METHOD" In the case of an iCalendar object that doesn't specify a "METHOD"
property, this property is equivalent to the "LAST-MODIFIED" property, this property is equivalent to the "LAST-MODIFIED"
property. property.
skipping to change at page 141, line 8 skipping to change at page 142, line 23
Property Parameters: IANA and non-standard property parameters can Property Parameters: IANA and non-standard property parameters can
be specified on this property. be specified on this property.
Conformance: The property can be specified in "VEVENT", "VTODO" or Conformance: The property can be specified in "VEVENT", "VTODO" or
"VJOURNAL" calendar component. "VJOURNAL" calendar component.
Description: When a calendar component is created, its sequence Description: When a calendar component is created, its sequence
number is zero (US-ASCII decimal 48). It is monotonically number is zero (US-ASCII decimal 48). It is monotonically
incremented by the "Organizer's" CUA each time the "Organizer" incremented by the "Organizer's" CUA each time the "Organizer"
makes a significant revision to the calendar component. When the makes a significant revision to the calendar component.
"Organizer" makes changes to one of the following properties, the
sequence number MUST be incremented:
* "DTSTART"
* "DTEND"
* "DURATION"
* "DUE"
* "RDATE"
* "RRULE"
* "EXDATE"
* "STATUS"
In addition, changes made by the "Organizer" to other properties
can also force the sequence number to be incremented. The
"Organizer" CUA MUST increment the sequence number whenever it
makes changes to properties in the calendar component that the
"Organizer" deems will jeopardize the validity of the
participation status of the "Attendees". For example, changing
the location of a meeting from one locale to another distant
locale could effectively impact the participation status of the
"Attendees".
The "Organizer" includes this property in an iCalendar object that The "Organizer" includes this property in an iCalendar object that
it sends to an "Attendee" to specify the current version of the it sends to an "Attendee" to specify the current version of the
calendar component. calendar component.
The "Attendee" includes this property in an iCalendar object that The "Attendee" includes this property in an iCalendar object that
it sends to the "Organizer" to specify the version of the calendar it sends to the "Organizer" to specify the version of the calendar
component that the "Attendee" is referring to. component that the "Attendee" is referring to.
A change to the sequence number is not the mechanism that an A change to the sequence number is not the mechanism that an
skipping to change at page 153, line 8 skipping to change at page 154, line 8
is up to the actual protocol specifications such as iTIP is up to the actual protocol specifications such as iTIP
[I-D.ietf-calsify-2446bis], iMIP [I-D.ietf-calsify-rfc2447bis], and [I-D.ietf-calsify-2446bis], iMIP [I-D.ietf-calsify-rfc2447bis], and
CalDAV [RFC4791] to describe the threats that the above attacks CalDAV [RFC4791] to describe the threats that the above attacks
present, as well as ways in which to mitigate them. present, as well as ways in which to mitigate them.
8. IANA Considerations 8. IANA Considerations
8.1. iCalendar Media Type Registration 8.1. iCalendar Media Type Registration
The Calendaring and Scheduling Core Object Specification is intended The Calendaring and Scheduling Core Object Specification is intended
for use as a MIME content type. However, the implementation of the for use as a MIME content type.
memo is in no way limited solely as a MIME content type.
To: ietf-types@iana.org To: ietf-types@iana.org
Subject: Registration of media type text/calendar Subject: Registration of media type text/calendar
Type name: text Type name: text
Subtype name: calendar Subtype name: calendar
Required parameters: none Required parameters: none
skipping to change at page 162, line 5 skipping to change at page 162, line 18
| LAST-MODIFIED | Current | RFCXXXX, Section 3.8.7.3 | | LAST-MODIFIED | Current | RFCXXXX, Section 3.8.7.3 |
| SEQUENCE | Current | RFCXXXX, Section 3.8.7.4 | | SEQUENCE | Current | RFCXXXX, Section 3.8.7.4 |
| REQUEST-STATUS | Current | RFCXXXX, Section 3.8.8.3 | | REQUEST-STATUS | Current | RFCXXXX, Section 3.8.8.3 |
+------------------+------------+---------------------------+ +------------------+------------+---------------------------+
8.3.3. Parameters Registry 8.3.3. Parameters Registry
The following table is to be used to initialize the parameters The following table is to be used to initialize the parameters
registry. registry.
+----------------+------------+-------------------------+ +----------------+---------+-------------------------+
| Parameter | Status | Reference | | Parameter | Status | Reference |
+----------------+------------+-------------------------+ +----------------+---------+-------------------------+
| ALTREP | Current | RFCXXXX, Section 3.2.1 | | ALTREP | Current | RFCXXXX, Section 3.2.1 |
| CN | Current | RFCXXXX, Section 3.2.2 | | CN | Current | RFCXXXX, Section 3.2.2 |
| CUTYPE | Current | RFCXXXX, Section 3.2.3 | | CUTYPE | Current | RFCXXXX, Section 3.2.3 |
| DELEGATED-FROM | Current | RFCXXXX, Section 3.2.4 | | DELEGATED-FROM | Current | RFCXXXX, Section 3.2.4 |
| DELEGATED-TO | Current | RFCXXXX, Section 3.2.5 | | DELEGATED-TO | Current | RFCXXXX, Section 3.2.5 |
| DIR | Current | RFCXXXX, Section 3.2.6 | | DIR | Current | RFCXXXX, Section 3.2.6 |
| ENCODING | Current | RFCXXXX, Section 3.2.7 | | ENCODING | Current | RFCXXXX, Section 3.2.7 |
| FMTTYPE | Current | RFCXXXX, Section 3.2.8 | | FMTTYPE | Current | RFCXXXX, Section 3.2.8 |
| FBTYPE | Current | RFCXXXX, Section 3.2.9 | | FBTYPE | Current | RFCXXXX, Section 3.2.9 |
| LANGUAGE | Current | RFCXXXX, Section 3.2.10 | | LANGUAGE | Current | RFCXXXX, Section 3.2.10 |
| MEMBER | Current | RFCXXXX, Section 3.2.11 | | MEMBER | Current | RFCXXXX, Section 3.2.11 |
| PARTSTAT | Current | RFCXXXX, Section 3.2.12 | | PARTSTAT | Current | RFCXXXX, Section 3.2.12 |
| RANGE | Deprecated | RFC2445, Section 4.2.13 | | RANGE | Current | RFCXXXX, Section 3.2.13 |
| RELATED | Current | RFCXXXX, Section 3.2.13 | | RELATED | Current | RFCXXXX, Section 3.2.14 |
| RELTYPE | Current | RFCXXXX, Section 3.2.14 | | RELTYPE | Current | RFCXXXX, Section 3.2.15 |
| ROLE | Current | RFCXXXX, Section 3.2.15 | | ROLE | Current | RFCXXXX, Section 3.2.16 |
| RSVP | Current | RFCXXXX, Section 3.2.16 | | RSVP | Current | RFCXXXX, Section 3.2.17 |
| SENT-BY | Current | RFCXXXX, Section 3.2.17 | | SENT-BY | Current | RFCXXXX, Section 3.2.18 |
| TZID | Current | RFCXXXX, Section 3.2.18 | | TZID | Current | RFCXXXX, Section 3.2.19 |
| VALUE | Current | RFCXXXX, Section 3.2.19 | | VALUE | Current | RFCXXXX, Section 3.2.20 |
+----------------+------------+-------------------------+ +----------------+---------+-------------------------+
8.3.4. Value Data Types Registry 8.3.4. Value Data Types Registry
The following table is to be used to initialize the value data types The following table is to be used to initialize the value data types
registry. registry.
+-----------------+---------+-------------------------+ +-----------------+---------+-------------------------+
| Value Data Type | Status | Reference | | Value Data Type | Status | Reference |
+-----------------+---------+-------------------------+ +-----------------+---------+-------------------------+
| BINARY | Current | RFCXXXX, Section 3.3.1 | | BINARY | Current | RFCXXXX, Section 3.3.1 |
skipping to change at page 164, line 13 skipping to change at page 164, line 30
+--------------------+---------+-------------------------+ +--------------------+---------+-------------------------+
8.3.8. Relationship Types Registry 8.3.8. Relationship Types Registry
The following table is to be used to initialize the property The following table is to be used to initialize the property
parameters registry. parameters registry.
+-------------------+---------+-------------------------+ +-------------------+---------+-------------------------+
| Relationship Type | Status | Reference | | Relationship Type | Status | Reference |
+-------------------+---------+-------------------------+ +-------------------+---------+-------------------------+
| CHILD | Current | RFCXXXX, Section 3.2.14 | | CHILD | Current | RFCXXXX, Section 3.2.15 |
| PARENT | Current | RFCXXXX, Section 3.2.14 | | PARENT | Current | RFCXXXX, Section 3.2.15 |
| SIBLING | Current | RFCXXXX, Section 3.2.14 | | SIBLING | Current | RFCXXXX, Section 3.2.15 |
+-------------------+---------+-------------------------+ +-------------------+---------+-------------------------+
8.3.9. Participation Roles Registry 8.3.9. Participation Roles Registry
The following table is to be used to initialize the participation The following table is to be used to initialize the participation
roles registry. roles registry.
+-----------------+---------+-------------------------+ +-----------------+---------+-------------------------+
| Role Type | Status | Reference | | Role Type | Status | Reference |
+-----------------+---------+-------------------------+ +-----------------+---------+-------------------------+
| CHAIR | Current | RFCXXXX, Section 3.2.15 | | CHAIR | Current | RFCXXXX, Section 3.2.16 |
| REQ-PARTICIPANT | Current | RFCXXXX, Section 3.2.15 | | REQ-PARTICIPANT | Current | RFCXXXX, Section 3.2.16 |
| OPT-PARTICIPANT | Current | RFCXXXX, Section 3.2.15 | | OPT-PARTICIPANT | Current | RFCXXXX, Section 3.2.16 |
| NON-PARTICIPANT | Current | RFCXXXX, Section 3.2.15 | | NON-PARTICIPANT | Current | RFCXXXX, Section 3.2.16 |
+-----------------+---------+-------------------------+ +-----------------+---------+-------------------------+
8.3.10. Actions Registry 8.3.10. Actions Registry
The following table is to be used to initialize the actions registry. The following table is to be used to initialize the actions registry.
+-----------+------------+--------------------------+ +-----------+------------+--------------------------+
| Action | Status | Reference | | Action | Status | Reference |
+-----------+------------+--------------------------+ +-----------+------------+--------------------------+
| AUDIO | Current | RFCXXXX, Section 3.8.6.1 | | AUDIO | Current | RFCXXXX, Section 3.8.6.1 |
skipping to change at page 166, line 26 skipping to change at page 166, line 45
RFC 2046, November 1996. RFC 2046, November 1996.
[RFC2119] Bradner, S., "Key words for use in [RFC2119] Bradner, S., "Key words for use in
RFCs to Indicate Requirement Levels", RFCs to Indicate Requirement Levels",
BCP 14, RFC 2119, March 1997. BCP 14, RFC 2119, March 1997.
[RFC2368] Hoffman, P., Masinter, L., and J. [RFC2368] Hoffman, P., Masinter, L., and J.
Zawinski, "The mailto URL scheme", Zawinski, "The mailto URL scheme",
RFC 2368, July 1998. RFC 2368, July 1998.
[RFC2822] Resnick, P., "Internet Message
Format", RFC 2822, April 2001.
[RFC3629] Yergeau, F., "UTF-8, a transformation [RFC3629] Yergeau, F., "UTF-8, a transformation
format of ISO 10646", STD 63, format of ISO 10646", STD 63,
RFC 3629, November 2003. RFC 3629, November 2003.
[RFC3986] Berners-Lee, T., Fielding, R., and L. [RFC3986] Berners-Lee, T., Fielding, R., and L.
Masinter, "Uniform Resource Identifier Masinter, "Uniform Resource Identifier
(URI): Generic Syntax", STD 66, (URI): Generic Syntax", STD 66,
RFC 3986, January 2005. RFC 3986, January 2005.
[RFC4234] Crocker, D., Ed. and P. Overell,
"Augmented BNF for Syntax
Specifications: ABNF", RFC 4234,
October 2005.
[RFC4646] Phillips, A. and M. Davis, "Tags for [RFC4646] Phillips, A. and M. Davis, "Tags for
Identifying Languages", BCP 47, Identifying Languages", BCP 47,
RFC 4646, September 2006. RFC 4646, September 2006.
[RFC4648] Josefsson, S., "The Base16, Base32, [RFC4648] Josefsson, S., "The Base16, Base32,
and Base64 Data Encodings", RFC 4648, and Base64 Data Encodings", RFC 4648,
October 2006. October 2006.
[RFC5234] Crocker, D. and P. Overell, "Augmented
BNF for Syntax Specifications: ABNF",
STD 68, RFC 5234, January 2008.
10.2. Informative References 10.2. Informative References
[I-D.ietf-calsify-2446bis] Daboo, C., "iCalendar Transport- [I-D.ietf-calsify-2446bis] Daboo, C., "iCalendar Transport-
Independent Interoperability Protocol Independent Interoperability Protocol
(iTIP)", draft-ietf-calsify-2446bis-03 (iTIP)", draft-ietf-calsify-2446bis-04
(work in progress), March 2007. (work in progress), November 2007.
[I-D.ietf-calsify-rfc2447bis] Melnikov, A., "iCalendar Message-Based [I-D.ietf-calsify-rfc2447bis] Melnikov, A., "iCalendar Message-Based
Interoperability Protocol(iMIP)", Interoperability Protocol(iMIP)",
draft-ietf-calsify-rfc2447bis-03 (work draft-ietf-calsify-rfc2447bis-03 (work
in progress), February 2007. in progress), February 2007.
[RFC2392] Levinson, E., "Content-ID and [RFC2392] Levinson, E., "Content-ID and
Message-ID Uniform Resource Locators", Message-ID Uniform Resource Locators",
RFC 2392, August 1998. RFC 2392, August 1998.
skipping to change at page 168, line 44 skipping to change at page 169, line 9
A.2. Restrictions removed A.2. Restrictions removed
1. The "DTSTART" and "DTEND" properties are no longer required to be 1. The "DTSTART" and "DTEND" properties are no longer required to be
specified as date with local time and time zone reference when specified as date with local time and time zone reference when
used with a recurrence rule. used with a recurrence rule.
A.3. Deprecated features A.3. Deprecated features
1. The "EXRULE" property can no longer be specified in a component. 1. The "EXRULE" property can no longer be specified in a component.
2. The "RANGE" parameter can no longer be specified on the 2. The "THISANDPRIOR" value can no longer be used with the "RANGE"
"RECURRENCE-ID" property. parameter.
3. The "PROCEDURE" value can no longer be used with the "ACTION" 3. The "PROCEDURE" value can no longer be used with the "ACTION"
property. property.
4. x-name rule parts can no longer be specified in properties of 4. x-name rule parts can no longer be specified in properties of
RECUR value type (e.g., RRULE). x-param can be used on RECUR RECUR value type (e.g., RRULE). x-param can be used on RECUR
value type properties instead. value type properties instead.
Appendix B. Change Log (to be removed by RFC Editor prior to Appendix B. Change Log (to be removed by RFC Editor prior to
publication) publication)
B.1. Changes in -07 B.1. Changes in -08
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-08.changes.html.
a. Issue 48: Revert the change to deprecate the "RANGE" parameter.
Only the value "THISANDPRIOR" is deprecated.
b. Issue 81: BYSETPOS: Clarify that "a set" starts at the beginning
of the interval defined by the FREQ rule part.
c. Chair Review: Changed requirement to handle unrecognized CUTYPE
values.
d. Chair Review: Changed requirement to handle unrecognized VALUE
data types.
e. Chair Review: Removed requirements for "DELEGATED-TO" and
"DELEGATED-FROM" to be specified as mailto URI.
f. Chair Review: Added note about alarms from untrusted sources.
g. Chair Review: Added text to clarify the structure of the
document.
h. Chair Review: Added forward reference to the section covering
BACKSLASH character encoding.
i. Removed the text that specifies when the sequence number MUST be
incremented. Text will be added to rfc2446bis.
j. Removed normative reference to RFC2822.
k. Changed reference of RFC4234 to RFC5234.
l. Few editorial changes.
B.2. Changes in -07
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-07.changes.html. draft-ietf-calsify-rfc2445bis-07.changes.html.
a. Issue 8: Clarified how to compute the exact duration of a nominal a. Issue 8: Clarified how to compute the exact duration of a nominal
duration. duration.
b. Issue 10: Added new examples for "VEVENT" and "VTODO" to b. Issue 10: Added new examples for "VEVENT" and "VTODO" to
demonstrate that end times are always non-inclusive, that is, demonstrate that end times are always non-inclusive, that is,
skipping to change at page 170, line 29 skipping to change at page 171, line 33
s. Clarified some differences with ISO 8601. s. Clarified some differences with ISO 8601.
t. Updated reference to CalDAV and ISO 8601. t. Updated reference to CalDAV and ISO 8601.
u. Updated section "Differences from RFC 2445": added new u. Updated section "Differences from RFC 2445": added new
restrictions and added list of removed restrictions. restrictions and added list of removed restrictions.
v. Numerous editorial changes. v. Numerous editorial changes.
B.2. Changes in -06 B.3. Changes in -06
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-06.changes.html. draft-ietf-calsify-rfc2445bis-06.changes.html.
a. Issue 19: Defined new IANA registries. [Work in progress]; a. Issue 19: Defined new IANA registries. [Work in progress];
b. Issue 23: Clarified that the UNTIL rule part MUST specify a value b. Issue 23: Clarified that the UNTIL rule part MUST specify a value
of the same type as the value specified by "DTSTART"; of the same type as the value specified by "DTSTART";
skipping to change at page 171, line 48 skipping to change at page 173, line 4
p. Issue 74: Deprecated the "PROCEDURE" value for the "ACTION" p. Issue 74: Deprecated the "PROCEDURE" value for the "ACTION"
property; property;
q. Issue 78: Fixed the text to specify that "TZOFFSETFROM" and not q. Issue 78: Fixed the text to specify that "TZOFFSETFROM" and not
"TZOFFSETTO" must be used with "DTSTART" when generating the "TZOFFSETTO" must be used with "DTSTART" when generating the
onset date-time values from the "RRULE" in a "VTIMEZONE" onset date-time values from the "RRULE" in a "VTIMEZONE"
component; component;
r. Clarified that the "DTSTART" property MUST be specified in a r. Clarified that the "DTSTART" property MUST be specified in a
"VTODO" component when the "DURATION" property is specified; "VTODO" component when the "DURATION" property is specified;
s. Started to update the time zone information / examples; s. Started to update the time zone information / examples;
t. Numerous editorial changes. t. Numerous editorial changes.
B.3. Changes in -05 B.4. Changes in -05
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-05.changes.html. draft-ietf-calsify-rfc2445bis-05.changes.html.
a. Fixed ABNF with references in .txt version of the draft; a. Fixed ABNF with references in .txt version of the draft;
b. Numerous editorial changes; b. Numerous editorial changes;
c. Clarified that normative statements in ABNF comments should be c. Clarified that normative statements in ABNF comments should be
skipping to change at page 172, line 36 skipping to change at page 173, line 38
g. Changed the partstatparam ABNF rule for clarity; g. Changed the partstatparam ABNF rule for clarity;
h. Clarified the purpose of negative durations; h. Clarified the purpose of negative durations;
i. Added informational references to RFC 2392 (CID URL) and RFC 4516 i. Added informational references to RFC 2392 (CID URL) and RFC 4516
(LDAP URL). (LDAP URL).
j. Updated TZDB reference. j. Updated TZDB reference.
B.4. Changes in -04 B.5. Changes in -04
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-04.changes.html. draft-ietf-calsify-rfc2445bis-04.changes.html.
a. Issue 16: Clarified that recurrence instances, generated by a a. Issue 16: Clarified that recurrence instances, generated by a
recurrence rule, with an invalid date or nonexistent local time recurrence rule, with an invalid date or nonexistent local time
must be ignored and not counted as part of the recurrence set. must be ignored and not counted as part of the recurrence set.
b. Issue 26: Clarified how to handle the BYHOUR, BYMINUTE and b. Issue 26: Clarified how to handle the BYHOUR, BYMINUTE and
skipping to change at page 174, line 9 skipping to change at page 175, line 12
specified as a "dur-day" or "dur-week" value when the "DTSTART" specified as a "dur-day" or "dur-week" value when the "DTSTART"
is a DATE. is a DATE.
q. Issue 58: Changed the jourprop ABNF rule to allow the q. Issue 58: Changed the jourprop ABNF rule to allow the
"DESCRIPTION" property to occur more than once. "DESCRIPTION" property to occur more than once.
r. Numerous editorial changes. r. Numerous editorial changes.
s. Changed reference to RFC 4646 for Language-Tag. s. Changed reference to RFC 4646 for Language-Tag.
B.5. Changes in -03 B.6. Changes in -03
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-03.changes.html. draft-ietf-calsify-rfc2445bis-03.changes.html.
a. Numerous editorial changes. a. Numerous editorial changes.
b. Specified that "DTSTART" should match the pattern of "RRULE" and b. Specified that "DTSTART" should match the pattern of "RRULE" and
is always part of the "COUNT". is always part of the "COUNT".
skipping to change at page 174, line 31 skipping to change at page 175, line 34
components. components.
d. Deprecated "EXRULE". d. Deprecated "EXRULE".
e. Fixed all ABNF errors reported by Bill Fenner's ABNF parsing web e. Fixed all ABNF errors reported by Bill Fenner's ABNF parsing web
service available at: service available at:
http://rtg.ietf.org/~fenner/abnf.cgi. http://rtg.ietf.org/~fenner/abnf.cgi.
f. Changed reference to RFC 4648 for Base64 encoding. f. Changed reference to RFC 4648 for Base64 encoding.
B.6. Changes in -02 B.7. 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.changes.html. draft-ietf-calsify-rfc2445bis-02.changes.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 175, line 15 skipping to change at page 176, line 20
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.
B.7. Changes in -01 B.8. 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.changes.html. draft-ietf-calsify-rfc2445bis-01.changes.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.
d. Moved media type registration in a separate IANA Consideration d. Moved media type registration in a separate IANA Consideration
section. section.
e. Added Internationalization Considerations section. e. Added Internationalization Considerations section.
f. Added Security Considerations section. f. Added Security Considerations section.
g. Updated the Acknowledgments section. g. Updated the Acknowledgments section.
Appendix C. Open issues (to be removed by RFC Editor prior to
publication)
C.1. introduction
Type: edit
bernard.desruisseaux@oracle.com (2007-02-20): The Introduction
section should be updated.
C.2. #issue11+4.3.10_byxxx_rule_part_examples
Type: change
<http://lists.osafoundation.org/pipermail/ietf-calsify/2006-June/
000983.html>
reinhold@kainhofer.com (2006-06-03): We should add more BYXXX rule
parts examples.
Resolution:
C.3. #issue63+4.8.5.3_rdate_and_dtstart
Type: change
<http://lists.osafoundation.org/pipermail/ietf-calsify/2006-November/
001349.html>
bernard.desruisseaux@oracle.com (2006-11-05): We need to clarify
whether RDATE can specify a value earlier in time than DTSTART.
Resolution:
Author's Address Author's Address
Bernard Desruisseaux (editor) Bernard Desruisseaux (editor)
Oracle Corporation Oracle Corporation
600 blvd. de Maisonneuve West 600 blvd. de Maisonneuve West
Suite 1900 Suite 1900
Montreal, QC H3A 3J2 Montreal, QC H3A 3J2
CANADA CANADA
EMail: bernard.desruisseaux@oracle.com EMail: bernard.desruisseaux@oracle.com
URI: http://www.oracle.com/ URI: http://www.oracle.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. 99 change blocks. 
328 lines changed or deleted 384 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/