draft-ietf-calsify-rfc2445bis-09.txt   draft-ietf-calsify-rfc2445bis-10.txt 
Network Working Group B. Desruisseaux, Ed. Network Working Group B. Desruisseaux, Ed.
Internet-Draft Oracle Internet-Draft Oracle
Obsoletes: 2445 (if approved) October 31, 2008 Obsoletes: 2445 (if approved) April 20, 2009
Intended status: Standards Track Intended status: Standards Track
Expires: May 4, 2009 Expires: October 22, 2009
Internet Calendaring and Scheduling Core Object Specification Internet Calendaring and Scheduling Core Object Specification
(iCalendar) (iCalendar)
draft-ietf-calsify-rfc2445bis-09 draft-ietf-calsify-rfc2445bis-10
Status of This Memo Status of This Memo
By submitting this Internet-Draft, each author represents that any This Internet-Draft is submitted to IETF in full conformance with the
applicable patent or other IPR claims of which he or she is aware provisions of BCP 78 and BCP 79. This document may contain material
have been or will be disclosed, and any of which he or she becomes from IETF Documents or IETF Contributions published or made publicly
aware will be disclosed, in accordance with Section 6 of BCP 79. available before November 10, 2008. The person(s) controlling the
copyright in some of this material may not have granted the IETF
Trust the right to allow modifications of such material outside the
IETF Standards Process. Without obtaining an adequate license from
the person(s) controlling the copyright in such materials, this
document may not be modified outside the IETF Standards Process, and
derivative works of it may not be created outside the IETF Standards
Process, except to format it for publication as an RFC or to
translate it into languages other than English.
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
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on May 4, 2009. This Internet-Draft will expire on October 22, 2009.
Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents in effect on the date of
publication of this document (http://trustee.ietf.org/license-info).
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document.
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)
This document is a product of the Calendaring and Scheduling This document is a product of the Calendaring and Scheduling
Standards Simplification (Calsify) working group of the Internet Standards Simplification (Calsify) working group of the Internet
Engineering Task Force. Comments on this draft are welcomed, and Engineering Task Force. Comments on this draft are welcomed, and
should be addressed to the ietf-calsify@osafoundation.org [1] mailing should be addressed to the ietf-calsify@osafoundation.org [1] mailing
list. list.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 7 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 8
2. Basic Grammar and Conventions . . . . . . . . . . . . . . . . 8 2. Basic Grammar and Conventions . . . . . . . . . . . . . . . . 9
2.1. Formatting Conventions . . . . . . . . . . . . . . . . . 8 2.1. Formatting Conventions . . . . . . . . . . . . . . . . . 9
2.2. Related Memos . . . . . . . . . . . . . . . . . . . . . . 9 2.2. Related Memos . . . . . . . . . . . . . . . . . . . . . . 10
3. iCalendar Object Specification . . . . . . . . . . . . . . . 10 3. iCalendar Object Specification . . . . . . . . . . . . . . . 11
3.1. Content Lines . . . . . . . . . . . . . . . . . . . . . . 10 3.1. Content Lines . . . . . . . . . . . . . . . . . . . . . . 11
3.1.1. List and Field Separators . . . . . . . . . . . . . . 12 3.1.1. List and Field Separators . . . . . . . . . . . . . . 13
3.1.2. Multiple Values . . . . . . . . . . . . . . . . . . . 13 3.1.2. Multiple Values . . . . . . . . . . . . . . . . . . . 14
3.1.3. Binary Content . . . . . . . . . . . . . . . . . . . 13 3.1.3. Binary Content . . . . . . . . . . . . . . . . . . . 14
3.1.4. Character Set . . . . . . . . . . . . . . . . . . . . 14 3.1.4. Character Set . . . . . . . . . . . . . . . . . . . . 15
3.2. Property Parameters . . . . . . . . . . . . . . . . . . . 14 3.2. Property Parameters . . . . . . . . . . . . . . . . . . . 15
3.2.1. Alternate Text Representation . . . . . . . . . . . . 15 3.2.1. Alternate Text Representation . . . . . . . . . . . . 16
3.2.2. Common Name . . . . . . . . . . . . . . . . . . . . . 16 3.2.2. Common Name . . . . . . . . . . . . . . . . . . . . . 17
3.2.3. Calendar User Type . . . . . . . . . . . . . . . . . 17 3.2.3. Calendar User Type . . . . . . . . . . . . . . . . . 18
3.2.4. Delegators . . . . . . . . . . . . . . . . . . . . . 18 3.2.4. Delegators . . . . . . . . . . . . . . . . . . . . . 19
3.2.5. Delegatees . . . . . . . . . . . . . . . . . . . . . 18 3.2.5. Delegatees . . . . . . . . . . . . . . . . . . . . . 19
3.2.6. Directory Entry Reference . . . . . . . . . . . . . . 19 3.2.6. Directory Entry Reference . . . . . . . . . . . . . . 20
3.2.7. Inline Encoding . . . . . . . . . . . . . . . . . . . 19 3.2.7. Inline Encoding . . . . . . . . . . . . . . . . . . . 20
3.2.8. Format Type . . . . . . . . . . . . . . . . . . . . . 20 3.2.8. Format Type . . . . . . . . . . . . . . . . . . . . . 21
3.2.9. Free/Busy Time Type . . . . . . . . . . . . . . . . . 20 3.2.9. Free/Busy Time Type . . . . . . . . . . . . . . . . . 22
3.2.10. Language . . . . . . . . . . . . . . . . . . . . . . 21 3.2.10. Language . . . . . . . . . . . . . . . . . . . . . . 23
3.2.11. Group or List Membership . . . . . . . . . . . . . . 22 3.2.11. Group or List Membership . . . . . . . . . . . . . . 23
3.2.12. Participation Status . . . . . . . . . . . . . . . . 23 3.2.12. Participation Status . . . . . . . . . . . . . . . . 24
3.2.13. Recurrence Identifier Range . . . . . . . . . . . . . 24 3.2.13. Recurrence Identifier Range . . . . . . . . . . . . . 25
3.2.14. Alarm Trigger Relationship . . . . . . . . . . . . . 25 3.2.14. Alarm Trigger Relationship . . . . . . . . . . . . . 26
3.2.15. Relationship Type . . . . . . . . . . . . . . . . . . 25 3.2.15. Relationship Type . . . . . . . . . . . . . . . . . . 27
3.2.16. Participation Role . . . . . . . . . . . . . . . . . 26 3.2.16. Participation Role . . . . . . . . . . . . . . . . . 28
3.2.17. RSVP Expectation . . . . . . . . . . . . . . . . . . 27 3.2.17. RSVP Expectation . . . . . . . . . . . . . . . . . . 28
3.2.18. Sent By . . . . . . . . . . . . . . . . . . . . . . . 28 3.2.18. Sent By . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.19. Time Zone Identifier . . . . . . . . . . . . . . . . 28 3.2.19. Time Zone Identifier . . . . . . . . . . . . . . . . 29
3.2.20. Value Data Types . . . . . . . . . . . . . . . . . . 29 3.2.20. Value Data Types . . . . . . . . . . . . . . . . . . 31
3.3. Property Value Data Types . . . . . . . . . . . . . . . . 30 3.3. Property Value Data Types . . . . . . . . . . . . . . . . 32
3.3.1. Binary . . . . . . . . . . . . . . . . . . . . . . . 31 3.3.1. Binary . . . . . . . . . . . . . . . . . . . . . . . 32
3.3.2. Boolean . . . . . . . . . . . . . . . . . . . . . . . 31 3.3.2. Boolean . . . . . . . . . . . . . . . . . . . . . . . 33
3.3.3. Calendar User Address . . . . . . . . . . . . . . . . 32 3.3.3. Calendar User Address . . . . . . . . . . . . . . . . 33
3.3.4. Date . . . . . . . . . . . . . . . . . . . . . . . . 32 3.3.4. Date . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3.5. Date-Time . . . . . . . . . . . . . . . . . . . . . . 33 3.3.5. Date-Time . . . . . . . . . . . . . . . . . . . . . . 34
3.3.6. Duration . . . . . . . . . . . . . . . . . . . . . . 36 3.3.6. Duration . . . . . . . . . . . . . . . . . . . . . . 37
3.3.7. Float . . . . . . . . . . . . . . . . . . . . . . . . 37 3.3.7. Float . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3.8. Integer . . . . . . . . . . . . . . . . . . . . . . . 37 3.3.8. Integer . . . . . . . . . . . . . . . . . . . . . . . 39
3.3.9. Period of Time . . . . . . . . . . . . . . . . . . . 38 3.3.9. Period of Time . . . . . . . . . . . . . . . . . . . 39
3.3.10. Recurrence Rule . . . . . . . . . . . . . . . . . . . 39 3.3.10. Recurrence Rule . . . . . . . . . . . . . . . . . . . 40
3.3.11. Text . . . . . . . . . . . . . . . . . . . . . . . . 46 3.3.11. Text . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3.12. Time . . . . . . . . . . . . . . . . . . . . . . . . 48 3.3.12. Time . . . . . . . . . . . . . . . . . . . . . . . . 49
3.3.13. URI . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.3.13. URI . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.3.14. UTC Offset . . . . . . . . . . . . . . . . . . . . . 50 3.3.14. UTC Offset . . . . . . . . . . . . . . . . . . . . . 52
3.4. iCalendar Object . . . . . . . . . . . . . . . . . . . . 51 3.4. iCalendar Object . . . . . . . . . . . . . . . . . . . . 53
3.5. Property . . . . . . . . . . . . . . . . . . . . . . . . 52 3.5. Property . . . . . . . . . . . . . . . . . . . . . . . . 54
3.6. Calendar Components . . . . . . . . . . . . . . . . . . . 52 3.6. Calendar Components . . . . . . . . . . . . . . . . . . . 54
3.6.1. Event Component . . . . . . . . . . . . . . . . . . . 54 3.6.1. Event Component . . . . . . . . . . . . . . . . . . . 56
3.6.2. To-do Component . . . . . . . . . . . . . . . . . . . 57 3.6.2. To-do Component . . . . . . . . . . . . . . . . . . . 60
3.6.3. Journal Component . . . . . . . . . . . . . . . . . . 60 3.6.3. Journal Component . . . . . . . . . . . . . . . . . . 62
3.6.4. Free/Busy Component . . . . . . . . . . . . . . . . . 61 3.6.4. Free/Busy Component . . . . . . . . . . . . . . . . . 64
3.6.5. Time Zone Component . . . . . . . . . . . . . . . . . 64 3.6.5. Time Zone Component . . . . . . . . . . . . . . . . . 67
3.6.6. Alarm Component . . . . . . . . . . . . . . . . . . . 73 3.6.6. Alarm Component . . . . . . . . . . . . . . . . . . . 76
3.7. Calendar Properties . . . . . . . . . . . . . . . . . . . 78 3.7. Calendar Properties . . . . . . . . . . . . . . . . . . . 81
3.7.1. Calendar Scale . . . . . . . . . . . . . . . . . . . 78 3.7.1. Calendar Scale . . . . . . . . . . . . . . . . . . . 81
3.7.2. Method . . . . . . . . . . . . . . . . . . . . . . . 79 3.7.2. Method . . . . . . . . . . . . . . . . . . . . . . . 82
3.7.3. Product Identifier . . . . . . . . . . . . . . . . . 80 3.7.3. Product Identifier . . . . . . . . . . . . . . . . . 83
3.7.4. Version . . . . . . . . . . . . . . . . . . . . . . . 81 3.7.4. Version . . . . . . . . . . . . . . . . . . . . . . . 84
3.8. Component Properties . . . . . . . . . . . . . . . . . . 82 3.8. Component Properties . . . . . . . . . . . . . . . . . . 85
3.8.1. Descriptive Component Properties . . . . . . . . . . 82 3.8.1. Descriptive Component Properties . . . . . . . . . . 85
3.8.1.1. Attachment . . . . . . . . . . . . . . . . . . . 82 3.8.1.1. Attachment . . . . . . . . . . . . . . . . . . . 85
3.8.1.2. Categories . . . . . . . . . . . . . . . . . . . 83 3.8.1.2. Categories . . . . . . . . . . . . . . . . . . . 86
3.8.1.3. Classification . . . . . . . . . . . . . . . . . 84 3.8.1.3. Classification . . . . . . . . . . . . . . . . . 87
3.8.1.4. Comment . . . . . . . . . . . . . . . . . . . . . 85 3.8.1.4. Comment . . . . . . . . . . . . . . . . . . . . . 88
3.8.1.5. Description . . . . . . . . . . . . . . . . . . . 86 3.8.1.5. Description . . . . . . . . . . . . . . . . . . . 89
3.8.1.6. Geographic Position . . . . . . . . . . . . . . . 87 3.8.1.6. Geographic Position . . . . . . . . . . . . . . . 91
3.8.1.7. Location . . . . . . . . . . . . . . . . . . . . 89 3.8.1.7. Location . . . . . . . . . . . . . . . . . . . . 92
3.8.1.8. Percent Complete . . . . . . . . . . . . . . . . 90 3.8.1.8. Percent Complete . . . . . . . . . . . . . . . . 93
3.8.1.9. Priority . . . . . . . . . . . . . . . . . . . . 91 3.8.1.9. Priority . . . . . . . . . . . . . . . . . . . . 94
3.8.1.10. Resources . . . . . . . . . . . . . . . . . . . . 93 3.8.1.10. Resources . . . . . . . . . . . . . . . . . . . . 96
3.8.1.11. Status . . . . . . . . . . . . . . . . . . . . . 94 3.8.1.11. Status . . . . . . . . . . . . . . . . . . . . . 97
3.8.1.12. Summary . . . . . . . . . . . . . . . . . . . . . 95 3.8.1.12. Summary . . . . . . . . . . . . . . . . . . . . . 98
3.8.2. Date and Time Component Properties . . . . . . . . . 96 3.8.2. Date and Time Component Properties . . . . . . . . . 100
3.8.2.1. Date/Time Completed . . . . . . . . . . . . . . . 96 3.8.2.1. Date/Time Completed . . . . . . . . . . . . . . . 100
3.8.2.2. Date/Time End . . . . . . . . . . . . . . . . . . 97 3.8.2.2. Date/Time End . . . . . . . . . . . . . . . . . . 100
3.8.2.3. Date/Time Due . . . . . . . . . . . . . . . . . . 98 3.8.2.3. Date/Time Due . . . . . . . . . . . . . . . . . . 102
3.8.2.4. Date/Time Start . . . . . . . . . . . . . . . . . 99 3.8.2.4. Date/Time Start . . . . . . . . . . . . . . . . . 103
3.8.2.5. Duration . . . . . . . . . . . . . . . . . . . . 101 3.8.2.5. Duration . . . . . . . . . . . . . . . . . . . . 104
3.8.2.6. Free/Busy Time . . . . . . . . . . . . . . . . . 102 3.8.2.6. Free/Busy Time . . . . . . . . . . . . . . . . . 105
3.8.2.7. Time Transparency . . . . . . . . . . . . . . . . 103 3.8.2.7. Time Transparency . . . . . . . . . . . . . . . . 106
3.8.3. Time Zone Component Properties . . . . . . . . . . . 104 3.8.3. Time Zone Component Properties . . . . . . . . . . . 107
3.8.3.1. Time Zone Identifier . . . . . . . . . . . . . . 104 3.8.3.1. Time Zone Identifier . . . . . . . . . . . . . . 107
3.8.3.2. Time Zone Name . . . . . . . . . . . . . . . . . 105 3.8.3.2. Time Zone Name . . . . . . . . . . . . . . . . . 109
3.8.3.3. Time Zone Offset From . . . . . . . . . . . . . . 106 3.8.3.3. Time Zone Offset From . . . . . . . . . . . . . . 110
3.8.3.4. Time Zone Offset To . . . . . . . . . . . . . . . 107 3.8.3.4. Time Zone Offset To . . . . . . . . . . . . . . . 110
3.8.3.5. Time Zone URL . . . . . . . . . . . . . . . . . . 108 3.8.3.5. Time Zone URL . . . . . . . . . . . . . . . . . . 111
3.8.4. Relationship Component Properties . . . . . . . . . . 108 3.8.4. Relationship Component Properties . . . . . . . . . . 112
3.8.4.1. Attendee . . . . . . . . . . . . . . . . . . . . 109 3.8.4.1. Attendee . . . . . . . . . . . . . . . . . . . . 112
3.8.4.2. Contact . . . . . . . . . . . . . . . . . . . . . 111 3.8.4.2. Contact . . . . . . . . . . . . . . . . . . . . . 115
3.8.4.3. Organizer . . . . . . . . . . . . . . . . . . . . 113 3.8.4.3. Organizer . . . . . . . . . . . . . . . . . . . . 117
3.8.4.4. Recurrence ID . . . . . . . . . . . . . . . . . . 114 3.8.4.4. Recurrence ID . . . . . . . . . . . . . . . . . . 118
3.8.4.5. Related To . . . . . . . . . . . . . . . . . . . 116 3.8.4.5. Related To . . . . . . . . . . . . . . . . . . . 121
3.8.4.6. Uniform Resource Locator . . . . . . . . . . . . 118 3.8.4.6. Uniform Resource Locator . . . . . . . . . . . . 122
3.8.4.7. Unique Identifier . . . . . . . . . . . . . . . . 119 3.8.4.7. Unique Identifier . . . . . . . . . . . . . . . . 123
3.8.5. Recurrence Component Properties . . . . . . . . . . . 120 3.8.5. Recurrence Component Properties . . . . . . . . . . . 124
3.8.5.1. Exception Date/Times . . . . . . . . . . . . . . 120 3.8.5.1. Exception Date/Times . . . . . . . . . . . . . . 124
3.8.5.2. Recurrence Date/Times . . . . . . . . . . . . . . 122 3.8.5.2. Recurrence Date/Times . . . . . . . . . . . . . . 126
3.8.5.3. Recurrence Rule . . . . . . . . . . . . . . . . . 124 3.8.5.3. Recurrence Rule . . . . . . . . . . . . . . . . . 128
3.8.6. Alarm Component Properties . . . . . . . . . . . . . 134 3.8.6. Alarm Component Properties . . . . . . . . . . . . . 138
3.8.6.1. Action . . . . . . . . . . . . . . . . . . . . . 134 3.8.6.1. Action . . . . . . . . . . . . . . . . . . . . . 138
3.8.6.2. Repeat Count . . . . . . . . . . . . . . . . . . 135 3.8.6.2. Repeat Count . . . . . . . . . . . . . . . . . . 139
3.8.6.3. Trigger . . . . . . . . . . . . . . . . . . . . . 135 3.8.6.3. Trigger . . . . . . . . . . . . . . . . . . . . . 139
3.8.7. Change Management Component Properties . . . . . . . 138 3.8.7. Change Management Component Properties . . . . . . . 142
3.8.7.1. Date/Time Created . . . . . . . . . . . . . . . . 138 3.8.7.1. Date/Time Created . . . . . . . . . . . . . . . . 142
3.8.7.2. Date/Time Stamp . . . . . . . . . . . . . . . . . 139 3.8.7.2. Date/Time Stamp . . . . . . . . . . . . . . . . . 143
3.8.7.3. Last Modified . . . . . . . . . . . . . . . . . . 140 3.8.7.3. Last Modified . . . . . . . . . . . . . . . . . . 144
3.8.7.4. Sequence Number . . . . . . . . . . . . . . . . . 141 3.8.7.4. Sequence Number . . . . . . . . . . . . . . . . . 145
3.8.8. Miscellaneous Component Properties . . . . . . . . . 142 3.8.8. Miscellaneous Component Properties . . . . . . . . . 146
3.8.8.1. IANA Properties . . . . . . . . . . . . . . . . . 142 3.8.8.1. IANA Properties . . . . . . . . . . . . . . . . . 146
3.8.8.2. Non-standard Properties . . . . . . . . . . . . . 142 3.8.8.2. Non-standard Properties . . . . . . . . . . . . . 146
3.8.8.3. Request Status . . . . . . . . . . . . . . . . . 144 3.8.8.3. Request Status . . . . . . . . . . . . . . . . . 148
4. iCalendar Object Examples . . . . . . . . . . . . . . . . . . 147 4. iCalendar Object Examples . . . . . . . . . . . . . . . . . . 151
5. Recommended Practices . . . . . . . . . . . . . . . . . . . . 152 5. Recommended Practices . . . . . . . . . . . . . . . . . . . . 156
6. Internationalization Considerations . . . . . . . . . . . . . 153 6. Internationalization Considerations . . . . . . . . . . . . . 157
7. Security Considerations . . . . . . . . . . . . . . . . . . . 154 7. Security Considerations . . . . . . . . . . . . . . . . . . . 158
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 155 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 159
8.1. iCalendar Media Type Registration . . . . . . . . . . . . 155 8.1. iCalendar Media Type Registration . . . . . . . . . . . . 159
8.2. New iCalendar Elements Registration . . . . . . . . . . . 158 8.2. New iCalendar Elements Registration . . . . . . . . . . . 162
8.2.1. iCalendar Elements Registration Procedure . . . . . . 158 8.2.1. iCalendar Elements Registration Procedure . . . . . . 162
8.2.2. Registration Template for Components . . . . . . . . 158 8.2.2. Registration Template for Components . . . . . . . . 162
8.2.3. Registration Template for Properties . . . . . . . . 159 8.2.3. Registration Template for Properties . . . . . . . . 163
8.2.4. Registration Template for Parameters . . . . . . . . 160 8.2.4. Registration Template for Parameters . . . . . . . . 164
8.2.5. Registration Template for Value Data Types . . . . . 160 8.2.5. Registration Template for Value Data Types . . . . . 164
8.2.6. Registration Template for Values . . . . . . . . . . 160 8.2.6. Registration Template for Values . . . . . . . . . . 164
8.3. Initial iCalendar Elements Registries . . . . . . . . . . 161 8.3. Initial iCalendar Elements Registries . . . . . . . . . . 165
8.3.1. Components Registry . . . . . . . . . . . . . . . . . 161 8.3.1. Components Registry . . . . . . . . . . . . . . . . . 165
8.3.2. Properties Registry . . . . . . . . . . . . . . . . . 162 8.3.2. Properties Registry . . . . . . . . . . . . . . . . . 166
8.3.3. Parameters Registry . . . . . . . . . . . . . . . . . 164 8.3.3. Parameters Registry . . . . . . . . . . . . . . . . . 168
8.3.4. Value Data Types Registry . . . . . . . . . . . . . . 166 8.3.4. Value Data Types Registry . . . . . . . . . . . . . . 170
8.3.5. Calendar User Types Registry . . . . . . . . . . . . 166 8.3.5. Calendar User Types Registry . . . . . . . . . . . . 170
8.3.6. Free/Busy Time Types Registry . . . . . . . . . . . . 167 8.3.6. Free/Busy Time Types Registry . . . . . . . . . . . . 171
8.3.7. Participation Statuses Registry . . . . . . . . . . . 167 8.3.7. Participation Statuses Registry . . . . . . . . . . . 171
8.3.8. Relationship Types Registry . . . . . . . . . . . . . 168 8.3.8. Relationship Types Registry . . . . . . . . . . . . . 172
8.3.9. Participation Roles Registry . . . . . . . . . . . . 168 8.3.9. Participation Roles Registry . . . . . . . . . . . . 172
8.3.10. Actions Registry . . . . . . . . . . . . . . . . . . 169 8.3.10. Actions Registry . . . . . . . . . . . . . . . . . . 173
8.3.11. Classifications Registry . . . . . . . . . . . . . . 169 8.3.11. Classifications Registry . . . . . . . . . . . . . . 173
8.3.12. Methods Registry . . . . . . . . . . . . . . . . . . 169 8.3.12. Methods Registry . . . . . . . . . . . . . . . . . . 173
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 170 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 174
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 171 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 175
10.1. Normative References . . . . . . . . . . . . . . . . . . 171 10.1. Normative References . . . . . . . . . . . . . . . . . . 175
10.2. Informative References . . . . . . . . . . . . . . . . . 172 10.2. Informative References . . . . . . . . . . . . . . . . . 176
Appendix A. Differences from RFC 2445 . . . . . . . . . . . . . 175 Appendix A. Differences from RFC 2445 . . . . . . . . . . . . . 179
A.1. New restrictions . . . . . . . . . . . . . . . . . . . . 175 A.1. New restrictions . . . . . . . . . . . . . . . . . . . . 179
A.2. Restrictions removed . . . . . . . . . . . . . . . . . . 175 A.2. Restrictions removed . . . . . . . . . . . . . . . . . . 179
A.3. Deprecated features . . . . . . . . . . . . . . . . . . . 175 A.3. Deprecated features . . . . . . . . . . . . . . . . . . . 179
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) . . . . . . . . . . . . . . . . . . . . 176 publication) . . . . . . . . . . . . . . . . . . . . 180
B.1. Changes in -09 . . . . . . . . . . . . . . . . . . . . . 176 B.1. Changes in -10 . . . . . . . . . . . . . . . . . . . . . 180
B.2. Changes in -08 . . . . . . . . . . . . . . . . . . . . . 176 B.2. Changes in -09 . . . . . . . . . . . . . . . . . . . . . 180
B.3. Changes in -07 . . . . . . . . . . . . . . . . . . . . . 177 B.3. Changes in -08 . . . . . . . . . . . . . . . . . . . . . 181
B.4. Changes in -06 . . . . . . . . . . . . . . . . . . . . . 179 B.4. Changes in -07 . . . . . . . . . . . . . . . . . . . . . 182
B.5. Changes in -05 . . . . . . . . . . . . . . . . . . . . . 180 B.5. Changes in -06 . . . . . . . . . . . . . . . . . . . . . 183
B.6. Changes in -04 . . . . . . . . . . . . . . . . . . . . . 181 B.6. Changes in -05 . . . . . . . . . . . . . . . . . . . . . 185
B.7. Changes in -03 . . . . . . . . . . . . . . . . . . . . . 182 B.7. Changes in -04 . . . . . . . . . . . . . . . . . . . . . 185
B.8. Changes in -02 . . . . . . . . . . . . . . . . . . . . . 183 B.8. Changes in -03 . . . . . . . . . . . . . . . . . . . . . 187
B.9. Changes in -01 . . . . . . . . . . . . . . . . . . . . . 183 B.9. Changes in -02 . . . . . . . . . . . . . . . . . . . . . 187
B.10. Changes in -01 . . . . . . . . . . . . . . . . . . . . . 188
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. This memo is intended to progress the level information technology. This memo is intended to progress the level
of interoperability possible between dissimilar calendaring and of interoperability possible between dissimilar calendaring and
scheduling applications. This memo defines a MIME content type for scheduling applications. This memo defines a MIME content type for
exchanging electronic calendaring and scheduling information. The exchanging electronic calendaring and scheduling information. The
skipping to change at page 8, line 8 skipping to change at page 9, line 8
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", "MAY", and "OPTIONAL" in this
"OPTIONAL" in this document are to be interpreted as described in 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 [RFC5234]. 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.
skipping to change at page 14, line 14 skipping to change at page 15, line 14
MUST be referenced by a uniform resource identifier (URI). MUST be referenced by a uniform resource identifier (URI).
The following example specifies an "ATTACH" property that references The following example specifies an "ATTACH" property that references
an attachment external to the iCalendar object with a URI reference: an attachment external to the iCalendar object with a URI reference:
ATTACH:http://example.com/public/quarterly-report.doc ATTACH:http://example.com/public/quarterly-report.doc
The following example specifies an "ATTACH" property with inline The following example specifies an "ATTACH" property with inline
binary encoded content information: binary encoded content information:
ATTACH;FMTTYPE=image/basic;ENCODING=BASE64;VALUE=BINARY: ATTACH;FMTTYPE=text/plain;ENCODING=BASE64;VALUE=BINARY:VGhlIH
MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1U F1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4
EBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bmljYXRpb25zIE
<...remainder of "BASE64" encoded binary data...>
3.1.4. Character Set 3.1.4. Character Set
There is not a property parameter to declare the charset used in a There is not a property parameter to declare the charset used in a
property value. The default charset for an iCalendar stream is UTF-8 property value. The default charset for an iCalendar stream is UTF-8
as defined in [RFC3629]. as defined in [RFC3629].
The "charset" Content-Type parameter MUST be used in MIME transports The "charset" Content-Type parameter MUST be used in MIME transports
to specify the charset being used. to specify the charset being used.
skipping to change at page 19, line 25 skipping to change at page 20, line 25
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:
dirparam = "DIR" "=" DQUOTE uri DQUOTE dirparam = "DIR" "=" DQUOTE uri 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. The parameter specifies a reference to CAL-ADDRESS value type. The parameter specifies a reference to
the directory entry associated with the calendar user specified by the directory entry associated with the calendar user specified by
the property. The parameter value SHOULD be a CID [RFC2392], DATA the property. The parameter value is a URI. The URI parameter
[RFC2397], FILE [RFC1738], FTP [RFC1738], HTTP [RFC2616], HTTPS value MUST be specified in a quoted-string.
[RFC2818], LDAP [RFC4516], or MID [RFC2392] URI. The URI
parameter value MUST be specified in a quoted-string. Note: While there is no restriction imposed on the URI schemes
allowed for this parameter, CID [RFC2392], DATA [RFC2397], FILE
[RFC1738], FTP [RFC1738], HTTP [RFC2616], HTTPS [RFC2818], LDAP
[RFC4516], and MID [RFC2392] are the URI schemes most commonly
used by current implementations.
Example: Example:
ORGANIZER;DIR="ldap://example.com:6666/o=ABC%20Industries, ORGANIZER;DIR="ldap://example.com:6666/o=ABC%20Industries,
c=US???(cn=Jim%20Dolittle)":mailto:jimdo@example.com c=US???(cn=Jim%20Dolittle)":mailto:jimdo@example.com
3.2.7. Inline Encoding 3.2.7. Inline Encoding
Parameter Name: ENCODING Parameter Name: ENCODING
skipping to change at page 20, line 16 skipping to change at page 21, line 24
corresponding to a property value consisting of text. The corresponding to a property value consisting of text. The
"BASE64" encoding type corresponds to a property value encoded "BASE64" encoding type corresponds to a property value encoded
using the "BASE64" encoding defined in [RFC2045]. using the "BASE64" encoding defined in [RFC2045].
If the value type parameter is ";VALUE=BINARY", then the inline If the value type parameter is ";VALUE=BINARY", then the inline
encoding parameter MUST be specified with the value encoding parameter MUST be specified with the value
";ENCODING=BASE64". ";ENCODING=BASE64".
Example: Example:
ATTACH;FMTYPE=image/jpeg;ENCODING=BASE64;VALUE=BINARY:MIICajC ATTACH;FMTTYPE=text/plain;ENCODING=BASE64;VALUE=BINARY:TG9yZW
CAdOgAwIBAgICBEUwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDA 0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW
qBgNVBAoTI05ldHNjYXBlIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uMRw 5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IG
<...remainder of "BASE64" encoded binary data...> xhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbm
ltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIG
xhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdW
F0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbi
B2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdC
BudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaW
RhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYS
BkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4=
3.2.8. Format Type 3.2.8. Format Type
Parameter Name: FMTTYPE Parameter Name: FMTTYPE
Purpose: To specify the content type of a referenced object. Purpose: To specify the content type of a referenced object.
Format Definition: This property parameter is defined by the Format Definition: This property parameter is defined by the
following notation: following notation:
fmttypeparam = "FMTTYPE" "=" type "/" subtype *(";" parameter) fmttypeparam = "FMTTYPE" "=" type-name "/" subtype-name
; Where "type", "subtype", and "parameter" ; Where "type-name" and "subtype-name" are
; are defined in section 5.1 of [RFC2045] ; defined in section 4.2 of [RFC4288]
Description: This parameter can be specified on properties that are Description: This parameter can be specified on properties that are
used to reference an object. The parameter specifies the content used to reference an object. The parameter specifies the media
type of the referenced object. For example, on the "ATTACH" type [RFC4288] of the referenced object. For example, on the
property, a FTP type URI value does not, by itself, necessarily "ATTACH" property, a FTP type URI value does not, by itself,
convey the type of content associated with the resource. The necessarily convey the type of content associated with the
parameter value MUST be the text for either an IANA registered resource. The parameter value MUST be the text for either an IANA
media type or a non-standard media type. registered media type or a non-standard media type.
Example: Example:
ATTACH;FMTTYPE=application/msword:ftp://example.com/pub/docs/ ATTACH;FMTTYPE=application/msword:ftp://example.com/pub/docs/
agenda.doc agenda.doc
3.2.9. Free/Busy Time Type 3.2.9. Free/Busy Time Type
Parameter Name: FBTYPE Parameter Name: FBTYPE
Purpose: To specify the free or busy time type. Purpose: To specify the free or busy time type.
Format Definition: This property parameter is defined by the Format Definition: This property parameter is defined by the
following notation: following notation:
fbtypeparam = "FBTYPE" "=" ("FREE" / "BUSY" fbtypeparam = "FBTYPE" "=" ("FREE" / "BUSY"
/ "BUSY-UNAVAILABLE" / "BUSY-TENTATIVE" / "BUSY-UNAVAILABLE" / "BUSY-TENTATIVE"
/ x-name / x-name
skipping to change at page 25, line 4 skipping to change at page 26, line 26
Description: This parameter can be specified on a property that Description: This parameter can be specified on a property that
specifies a recurrence identifier. The parameter specifies the specifies a recurrence identifier. The parameter specifies the
effective range of recurrence instances that is specified by the effective range of recurrence instances that is specified by the
property. The effective range is from the recurrence identifier property. The effective range is from the recurrence identifier
specified by the property. If this parameter is not specified on specified by the property. If this parameter is not specified on
an allowed property, then the default range is the single instance an allowed property, then the default range is the single instance
specified by the recurrence identifier value of the property. The specified by the recurrence identifier value of the property. The
parameter value can only be "THISANDFUTURE" to indicate a range parameter value can only be "THISANDFUTURE" to indicate a range
defined by the recurrence identifier and all subsequent instances. defined by the recurrence identifier and all subsequent instances.
The value "THISANDPRIOR" is deprecated by this revision of
Note: The value "THISANDPRIOR" is deprecated by this revision iCalendar and MUST NOT be generated by applications.
of iCalendar and MUST NOT be generated by applications.
Example: Example:
RECURRENCE-ID;RANGE=THISANDFUTURE:19980401T133000Z RECURRENCE-ID;RANGE=THISANDFUTURE:19980401T133000Z
3.2.14. Alarm Trigger Relationship 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
skipping to change at page 29, line 38 skipping to change at page 30, line 46
DTSTART;TZID=America/New_York:19980119T020000 DTSTART;TZID=America/New_York:19980119T020000
DTEND;TZID=America/New_York:19980119T030000 DTEND;TZID=America/New_York:19980119T030000
The "TZID" property parameter MUST NOT be applied to DATE The "TZID" property parameter MUST NOT be applied to DATE
properties, and DATE-TIME or TIME properties whose time values are properties, and DATE-TIME or TIME properties whose time values are
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 floating time,
value, regardless of the existence of "VTIMEZONE" calendar regardless of the existence of "VTIMEZONE" calendar components in
components in the iCalendar object. 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.20. 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 31, line 34 skipping to change at page 32, line 42
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, see Section 3.3.11) 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 example of a "BASE64" encoded binary
binary value data. value data.
JKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlI ATTACH;FMTTYPE=image/vnd.microsoft.icon;ENCODING=BASE64;VALUE
ENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZv =BINARY:AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAA
<...remainder of "BASE64" encoded binary data...> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgIAAAICAgADAwMAA////AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAMwAAAAAAABNEMQAAAAAAAkQgAAAAAAJEREQgAA
ACECQ0QgEgAAQxQzM0E0AABERCRCREQAADRDJEJEQwAAAhA0QwEQAAAAAERE
AAAAAAAAREQAAAAAAAAkQgAAAAAAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA
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:
skipping to change at page 34, line 14 skipping to change at page 35, line 27
The "DATE-TIME" value type expresses time values in three forms: The "DATE-TIME" value type expresses time values in three forms:
The form of date and time with UTC offset MUST NOT be used. For The form of date and time with UTC offset MUST NOT be used. For
example, the following is not valid for a date-time value: example, the following is not valid for a date-time value:
19980119T230000-0800 ;Invalid time format 19980119T230000-0800 ;Invalid time format
FORM #1: DATE WITH LOCAL TIME FORM #1: DATE WITH LOCAL TIME
The date with local time form is simply a date-time value that The date with local time form is simply a DATE-TIME value that
does not contain the UTC designator nor does it reference a time does not contain the UTC designator nor does it reference a time
zone. For example, the following represents January 18, 1998, at zone. For example, the following represents January 18, 1998, at
11 PM: 11 PM:
19980118T230000 19980118T230000
Date-time values of this type are said to be "floating" and are DATE-TIME values of this type are said to be "floating" and are
not bound to any time zone in particular. They are used to not bound to any time zone in particular. They are used to
represent the same hour, minute, and second value regardless of represent the same hour, minute, and second value regardless of
which time zone is currently being observed. For example, an which time zone is currently being observed. For example, an
event can be defined that indicates that an individual will be event can be defined that indicates that an individual will be
busy from 11:00 AM to 1:00 PM every day, no matter which time zone busy from 11:00 AM to 1:00 PM every day, no matter which time zone
the person is in. In these cases, a local time can be specified. the person is in. In these cases, a local time can be specified.
The recipient of an iCalendar object with a property value The recipient of an iCalendar object with a property value
consisting of a local time, without any relative time zone consisting of a local time, without any relative time zone
information, SHOULD interpret the value as being fixed to whatever information, SHOULD interpret the value as being fixed to whatever
time zone the "ATTENDEE" is in at any given moment. This means time zone the "ATTENDEE" is in at any given moment. This means
skipping to change at page 40, line 16 skipping to change at page 41, line 28
/ ( "BYMONTHDAY" "=" bymodaylist ) / ( "BYMONTHDAY" "=" bymodaylist )
/ ( "BYYEARDAY" "=" byyrdaylist ) / ( "BYYEARDAY" "=" byyrdaylist )
/ ( "BYWEEKNO" "=" bywknolist ) / ( "BYWEEKNO" "=" bywknolist )
/ ( "BYMONTH" "=" bymolist ) / ( "BYMONTH" "=" bymolist )
/ ( "BYSETPOS" "=" bysplist ) / ( "BYSETPOS" "=" bysplist )
/ ( "WKST" "=" weekday ) / ( "WKST" "=" weekday )
freq = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY" freq = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY"
/ "WEEKLY" / "MONTHLY" / "YEARLY" / "WEEKLY" / "MONTHLY" / "YEARLY"
enddate = date / date-time ;A UTC value enddate = date / date-time
byseclist = ( seconds *("," seconds) ) byseclist = ( seconds *("," seconds) )
seconds = 1*2DIGIT ;0 to 60 seconds = 1*2DIGIT ;0 to 60
byminlist = ( minutes *("," minutes) ) byminlist = ( minutes *("," minutes) )
minutes = 1*2DIGIT ;0 to 59 minutes = 1*2DIGIT ;0 to 59
byhrlist = ( hour *("," hour) ) byhrlist = ( hour *("," hour) )
skipping to change at page 41, line 25 skipping to change at page 42, line 37
bysplist = ( setposday *("," setposday) ) bysplist = ( setposday *("," setposday) )
setposday = yeardaynum setposday = yeardaynum
Description: This value type is a structured value consisting of a Description: This value type is a structured value consisting of a
list of one or more recurrence grammar parts. Each rule part is list of one or more recurrence grammar parts. Each rule part is
defined by a NAME=VALUE pair. The rule parts are separated from defined by a NAME=VALUE pair. The rule parts are separated from
each other by the SEMICOLON character (US-ASCII decimal 59). The each other by the SEMICOLON character (US-ASCII decimal 59). The
rule parts are not ordered in any particular sequence. Individual rule parts are not ordered in any particular sequence. Individual
rule parts MUST only be specified once. rule parts MUST only be specified once. Compliant applications
MUST accept rule parts ordered in any sequence, but to ensure
Note: Compliant applications MUST accept rule parts ordered in backward compatibility with applications that pre-date this
any sequence, but to ensure backward compatibility with revision of iCalendar the FREQ rule part MUST be the first rule
applications that pre-date this revision of iCalendar the FREQ part specified in a RECUR value.
rule part MUST be the first rule part specified in a RECUR
value.
The FREQ rule part identifies the type of recurrence rule. This The FREQ rule part identifies the type of recurrence rule. This
rule part MUST be specified in the recurrence rule. Valid values rule part MUST be specified in the recurrence rule. Valid values
include SECONDLY, to specify repeating events based on an interval include SECONDLY, to specify repeating events based on an interval
of a second or more; MINUTELY, to specify repeating events based of a second or more; MINUTELY, to specify repeating events based
on an interval of a minute or more; HOURLY, to specify repeating on an interval of a minute or more; HOURLY, to specify repeating
events based on an interval of an hour or more; DAILY, to specify events based on an interval of an hour or more; DAILY, to specify
repeating events based on an interval of a day or more; WEEKLY, to repeating events based on an interval of a day or more; WEEKLY, to
specify repeating events based on an interval of a week or more; specify repeating events based on an interval of a week or more;
MONTHLY, to specify repeating events based on an interval of a MONTHLY, to specify repeating events based on an interval of a
skipping to change at page 49, line 26 skipping to change at page 51, line 15
the value as being fixed to whatever time zone the "ATTENDEE" is the value as being fixed to whatever time zone the "ATTENDEE" is
in at any given moment. This means that two "Attendees", may in at any given moment. This means that two "Attendees", may
participate in the same event at different UTC times; floating participate in the same event at different UTC times; floating
time SHOULD only be used where that is reasonable behavior. time SHOULD only be used where that is reasonable behavior.
In most cases, a fixed time is desired. To properly communicate a In most cases, a fixed time is desired. To properly communicate a
fixed time in a property value, either UTC time or local time with fixed time in a property value, either UTC time or local time with
time zone reference MUST be specified. time zone reference MUST be specified.
The use of local time in a TIME value without the "TZID" property The use of local time in a TIME value without the "TZID" property
parameter is to be interpreted as a local time value, regardless parameter is to be interpreted as floating time, regardless of the
of the existence of "VTIMEZONE" calendar components in the existence of "VTIMEZONE" calendar components in the iCalendar
iCalendar object. object.
FORM #2: UTC TIME FORM #2: UTC TIME
UTC time, or absolute time, is identified by a LATIN CAPITAL UTC time, or absolute time, is identified by a LATIN CAPITAL
LETTER Z suffix character (US-ASCII decimal 90), the UTC 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 07:00 AM UTC: following represents 07:00 AM UTC:
070000Z 070000Z
skipping to change at page 53, line 8 skipping to change at page 55, line 8
express a particular calendar semantic. For example, the calendar express a particular calendar semantic. For example, the calendar
component can specify an event, a to-do, a journal entry, time zone component can specify an event, a to-do, a journal entry, time zone
information, free/busy time information, or an alarm. information, free/busy time information, or an alarm.
The body of the iCalendar object is defined by the following The body of the iCalendar object is defined by the following
notation: notation:
icalbody = calprops component icalbody = calprops component
calprops = *( calprops = *(
;
; the following are REQUIRED, ; the following are REQUIRED,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
prodid / version / prodid / version /
;
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
calscale / method / calscale / method /
;
; the following are OPTIONAL, ; the following are OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
x-prop / iana-prop x-prop / iana-prop
;
) )
component = 1*(eventc / todoc / journalc / freebusyc / component = 1*(eventc / todoc / journalc / freebusyc /
timezonec / iana-comp / x-comp) timezonec / iana-comp / x-comp)
iana-comp = "BEGIN" ":" iana-token CRLF iana-comp = "BEGIN" ":" iana-token CRLF
1*contentline 1*contentline
"END" ":" iana-token CRLF "END" ":" iana-token CRLF
x-comp = "BEGIN" ":" x-name CRLF x-comp = "BEGIN" ":" x-name CRLF
skipping to change at page 54, line 20 skipping to change at page 57, line 10
event. event.
Format Definition: A "VEVENT" calendar component is defined by the Format Definition: A "VEVENT" calendar component is defined by the
following notation: following notation:
eventc = "BEGIN" ":" "VEVENT" CRLF eventc = "BEGIN" ":" "VEVENT" CRLF
eventprop *alarmc eventprop *alarmc
"END" ":" "VEVENT" CRLF "END" ":" "VEVENT" CRLF
eventprop = *( eventprop = *(
;
; 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 is REQUIRED if the component ; the following is REQUIRED if the component
; appears in an iCalendar object that doesn't ; appears in an iCalendar object that doesn't
; specify the "METHOD" property, otherwise it ; specify the "METHOD" property, otherwise it
; is OPTIONAL, in any case it MUST NOT occur ; is OPTIONAL, in any case it MUST NOT occur
; more than once ; more than once
;
dtstart / dtstart /
;
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
class / created / description / geo / class / created / description / geo /
last-mod / location / organizer / priority / last-mod / location / organizer / priority /
seq / status / summary / transp / seq / status / summary / transp /
url / recurid / url / recurid /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; but SHOULD NOT occur more than once ; but SHOULD NOT occur more than once
;
rrule / rrule /
;
; either 'dtend' or 'duration' MAY appear in ; either 'dtend' or 'duration' MAY appear in
; a 'eventprop', but 'dtend' and 'duration' ; a 'eventprop', but 'dtend' and 'duration'
; MUST NOT occur in the same 'eventprop' ; MUST NOT occur in the same 'eventprop'
;
dtend / duration / dtend / duration /
;
; the following are OPTIONAL, ; the following are OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
attach / attendee / categories / comment / attach / attendee / categories / comment /
contact / exdate / rstatus / related / contact / exdate / rstatus / related /
resources / rdate / x-prop / iana-prop resources / rdate / x-prop / iana-prop
;
) )
Description: A "VEVENT" calendar component is a grouping of Description: A "VEVENT" calendar component is a grouping of
component properties, and possibly including "VALARM" calendar component properties, and possibly including "VALARM" calendar
components, that represents a scheduled amount of time on a components, that represents a scheduled amount of time on a
calendar. For example, it can be an activity; such as a one-hour calendar. For example, it can be an activity; such as a one-hour
long, department meeting from 8:00 AM to 9:00 AM, tomorrow. long, department meeting from 8:00 AM to 9:00 AM, tomorrow.
Generally, an event will take up time on an individual calendar. Generally, an event will take up time on an individual calendar.
Hence, the event will appear as an opaque interval in a search for Hence, the event will appear as an opaque interval in a search for
busy time. Alternately, the event can have its Time Transparency busy time. Alternately, the event can have its Time Transparency
set to "TRANSPARENT" in order to prevent blocking of the event in set to "TRANSPARENT" in order to prevent blocking of the event in
searches for busy time. searches for busy time.
skipping to change at page 58, line 10 skipping to change at page 61, line 10
to-do. to-do.
Format Definition: A "VTODO" calendar component is defined by the Format Definition: A "VTODO" calendar component is defined by the
following notation: following notation:
todoc = "BEGIN" ":" "VTODO" CRLF todoc = "BEGIN" ":" "VTODO" CRLF
todoprop *alarmc todoprop *alarmc
"END" ":" "VTODO" CRLF "END" ":" "VTODO" CRLF
todoprop = *( todoprop = *(
;
; the following are REQUIRED, ; the following are REQUIRED,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
dtstamp / uid / dtstamp / uid /
;
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
class / completed / created / description / class / completed / created / description /
dtstart / geo / last-mod / location / organizer / dtstart / geo / last-mod / location / organizer /
percent / priority / recurid / seq / status / percent / priority / recurid / seq / status /
summary / url / summary / url /
;
; the following is OPTIONAL, ; 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
;
) )
Description: A "VTODO" calendar component is a grouping of component Description: A "VTODO" calendar component is a grouping of component
properties and possibly "VALARM" calendar components that properties and possibly "VALARM" calendar components that
represent an action-item or assignment. For example, it can be represent an action-item or assignment. For example, it can be
used to represent an item of work assigned to an individual; such used to represent an item of work assigned to an individual; such
as "turn in travel expense today". as "turn in travel expense today".
The "VTODO" calendar component cannot be nested within another The "VTODO" calendar component cannot be nested within another
calendar component. However, "VTODO" calendar components can be calendar component. However, "VTODO" calendar components can be
related to each other or to a "VEVENT" or to a "VJOURNAL" calendar related to each other or to a "VEVENT" or to a "VJOURNAL" calendar
component with the "RELATED-TO" property. component with the "RELATED-TO" property.
skipping to change at page 60, line 20 skipping to change at page 63, line 13
journal entry. journal entry.
Format Definition: A "VJOURNAL" calendar component is defined by the Format Definition: A "VJOURNAL" calendar component is defined by the
following notation: following notation:
journalc = "BEGIN" ":" "VJOURNAL" CRLF journalc = "BEGIN" ":" "VJOURNAL" CRLF
jourprop jourprop
"END" ":" "VJOURNAL" CRLF "END" ":" "VJOURNAL" CRLF
jourprop = *( jourprop = *(
;
; the following are REQUIRED, ; the following are REQUIRED,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
dtstamp / uid / dtstamp / uid /
;
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
class / created / dtstart / class / created / dtstart /
last-mod / organizer / recurid / seq / last-mod / organizer / recurid / seq /
status / summary / url / status / summary / url /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; but SHOULD NOT occur more than once ; but SHOULD NOT occur more than once
;
rrule / rrule /
;
; the following are OPTIONAL, ; the following are OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
attach / attendee / categories / comment / attach / attendee / categories / comment /
contact / description / exdate / related / rdate / contact / description / exdate / related / rdate /
rstatus / x-prop / iana-prop rstatus / x-prop / iana-prop
;
) )
Description: A "VJOURNAL" calendar component is a grouping of Description: A "VJOURNAL" calendar component is a grouping of
component properties that represent one or more descriptive text component properties that represent one or more descriptive text
notes associated with a particular calendar date. The "DTSTART" notes associated with a particular calendar date. The "DTSTART"
property is used to specify the calendar date that the journal property is used to specify the calendar date that the journal
entry is associated with. Generally, it will have a DATE value entry is associated with. Generally, it will have a DATE value
data type, but it can also be used to specify a DATE-TIME value data type, but it can also be used to specify a DATE-TIME value
data type. Examples of a journal entry include a daily record of data type. Examples of a journal entry include a daily record of
a legislative body or a journal entry of individual telephone a legislative body or a journal entry of individual telephone
skipping to change at page 62, line 10 skipping to change at page 65, line 10
time. time.
Format Definition: A "VFREEBUSY" calendar component is defined by Format Definition: A "VFREEBUSY" calendar component is defined by
the following notation: the following notation:
freebusyc = "BEGIN" ":" "VFREEBUSY" CRLF freebusyc = "BEGIN" ":" "VFREEBUSY" CRLF
fbprop fbprop
"END" ":" "VFREEBUSY" CRLF "END" ":" "VFREEBUSY" CRLF
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 / contact / dtstart / dtend /
organizer / 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
to a request for free or busy time information or a published set to a request for free or busy time information or a published set
of busy time information. of busy time information.
When used to request free/busy time information, the "ATTENDEE" When used to request free/busy time information, the "ATTENDEE"
property specifies the calendar users whose free/busy time is property specifies the calendar users whose free/busy time is
being requested; the "ORGANIZER" property specifies the calendar being requested; the "ORGANIZER" property specifies the calendar
skipping to change at page 64, line 46 skipping to change at page 67, line 46
Component Name: VTIMEZONE Component Name: VTIMEZONE
Purpose: Provide a grouping of component properties that defines a Purpose: Provide a grouping of component properties that defines a
time zone. time zone.
Format Definition: A "VTIMEZONE" calendar component is defined by Format Definition: A "VTIMEZONE" calendar component is defined by
the following notation: the following notation:
timezonec = "BEGIN" ":" "VTIMEZONE" CRLF timezonec = "BEGIN" ":" "VTIMEZONE" CRLF
*( *(
;
; 'tzid' is REQUIRED, but MUST NOT occur more ; 'tzid' is REQUIRED, but MUST NOT occur more
; than once ; than once
;
tzid / tzid /
;
; 'last-mod' and 'tzurl' are OPTIONAL, ; 'last-mod' and 'tzurl' are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
last-mod / tzurl / last-mod / tzurl /
;
; one of 'standardc' or 'daylightc' MUST occur ; one of 'standardc' or 'daylightc' MUST occur
; and each MAY occur more than once. ; and each MAY occur more than once.
;
standardc / daylightc / standardc / daylightc /
;
; the following are OPTIONAL, ; the following are OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
x-prop / iana-prop x-prop / iana-prop
;
) )
"END" ":" "VTIMEZONE" CRLF "END" ":" "VTIMEZONE" CRLF
standardc = "BEGIN" ":" "STANDARD" CRLF standardc = "BEGIN" ":" "STANDARD" CRLF
tzprop tzprop
"END" ":" "STANDARD" CRLF "END" ":" "STANDARD" CRLF
daylightc = "BEGIN" ":" "DAYLIGHT" CRLF daylightc = "BEGIN" ":" "DAYLIGHT" CRLF
tzprop tzprop
"END" ":" "DAYLIGHT" CRLF "END" ":" "DAYLIGHT" CRLF
skipping to change at page 65, line 32 skipping to change at page 68, line 31
standardc = "BEGIN" ":" "STANDARD" CRLF standardc = "BEGIN" ":" "STANDARD" CRLF
tzprop tzprop
"END" ":" "STANDARD" CRLF "END" ":" "STANDARD" CRLF
daylightc = "BEGIN" ":" "DAYLIGHT" CRLF daylightc = "BEGIN" ":" "DAYLIGHT" CRLF
tzprop tzprop
"END" ":" "DAYLIGHT" CRLF "END" ":" "DAYLIGHT" CRLF
tzprop = *( tzprop = *(
;
; the following are REQUIRED, ; the following are REQUIRED,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
dtstart / tzoffsetto / tzoffsetfrom / dtstart / tzoffsetto / tzoffsetfrom /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; but SHOULD NOT occur more than once ; but SHOULD NOT occur more than once
;
rrule / rrule /
;
; the following are OPTIONAL, ; the following are OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
comment / rdate / tzname / x-prop / iana-prop comment / rdate / tzname / x-prop / iana-prop
;
) )
Description: A time zone is unambiguously defined by the set of time Description: A time zone is unambiguously defined by the set of time
measurement rules determined by the governing body for a given measurement rules determined by the governing body for a given
geographic area. These rules describe at a minimum the base geographic area. These rules describe at a minimum the base
offset from UTC for the time zone, often referred to as the offset from UTC for the time zone, often referred to as the
Standard Time offset. Many locations adjust their Standard Time Standard Time offset. Many locations adjust their Standard Time
forward or backward by one hour, in order to accommodate seasonal forward or backward by one hour, in order to accommodate seasonal
changes in number of daylight hours, often referred to as Daylight changes in number of daylight hours, often referred to as Daylight
Saving Time. Some locations adjust their time by a fraction of an Saving Time. Some locations adjust their time by a fraction of an
hour. Standard Time is also known as Winter Time. Daylight hour. Standard Time is also known as Winter Time. Daylight
skipping to change at page 68, line 39 skipping to change at page 71, line 39
published "VTIMEZONE" definition. "TZURL" SHOULD refer to a published "VTIMEZONE" definition. "TZURL" SHOULD refer to a
resource that is accessible by anyone who might need to interpret resource that is accessible by anyone who might need to interpret
the object. This SHOULD NOT normally be a "file" URL or other URL the object. This SHOULD NOT normally be a "file" URL or other URL
that is not widely-accessible. that is not widely-accessible.
The collection of properties that are used to define the The collection of properties that are used to define the
"STANDARD" and "DAYLIGHT" sub-components include: "STANDARD" and "DAYLIGHT" sub-components include:
The mandatory "DTSTART" property gives the effective onset date The mandatory "DTSTART" property gives the effective onset date
and local time for the time zone sub-component definition. and local time for the time zone sub-component definition.
"DTSTART" in this usage MUST be specified as a local DATE-TIME "DTSTART" in this usage MUST be specified as a date with local
value. time value.
The mandatory "TZOFFSETFROM" property gives the UTC offset which The mandatory "TZOFFSETFROM" property gives the UTC offset which
is in use when the onset of this time zone observance begins. is in use when the onset of this time zone observance begins.
"TZOFFSETFROM" is combined with "DTSTART" to define the effective "TZOFFSETFROM" is combined with "DTSTART" to define the effective
onset for the time zone sub-component definition. For example, onset for the time zone sub-component definition. For example,
the following represents the time at which the observance of the following represents the time at which the observance of
Standard Time took effect in Fall 1967 for New York City: Standard Time took effect in Fall 1967 for New York City:
DTSTART:19671029T020000 DTSTART:19671029T020000
skipping to change at page 69, line 32 skipping to change at page 72, line 32
last valid onset of this observance (i.e., the UNTIL date-time last valid onset of this observance (i.e., the UNTIL date-time
will be equal to the last instance generated by the recurrence will be equal to the last instance generated by the recurrence
pattern). It MUST be specified in UTC time. pattern). It MUST be specified in UTC time.
* The "DTSTART" and the "TZOFFSETFROM" properties MUST be used * The "DTSTART" and the "TZOFFSETFROM" properties MUST be used
when generating the onset date-time values (instances) from the when generating the onset date-time values (instances) from the
"RRULE". "RRULE".
The "RDATE" property can also be used to define the onset of the The "RDATE" property can also be used to define the onset of the
observance by giving the individual onset date and times. "RDATE" observance by giving the individual onset date and times. "RDATE"
in this usage MUST be specified as a local DATE-TIME value, in this usage MUST be specified as a date with local time value,
relative to the UTC offset specified in the "TZOFFSETFROM" relative to the UTC offset specified in the "TZOFFSETFROM"
property. property.
The optional "COMMENT" property is also allowed for descriptive The optional "COMMENT" property is also allowed for descriptive
explanatory text. explanatory text.
Example: The following are examples of the "VTIMEZONE" calendar Example: The following are examples of the "VTIMEZONE" calendar
component: component:
This is an example showing all the time zone rules for New York This is an example showing all the time zone rules for New York
skipping to change at page 71, line 5 skipping to change at page 74, line 5
END:DAYLIGHT END:DAYLIGHT
BEGIN:STANDARD BEGIN:STANDARD
DTSTART:20071104T020000 DTSTART:20071104T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
TZOFFSETFROM:-0400 TZOFFSETFROM:-0400
TZOFFSETTO:-0500 TZOFFSETTO:-0500
TZNAME:EST TZNAME:EST
END:STANDARD END:STANDARD
END:VTIMEZONE END:VTIMEZONE
This is an example showing time zone information for New York City This is an example showing time zone information for New York City
using property. Note that this is only suitable for a recurring using only the "DTSTART" property. Note that this is only
event that starts on or later than March 11, 2007 at 03:00:00 EDT suitable for a recurring event that starts on or later than March
(i.e., the earliest effective transition date and time) and ends 11, 2007 at 03:00:00 EDT (i.e., the earliest effective transition
no later than March 9, 2008 at 01:59:59 EST (i.e., latest valid date and time) and ends no later than March 9, 2008 at 01:59:59
date and time for EST in this scenario). For example, this can be EST (i.e., latest valid date and time for EST in this scenario).
used for a recurring event that occurs every Friday, 8:00 A.M.- For example, this can be used for a recurring event that occurs
9:00 A.M., starting June 1, 2007, ending December 31, 2007, every Friday, 8:00 A.M.-9:00 A.M., starting June 1, 2007, ending
December 31, 2007,
BEGIN:VTIMEZONE BEGIN:VTIMEZONE
TZID:America/New_York TZID:America/New_York
LAST-MODIFIED:20050809T050000Z LAST-MODIFIED:20050809T050000Z
BEGIN:STANDARD BEGIN:STANDARD
DTSTART:20071104T020000 DTSTART:20071104T020000
TZOFFSETFROM:-0400 TZOFFSETFROM:-0400
TZOFFSETTO:-0500 TZOFFSETTO:-0500
TZNAME:EST TZNAME:EST
END:STANDARD END:STANDARD
skipping to change at page 73, line 46 skipping to change at page 76, line 46
alarm. alarm.
Format Definition: A "VALARM" calendar component is defined by the Format Definition: A "VALARM" calendar component is defined by the
following notation: following notation:
alarmc = "BEGIN" ":" "VALARM" CRLF alarmc = "BEGIN" ":" "VALARM" CRLF
(audioprop / dispprop / emailprop) (audioprop / dispprop / emailprop)
"END" ":" "VALARM" CRLF "END" ":" "VALARM" CRLF
audioprop = *( audioprop = *(
;
; 'action' and 'trigger' are both REQUIRED, ; 'action' and 'trigger' are both REQUIRED,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
action / trigger / action / trigger /
;
; 'duration' and 'repeat' are both OPTIONAL, ; 'duration' and 'repeat' are both OPTIONAL,
; and MUST NOT occur more than once each, ; and MUST NOT occur more than once each,
; but if one occurs, so MUST the other ; but if one occurs, so MUST the other
;
duration / repeat / duration / repeat /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
attach / attach /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
x-prop / iana-prop x-prop / iana-prop
;
) )
dispprop = *( dispprop = *(
;
; the following are REQUIRED, ; the following are REQUIRED,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
action / description / trigger / action / description / trigger /
;
; 'duration' and 'repeat' are both OPTIONAL, ; 'duration' and 'repeat' are both OPTIONAL,
; and MUST NOT occur more than once each, ; and MUST NOT occur more than once each,
; but if one occurs, so MUST the other ; but if one occurs, so MUST the other
;
duration / repeat / duration / repeat /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
x-prop / iana-prop x-prop / iana-prop
;
) )
emailprop = *( emailprop = *(
;
; the following are all REQUIRED, ; the following are all REQUIRED,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
action / description / trigger / summary / action / description / trigger / summary /
;
; the following is REQUIRED, ; the following is REQUIRED,
; and MAY occur more than once ; and MAY occur more than once
;
attendee / attendee /
;
; 'duration' and 'repeat' are both OPTIONAL, ; 'duration' and 'repeat' are both OPTIONAL,
; and MUST NOT occur more than once each, ; and MUST NOT occur more than once each,
; but if one occurs, so MUST the other ; but if one occurs, so MUST the other
;
duration / repeat / duration / repeat /
;
; the following are OPTIONAL, ; the following are OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
attach / x-prop / iana-prop attach / x-prop / iana-prop
;
) )
Description: A "VALARM" calendar component is a grouping of Description: A "VALARM" calendar component is a grouping of
component properties that is a reminder or alarm for an event or a component properties that is a reminder or alarm for an event or a
to-do. For example, it may be used to define a reminder for a to-do. For example, it may be used to define a reminder for a
pending event or an overdue to-do. pending event or an overdue to-do.
The "VALARM" calendar component MUST include the "ACTION" and The "VALARM" calendar component MUST include the "ACTION" and
"TRIGGER" properties. The "ACTION" property further constrains "TRIGGER" properties. The "ACTION" property further constrains
the "VALARM" calendar component in the following ways: the "VALARM" calendar component in the following ways:
skipping to change at page 80, line 44 skipping to change at page 83, line 44
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 once in an iCalendar Conformance: The property MUST be specified once in an iCalendar
object. object.
Description: The vendor of the implementation SHOULD assure that Description: The vendor of the implementation SHOULD assure that
this is a globally unique identifier; using some technique such as this is a globally unique identifier; using some technique such as
an FPI value, as defined in [ISO.9070.1991]. an FPI value, as defined in [ISO.9070.1991].
This property SHOULD not be used to alter the interpretation of an This property SHOULD NOT be used to alter the interpretation of an
iCalendar object beyond the semantics specified in this memo. For iCalendar object beyond the semantics specified in this memo. For
example, it is not to be used to further the understanding of non- example, it is not to be used to further the understanding of non-
standard properties. standard properties.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
prodid = "PRODID" pidparam ":" pidvalue CRLF prodid = "PRODID" pidparam ":" pidvalue CRLF
pidparam = *(";" other-param) pidparam = *(";" other-param)
skipping to change at page 82, line 29 skipping to change at page 85, line 29
Property Name: ATTACH Property Name: ATTACH
Purpose: This property provides the capability to associate a Purpose: This property provides the capability to associate a
document object with a calendar component. document object with a calendar component.
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 and value
type and value data type property parameters can be specified on data type property parameters can be specified on this property.
this property. The format type parameter can be specified on this property and is
RECOMMENDED for inline binary encoded content information.
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 allows 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.
When this property is specified as inline binary encoded content,
calendar applications MAY attempt to guess the media type of the
resource via inspection of its content if and only if the media
type of the resource is not given by the "FMTTYPE" parameter. If
the media type remains unknown, calendar applications SHOULD treat
it as type "application/octet-stream".
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
attach = "ATTACH" attachparam ":" uri CRLF attach = "ATTACH" attachparam ( ":" uri ) /
(
/ "ATTACH" attachparam ";" "ENCODING" "=" "BASE64" ";" "ENCODING" "=" "BASE64"
";" "VALUE" "=" "BINARY" ":" binary ";" "VALUE" "=" "BINARY"
":" binary
)
CRLF
attachparam = *( attachparam = *(
;
; the following is OPTIONAL, ; the following is OPTIONAL for URI value
; but MUST NOT occur more than once ; and RECOMMENDED for BINARY value,
; and MUST NOT occur more than once
;
(";" fmttypeparam) / (";" fmttypeparam) /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) )
Example: The following are examples of this property: Example: The following are examples of this property:
ATTACH:CID:jsmith.part3.960817T083000.xyzMail@example.com ATTACH:CID:jsmith.part3.960817T083000.xyzMail@example.com
ATTACH;FMTTYPE=application/postscript:ftp://example.com/pub/ ATTACH;FMTTYPE=application/postscript:ftp://example.com/pub/
reports/r-960812.ps reports/r-960812.ps
3.8.1.2. Categories 3.8.1.2. Categories
skipping to change at page 84, line 12 skipping to change at page 87, line 22
more than one category can be specified as a list of categories more than one category can be specified as a list of categories
separated by the COMMA character (US-ASCII decimal 44). separated by the COMMA character (US-ASCII decimal 44).
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
categories = "CATEGORIES" catparam ":" text *("," text) categories = "CATEGORIES" catparam ":" text *("," text)
CRLF CRLF
catparam = *( catparam = *(
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
(";" languageparam ) / (";" languageparam ) /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) )
Example: The following are examples of this property: Example: The following are examples of this property:
CATEGORIES:APPOINTMENT,EDUCATION CATEGORIES:APPOINTMENT,EDUCATION
CATEGORIES:MEETING CATEGORIES:MEETING
3.8.1.3. Classification 3.8.1.3. Classification
skipping to change at page 86, line 11 skipping to change at page 89, line 24
Description: This property is used to specify a comment to the Description: This property is used to specify a comment to the
calendar user. calendar user.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
comment = "COMMENT" commparam ":" text CRLF comment = "COMMENT" commparam ":" text CRLF
commparam = *( commparam = *(
;
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
(";" altrepparam) / (";" languageparam) / (";" altrepparam) / (";" languageparam) /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) )
Example: The following is an example of this property: Example: The following is an example of this property:
COMMENT:The meeting really needs to include both ourselves COMMENT:The meeting really needs to include both ourselves
and the customer. We can't hold this meeting without them. and the customer. We can't hold this meeting without them.
As a matter of fact\, the venue for the meeting ought to be at As a matter of fact\, the venue for the meeting ought to be at
their site. - - John their site. - - John
3.8.1.5. Description 3.8.1.5. Description
skipping to change at page 87, line 18 skipping to change at page 90, line 32
This property is used in the "VALARM" calendar component to This property is used in the "VALARM" calendar component to
capture the display text for a DISPLAY category of alarm, and to capture the display text for a DISPLAY category of alarm, and to
capture the body text for an EMAIL category of alarm. capture the body text for an EMAIL category of alarm.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
description = "DESCRIPTION" descparam ":" text CRLF description = "DESCRIPTION" descparam ":" text CRLF
descparam = *( descparam = *(
;
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
(";" altrepparam) / (";" languageparam) / (";" altrepparam) / (";" languageparam) /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) )
Example: The following is an example of this property with formatted Example: The following is an example of this property with formatted
line breaks in the property value: line breaks in the property value:
DESCRIPTION:Meeting to provide technical review for "Phoenix" DESCRIPTION:Meeting to provide technical review for "Phoenix"
design.\nHappy Face Conference Room. Phoenix design team design.\nHappy Face Conference Room. Phoenix design team
MUST attend this meeting.\nRSVP to team leader. MUST attend this meeting.\nRSVP to team leader.
3.8.1.6. Geographic Position 3.8.1.6. Geographic Position
skipping to change at page 90, line 8 skipping to change at page 93, line 23
either an LDAP URL [RFC4516] pointing to an LDAP server entry or a either an LDAP URL [RFC4516] pointing to an LDAP server entry or a
CID URL [RFC2392] pointing to a MIME body part containing a vCard CID URL [RFC2392] pointing to a MIME body part containing a vCard
[RFC2426] for the location. [RFC2426] for the location.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
location = "LOCATION" locparam ":" text CRLF location = "LOCATION" locparam ":" text CRLF
locparam = *( locparam = *(
;
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
(";" altrepparam) / (";" languageparam) / (";" altrepparam) / (";" languageparam) /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) )
Example: The following are some examples of this property: Example: The following are some examples of this property:
LOCATION:Conference Room - F123\, Bldg. 002 LOCATION:Conference Room - F123\, Bldg. 002
LOCATION;ALTREP="http://xyzcorp.com/conf-rooms/f123.vcf": LOCATION;ALTREP="http://xyzcorp.com/conf-rooms/f123.vcf":
Conference Room - F123\, Bldg. 002 Conference Room - F123\, Bldg. 002
3.8.1.8. Percent Complete 3.8.1.8. Percent Complete
skipping to change at page 93, line 31 skipping to change at page 97, line 8
Description: The property value is an arbitrary text. More than one Description: The property value is an arbitrary text. More than one
resource can be specified as a list of resources separated by the resource can be specified as a list of resources separated by the
COMMA character (US-ASCII decimal 44). COMMA character (US-ASCII decimal 44).
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
resources = "RESOURCES" resrcparam ":" text *("," text) CRLF resources = "RESOURCES" resrcparam ":" text *("," text) CRLF
resrcparam = *( resrcparam = *(
;
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
(";" altrepparam) / (";" languageparam) / (";" altrepparam) / (";" languageparam) /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) )
Example: The following is an example of this property: Example: The following is an example of this property:
RESOURCES:EASEL,PROJECTOR,VCR RESOURCES:EASEL,PROJECTOR,VCR
RESOURCES;LANGUAGE=fr:Nettoyeur haute pression RESOURCES;LANGUAGE=fr:Nettoyeur haute pression
3.8.1.11. Status 3.8.1.11. Status
skipping to change at page 96, line 14 skipping to change at page 99, line 31
This property is used in the "VALARM" calendar component to This property is used in the "VALARM" calendar component to
capture the subject of an EMAIL category of alarm. capture the subject of an EMAIL category of alarm.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
summary = "SUMMARY" summparam ":" text CRLF summary = "SUMMARY" summparam ":" text CRLF
summparam = *( summparam = *(
;
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
(";" altrepparam) / (";" languageparam) / (";" altrepparam) / (";" languageparam) /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) )
Example: The following is an example of this property: Example: The following is an example of this property:
SUMMARY:Department Party SUMMARY:Department Party
3.8.2. Date and Time Component Properties 3.8.2. Date and Time Component Properties
The following properties specify date and time related information in The following properties specify date and time related information in
calendar components. calendar components.
skipping to change at page 98, line 8 skipping to change at page 101, line 27
the end date and time for the free or busy time information. The the end date and time for the free or busy time information. The
time MUST be specified in the UTC time format. The value MUST be time MUST be specified in the UTC time format. The value MUST be
later in time than the value of the "DTSTART" property. later in time than the value of the "DTSTART" property.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
dtend = "DTEND" dtendparam ":" dtendval CRLF dtend = "DTEND" dtendparam ":" dtendval CRLF
dtendparam = *( dtendparam = *(
;
; 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) /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) )
dtendval = date-time / date dtendval = date-time / date
;Value MUST match value type ;Value MUST match value type
Example: The following is an example of this property: Example: The following is an example of this property:
DTEND:19960401T150000Z DTEND:19960401T150000Z
DTEND;VALUE=DATE:19980704 DTEND;VALUE=DATE:19980704
skipping to change at page 99, line 15 skipping to change at page 102, line 38
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:
due = "DUE" dueparam ":" dueval CRLF due = "DUE" dueparam ":" dueval CRLF
dueparam = *( dueparam = *(
;
; 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) /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) )
dueval = date-time / date dueval = date-time / date
;Value MUST match value type ;Value MUST match value type
Example: The following is an example of this property: Example: The following is an example of this property:
DUE:19980430T000000Z DUE:19980430T000000Z
3.8.2.4. Date/Time Start 3.8.2.4. Date/Time Start
skipping to change at page 100, line 24 skipping to change at page 103, line 43
defines the start date and time for the event. defines the start date and time for the event.
Within the "VFREEBUSY" calendar component, this property defines Within the "VFREEBUSY" calendar component, this property defines
the start date and time for the free or busy time information. the start date and time for the free or busy time information.
The time MUST be specified in UTC time. The time MUST be specified in UTC time.
Within the "STANDARD" and "DAYLIGHT" sub-components, this property Within the "STANDARD" and "DAYLIGHT" sub-components, this property
defines the effective start date and time for a time zone defines the effective start date and time for a time zone
specification. This property is REQUIRED within each "STANDARD" specification. This property is REQUIRED within each "STANDARD"
and "DAYLIGHT" sub-components included in "VTIMEZONE" calendar and "DAYLIGHT" sub-components included in "VTIMEZONE" calendar
components and MUST be specified as a local DATE-TIME without the components and MUST be specified as a date with local time without
"TZID" property parameter. the "TZID" property parameter.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
dtstart = "DTSTART" dtstparam ":" dtstval CRLF dtstart = "DTSTART" dtstparam ":" dtstval CRLF
dtstparam = *( dtstparam = *(
;
; 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) /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) )
dtstval = date-time / date dtstval = date-time / date
;Value MUST match value type ;Value MUST match value type
Example: The following is an example of this property: Example: The following is an example of this property:
DTSTART:19980118T073000Z DTSTART:19980118T073000Z
3.8.2.5. Duration 3.8.2.5. Duration
Property Name: DURATION Property Name: DURATION
Purpose: This property specifies a positive duration of time. Purpose: This property specifies a positive duration of time.
skipping to change at page 102, line 40 skipping to change at page 106, line 11
"FREEBUSY" property values MUST all be of the same "FBTYPE" "FREEBUSY" property values MUST all be of the same "FBTYPE"
property parameter type (e.g., all values of a particular "FBTYPE" property parameter type (e.g., all values of a particular "FBTYPE"
listed together in a single property). listed together in a single property).
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
freebusy = "FREEBUSY" fbparam ":" fbvalue CRLF freebusy = "FREEBUSY" fbparam ":" fbvalue CRLF
fbparam = *( fbparam = *(
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
(";" fbtypeparam) / (";" fbtypeparam) /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) )
fbvalue = period *("," period) fbvalue = period *("," period)
;Time value MUST be in the UTC time format. ;Time value MUST be in the UTC time format.
Example: The following are some examples of this property: Example: The following are some examples of this property:
FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M
FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H
skipping to change at page 106, line 8 skipping to change at page 109, line 30
Description: This property specifies a customary name that can be Description: This property specifies a customary name that can be
used when displaying dates that occur during the observance used when displaying dates that occur during the observance
defined by the time zone sub-component. defined by the time zone sub-component.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
tzname = "TZNAME" tznparam ":" text CRLF tzname = "TZNAME" tznparam ":" text CRLF
tznparam = *( tznparam = *(
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
(";" languageparam) / (";" languageparam) /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) )
Example: The following are examples of this property: Example: The following are examples of this property:
TZNAME:EST TZNAME:EST
TZNAME;LANGUAGE=fr-CA:HNE TZNAME;LANGUAGE=fr-CA:HNE
3.8.3.3. Time Zone Offset From 3.8.3.3. Time Zone Offset From
skipping to change at page 110, line 19 skipping to change at page 114, line 8
Multiple attendees can be specified by including multiple Multiple attendees can be specified by including multiple
"ATTENDEE" properties within the calendar component. "ATTENDEE" properties within the calendar component.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
attendee = "ATTENDEE" attparam ":" cal-address CRLF attendee = "ATTENDEE" attparam ":" cal-address CRLF
attparam = *( attparam = *(
;
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
(";" cutypeparam) / (";" memberparam) / (";" cutypeparam) / (";" memberparam) /
(";" roleparam) / (";" partstatparam) / (";" roleparam) / (";" partstatparam) /
(";" rsvpparam) / (";" deltoparam) / (";" rsvpparam) / (";" deltoparam) /
(";" delfromparam) / (";" sentbyparam) / (";" delfromparam) / (";" sentbyparam) /
(";" cnparam) / (";" dirparam) / (";" cnparam) / (";" dirparam) /
(";" languageparam) / (";" languageparam) /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) )
Example: The following are examples of this property's use for a Example: The following are examples of this property's use for a
to-do: to-do:
ATTENDEE;MEMBER="mailto:DEV-GROUP@example.com": ATTENDEE;MEMBER="mailto:DEV-GROUP@example.com":
mailto:joecool@example.com mailto:joecool@example.com
ATTENDEE;DELEGATED-FROM="mailto:immud@example.com": ATTENDEE;DELEGATED-FROM="mailto:immud@example.com":
mailto:ildoit@example.com mailto:ildoit@example.com
skipping to change at page 112, line 12 skipping to change at page 116, line 8
can also be specified that refers to a URI pointing to an can also be specified that refers to a URI pointing to an
alternate form, such as a vCard [RFC2426], for the contact alternate form, such as a vCard [RFC2426], for the contact
information. information.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
contact = "CONTACT" contparam ":" text CRLF contact = "CONTACT" contparam ":" text CRLF
contparam = *( contparam = *(
;
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
(";" altrepparam) / (";" languageparam) / (";" altrepparam) / (";" languageparam) /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) )
Example: The following is an example of this property referencing Example: The following is an example of this property referencing
textual contact information: textual contact information:
CONTACT:Jim Dolittle\, ABC Industries\, +1-919-555-1234 CONTACT:Jim Dolittle\, ABC Industries\, +1-919-555-1234
The following is an example of this property with an alternate The following is an example of this property with an alternate
representation of a LDAP URI to a directory entry containing the representation of a LDAP URI to a directory entry containing the
contact information: contact information:
skipping to change at page 114, line 9 skipping to change at page 118, line 9
"LANGUAGE" property parameter is specified, the identified "LANGUAGE" property parameter is specified, the identified
language applies to the "CN" parameter value. language applies to the "CN" parameter value.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
organizer = "ORGANIZER" orgparam ":" organizer = "ORGANIZER" orgparam ":"
cal-address CRLF cal-address CRLF
orgparam = *( orgparam = *(
;
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
(";" cnparam) / (";" dirparam) / (";" sentbyparam) / (";" cnparam) / (";" dirparam) / (";" sentbyparam) /
(";" languageparam) / (";" languageparam) /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) )
Example: The following is an example of this property: Example: The following is an example of this property:
ORGANIZER;CN=John Smith:mailto:jsmith@example.com ORGANIZER;CN=John Smith:mailto:jsmith@example.com
The following is an example of this property with a pointer to the The following is an example of this property with a pointer to the
directory information associated with the organizer: directory information associated with the organizer:
ORGANIZER;CN=JohnSmith;DIR="ldap://example.com:6666/o=DC%20Ass ORGANIZER;CN=JohnSmith;DIR="ldap://example.com:6666/o=DC%20Ass
skipping to change at page 115, line 6 skipping to change at page 119, line 6
Property Name: RECURRENCE-ID Property Name: RECURRENCE-ID
Purpose: This property is used in conjunction with the "UID" and Purpose: This property is used in conjunction with the "UID" and
"SEQUENCE" property to identify a specific instance of a recurring "SEQUENCE" property to identify a specific instance of a recurring
"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 default value type is DATE-TIME. The value type can be set to
TIME value type. See DATE-TIME value type definition for specific a DATE value type. This property MUST have the same value type as
interpretations of the various forms. The value type can be set the "DTSTART" property contained within the recurring component.
to DATE. Furthermore, this property MUST be specified as a date with local
time if and only if the "DTSTART" property contained within the
recurring component is specified as a date with local time.
Property Parameters: IANA, non-standard, value data type, time zone Property Parameters: IANA, non-standard, value data type, time zone
identifier and recurrence identifier range parameters can be identifier and recurrence identifier range parameters can be
specified on this property. 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.
If the value of the "DTSTART" property is a DATE type value, then If the value of the "DTSTART" property is a DATE type value, then
the value MUST be the calendar date for the recurrence instance. the value MUST be the calendar date for the recurrence instance.
The date/time value is set to the time when the original The DATE-TIME value is set to the time when the original
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 The "RANGE" parameter is used to specify the effective range of
recurrence instances from the instance specified by the recurrence instances from the instance specified by the
skipping to change at page 116, line 23 skipping to change at page 120, line 26
unbounded recurring calendar component (i.e., with the "COUNT" unbounded recurring calendar component (i.e., with the "COUNT"
or "UNTIL" rule parts), and create two new unbounded recurring or "UNTIL" rule parts), and create two new unbounded recurring
calendar components for the future instances. 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) / (";" rangeparam) / (";" 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;RANGE=THISANDFUTURE:19960120T120000Z RECURRENCE-ID;RANGE=THISANDFUTURE:19960120T120000Z
skipping to change at page 118, line 8 skipping to change at page 122, line 8
relationship of calendar components. It is up to the target relationship of calendar components. It is up to the target
calendar system to maintain any property implications of this calendar system to maintain any property implications of this
relationship. relationship.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
related = "RELATED-TO" relparam ":" text CRLF related = "RELATED-TO" relparam ":" text CRLF
relparam = *( relparam = *(
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
(";" reltypeparam) / (";" reltypeparam) /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) )
The following is an example of this property: The following is an example of this property:
RELATED-TO:jsmith.part7.19960817T083000.xyzMail@example.com RELATED-TO:jsmith.part7.19960817T083000.xyzMail@example.com
RELATED-TO:19960401-080045-4000F192713-0052@example.com RELATED-TO:19960401-080045-4000F192713-0052@example.com
3.8.4.6. Uniform Resource Locator 3.8.4.6. Uniform Resource Locator
skipping to change at page 122, line 8 skipping to change at page 126, line 8
MUST still be maintained by the calendaring and scheduling system MUST still be maintained by the calendaring and scheduling system
because the original "DTSTART" value has inherent usage because the original "DTSTART" value has inherent usage
dependencies by other properties such as the "RECURRENCE-ID". dependencies by other properties such as the "RECURRENCE-ID".
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
exdate = "EXDATE" exdtparam ":" exdtval *("," exdtval) CRLF exdate = "EXDATE" exdtparam ":" exdtval *("," exdtval) CRLF
exdtparam = *( exdtparam = *(
;
; 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) /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) )
exdtval = date-time / date exdtval = date-time / date
;Value MUST match value type ;Value MUST match value type
Example: The following is an example of this property: Example: The following is an example of this property:
EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z
3.8.5.2. Recurrence Date/Times 3.8.5.2. Recurrence Date/Times
skipping to change at page 123, line 32 skipping to change at page 127, line 32
Where duplicate instances are generated by the "RRULE" and "RDATE" Where duplicate instances are generated by the "RRULE" and "RDATE"
properties, only one recurrence is considered. Duplicate properties, only one recurrence is considered. Duplicate
instances are ignored. instances are ignored.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
rdate = "RDATE" rdtparam ":" rdtval *("," rdtval) CRLF rdate = "RDATE" rdtparam ":" rdtval *("," rdtval) CRLF
rdtparam = *( rdtparam = *(
;
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
(";" "VALUE" "=" ("DATE-TIME" / "DATE" / "PERIOD")) / (";" "VALUE" "=" ("DATE-TIME" / "DATE" / "PERIOD")) /
(";" tzidparam) / (";" tzidparam) /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) )
rdtval = date-time / date / period rdtval = date-time / date / period
;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:
RDATE:19970714T123000Z RDATE:19970714T123000Z
RDATE;TZID=America/New_York:19970714T083000 RDATE;TZID=America/New_York:19970714T083000
RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z, RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z,
skipping to change at page 137, line 22 skipping to change at page 141, line 22
set to 19980205 then the duration trigger will be relative to set to 19980205 then the duration trigger will be relative to
19980205T000000 America/New_York for a user configured with the 19980205T000000 America/New_York for a user configured with the
America/New_York time zone. America/New_York time zone.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
trigger = "TRIGGER" (trigrel / trigabs) CRLF trigger = "TRIGGER" (trigrel / trigabs) CRLF
trigrel = *( trigrel = *(
;
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
(";" "VALUE" "=" "DURATION") / (";" "VALUE" "=" "DURATION") /
(";" trigrelparam) / (";" trigrelparam) /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) ":" dur-value ) ":" dur-value
trigabs = *( trigabs = *(
;
; the following is REQUIRED, ; the following is REQUIRED,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
(";" "VALUE" "=" "DATE-TIME") / (";" "VALUE" "=" "DATE-TIME") /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) ":" date-time ) ":" date-time
Example: A trigger set 15 minutes prior to the start of the event or Example: A trigger set 15 minutes prior to the start of the event or
to-do. to-do.
TRIGGER:-PT15M TRIGGER:-PT15M
A trigger set 5 minutes after the end of an event or the due date A trigger set 5 minutes after the end of an event or the due date
of a to-do. of a to-do.
TRIGGER;RELATED=END:PT5M TRIGGER;RELATED=END:PT5M
skipping to change at page 145, line 28 skipping to change at page 149, line 28
| | not directly related to the request itself. | | | not directly related to the request itself. |
+--------+----------------------------------------------------------+ +--------+----------------------------------------------------------+
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
rstatus = "REQUEST-STATUS" rstatparam ":" rstatus = "REQUEST-STATUS" rstatparam ":"
statcode ";" statdesc [";" extdata] statcode ";" statdesc [";" extdata]
rstatparam = *( rstatparam = *(
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
;
(";" languageparam) / (";" languageparam) /
;
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
;
(";" other-param) (";" other-param)
;
) )
statcode = 1*DIGIT 1*2("." 1*DIGIT) statcode = 1*DIGIT 1*2("." 1*DIGIT)
;Hierarchical, numeric return status code ;Hierarchical, numeric return status code
statdesc = text statdesc = text
;Textual status description ;Textual status description
extdata = text extdata = text
;Textual exception data. For example, the offending property ;Textual exception data. For example, the offending property
skipping to change at page 170, line 14 skipping to change at page 174, line 14
9. Acknowledgements 9. Acknowledgements
The editor of this document wish to thank Frank Dawson and Derik The editor of this document wish to thank Frank Dawson and Derik
Stenerson, the original authors of RFC2445, as well as the following Stenerson, the original authors of RFC2445, as well as the following
individuals who have participated in the drafting, review and individuals who have participated in the drafting, review and
discussion of this memo: discussion of this memo:
Joe Abley, Hervey Allen, Steve Allen, Jay Batson, Oliver Block, Joe Abley, Hervey Allen, Steve Allen, Jay Batson, Oliver Block,
Stephane Bortzmeyer, Chris Bryant, Tantek Celik, Mark Crispin, Cyrus Stephane Bortzmeyer, Chris Bryant, Tantek Celik, Mark Crispin, Cyrus
Daboo, Mike Douglass, Andrew N. Dowden, Lisa Dusseault, Gren Eliot, Daboo, Mike Douglass, Andrew N. Dowden, Lisa Dusseault, Lars Eggert,
Ben Fortuna, Ned Freed, Neal Gafter, Ted Hardie, Tim Hare, Jeffrey Gren Eliot, Pasi Eronen, Ben Fortuna, Ned Freed, Neal Gafter, Ted
Harris, Helge Hess, Paul B. Hill, Thomas Hnetila, Leif Johansson, Hardie, Tim Hare, Jeffrey Harris, Helge Hess, Paul B. Hill, Thomas
Ciny Joy, Bruce Kahn, Reinhold Kainhofer, Martin Kiff, Eliot Lear, Hnetila, Russ Housley, Leif Johansson, Ciny Joy, Bruce Kahn, Reinhold
Michiel van Leeuwen, Jonathan Lennox, Jeff McCullough, Bill Kainhofer, Martin Kiff, Patrice Lapierre, Eliot Lear, Michiel van
McQuillan, Alexey Melnikov, Aki Niemi, John W. Noerenberg II, Chuck Leeuwen, Jonathan Lennox, Jeff McCullough, Bill McQuillan, Alexey
Norris, Mark Paterson, Simon Pilette, Arnaud Quillaud, Robert Melnikov, Aki Niemi, John W. Noerenberg II, Chuck Norris, Mark
Ransdell, Julian F. Reschke, Caleb Richardson, Sam Roberts, Mike Paterson, Simon Pilette, Arnaud Quillaud, Robert Ransdell, Julian F.
Samuel, George Sexton, Nigel Swinson, Clint Talbert, Simon Reschke, Caleb Richardson, Sam Roberts, Dan Romascanu, Mike Samuel,
Vaillancourt, and Sandy Wills. George Sexton, Nigel Swinson, Clint Talbert, Simon Vaillancourt,
Magnus Westerlund, and Sandy Wills.
The editor would also like to thank the Calendaring and Scheduling The editor would also like to thank the Calendaring and Scheduling
Consortium for advice with this specification, and for organizing Consortium for advice with this specification, and for organizing
interoperability testing events to help refine it. interoperability testing events to help refine it.
10. References 10. References
10.1. Normative References 10.1. Normative References
[ISO.8601.2004] International Organization for [ISO.8601.2004] International Organization for
skipping to change at page 171, line 22 skipping to change at page 175, line 22
interchange -- Representation of dates interchange -- Representation of dates
and times", 2004. and times", 2004.
[ISO.9070.1991] International Organization for [ISO.9070.1991] International Organization for
Standardization, "Information Standardization, "Information
Technology_SGML Support Facilities -- Technology_SGML Support Facilities --
Registration Procedures for Public Registration Procedures for Public
Text Owner Identifiers, Second Text Owner Identifiers, Second
Edition", April 1991. Edition", April 1991.
[RFC1738] Berners-Lee, T., Masinter, L., and M.
McCahill, "Uniform Resource Locators
(URL)", RFC 1738, December 1994.
[RFC2045] Freed, N. and N. Borenstein, [RFC2045] Freed, N. and N. Borenstein,
"Multipurpose Internet Mail Extensions "Multipurpose Internet Mail Extensions
(MIME) Part One: Format of Internet (MIME) Part One: Format of Internet
Message Bodies", RFC 2045, Message Bodies", RFC 2045,
November 1996. November 1996.
[RFC2046] Freed, N. and N. Borenstein, [RFC2046] Freed, N. and N. Borenstein,
"Multipurpose Internet Mail Extensions "Multipurpose Internet Mail Extensions
(MIME) Part Two: Media Types", (MIME) Part Two: Media Types",
RFC 2046, November 1996. RFC 2046, November 1996.
skipping to change at page 172, line 5 skipping to change at page 175, line 50
[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.
[RFC4288] Freed, N. and J. Klensin, "Media Type
Specifications and Registration
Procedures", BCP 13, RFC 4288,
December 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 [RFC5234] Crocker, D. and P. Overell, "Augmented
BNF for Syntax Specifications: ABNF", BNF for Syntax Specifications: ABNF",
STD 68, RFC 5234, January 2008. 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-07 (iTIP)", draft-ietf-calsify-2446bis-09
(work in progress), July 2008. (work in progress), April 2009.
[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-05 (work draft-ietf-calsify-rfc2447bis-05 (work
in progress), June 2008. in progress), June 2008.
[RFC1738] Berners-Lee, T., Masinter, L., and M.
McCahill, "Uniform Resource Locators
(URL)", RFC 1738, December 1994.
[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.
[RFC2397] Masinter, L., "The "data" URL scheme", [RFC2397] Masinter, L., "The "data" URL scheme",
RFC 2397, August 1998. RFC 2397, August 1998.
[RFC2425] Howes, T., Smith, M., and F. Dawson, [RFC2425] Howes, T., Smith, M., and F. Dawson,
"A MIME Content-Type for Directory "A MIME Content-Type for Directory
Information", RFC 2425, Information", RFC 2425,
skipping to change at page 176, line 8 skipping to change at page 180, line 8
specified by a COMMA (US-ASCII decimal 44) character separated specified by a COMMA (US-ASCII decimal 44) character separated
list of values. list of values.
5. x-name rule parts can no longer be specified in properties of 5. 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 -09 B.1. Changes in -10
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-10.changes.html.
a. Addressed IESG evaluation comments and discusses.
b. Clarified that the "RECURRENCE-ID" property MUST have the same
value type as the "DTSTART" property contained within the
recurring component and MUST be specified as a date with local
time if and only if the "DTSTART" property contained within the
recurring component is specified as a date with local time.
B.2. Changes in -09
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-09.changes.html. draft-ietf-calsify-rfc2445bis-09.changes.html.
a. Issue 60: Clarified that multi-valued properties MUST NOT be used a. Issue 60: Clarified that multi-valued properties MUST NOT be used
to specify multiple language variants of the same value. to specify multiple language variants of the same value.
b. Issue 67: Forbid the use of the "DURATION" property in b. Issue 67: Forbid the use of the "DURATION" property in
"VFREEBUSY" components. "VFREEBUSY" components.
skipping to change at page 176, line 46 skipping to change at page 181, line 12
i. iTIP-APPS-Issue 4: Clarified description of the "INTERVAL" rule i. iTIP-APPS-Issue 4: Clarified description of the "INTERVAL" rule
part. part.
j. Modified TSAFE-CHAR to allow HTAB (US-ASCII decimal 9) in TEXT j. Modified TSAFE-CHAR to allow HTAB (US-ASCII decimal 9) in TEXT
values. values.
k. Few editorial changes. k. Few editorial changes.
l. Added names to the Acknowledgments section. l. Added names to the Acknowledgments section.
B.2. Changes in -08 B.3. Changes in -08
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-08.changes.html. draft-ietf-calsify-rfc2445bis-08.changes.html.
a. Issue 48: Revert the change to deprecate the "RANGE" parameter. a. Issue 48: Revert the change to deprecate the "RANGE" parameter.
Only the value "THISANDPRIOR" is deprecated. Only the value "THISANDPRIOR" is deprecated.
b. Issue 81: BYSETPOS: Clarify that "a set" starts at the beginning b. Issue 81: BYSETPOS: Clarify that "a set" starts at the beginning
of the interval defined by the FREQ rule part. of the interval defined by the FREQ rule part.
skipping to change at page 177, line 37 skipping to change at page 182, line 5
i. Removed the text that specifies when the sequence number MUST be i. Removed the text that specifies when the sequence number MUST be
incremented. Text will be added to rfc2446bis. incremented. Text will be added to rfc2446bis.
j. Removed normative reference to RFC2822. j. Removed normative reference to RFC2822.
k. Changed reference of RFC4234 to RFC5234. k. Changed reference of RFC4234 to RFC5234.
l. Few editorial changes. l. Few editorial changes.
B.3. Changes in -07 B.4. 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 179, line 12 skipping to change at page 183, line 27
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.4. Changes in -06 B.5. 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 180, line 36 skipping to change at page 185, line 5
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.5. Changes in -05 B.6. 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 181, line 18 skipping to change at page 185, line 35
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.6. Changes in -04 B.7. 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 182, line 39 skipping to change at page 187, line 9
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.7. Changes in -03 B.8. 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 183, line 13 skipping to change at page 187, line 31
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.8. Changes in -02 B.9. 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 183, line 46 skipping to change at page 188, line 15
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.9. Changes in -01 B.10. 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.
skipping to change at page 186, line 4 skipping to change at line 8154
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
Copyright (C) The IETF Trust (2008).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
 End of changes. 252 change blocks. 
459 lines changed or deleted 535 lines changed or added

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