draft-ietf-calsify-rfc2445bis-01.txt   draft-ietf-calsify-rfc2445bis-02.txt 
Network Working Group B. Desruisseaux, Ed. Network Working Group B. Desruisseaux, Ed.
Internet-Draft Oracle Internet-Draft Oracle
Obsoletes: 2445 (if approved) June 22, 2006 Obsoletes: 2445 (if approved) October 11, 2006
Expires: December 24, 2006 Expires: April 14, 2007
Internet Calendaring and Scheduling Core Object Specification Internet Calendaring and Scheduling Core Object Specification
(iCalendar) (iCalendar)
draft-ietf-calsify-rfc2445bis-01 draft-ietf-calsify-rfc2445bis-02
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 35 skipping to change at page 1, line 35
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on December 24, 2006. This Internet-Draft will expire on April 14, 2007.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2006). Copyright (C) The Internet Society (2006).
Abstract Abstract
There is a clear need to provide and deploy interoperable calendaring There is a clear need to provide and deploy interoperable calendaring
and scheduling services for the Internet. Current group scheduling and scheduling services for the Internet. Current group scheduling
and Personal Information Management (PIM) products are being extended and Personal Information Management (PIM) products are being extended
skipping to change at page 2, line 39 skipping to change at page 2, line 39
iCalendar object. For example, these methods might define scheduling iCalendar object. For example, these methods might define scheduling
messages that request an event be scheduled, reply to an event messages that request an event be scheduled, reply to an event
request, send a cancellation notice for an event, modify or replace request, send a cancellation notice for an event, modify or replace
the definition of an event, provide a counter proposal for an the definition of an event, provide a counter proposal for an
original event request, delegate an event request to another original event request, delegate an event request to another
individual, request free or busy time, reply to a free or busy time individual, request free or busy time, reply to a free or busy time
request, or provide similar scheduling messages for a to-do or request, or provide similar scheduling messages for a to-do or
journal entry calendar component. The iCalendar Transport-indendent journal entry calendar component. The iCalendar Transport-indendent
Interoperability Protocol (iTIP) is one such scheduling protocol. Interoperability Protocol (iTIP) is one such scheduling protocol.
Editorial Note Editorial Note (To be removed by RFC Editor before 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. The issues raised on this mailing list are being tracked at
the following web site:
A detailed list of changes is available at the following page: http://www.ofcourseimright.com/cgi-bin/roundup/calsify.
http://www.geocities.com/bdesruisseaux/calsify/
draft-ietf-calsify-rfc2445bis-01.html.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 6 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 6
2. Basic Grammar and Conventions . . . . . . . . . . . . . . . . 6 2. Basic Grammar and Conventions . . . . . . . . . . . . . . . . 6
2.1. Formatting Conventions . . . . . . . . . . . . . . . . . 7 2.1. Formatting Conventions . . . . . . . . . . . . . . . . . 7
2.2. Related Memos . . . . . . . . . . . . . . . . . . . . . . 8 2.2. Related Memos . . . . . . . . . . . . . . . . . . . . . . 8
2.3. International Considerations . . . . . . . . . . . . . . 8 2.3. International Considerations . . . . . . . . . . . . . . 8
3. iCalendar Object Specification . . . . . . . . . . . . . . . 9 3. iCalendar Object Specification . . . . . . . . . . . . . . . 9
3.1. Content Lines . . . . . . . . . . . . . . . . . . . . . . 9 3.1. Content Lines . . . . . . . . . . . . . . . . . . . . . . 9
3.1.1. List and Field Separators . . . . . . . . . . . . . . 11 3.1.1. List and Field Separators . . . . . . . . . . . . . . 12
3.1.2. Multiple Values . . . . . . . . . . . . . . . . . . . 12 3.1.2. Multiple Values . . . . . . . . . . . . . . . . . . . 12
3.1.3. Binary Content . . . . . . . . . . . . . . . . . . . 12 3.1.3. Binary Content . . . . . . . . . . . . . . . . . . . 12
3.1.4. Character Set . . . . . . . . . . . . . . . . . . . . 13 3.1.4. Character Set . . . . . . . . . . . . . . . . . . . . 13
3.2. Property Parameters . . . . . . . . . . . . . . . . . . . 13 3.2. Property Parameters . . . . . . . . . . . . . . . . . . . 13
3.2.1. Alternate Text Representation . . . . . . . . . . . . 14 3.2.1. Alternate Text Representation . . . . . . . . . . . . 14
3.2.2. Common Name . . . . . . . . . . . . . . . . . . . . . 15 3.2.2. Common Name . . . . . . . . . . . . . . . . . . . . . 15
3.2.3. Calendar User Type . . . . . . . . . . . . . . . . . 16 3.2.3. Calendar User Type . . . . . . . . . . . . . . . . . 16
3.2.4. Delegators . . . . . . . . . . . . . . . . . . . . . 16 3.2.4. Delegators . . . . . . . . . . . . . . . . . . . . . 17
3.2.5. Delegatees . . . . . . . . . . . . . . . . . . . . . 17 3.2.5. Delegatees . . . . . . . . . . . . . . . . . . . . . 17
3.2.6. Directory Entry Reference . . . . . . . . . . . . . . 17 3.2.6. Directory Entry Reference . . . . . . . . . . . . . . 18
3.2.7. Inline Encoding . . . . . . . . . . . . . . . . . . . 18 3.2.7. Inline Encoding . . . . . . . . . . . . . . . . . . . 18
3.2.8. Format Type . . . . . . . . . . . . . . . . . . . . . 19 3.2.8. Format Type . . . . . . . . . . . . . . . . . . . . . 19
3.2.9. Free/Busy Time Type . . . . . . . . . . . . . . . . . 19 3.2.9. Free/Busy Time Type . . . . . . . . . . . . . . . . . 20
3.2.10. Language . . . . . . . . . . . . . . . . . . . . . . 20 3.2.10. Language . . . . . . . . . . . . . . . . . . . . . . 20
3.2.11. Group or List Membership . . . . . . . . . . . . . . 21 3.2.11. Group or List Membership . . . . . . . . . . . . . . 21
3.2.12. Participation Status . . . . . . . . . . . . . . . . 21 3.2.12. Participation Status . . . . . . . . . . . . . . . . 22
3.2.13. Recurrence Identifier Range . . . . . . . . . . . . . 23 3.2.13. Recurrence Identifier Range . . . . . . . . . . . . . 24
3.2.14. Alarm Trigger Relationship . . . . . . . . . . . . . 23 3.2.14. Alarm Trigger Relationship . . . . . . . . . . . . . 24
3.2.15. Relationship Type . . . . . . . . . . . . . . . . . . 24 3.2.15. Relationship Type . . . . . . . . . . . . . . . . . . 25
3.2.16. Participation Role . . . . . . . . . . . . . . . . . 25 3.2.16. Participation Role . . . . . . . . . . . . . . . . . 26
3.2.17. RSVP Expectation . . . . . . . . . . . . . . . . . . 25 3.2.17. RSVP Expectation . . . . . . . . . . . . . . . . . . 26
3.2.18. Sent By . . . . . . . . . . . . . . . . . . . . . . . 26 3.2.18. Sent By . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.19. Time Zone Identifier . . . . . . . . . . . . . . . . 26 3.2.19. Time Zone Identifier . . . . . . . . . . . . . . . . 28
3.2.20. Value Data Types . . . . . . . . . . . . . . . . . . 28 3.2.20. Value Data Types . . . . . . . . . . . . . . . . . . 29
3.3. Property Value Data Types . . . . . . . . . . . . . . . . 29 3.3. Property Value Data Types . . . . . . . . . . . . . . . . 30
3.3.1. Binary . . . . . . . . . . . . . . . . . . . . . . . 29 3.3.1. Binary . . . . . . . . . . . . . . . . . . . . . . . 30
3.3.2. Boolean . . . . . . . . . . . . . . . . . . . . . . . 30 3.3.2. Boolean . . . . . . . . . . . . . . . . . . . . . . . 31
3.3.3. Calendar User Address . . . . . . . . . . . . . . . . 30 3.3.3. Calendar User Address . . . . . . . . . . . . . . . . 31
3.3.4. Date . . . . . . . . . . . . . . . . . . . . . . . . 31 3.3.4. Date . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3.5. Date-Time . . . . . . . . . . . . . . . . . . . . . . 31 3.3.5. Date-Time . . . . . . . . . . . . . . . . . . . . . . 32
3.3.6. Duration . . . . . . . . . . . . . . . . . . . . . . 34 3.3.6. Duration . . . . . . . . . . . . . . . . . . . . . . 35
3.3.7. Float . . . . . . . . . . . . . . . . . . . . . . . . 34 3.3.7. Float . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3.8. Integer . . . . . . . . . . . . . . . . . . . . . . . 35 3.3.8. Integer . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.9. Period of Time . . . . . . . . . . . . . . . . . . . 35 3.3.9. Period of Time . . . . . . . . . . . . . . . . . . . 36
3.3.10. Recurrence Rule . . . . . . . . . . . . . . . . . . . 37 3.3.10. Recurrence Rule . . . . . . . . . . . . . . . . . . . 38
3.3.11. Text . . . . . . . . . . . . . . . . . . . . . . . . 42 3.3.11. Text . . . . . . . . . . . . . . . . . . . . . . . . 43
3.3.12. Time . . . . . . . . . . . . . . . . . . . . . . . . 43 3.3.12. Time . . . . . . . . . . . . . . . . . . . . . . . . 45
3.3.13. URI . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.3.13. URI . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.3.14. UTC Offset . . . . . . . . . . . . . . . . . . . . . 46 3.3.14. UTC Offset . . . . . . . . . . . . . . . . . . . . . 48
3.4. iCalendar Object . . . . . . . . . . . . . . . . . . . . 47 3.4. iCalendar Object . . . . . . . . . . . . . . . . . . . . 48
3.5. Property . . . . . . . . . . . . . . . . . . . . . . . . 48 3.5. Property . . . . . . . . . . . . . . . . . . . . . . . . 49
3.6. Calendar Components . . . . . . . . . . . . . . . . . . . 48 3.6. Calendar Components . . . . . . . . . . . . . . . . . . . 49
3.6.1. Event Component . . . . . . . . . . . . . . . . . . . 49 3.6.1. Event Component . . . . . . . . . . . . . . . . . . . 51
3.6.2. To-do Component . . . . . . . . . . . . . . . . . . . 52 3.6.2. To-do Component . . . . . . . . . . . . . . . . . . . 53
3.6.3. Journal Component . . . . . . . . . . . . . . . . . . 54 3.6.3. Journal Component . . . . . . . . . . . . . . . . . . 55
3.6.4. Free/Busy Component . . . . . . . . . . . . . . . . . 55 3.6.4. Free/Busy Component . . . . . . . . . . . . . . . . . 57
3.6.5. Time Zone Component . . . . . . . . . . . . . . . . . 58 3.6.5. Time Zone Component . . . . . . . . . . . . . . . . . 60
3.6.6. Alarm Component . . . . . . . . . . . . . . . . . . . 66 3.6.6. Alarm Component . . . . . . . . . . . . . . . . . . . 67
3.7. Calendar Properties . . . . . . . . . . . . . . . . . . . 72 3.7. Calendar Properties . . . . . . . . . . . . . . . . . . . 73
3.7.1. Calendar Scale . . . . . . . . . . . . . . . . . . . 72 3.7.1. Calendar Scale . . . . . . . . . . . . . . . . . . . 73
3.7.2. Method . . . . . . . . . . . . . . . . . . . . . . . 73 3.7.2. Method . . . . . . . . . . . . . . . . . . . . . . . 74
3.7.3. Product Identifier . . . . . . . . . . . . . . . . . 74 3.7.3. Product Identifier . . . . . . . . . . . . . . . . . 75
3.7.4. Version . . . . . . . . . . . . . . . . . . . . . . . 75 3.7.4. Version . . . . . . . . . . . . . . . . . . . . . . . 76
3.8. Component Properties . . . . . . . . . . . . . . . . . . 76 3.8. Component Properties . . . . . . . . . . . . . . . . . . 77
3.8.1. Descriptive Component Properties . . . . . . . . . . 76 3.8.1. Descriptive Component Properties . . . . . . . . . . 77
3.8.1.1. Attachment . . . . . . . . . . . . . . . . . . . 76 3.8.1.1. Attachment . . . . . . . . . . . . . . . . . . . 77
3.8.1.2. Categories . . . . . . . . . . . . . . . . . . . 77 3.8.1.2. Categories . . . . . . . . . . . . . . . . . . . 78
3.8.1.3. Classification . . . . . . . . . . . . . . . . . 78 3.8.1.3. Classification . . . . . . . . . . . . . . . . . 79
3.8.1.4. Comment . . . . . . . . . . . . . . . . . . . . . 79 3.8.1.4. Comment . . . . . . . . . . . . . . . . . . . . . 80
3.8.1.5. Description . . . . . . . . . . . . . . . . . . . 80 3.8.1.5. Description . . . . . . . . . . . . . . . . . . . 81
3.8.1.6. Geographic Position . . . . . . . . . . . . . . . 81 3.8.1.6. Geographic Position . . . . . . . . . . . . . . . 82
3.8.1.7. Location . . . . . . . . . . . . . . . . . . . . 83 3.8.1.7. Location . . . . . . . . . . . . . . . . . . . . 84
3.8.1.8. Percent Complete . . . . . . . . . . . . . . . . 84 3.8.1.8. Percent Complete . . . . . . . . . . . . . . . . 85
3.8.1.9. Priority . . . . . . . . . . . . . . . . . . . . 85 3.8.1.9. Priority . . . . . . . . . . . . . . . . . . . . 86
3.8.1.10. Resources . . . . . . . . . . . . . . . . . . . . 87 3.8.1.10. Resources . . . . . . . . . . . . . . . . . . . . 88
3.8.1.11. Status . . . . . . . . . . . . . . . . . . . . . 87 3.8.1.11. Status . . . . . . . . . . . . . . . . . . . . . 88
3.8.1.12. Summary . . . . . . . . . . . . . . . . . . . . . 89 3.8.1.12. Summary . . . . . . . . . . . . . . . . . . . . . 90
3.8.2. Date and Time Component Properties . . . . . . . . . 90 3.8.2. Date and Time Component Properties . . . . . . . . . 91
3.8.2.1. Date/Time Completed . . . . . . . . . . . . . . . 90 3.8.2.1. Date/Time Completed . . . . . . . . . . . . . . . 91
3.8.2.2. Date/Time End . . . . . . . . . . . . . . . . . . 91 3.8.2.2. Date/Time End . . . . . . . . . . . . . . . . . . 92
3.8.2.3. Date/Time Due . . . . . . . . . . . . . . . . . . 92 3.8.2.3. Date/Time Due . . . . . . . . . . . . . . . . . . 93
3.8.2.4. Date/Time Start . . . . . . . . . . . . . . . . . 93 3.8.2.4. Date/Time Start . . . . . . . . . . . . . . . . . 94
3.8.2.5. Duration . . . . . . . . . . . . . . . . . . . . 94 3.8.2.5. Duration . . . . . . . . . . . . . . . . . . . . 95
3.8.2.6. Free/Busy Time . . . . . . . . . . . . . . . . . 95 3.8.2.6. Free/Busy Time . . . . . . . . . . . . . . . . . 96
3.8.2.7. Time Transparency . . . . . . . . . . . . . . . . 96 3.8.2.7. Time Transparency . . . . . . . . . . . . . . . . 97
3.8.3. Time Zone Component Properties . . . . . . . . . . . 97 3.8.3. Time Zone Component Properties . . . . . . . . . . . 98
3.8.3.1. Time Zone Identifier . . . . . . . . . . . . . . 98 3.8.3.1. Time Zone Identifier . . . . . . . . . . . . . . 99
3.8.3.2. Time Zone Name . . . . . . . . . . . . . . . . . 99 3.8.3.2. Time Zone Name . . . . . . . . . . . . . . . . . 100
3.8.3.3. Time Zone Offset From . . . . . . . . . . . . . . 100 3.8.3.3. Time Zone Offset From . . . . . . . . . . . . . . 101
3.8.3.4. Time Zone Offset To . . . . . . . . . . . . . . . 101 3.8.3.4. Time Zone Offset To . . . . . . . . . . . . . . . 102
3.8.3.5. Time Zone URL . . . . . . . . . . . . . . . . . . 101 3.8.3.5. Time Zone URL . . . . . . . . . . . . . . . . . . 102
3.8.4. Relationship Component Properties . . . . . . . . . . 102 3.8.4. Relationship Component Properties . . . . . . . . . . 103
3.8.4.1. Attendee . . . . . . . . . . . . . . . . . . . . 102 3.8.4.1. Attendee . . . . . . . . . . . . . . . . . . . . 103
3.8.4.2. Contact . . . . . . . . . . . . . . . . . . . . . 105 3.8.4.2. Contact . . . . . . . . . . . . . . . . . . . . . 106
3.8.4.3. Organizer . . . . . . . . . . . . . . . . . . . . 106 3.8.4.3. Organizer . . . . . . . . . . . . . . . . . . . . 107
3.8.4.4. Recurrence ID . . . . . . . . . . . . . . . . . . 108 3.8.4.4. Recurrence ID . . . . . . . . . . . . . . . . . . 109
3.8.4.5. Related To . . . . . . . . . . . . . . . . . . . 110 3.8.4.5. Related To . . . . . . . . . . . . . . . . . . . 111
3.8.4.6. Uniform Resource Locator . . . . . . . . . . . . 112 3.8.4.6. Uniform Resource Locator . . . . . . . . . . . . 113
3.8.4.7. Unique Identifier . . . . . . . . . . . . . . . . 112 3.8.4.7. Unique Identifier . . . . . . . . . . . . . . . . 113
3.8.5. Recurrence Component Properties . . . . . . . . . . . 114 3.8.5. Recurrence Component Properties . . . . . . . . . . . 115
3.8.5.1. Exception Date/Times . . . . . . . . . . . . . . 114 3.8.5.1. Exception Date/Times . . . . . . . . . . . . . . 115
3.8.5.2. Exception Rule . . . . . . . . . . . . . . . . . 115 3.8.5.2. Exception Rule . . . . . . . . . . . . . . . . . 116
3.8.5.3. Recurrence Date/Times . . . . . . . . . . . . . . 117 3.8.5.3. Recurrence Date/Times . . . . . . . . . . . . . . 118
3.8.5.4. Recurrence Rule . . . . . . . . . . . . . . . . . 118 3.8.5.4. Recurrence Rule . . . . . . . . . . . . . . . . . 119
3.8.6. Alarm Component Properties . . . . . . . . . . . . . 127 3.8.6. Alarm Component Properties . . . . . . . . . . . . . 128
3.8.6.1. Action . . . . . . . . . . . . . . . . . . . . . 128 3.8.6.1. Action . . . . . . . . . . . . . . . . . . . . . 129
3.8.6.2. Repeat Count . . . . . . . . . . . . . . . . . . 128 3.8.6.2. Repeat Count . . . . . . . . . . . . . . . . . . 129
3.8.6.3. Trigger . . . . . . . . . . . . . . . . . . . . . 129 3.8.6.3. Trigger . . . . . . . . . . . . . . . . . . . . . 130
3.8.7. Change Management Component Properties . . . . . . . 131 3.8.7. Change Management Component Properties . . . . . . . 132
3.8.7.1. Date/Time Created . . . . . . . . . . . . . . . . 132 3.8.7.1. Date/Time Created . . . . . . . . . . . . . . . . 133
3.8.7.2. Date/Time Stamp . . . . . . . . . . . . . . . . . 132 3.8.7.2. Date/Time Stamp . . . . . . . . . . . . . . . . . 133
3.8.7.3. Last Modified . . . . . . . . . . . . . . . . . . 133 3.8.7.3. Last Modified . . . . . . . . . . . . . . . . . . 134
3.8.7.4. Sequence Number . . . . . . . . . . . . . . . . . 134 3.8.7.4. Sequence Number . . . . . . . . . . . . . . . . . 135
3.8.8. Miscellaneous Component Properties . . . . . . . . . 136 3.8.8. Miscellaneous Component Properties . . . . . . . . . 137
3.8.8.1. Non-standard Properties . . . . . . . . . . . . . 136 3.8.8.1. Non-standard Properties . . . . . . . . . . . . . 137
3.8.8.2. Request Status . . . . . . . . . . . . . . . . . 137 3.8.8.2. Request Status . . . . . . . . . . . . . . . . . 138
4. iCalendar Object Examples . . . . . . . . . . . . . . . . . . 140 4. iCalendar Object Examples . . . . . . . . . . . . . . . . . . 141
5. Recommended Practices . . . . . . . . . . . . . . . . . . . . 144 5. Recommended Practices . . . . . . . . . . . . . . . . . . . . 145
6. Registration of Content Type Elements . . . . . . . . . . . . 145 6. Registration of Content Type Elements . . . . . . . . . . . . 146
6.1. Registration of New and Modified iCalendar Object 6.1. Registration of New and Modified iCalendar Object
Methods . . . . . . . . . . . . . . . . . . . . . . . . . 145 Methods . . . . . . . . . . . . . . . . . . . . . . . . . 146
6.2. Registration of New Properties . . . . . . . . . . . . . 145 6.2. Registration of New Properties . . . . . . . . . . . . . 147
6.2.1. Define the property . . . . . . . . . . . . . . . . . 146 6.2.1. Define the property . . . . . . . . . . . . . . . . . 147
6.2.2. Post the Property definition . . . . . . . . . . . . 147 6.2.2. Post the Property definition . . . . . . . . . . . . 148
6.2.3. Allow a comment period . . . . . . . . . . . . . . . 147 6.2.3. Allow a comment period . . . . . . . . . . . . . . . 148
6.2.4. Submit the property for approval . . . . . . . . . . 147 6.2.4. Submit the property for approval . . . . . . . . . . 148
6.3. Property Change Control . . . . . . . . . . . . . . . . . 148 6.3. Property Change Control . . . . . . . . . . . . . . . . . 149
7. Internationalization Considerations . . . . . . . . . . . . . 148 7. Internationalization Considerations . . . . . . . . . . . . . 149
8. Security Considerations . . . . . . . . . . . . . . . . . . . 148 8. Security Considerations . . . . . . . . . . . . . . . . . . . 149
9. IANA Consideration . . . . . . . . . . . . . . . . . . . . . 149 9. IANA Consideration . . . . . . . . . . . . . . . . . . . . . 150
9.1. Media Type Registration Information . . . . . . . . . . . 149 9.1. Media Type Registration Information . . . . . . . . . . . 150
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 152 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 153
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 152 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 154
11.1. Normative References . . . . . . . . . . . . . . . . . . 152 11.1. Normative References . . . . . . . . . . . . . . . . . . 154
11.2. Informative References . . . . . . . . . . . . . . . . . 153 11.2. Informative References . . . . . . . . . . . . . . . . . 155
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 155 Appendix A. Change Log (to be removed by RFC Editor before
Intellectual Property and Copyright Statements . . . . . . . . . 156 publication) . . . . . . . . . . . . . . . . . . . . 155
A.1. Changes in -02 . . . . . . . . . . . . . . . . . . . . . 155
A.2. Changes in -01 . . . . . . . . . . . . . . . . . . . . . 156
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 157
Intellectual Property and Copyright Statements . . . . . . . . . 158
1. Introduction 1. Introduction
The use of calendaring and scheduling has grown considerably in the The use of calendaring and scheduling has grown considerably in the
last decade. Enterprise and inter-enterprise business has become last decade. Enterprise and inter-enterprise business has become
dependent on rapid scheduling of events and actions using this dependent on rapid scheduling of events and actions using this
information technology. However, the longer term growth of information technology. However, the longer term growth of
calendaring and scheduling, is currently limited by the lack of calendaring and scheduling, is currently limited by the lack of
Internet standards for the message content types that are central to Internet standards for the message content types that are central to
these knowledgeware applications. This memo is intended to progress these knowledgeware applications. This memo is intended to progress
skipping to change at page 6, line 43 skipping to change at page 6, line 43
that will map this content type to a set of messages for supporting that will map this content type to a set of messages for supporting
calendaring and scheduling operations such as requesting, replying calendaring and scheduling operations such as requesting, replying
to, modifying, and canceling meetings or appointments, to-dos and to, modifying, and canceling meetings or appointments, to-dos and
journal entries. The iCalendar object methods can be used to define journal entries. The iCalendar object methods can be used to define
other calendaring and scheduling operations such a requesting for and other calendaring and scheduling operations such a requesting for and
replying with free/busy time data. Such a scheduling protocol is replying with free/busy time data. Such a scheduling protocol is
defined in the iCalendar Transport-independent Interoperability defined in the iCalendar Transport-independent Interoperability
Protocol (iTIP) defined in [I-D.ietf-calsify-2446bis]. Protocol (iTIP) defined in [I-D.ietf-calsify-2446bis].
The memo also includes a formal grammar for the content type based on The memo also includes a formal grammar for the content type based on
the Internet ABNF defined in [RFC2234]. This ABNF is required for the Internet ABNF defined in [RFC4234] . This ABNF is required for
the implementation of parsers and to serve as the definitive the implementation of parsers and to serve as the definitive
reference when ambiguities or questions arise in interpreting the reference when ambiguities or questions arise in interpreting the
descriptive prose definition of the memo. descriptive prose definition of the memo.
2. Basic Grammar and Conventions 2. Basic Grammar and Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" and
"OPTIONAL" in this document are to be interoperated as described in "OPTIONAL" in this document are to be interpreted as described in
[RFC2119]. [RFC2119].
This memo makes use of both a descriptive prose and a more formal This memo makes use of both a descriptive prose and a more formal
notation for defining the calendaring and scheduling format. notation for defining the calendaring and scheduling format.
The notation used in this memo is the ABNF notation of [RFC2234]. The notation used in this memo is the ABNF notation of [RFC4234] .
Readers intending on implementing this format defined in this memo Readers intending on implementing this format defined in this memo
should be familiar with this notation in order to properly interpret should be familiar with this notation in order to properly interpret
the specifications of this memo. the specifications of this memo.
All numeric values used in this memo are given in decimal notation. All numeric values used in this memo are given in decimal notation.
All names of properties, property parameters, enumerated property All names of properties, property parameters, enumerated property
values and property parameter values are case-insensitive. However, values and property parameter values are case-insensitive. However,
all other property values are case-sensitive, unless otherwise all other property values are case-sensitive, unless otherwise
stated. stated.
skipping to change at page 8, line 46 skipping to change at page 8, line 46
definitions from these other memos. Where possible, references are definitions from these other memos. Where possible, references are
made to the memo that provides for the specification of these made to the memo that provides for the specification of these
concepts or definitions. concepts or definitions.
2.3. International Considerations 2.3. International Considerations
In the rest of this document, descriptions of characters are of the In the rest of this document, descriptions of characters are of the
form "character name (codepoint)", where "codepoint" is from the US- form "character name (codepoint)", where "codepoint" is from the US-
ASCII character set. The "character name" is the authoritative ASCII character set. The "character name" is the authoritative
description; (codepoint) is a reference to that character in US-ASCII description; (codepoint) is a reference to that character in US-ASCII
or US-ASCII compatible sets (for example the ISO-8859-x family, UTF- or US-ASCII compatible sets (for example the ISO-8859-x family,
8, ISO-2022-xx, KOI8-R). If a non-US-ASCII compatible character set UTF-8, ISO-2022-xx, KOI8-R). If a non-US-ASCII compatible character
is used, appropriate code-point from that character set MUST be set is used, appropriate code-point from that character set MUST be
chosen instead. Use of non-US-ASCII-compatible character sets is NOT chosen instead. Use of non-US-ASCII-compatible character sets is NOT
recommended. recommended.
3. iCalendar Object Specification 3. iCalendar Object Specification
The following sections define the details of a Calendaring and The following sections define the details of a Calendaring and
Scheduling Core Object Specification. This information is intended Scheduling Core Object Specification. This information is intended
to be an integral part of the MIME content type registration. In to be an integral part of the MIME content type registration. In
addition, this information can be used independent of such content addition, this information can be used independent of such content
registration. In particular, this memo has direct applicability for registration. In particular, this memo has direct applicability for
skipping to change at page 9, line 48 skipping to change at page 9, line 48
DESCRIPTION:This is a lo DESCRIPTION:This is a lo
ng description ng description
that exists on a long line. that exists on a long line.
The process of moving from this folded multiple line representation The process of moving from this folded multiple line representation
to its single line representation is called "unfolding". Unfolding to its single line representation is called "unfolding". Unfolding
is accomplished by removing the CRLF character and the linear white is accomplished by removing the CRLF character and the linear white
space character that immediately follows. space character that immediately follows.
When parsing a content line, folded lines MUST first be unfolded When parsing a content line, folded lines MUST first be unfolded
according to the unfolding procedure described above. When according to the unfolding procedure described above.
generating a content line, lines longer than 75 octets SHOULD be
folded according to the folding procedure described above. Note: It is possible for very simple implementations to generate
improperly folded lines in the middle of a UTF-8 multi-octet
sequence. For this reason, implementations need to unfold lines
in such a way to properly restore the original sequence.
The content information associated with an iCalendar object is The content information associated with an iCalendar object is
formatted using a syntax similar to that defined by [RFC2425]. That formatted using a syntax similar to that defined by [RFC2425]. That
is, the content information consists of CRLF-separated content lines. is, the content information consists of CRLF-separated content lines.
The following notation defines the lines of content in an iCalendar The following notation defines the lines of content in an iCalendar
object: object:
contentline = name *(";" param ) ":" value CRLF contentline = name *(";" param ) ":" value CRLF
; This ABNF is just a general definition for an initial parsing ; This ABNF is just a general definition for an initial parsing
skipping to change at page 10, line 37 skipping to change at page 10, line 40
; Reserved for experimental use. ; Reserved for experimental use.
vendorid = 3*(ALPHA / DIGIT) ;Vendor identification vendorid = 3*(ALPHA / DIGIT) ;Vendor identification
param = param-name "=" param-value param = param-name "=" param-value
*("," param-value) *("," param-value)
; Each property defines the specific ABNF for the parameters ; Each property defines the specific ABNF for the parameters
; allowed on the property. Refer to specific properties for ; allowed on the property. Refer to specific properties for
; precise parameter ABNF. ; precise parameter ABNF.
param-name = iana-token / x-token param-name = iana-token / x-name
param-value = paramtext / quoted-string param-value = paramtext / quoted-string
paramtext = *SAFE-CHAR paramtext = *SAFE-CHAR
value = *VALUE-CHAR value = *VALUE-CHAR
quoted-string = DQUOTE *QSAFE-CHAR DQUOTE quoted-string = DQUOTE *QSAFE-CHAR DQUOTE
NON-US-ASCII = %x80-F8
; Use restricted by charset parameter
; on outer MIME object (UTF-8 preferred)
QSAFE-CHAR = WSP / %x21 / %x23-7E / NON-US-ASCII QSAFE-CHAR = WSP / %x21 / %x23-7E / NON-US-ASCII
; Any character except CTLs and DQUOTE ; Any character except CTLs and DQUOTE
SAFE-CHAR = WSP / %x21 / %x23-2B / %x2D-39 / %x3C-7E SAFE-CHAR = WSP / %x21 / %x23-2B / %x2D-39 / %x3C-7E
/ NON-US-ASCII / NON-US-ASCII
; Any character except CTLs, DQUOTE, ";", ":", "," ; Any character except CTLs, DQUOTE, ";", ":", ","
VALUE-CHAR = WSP / %x21-7E / NON-US-ASCII VALUE-CHAR = WSP / %x21-7E / NON-US-ASCII
; Any textual character ; Any textual character
NON-US-ASCII = %x80-F8
; Use restricted by charset parameter
; on outer MIME object (UTF-8 preferred)
CR = %x0D CR = %x0D
; carriage return ; carriage return
LF = %x0A LF = %x0A
; line feed ; line feed
CRLF = CR LF CRLF = CR LF
; Internet standard newline ; Internet standard newline
CTL = %x00-08 / %x0A-1F / %x7F CTL = %x00-08 / %x0A-1F / %x7F
skipping to change at page 12, line 25 skipping to change at page 12, line 30
character (US-ASCII decimal 59). character (US-ASCII decimal 59).
Property parameters with values containing a COLON, a SEMICOLON or a Property parameters with values containing a COLON, a SEMICOLON or a
COMMA character MUST be placed in quoted text. COMMA character MUST be placed in quoted text.
For example, in the following properties a SEMICOLON is used to For example, in the following properties a SEMICOLON is used to
separate property parameters from each other, and a COMMA is used to separate property parameters from each other, and a COMMA is used to
separate property values in a value list. separate property values in a value list.
ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT:MAILTO: ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT:MAILTO:
jsmith@host.com jsmith@example.com
RDATE;VALUE=DATE:19970304,19970504,19970704,19970904 RDATE;VALUE=DATE:19970304,19970504,19970704,19970904
3.1.2. Multiple Values 3.1.2. Multiple Values
Some properties defined in the iCalendar object can have multiple Some properties defined in the iCalendar object can have multiple
values. The general rule for encoding multi-valued items is to values. The general rule for encoding multi-valued items is to
simply create a new content line for each value, including the simply create a new content line for each value, including the
property name. However, it should be noted that some properties property name. However, it should be noted that some properties
support encoding multiple values in a single property by separating support encoding multiple values in a single property by separating
skipping to change at page 13, line 24 skipping to change at page 13, line 28
The following example specifies an "ATTACH" property with inline The following example specifies an "ATTACH" property with inline
binary encoded content information: binary encoded content information:
ATTACH;FMTTYPE=image/basic;ENCODING=BASE64;VALUE=BINARY: ATTACH;FMTTYPE=image/basic;ENCODING=BASE64;VALUE=BINARY:
MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1U MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1U
EBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bmljYXRpb25zIE EBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bmljYXRpb25zIE
<...remainder of "BASE64" encoded binary data...> <...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 character set used There is not a property parameter to declare the charset used in a
in a property value. The default character set for an iCalendar property value. The default charset for an iCalendar stream is UTF-8
object is UTF-8 as defined in [RFC2279]. as defined in [RFC3629] .
The "charset" Content-Type parameter can be used in MIME transports The "charset" Content-Type parameter MUST be used in MIME transports
to specify any other IANA registered character set. to specify the charset being used .
3.2. Property Parameters 3.2. Property Parameters
A property can have attributes associated with it. These "property A property can have attributes associated with it. These "property
parameters" contain meta-information about the property or the parameters" contain meta-information about the property or the
property value. Property parameters are provided to specify such property value. Property parameters are provided to specify such
information as the location of an alternate text representation for a information as the location of an alternate text representation for a
property value, the language of a text property value, the data type property value, the language of a text property value, the data type
of the property value and other attributes. of the property value and other attributes.
Property parameter values that contain the COLON (US-ASCII decimal Property parameter values that contain the COLON (US-ASCII decimal
58), SEMICOLON (US-ASCII decimal 59) or COMMA (US-ASCII decimal 44) 58), SEMICOLON (US-ASCII decimal 59) or COMMA (US-ASCII decimal 44)
character separators MUST be specified as quoted-string text values. character separators MUST be specified as quoted-string text values.
Property parameter values MUST NOT contain the DQUOTE (US-ASCII Property parameter values MUST NOT contain the DQUOTE (US-ASCII
decimal 22) character. The DQUOTE (US-ASCII decimal 22) character is decimal 22) character. The DQUOTE (US-ASCII decimal 22) character is
used as a delimiter for parameter values that contain restricted used as a delimiter for parameter values that contain restricted
characters or URI text. For example: characters or URI text. For example:
DESCRIPTION;ALTREP="http://www.wiz.org":The Fall'98 Wild Wizards DESCRIPTION;ALTREP="http://www.example.org":The Fall'98 Wild
Conference - - Las Vegas, NV, USA Wizards Conference - - Las Vegas\, NV\, USA
Property parameter values that are not in quoted strings are case Property parameter values that are not in quoted strings are case
insensitive. insensitive.
The general property parameters defined by this memo are defined by The general property parameters defined by this memo are defined by
the following notation: the following notation:
parameter = altrepparam ; Alternate text representation parameter = altrepparam ; Alternate text representation
/ cnparam ; Common name / cnparam ; Common name
/ cutypeparam ; Calendar user type / cutypeparam ; Calendar user type
/ delfromparam ; Delegator / delfromparam ; Delegator
skipping to change at page 15, line 4 skipping to change at page 15, line 9
Parameter Name: ALTREP Parameter Name: ALTREP
Purpose: To specify an alternate text representation for the property Purpose: To specify an alternate text representation for the property
value. value.
Format Definition: The property parameter is defined by the following Format Definition: The property parameter is defined by the following
notation: notation:
altrepparam = "ALTREP" "=" DQUOTE uri DQUOTE altrepparam = "ALTREP" "=" DQUOTE uri DQUOTE
Description: The parameter specifies a URI that points to an Description: The parameter specifies a URI that points to an
alternate representation for a textual property value. A property alternate representation for a textual property value. A property
specifying this parameter MUST also include a value that reflects specifying this parameter MUST also include a value that reflects
the default representation of the text value. The individual URI the default representation of the text value. The individual URI
parameter values MUST each be specified in a quoted-string. parameter values MUST each be specified in a quoted-string.
Example: Example:
DESCRIPTION;ALTREP="CID:<part3.msg.970415T083000@host.com>":Project DESCRIPTION;ALTREP="CID:part3.msg.970415T083000@example.com":
XYZ Review Meeting will include the following agenda items: (a) Project XYZ Review Meeting will include the following agenda
Market Overview, (b) Finances, (c) Project Management items: (a) Market Overview\, (b) Finances\, (c) Project Man
agement
The "ALTREP" property parameter value might point to a "text/html" The "ALTREP" property parameter value might point to a "text/html"
content portion. content portion.
Content-Type:text/html Content-Type:text/html
Content-Id:<part3.msg.970415T083000@host.com> Content-Id:<part3.msg.970415T083000@example.com>
<html><body> <html>
<p><b>Project XYZ Review Meeting</b> will include the following <head>
agenda items:<ol><li>Market <title></title>
Overview</li><li>Finances</li><li>Project Management</li></ol></p> </head>
</body></html> <body>
<p>
<b>Project XYZ Review Meeting</b> will include
the following agenda items:
<ol>
<li>Market Overview</li>
<li>Finances</li>
<li>Project Management</li>
</ol>
</p>
</body>
</html>
3.2.2. Common Name 3.2.2. Common Name
Parameter Name: CN Parameter Name: CN
Purpose: To specify the common name to be associated with the Purpose: To specify the common name to be associated with the
calendar user specified by the property. calendar user specified by the property.
Format Definition: The property parameter is defined by the following Format Definition: The property parameter is defined by the following
notation: notation:
cnparam = "CN" "=" param-value cnparam = "CN" "=" param-value
Description: This parameter can be specified on properties with a Description: This parameter can be specified on properties with a
CAL-ADDRESS value type. The parameter specifies the common name CAL-ADDRESS value type. The parameter specifies the common name
skipping to change at page 15, line 49 skipping to change at page 16, line 21
Description: This parameter can be specified on properties with a Description: This parameter can be specified on properties with a
CAL-ADDRESS value type. The parameter specifies the common name CAL-ADDRESS value type. The parameter specifies the common name
to be associated with the calendar user specified by the property. to be associated with the calendar user specified by the property.
The parameter value is text. The parameter value can be used for The parameter value is text. The parameter value can be used for
display text to be associated with the calendar address specified display text to be associated with the calendar address specified
by the property. by the property.
Example: Example:
ORGANIZER;CN="John Smith":MAILTO:jsmith@host.com ORGANIZER;CN="John Smith":MAILTO:jsmith@example.com
3.2.3. Calendar User Type 3.2.3. Calendar User Type
Parameter Name: CUTYPE Parameter Name: CUTYPE
Purpose: To specify the type of calendar user specified by the Purpose: To specify the type of calendar user specified by the
property. property.
Format Definition: The property parameter is defined by the following Format Definition: The property parameter is defined by the following
notation: notation:
skipping to change at page 16, line 45 skipping to change at page 17, line 19
3.2.4. Delegators 3.2.4. Delegators
Parameter Name: DELEGATED-FROM Parameter Name: DELEGATED-FROM
Purpose: To specify the calendar users that have delegated their Purpose: To specify the calendar users that have delegated their
participation to the calendar user specified by the property. participation to the calendar user specified by the property.
Format Definition: The property parameter is defined by the following Format Definition: The property parameter is defined by the following
notation: notation:
delfromparam = "DELEGATED-FROM" "=" DQUOTE cal-address DQUOTE delfromparam = "DELEGATED-FROM" "=" DQUOTE cal-address
*("," DQUOTE cal-address DQUOTE) DQUOTE *("," DQUOTE cal-address DQUOTE)
Description: This parameter can be specified on properties with a Description: This parameter can be specified on properties with a
CAL-ADDRESS value type. This parameter can be specified on a CAL-ADDRESS value type. This parameter can be specified on a
property that has a value type of calendar address. This property that has a value type of calendar address. This
parameter specifies those calendar users that have delegated their parameter specifies those calendar users that have delegated their
participation in a group scheduled event or to-do to the calendar participation in a group scheduled event or to-do to the calendar
user specified by the property. The value MUST be a MAILTO URI as user specified by the property. The value MUST be a MAILTO URI as
defined in [RFC1738]. The individual calendar address parameter defined in [RFC2368] . The individual calendar address parameter
values MUST each be specified in a quoted-string. values MUST each be specified in a quoted-string.
Example: Example:
ATTENDEE;DELEGATED-FROM="MAILTO:jsmith@host.com":MAILTO: ATTENDEE;DELEGATED-FROM="MAILTO:jsmith@example.com":MAILTO:
jdoe@host.com jdoe@example.com
3.2.5. Delegatees 3.2.5. Delegatees
Parameter Name: DELEGATED-TO Parameter Name: DELEGATED-TO
Purpose: To specify the calendar users to whom the calendar user Purpose: To specify the calendar users to whom the calendar user
specified by the property has delegated participation. specified by the property has delegated participation.
Format Definition: The property parameter is defined by the following Format Definition: The property parameter is defined by the following
notation: notation:
skipping to change at page 17, line 25 skipping to change at page 18, line 4
Parameter Name: DELEGATED-TO Parameter Name: DELEGATED-TO
Purpose: To specify the calendar users to whom the calendar user Purpose: To specify the calendar users to whom the calendar user
specified by the property has delegated participation. specified by the property has delegated participation.
Format Definition: The property parameter is defined by the following Format Definition: The property parameter is defined by the following
notation: notation:
deltoparam = "DELEGATED-TO" "=" DQUOTE cal-address DQUOTE deltoparam = "DELEGATED-TO" "=" DQUOTE cal-address DQUOTE
*("," DQUOTE cal-address DQUOTE) *("," DQUOTE cal-address DQUOTE)
Description: This parameter can be specified on properties with a Description: This parameter can be specified on properties with a
CAL-ADDRESS value type. This parameter specifies those calendar CAL-ADDRESS value type. This parameter specifies those calendar
users whom have been delegated participation in a group scheduled users whom have been delegated participation in a group scheduled
event or to-do by the calendar user specified by the property. event or to-do by the calendar user specified by the property.
The value MUST be a MAILTO URI as defined in [RFC1738]. The The value MUST be a MAILTO URI as defined in [RFC2368] . The
individual calendar address parameter values MUST each be individual calendar address parameter values MUST each be
specified in a quoted-string. specified in a quoted-string.
Example: Example:
ATTENDEE;DELEGATED-TO="MAILTO:jdoe@host.com","MAILTO:jqpublic@ ATTENDEE;DELEGATED-TO="MAILTO:jdoe@example.com","MAILTO:jqpublic
host.com":MAILTO:jsmith@host.com @example.com":MAILTO:jsmith@example.com
3.2.6. Directory Entry Reference 3.2.6. Directory Entry Reference
Parameter Name: DIR Parameter Name: DIR
Purpose: To specify reference to a directory entry associated with Purpose: To specify reference to a directory entry associated with
the calendar user specified by the property. the calendar user specified by the property.
Format Definition: The property parameter is defined by the following Format Definition: The property parameter is defined by the following
notation: notation:
skipping to change at page 18, line 4 skipping to change at page 18, line 28
Parameter Name: DIR Parameter Name: DIR
Purpose: To specify reference to a directory entry associated with Purpose: To specify reference to a directory entry associated with
the calendar user specified by the property. the calendar user specified by the property.
Format Definition: The property parameter is defined by the following Format Definition: The property parameter is defined by the following
notation: notation:
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 is a URI. The individual URI the property. The parameter value is a URI. The URI parameter
parameter values MUST each be specified in a quoted-string. value MUST be specified in a quoted-string.
Example: Example:
ORGANIZER;DIR="ldap://host.com:6666/o=eDABC%20Industries,c=3DUS?? ORGANIZER;DIR="ldap://example.com:6666/o=ABC%20Industries,
(cn=3DBJim%20Dolittle)":MAILTO:jimdo@host1.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
Purpose: To specify an alternate inline encoding for the property Purpose: To specify an alternate inline encoding for the property
value. value.
Format Definition: The property parameter is defined by the following Format Definition: The property parameter is defined by the following
notation: notation:
skipping to change at page 19, line 29 skipping to change at page 20, line 7
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 content
type of the referenced object. For example, on the "ATTACH" type of the referenced object. For example, on the "ATTACH"
property, a FTP type URI value does not, by itself, necessarily property, a FTP type URI value does not, by itself, necessarily
convey the type of content associated with the resource. The convey the type of content associated with the resource. The
parameter value MUST be the TEXT for either an IANA registered parameter value MUST be the TEXT for either an IANA registered
content type or a non-standard content type. content type or a non-standard content type.
Example: Example:
ATTACH;FMTTYPE=application/msword:ftp://domain.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: The property parameter is defined by the following Format Definition: The property parameter is defined by the following
notation: notation:
skipping to change at page 20, line 33 skipping to change at page 21, line 7
Parameter Name: LANGUAGE Parameter Name: LANGUAGE
Purpose: To specify the language for text values in a property or Purpose: To specify the language for text values in a property or
property parameter. property parameter.
Format Definition: The property parameter is defined by the following Format Definition: The property parameter is defined by the following
notation: notation:
languageparam = "LANGUAGE" "=" language languageparam = "LANGUAGE" "=" language
language = <Text identifying a language, as defined in [RFC1766]> language = <Text identifying a language, as defined in
[RFC3066]
>
Description: This parameter can be specified on properties with a Description: The parameter identifies the language of the text in the
text value type. The parameter identifies the language of the property or property parameter value. The value of the "language"
text in the property or property parameter value. The value of property parameter is that defined in [RFC3066] .
the "language" property parameter is that defined in [RFC1766].
For transport in a MIME entity, the Content-Language header field For transport in a MIME entity, the Content-Language header field
can be used to set the default language for the entire body part. can be used to set the default language for the entire body part.
Otherwise, no default language is assumed. Otherwise, no default language is assumed.
Example: Example:
SUMMARY;LANGUAGE=us-EN:Company Holiday Party SUMMARY;LANGUAGE=us-EN:Company Holiday Party
LOCATION;LANGUAGE=en:Germany LOCATION;LANGUAGE=en:Germany
skipping to change at page 21, line 34 skipping to change at page 22, line 9
CAL-ADDRESS value type. The parameter identifies the groups or CAL-ADDRESS value type. The parameter identifies the groups or
list membership for the calendar user specified by the property. list membership for the calendar user specified by the property.
The parameter value either a single calendar address in a quoted- The parameter value either a single calendar address in a quoted-
string or a COMMA character (US-ASCII decimal 44) list of calendar string or a COMMA character (US-ASCII decimal 44) list of calendar
addresses, each in a quoted-string. The individual calendar addresses, each in a quoted-string. The individual calendar
address parameter values MUST each be specified in a quoted- address parameter values MUST each be specified in a quoted-
string. string.
Example: Example:
ATTENDEE;MEMBER="MAILTO:ietf-calsch@imc.org":MAILTO:jsmith@host.com ATTENDEE;MEMBER="MAILTO:ietf-calsch@example.org":MAILTO:
jsmith@example.com
ATTENDEE;MEMBER="MAILTO:projectA@host.com","MAILTO:projectB@host. ATTENDEE;MEMBER="MAILTO:projectA@example.com","MAILTO:pr
com":MAILTO:janedoe@host.com ojectB@example.com":MAILTO:janedoe@example.com
3.2.12. Participation Status 3.2.12. Participation Status
Parameter Name: PARTSTAT Parameter Name: PARTSTAT
Purpose: To specify the participation status for the calendar user Purpose: To specify the participation status for the calendar user
specified by the property. specified by the property.
Format Definition: The property parameter is defined by the following Format Definition: The property parameter is defined by the following
notation: notation:
skipping to change at page 22, line 15 skipping to change at page 23, line 15
partstatparam = "PARTSTAT" "=" partstatparam = "PARTSTAT" "="
("NEEDS-ACTION" ; Event needs action ("NEEDS-ACTION" ; Event needs action
/ "ACCEPTED" ; Event accepted / "ACCEPTED" ; Event accepted
/ "DECLINED" ; Event declined / "DECLINED" ; Event declined
/ "TENTATIVE" ; Event tentatively / "TENTATIVE" ; Event tentatively
; accepted ; accepted
/ "DELEGATED" ; Event delegated / "DELEGATED" ; Event delegated
/ x-name ; Experimental status / x-name ; Experimental status
/ iana-token) ; Other IANA registered / iana-token) ; Other IANA registered
; status ; status
; These are the participation statuses for a "VEVENT". Default is ; These are the participation statuses for a "VEVENT".
; NEEDS-ACTION ; Default is NEEDS-ACTION.
partstatparam /= "PARTSTAT" "=" partstatparam /= "PARTSTAT" "="
("NEEDS-ACTION" ; To-do needs action ("NEEDS-ACTION" ; To-do needs action
/ "ACCEPTED" ; To-do accepted / "ACCEPTED" ; To-do accepted
/ "DECLINED" ; To-do declined / "DECLINED" ; To-do declined
/ "TENTATIVE" ; To-do tentatively / "TENTATIVE" ; To-do tentatively
; accepted ; accepted
/ "DELEGATED" ; To-do delegated / "DELEGATED" ; To-do delegated
/ "COMPLETED" ; To-do completed. / "COMPLETED" ; To-do completed.
; COMPLETED property has ; COMPLETED property has
;date/time completed. ;date/time completed.
/ "IN-PROCESS" ; To-do in process of / "IN-PROCESS" ; To-do in process of
; being completed ; being completed
/ x-name ; Experimental status / x-name ; Experimental status
/ iana-token) ; Other IANA registered / iana-token) ; Other IANA registered
; status ; status
; These are the participation statuses for a "VTODO". Default is ; These are the participation statuses for a "VTODO".
; NEEDS-ACTION ; Default is NEEDS-ACTION.
partstatparam /= "PARTSTAT" "=" partstatparam /= "PARTSTAT" "="
("NEEDS-ACTION" ; Journal needs action ("NEEDS-ACTION" ; Journal needs action
/ "ACCEPTED" ; Journal accepted / "ACCEPTED" ; Journal accepted
/ "DECLINED" ; Journal declined / "DECLINED" ; Journal declined
/ x-name ; Experimental status / x-name ; Experimental status
/ iana-token) ; Other IANA registered / iana-token) ; Other IANA registered
; status ; status
; These are the participation statuses for a "VJOURNAL". Default is ; These are the participation statuses for a "VJOURNAL".
; NEEDS-ACTION ; Default is NEEDS-ACTION.
Description: This parameter can be specified on properties with a Description: This parameter can be specified on properties with a
CAL-ADDRESS value type. The parameter identifies the CAL-ADDRESS value type. The parameter identifies the
participation status for the calendar user specified by the participation status for the calendar user specified by the
property value. The parameter values differ depending on whether property value. The parameter values differ depending on whether
they are associated with a group scheduled "VEVENT", "VTODO" or they are associated with a group scheduled "VEVENT", "VTODO" or
"VJOURNAL". The values MUST match one of the values allowed for "VJOURNAL". The values MUST match one of the values allowed for
the given calendar component. If not specified on a property that the given calendar component. If not specified on a property that
allows this parameter, the default value is NEEDS-ACTION. allows this parameter, the default value is NEEDS-ACTION.
Example: Example:
ATTENDEE;PARTSTAT=DECLINED:MAILTO:jsmith@host.com ATTENDEE;PARTSTAT=DECLINED:MAILTO:jsmith@example.com
3.2.13. Recurrence Identifier Range 3.2.13. Recurrence Identifier Range
Parameter Name: RANGE Parameter Name: RANGE
Purpose: To specify the effective range of recurrence instances from Purpose: To specify the effective range of recurrence instances from
the instance specified by the recurrence identifier specified by the instance specified by the recurrence identifier specified by
the property. the property.
Format Definition: The property parameter is defined by the following Format Definition: The property parameter is defined by the following
skipping to change at page 25, line 8 skipping to change at page 26, line 8
referenced by the property. The parameter value can be PARENT, to referenced by the property. The parameter value can be PARENT, to
indicate that the referenced calendar component is a superior of indicate that the referenced calendar component is a superior of
calendar component; CHILD to indicate that the referenced calendar calendar component; CHILD to indicate that the referenced calendar
component is a subordinate of the calendar component; SIBLING to component is a subordinate of the calendar component; SIBLING to
indicate that the referenced calendar component is a peer of the indicate that the referenced calendar component is a peer of the
calendar component. If this parameter is not specified on an calendar component. If this parameter is not specified on an
allowable property, the default relationship type is PARENT. allowable property, the default relationship type is PARENT.
Example: Example:
RELATED-TO;RELTYPE=SIBLING:<19960401-080045-4000F192713@host.com> RELATED-TO;RELTYPE=SIBLING:19960401-080045-4000F192713@
example.com
3.2.16. Participation Role 3.2.16. Participation Role
Parameter Name: ROLE Parameter Name: ROLE
Purpose: To specify the participation role for the calendar user Purpose: To specify the participation role for the calendar user
specified by the property. specified by the property.
Format Definition: The property parameter is defined by the following Format Definition: The property parameter is defined by the following
notation: notation:
roleparam = "ROLE" "=" roleparam = "ROLE" "="
("CHAIR" ; Indicates chair of the ("CHAIR" ; Indicates chair of the
; calendar entity ; calendar entity
/ "REQ-PARTICIPANT" ; Indicates a participant whose / "REQ-PARTICIPANT" ; Indicates a participant whose
; participation is required ; participation is required
/ "OPT-PARTICIPANT" ; Indicates a participant whose / "OPT-PARTICIPANT" ; Indicates a participant whose
; participation is optional ; participation is optional
/ "NON-PARTICIPANT" ; Indicates a participant who is / "NON-PARTICIPANT" ; Indicates a participant who
; copied for information ; is copied for information
; purposes only ; purposes only
/ x-name ; Experimental role / x-name ; Experimental role
/ iana-token) ; Other IANA role / iana-token) ; Other IANA role
; Default is REQ-PARTICIPANT ; Default is REQ-PARTICIPANT
Description: This parameter can be specified on properties with a Description: This parameter can be specified on properties with a
CAL-ADDRESS value type. The parameter specifies the participation CAL-ADDRESS value type. The parameter specifies the participation
role for the calendar user specified by the property in the group role for the calendar user specified by the property in the group
schedule calendar component. If not specified on a property that schedule calendar component. If not specified on a property that
allows this parameter, the default value is REQ-PARTICIPANT. allows this parameter, the default value is REQ-PARTICIPANT.
Example: Example:
ATTENDEE;ROLE=CHAIR:MAILTO:mrbig@host.com ATTENDEE;ROLE=CHAIR:MAILTO:mrbig@example.com
3.2.17. RSVP Expectation 3.2.17. RSVP Expectation
Parameter Name: RSVP Parameter Name: RSVP
Purpose: To specify whether there is an expectation of a favor of a Purpose: To specify whether there is an expectation of a favor of a
reply from the calendar user specified by the property value. reply from the calendar user specified by the property value.
Format Definition: The property parameter is defined by the following Format Definition: The property parameter is defined by the following
notation: notation:
rsvpparam = "RSVP" "=" ("TRUE" / "FALSE") rsvpparam = "RSVP" "=" ("TRUE" / "FALSE")
; Default is FALSE ; Default is FALSE
Description: This parameter can be specified on properties with a Description: This parameter can be specified on properties with a
skipping to change at page 26, line 21 skipping to change at page 27, line 23
Description: This parameter can be specified on properties with a Description: This parameter can be specified on properties with a
CAL-ADDRESS value type. The parameter identifies the expectation CAL-ADDRESS value type. The parameter identifies the expectation
of a reply from the calendar user specified by the property value. of a reply from the calendar user specified by the property value.
This parameter is used by the "Organizer" to request a This parameter is used by the "Organizer" to request a
participation status reply from an "Attendee" of a group scheduled participation status reply from an "Attendee" of a group scheduled
event or to-do. If not specified on a property that allows this event or to-do. If not specified on a property that allows this
parameter, the default value is FALSE. parameter, the default value is FALSE.
Example: Example:
ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host.com ATTENDEE;RSVP=TRUE:MAILTO:jsmith@example.com
3.2.18. Sent By 3.2.18. Sent By
Parameter Name: SENT-BY Parameter Name: SENT-BY
Purpose: To specify the calendar user that is acting on behalf of the Purpose: To specify the calendar user that is acting on behalf of the
calendar user specified by the property. calendar user specified by the property.
Format Definition: The property parameter is defined by the following Format Definition: The property parameter is defined by the following
notation: notation:
sentbyparam = "SENT-BY" "=" DQUOTE cal-address DQUOTE sentbyparam = "SENT-BY" "=" DQUOTE cal-address DQUOTE
Description: This parameter can be specified on properties with a Description: This parameter can be specified on properties with a
CAL-ADDRESS value type. The parameter specifies the calendar user CAL-ADDRESS value type. The parameter specifies the calendar user
that is acting on behalf of the calendar user specified by the that is acting on behalf of the calendar user specified by the
property. The parameter value MUST be a MAILTO URI as defined in property. The parameter value MUST be a MAILTO URI as defined in
[RFC1738]. The individual calendar address parameter values MUST [RFC2368] . The individual calendar address parameter values MUST
each be specified in a quoted-string. each be specified in a quoted-string.
Example: Example:
ORGANIZER;SENT-BY:"MAILTO:sray@host.com":MAILTO:jsmith@host.com ORGANIZER;SENT-BY="MAILTO:sray@example.com":MAILTO:
jsmith@example.com
3.2.19. Time Zone Identifier 3.2.19. Time Zone Identifier
Parameter Name: TZID Parameter Name: TZID
Purpose: To specify the identifier for the time zone definition for a Purpose: To specify the identifier for the time zone definition for a
time component in the property value. time component in the property value.
Format Definition: The property parameter is defined by the following Format Definition: The property parameter is defined by the following
notation: notation:
tzidparam = "TZID" "=" [tzidprefix] paramtext CRLF tzidparam = "TZID" "=" [tzidprefix] paramtext
tzidprefix = "/" tzidprefix = "/"
Description: The parameter MUST be specified on the "DTSTART", Description: The parameter MUST be specified on the "DTSTART",
"DTEND", "DUE", "EXDATE" and "RDATE" properties when either a "DTEND", "DUE", "EXDATE" and "RDATE" properties when either a
DATE- TIME or TIME value type is specified and when the value is DATE- TIME or TIME value type is specified and when the value is
not either a UTC or a "floating" time. Refer to the DATE-TIME or not either a UTC or a "floating" time. Refer to the DATE-TIME or
TIME value type definition for a description of UTC and "floating TIME value type definition for a description of UTC and "floating
time" formats. This property parameter specifies a text value time" formats. This property parameter specifies a text value
which uniquely identifies the "VTIMEZONE" calendar component to be which uniquely identifies the "VTIMEZONE" calendar component to be
skipping to change at page 30, line 39 skipping to change at page 31, line 46
Value Name: CAL-ADDRESS Value Name: CAL-ADDRESS
Purpose: This value type is used to identify properties that contain Purpose: This value type is used to identify properties that contain
a calendar user address. a calendar user address.
Format Definition: The value type is defined by the following Format Definition: The value type is defined by the following
notation: notation:
cal-address = uri cal-address = uri
Description: The value is a URI as defined by [RFC1738] or any other Description: The value is a URI as defined by [RFC3986] or any other
IANA registered form for a URI. When used to address an Internet IANA registered form for a URI. When used to address an Internet
email transport address for a calendar user, the value MUST be a email transport address for a calendar user, the value MUST be a
MAILTO URI, as defined by [RFC1738]. No additional content value MAILTO URI, as defined by [RFC2368] . No additional content value
encoding (i.e., BACKSLASH character encoding) is defined for this encoding (i.e., BACKSLASH character encoding) is defined for this
value type. value type.
Example: Example:
ATTENDEE:MAILTO:jane_doe@host.com ATTENDEE:MAILTO:jane_doe@example.com
3.3.4. Date 3.3.4. Date
Value Name: DATE Value Name: DATE
Purpose: This value type is used to identify values that contain a Purpose: This value type is used to identify values that contain a
calendar date. calendar date.
Format Definition: The value type is defined by the following Format Definition: The value type is defined by the following
notation: notation:
skipping to change at page 32, line 28 skipping to change at page 33, line 35
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:
DTSTART:19980119T230000-0800 ;Invalid time format DTSTART: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 Janurary 18, 1998, at zone. For example, the following represents January 18, 1998, at
11 PM: 11 PM:
DTSTART:19980118T230000 DTSTART: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
skipping to change at page 33, line 31 skipping to change at page 34, line 33
DTSTART:19980119T070000Z DTSTART:19980119T070000Z
The TZID property parameter MUST NOT be applied to DATE-TIME The TZID property parameter MUST NOT be applied to DATE-TIME
properties whose time values are specified in UTC. properties whose time values are specified in UTC.
FORM #3: DATE WITH LOCAL TIME AND TIME ZONE REFERENCE FORM #3: DATE WITH LOCAL TIME AND TIME ZONE REFERENCE
The date and local time with reference to time zone information is The date and local time with reference to time zone information is
identified by the use the TZID property parameter to reference the identified by the use the TZID property parameter to reference the
appropriate time zone definition. TZID is discussed in detail in appropriate time zone definition. TZID is discussed in detail in
the section on Time Zone. For example, the following represents 2 Section 3.2.19 . For example, the following represents 2 AM in
AM in New York on Janurary 19, 1998: New York on Janurary 19, 1998:
DTSTART;TZID=US-Eastern:19980119T020000 DTSTART;TZID=US-Eastern:19980119T020000
Example: The following represents July 14, 1997, at 1:30 PM in New Example: The following represents July 14, 1997, at 1:30 PM in New
York City in each of the three time formats, using the "DTSTART" York City in each of the three time formats, using the "DTSTART"
property. property.
DTSTART:19970714T133000 ;Local time DTSTART:19970714T133000 ;Local time
DTSTART:19970714T173000Z ;UTC time DTSTART:19970714T173000Z ;UTC time
DTSTART;TZID=US-Eastern:19970714T133000 ;Local time and time DTSTART;TZID=US-Eastern:19970714T133000 ;Local time and time
skipping to change at page 37, line 18 skipping to change at page 38, line 18
Purpose: This value type is used to identify properties that contain Purpose: This value type is used to identify properties that contain
a recurrence rule specification. a recurrence rule specification.
Format Definition: The value type is defined by the following Format Definition: The value type is defined by the following
notation: notation:
recur = "FREQ"=freq *( recur = "FREQ"=freq *(
; either UNTIL or COUNT may appear in a 'recur', ; either UNTIL or COUNT may appear in a 'recur',
; but UNTIL and COUNT MUST NOT occur in the same 'recur' ; but UNTIL and COUNT MUST NOT occur in the same
; 'recur'
( ";" "UNTIL" "=" enddate ) / ( ";" "UNTIL" "=" enddate ) /
( ";" "COUNT" "=" 1*DIGIT ) / ( ";" "COUNT" "=" 1*DIGIT ) /
; the rest of these keywords are optional, ; the rest of these keywords are optional,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
( ";" "INTERVAL" "=" 1*DIGIT ) / ( ";" "INTERVAL" "=" 1*DIGIT ) /
( ";" "BYSECOND" "=" byseclist ) / ( ";" "BYSECOND" "=" byseclist ) /
( ";" "BYMINUTE" "=" byminlist ) / ( ";" "BYMINUTE" "=" byminlist ) /
skipping to change at page 37, line 44 skipping to change at page 38, line 45
( ";" "BYMONTH" "=" bymolist ) / ( ";" "BYMONTH" "=" bymolist ) /
( ";" "BYSETPOS" "=" bysplist ) / ( ";" "BYSETPOS" "=" bysplist ) /
( ";" "WKST" "=" weekday ) / ( ";" "WKST" "=" weekday ) /
( ";" x-name "=" text ) ( ";" x-name "=" text )
) )
freq = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY" freq = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY"
/ "WEEKLY" / "MONTHLY" / "YEARLY" / "WEEKLY" / "MONTHLY" / "YEARLY"
enddate = date enddate = date
enddate =/ date-time ;An UTC value / date-time ;A UTC value
byseclist = seconds / ( seconds *("," seconds) ) byseclist = seconds / ( seconds *("," seconds) )
seconds = 1DIGIT / 2DIGIT ;0 to 59 seconds = 1DIGIT / 2DIGIT ;0 to 59
byminlist = minutes / ( minutes *("," minutes) ) byminlist = minutes / ( minutes *("," minutes) )
minutes = 1DIGIT / 2DIGIT ;0 to 59 minutes = 1DIGIT / 2DIGIT ;0 to 59
byhrlist = hour / ( hour *("," hour) ) byhrlist = hour / ( hour *("," hour) )
hour = 1DIGIT / 2DIGIT ;0 to 23 hour = 1DIGIT / 2DIGIT ;0 to 23
bywdaylist = weekdaynum / ( weekdaynum *("," weekdaynum) ) bywdaylist = weekdaynum / ( weekdaynum *("," weekdaynum) )
weekdaynum = [([plus] ordwk / minus ordwk)] weekday weekdaynum = [([plus] ordwk / minus ordwk)] weekday
plus = "+" plus = "+"
skipping to change at page 39, line 31 skipping to change at page 40, line 36
how often the recurrence rule repeats. The default value is "1", how often the recurrence rule repeats. The default value is "1",
meaning every second for a SECONDLY rule, or every minute for a meaning every second for a SECONDLY rule, or every minute for a
MINUTELY rule, every hour for an HOURLY rule, every day for a MINUTELY rule, every hour for an HOURLY rule, every day for a
DAILY rule, every week for a WEEKLY rule, every month for a DAILY rule, every week for a WEEKLY rule, every month for a
MONTHLY rule and every year for a YEARLY rule. MONTHLY rule and every year for a YEARLY rule.
The UNTIL rule part defines a date-time value which bounds the The UNTIL rule part defines a date-time value which bounds the
recurrence rule in an inclusive manner. If the value specified by recurrence rule in an inclusive manner. If the value specified by
UNTIL is synchronized with the specified recurrence, this date or UNTIL is synchronized with the specified recurrence, this date or
date-time becomes the last instance of the recurrence. If date-time becomes the last instance of the recurrence. If
specified as a date-time value, then it MUST be specified in an specified as a date-time value, then it MUST be specified in a UTC
UTC time format. If not present, and the COUNT rule part is also time format. If not present, and the COUNT rule part is also not
not present, the RRULE is considered to repeat forever. present, the RRULE is considered to repeat forever.
The COUNT rule part defines the number of occurrences at which to The COUNT rule part defines the number of occurrences at which to
range-bound the recurrence. The "DTSTART" property value, if range-bound the recurrence. The "DTSTART" property value, if
specified, counts as the first occurrence. specified, counts as the first occurrence.
The BYSECOND rule part specifies a COMMA character (US-ASCII The BYSECOND rule part specifies a COMMA character (US-ASCII
decimal 44) separated list of seconds within a minute. Valid decimal 44) separated list of seconds within a minute. Valid
values are 0 to 59. The BYMINUTE rule part specifies a COMMA values are 0 to 59. The BYMINUTE rule part specifies a COMMA
character (US-ASCII decimal 44) separated list of minutes within character (US-ASCII decimal 44) separated list of minutes within
an hour. Valid values are 0 to 59. The BYHOUR rule part an hour. Valid values are 0 to 59. The BYHOUR rule part
skipping to change at page 40, line 15 skipping to change at page 41, line 20
Each BYDAY value can also be preceded by a positive (+n) or Each BYDAY value can also be preceded by a positive (+n) or
negative (-n) integer. If present, this indicates the nth negative (-n) integer. If present, this indicates the nth
occurrence of the specific day within the MONTHLY or YEARLY RRULE. occurrence of the specific day within the MONTHLY or YEARLY RRULE.
For example, within a MONTHLY rule, +1MO (or simply 1MO) For example, within a MONTHLY rule, +1MO (or simply 1MO)
represents the first Monday within the month, whereas -1MO represents the first Monday within the month, whereas -1MO
represents the last Monday of the month. If an integer modifier represents the last Monday of the month. If an integer modifier
is not present, it means all days of this type within the is not present, it means all days of this type within the
specified frequency. For example, within a MONTHLY rule, MO specified frequency. For example, within a MONTHLY rule, MO
represents all Mondays within the month. represents all Mondays within the month.
The BYMONTHDAY rule part specifies a COMMA character (ASCII The BYMONTHDAY rule part specifies a COMMA character (US-ASCII
decimal 44) separated list of days of the month. Valid values are decimal 44) separated list of days of the month. Valid values are
1 to 31 or -31 to -1. For example, -10 represents the tenth to 1 to 31 or -31 to -1. For example, -10 represents the tenth to
the last day of the month. the last day of the month.
The BYYEARDAY rule part specifies a COMMA character (US-ASCII The BYYEARDAY rule part specifies a COMMA character (US-ASCII
decimal 44) separated list of days of the year. Valid values are decimal 44) separated list of days of the year. Valid values are
1 to 366 or -366 to -1. For example, -1 represents the last day 1 to 366 or -366 to -1. For example, -1 represents the last day
of the year (December 31st) and -306 represents the 306th to the of the year (December 31st) and -306 represents the 306th to the
last day of the year (March 1st). last day of the year (March 1st).
skipping to change at page 41, line 16 skipping to change at page 42, line 23
decimal 44) separated list of values which corresponds to the nth decimal 44) separated list of values which corresponds to the nth
occurrence within the set of events specified by the rule. Valid occurrence within the set of events specified by the rule. Valid
values are 1 to 366 or -366 to -1. It MUST only be used in values are 1 to 366 or -366 to -1. It MUST only be used in
conjunction with another BYxxx rule part. For example "the last conjunction with another BYxxx rule part. For example "the last
work day of the month" could be represented as: work day of the month" could be represented as:
RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1 RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
Each BYSETPOS value can include a positive (+n) or negative (-n) Each BYSETPOS value can include a positive (+n) or negative (-n)
integer. If present, this indicates the nth occurrence of the integer. If present, this indicates the nth occurrence of the
specific occurrence within the set of events specified by the specific occurrence within the set of occurences specified by the
rule. rule.
If BYxxx rule part values are found which are beyond the available If BYxxx rule part values are found which are beyond the available
scope (ie, BYMONTHDAY=30 in February), they are simply ignored. scope (ie, BYMONTHDAY=30 in February), they are simply ignored.
Information, not contained in the rule, necessary to determine the Information, not contained in the rule, necessary to determine the
various recurrence instance start time and dates are derived from various recurrence instance start time and dates are derived from
the Start Time (DTSTART) entry attribute. For example, the Start Time (DTSTART) entry attribute. For example,
"FREQ=YEARLY;BYMONTH=1" doesn't specify a specific day within the "FREQ=YEARLY;BYMONTH=1" doesn't specify a specific day within the
month or a time. This information would be the same as what is month or a time. This information would be the same as what is
specified for DTSTART. specified for DTSTART.
BYxxx rule parts modify the recurrence in some manner. BYxxx rule BYxxx rule parts modify the recurrence in some manner. BYxxx rule
parts for a period of time which is the same or greater than the parts for a period of time which is the same or greater than the
frequency generally reduce or limit the number of occurrences of frequency generally reduce or limit the number of occurrences of
the recurrence generated. For example, "FREQ=DAILY;BYMONTH=1" the recurrence generated. For example, "FREQ=DAILY;BYMONTH=1"
reduces the number of recurrence instances from all days (if reduces the number of recurrence instances from all days (if
BYMONTH tag is not present) to all days in January. BYxxx rule BYMONTH rule part is not present) to all days in January. BYxxx
parts for a period of time less than the frequency generally rule parts for a period of time less than the frequency generally
increase or expand the number of occurrences of the recurrence. increase or expand the number of occurrences of the recurrence.
For example, "FREQ=YEARLY;BYMONTH=1,2" increases the number of For example, "FREQ=YEARLY;BYMONTH=1,2" increases the number of
days within the yearly recurrence set from 1 (if BYMONTH tag is days within the yearly recurrence set from 1 (if BYMONTH rule part
not present) to 2. is not present) to 2.
If multiple BYxxx rule parts are specified, then after evaluating If multiple BYxxx rule parts are specified, then after evaluating
the specified FREQ and INTERVAL rule parts, the BYxxx rule parts the specified FREQ and INTERVAL rule parts, the BYxxx rule parts
are applied to the current set of evaluated occurrences in the are applied to the current set of evaluated occurrences in the
following order: BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY, following order: BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY,
BYHOUR, BYMINUTE, BYSECOND and BYSETPOS; then COUNT and UNTIL are BYHOUR, BYMINUTE, BYSECOND and BYSETPOS; then COUNT and UNTIL are
evaluated. evaluated.
Here is an example of evaluating multiple BYxxx rule parts. Here is an example of evaluating multiple BYxxx rule parts.
skipping to change at page 42, line 22 skipping to change at page 43, line 30
information from RRULE, the second is derived from DTSTART, to end information from RRULE, the second is derived from DTSTART, to end
up in "every Sunday in January at 8:30:00 AM and 9:30:00 AM, every up in "every Sunday in January at 8:30:00 AM and 9:30:00 AM, every
other year". Similarly, if the BYMINUTE, BYHOUR, BYDAY, other year". Similarly, if the BYMINUTE, BYHOUR, BYDAY,
BYMONTHDAY or BYMONTH rule part were missing, the appropriate BYMONTHDAY or BYMONTH rule part were missing, the appropriate
minute, hour, day or month would have been retrieved from the minute, hour, day or month would have been retrieved from the
"DTSTART" property. "DTSTART" property.
No additional content value encoding (i.e., BACKSLASH character No additional content value encoding (i.e., BACKSLASH character
encoding) is defined for this value type. encoding) is defined for this value type.
Example: The following is a rule which specifies 10 meetings which Example: The following is a rule which specifies 10 occurences which
occur every other day: occur every other day:
FREQ=DAILY;COUNT=10;INTERVAL=2 FREQ=DAILY;COUNT=10;INTERVAL=2
There are other examples specified in the "RRULE" specification. There are other examples specified in the "RRULE" specification.
3.3.11. Text 3.3.11. Text
Value Name: TEXT Value Name: TEXT
Purpose: This value type is used to identify values that contain Purpose: This value type is used to identify values that contain
human readable text. human readable text.
Format Definition: The character sets supported by this revision of Format Definition: The value type is defined by the following
iCalendar are UTF-8 and US-ASCII thereof. The applicability to notation.
other character sets is for future work. The value type is
defined by the following notation.
text = *(TSAFE-CHAR / ":" / DQUOTE / ESCAPED-CHAR) text = *(TSAFE-CHAR / ":" / DQUOTE / ESCAPED-CHAR)
; Folded according to description above ; Folded according to description above
ESCAPED-CHAR = "\\" / "\;" / "\," / "\N" / "\n") ESCAPED-CHAR = ("\\" / "\;" / "\," / "\N" / "\n")
; \\ encodes \, \N or \n encodes newline ; \\ encodes \, \N or \n encodes newline
; \; encodes ;, \, encodes , ; \; encodes ;, \, encodes ,
TSAFE-CHAR = %x20-21 / %x23-2B / %x2D-39 / %x3C-5B TSAFE-CHAR = %x20-21 / %x23-2B / %x2D-39 / %x3C-5B /
%x5D-7E / NON-US-ASCII %x5D-7E / NON-US-ASCII
; Any character except CTLs not needed by the current ; Any character except CTLs not needed by the current
; character set, DQUOTE, ";", ":", "\", "," ; character set, DQUOTE, ";", ":", "\", ","
Note: Certain other character sets may require modification of Note: Certain other character sets may require modification of
the above definitions, but this is beyond the scope of this the above definitions, but this is beyond the scope of this
document. document.
Description: If the property permits, multiple "text" values are Description: If the property permits, multiple "text" values are
specified by a COMMA character (US-ASCII decimal 44) separated specified by a COMMA character (US-ASCII decimal 44) separated
list of values. list of values.
The language in which the text is represented can be controlled by The language in which the text is represented can be controlled by
the "LANGUAGE" property parameter. the "LANGUAGE" property parameter.
skipping to change at page 44, line 30 skipping to change at page 45, line 39
specified by a COMMA character (US-ASCII decimal 44) separated specified by a COMMA character (US-ASCII decimal 44) separated
list of values. No additional content value encoding (i.e., list of values. No additional content value encoding (i.e.,
BACKSLASH character encoding) is defined for this value type. BACKSLASH character encoding) is defined for this value type.
The "TIME" data type is used to identify values that contain a The "TIME" data type is used to identify values that contain a
time of day. The format is based on the [ISO.8601.1988] complete time of day. The format is based on the [ISO.8601.1988] complete
representation, basic format for a time of day. The text format representation, basic format for a time of day. The text format
consists of a two-digit 24-hour of the day (i.e., values 0-23), consists of a two-digit 24-hour of the day (i.e., values 0-23),
two- digit minute in the hour (i.e., values 0-59), and two-digit two- digit minute in the hour (i.e., values 0-59), and two-digit
seconds in the minute (i.e., values 0-60). The seconds value of seconds in the minute (i.e., values 0-60). The seconds value of
60 MUST only to be used to account for "leap" seconds. Fractions 60 MUST only be used to account for "leap" seconds. Fractions of
of a second are not supported by this format. a second are not supported by this format.
In parallel to the "DATE-TIME" definition above, the "TIME" data In parallel to the "DATE-TIME" definition above, the "TIME" data
type expresses time values in three forms: type expresses time values in three forms:
The form of time with UTC offset MUST NOT be used. For example, The form of time with UTC offset MUST NOT be used. For example,
the following is NOT VALID for a time value: the following is NOT VALID for a time value:
230000-0800 ;Invalid time format 230000-0800 ;Invalid time format
FORM #1 LOCAL TIME FORM #1 LOCAL TIME
The local time form is simply a time value that does not contain The local time form is simply a time value that does not contain
the UTC designator nor does it reference a time zone. For the UTC designator nor does it reference a time zone. For
example, 11:00 PM: example, 11:00 PM:
230000 230000
Time values of this type are said to be "floating" and are not Time values of this type are said to be "floating" and are not
bound to any time zone in particular. They are used to represent bound to any time zone in particular. They are used to represent
skipping to change at page 45, line 38 skipping to change at page 47, line 4
iCalendar object. iCalendar 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
The TZID property parameter MUST NOT be applied to TIME properties The TZID property parameter MUST NOT be applied to TIME properties
whose time values are specified in UTC. whose time values are specified in UTC.
FORM #3: LOCAL TIME AND TIME ZONE REFERENCE FORM #3: LOCAL TIME AND TIME ZONE REFERENCE
The local time with reference to time zone information form is The local time with reference to time zone information form is
identified by the use the TZID property parameter to reference the identified by the use the TZID property parameter to reference the
appropriate time zone definition. TZID is discussed in detail in appropriate time zone definition. TZID is discussed in detail in
the section on Time Zone. Section 3.2.19 .
Example: The following represents 8:30 AM in New York in Winter, five Example: The following represents 8:30 AM in New York in Winter, five
hours behind UTC, in each of the three formats using the "X- hours behind UTC, in each of the three formats using the "X-ABC-
TIMEOFDAY" non-standard property: TIMEOFDAY" non-standard property:
X-TIMEOFDAY:083000 X-ABC-TIMEOFDAY:083000
X-TIMEOFDAY:133000Z X-ABC-TIMEOFDAY:133000Z
X-TIMEOFDAY;TZID=US-Eastern:083000 X-ABC-TIMEOFDAY;TZID=US-Eastern:083000
3.3.13. URI 3.3.13. URI
Value Name: URI Value Name: URI
Purpose: This value type is used to identify values that contain a Purpose: This value type is used to identify values that contain a
uniform resource identifier (URI) type of reference to the uniform resource identifier (URI) type of reference to the
property value. property value.
Format Definition: The data type is defined by the following Format Definition: The data type is defined by the following
skipping to change at page 46, line 46 skipping to change at page 48, line 10
are not limited to, those defined in RFC 1738 and RFC 2111. are not limited to, those defined in RFC 1738 and RFC 2111.
When a property parameter value is a URI value type, the URI MUST When a property parameter value is a URI value type, the URI MUST
be specified as a quoted-string value. be specified as a quoted-string value.
No additional content value encoding (i.e., BACKSLASH character No additional content value encoding (i.e., BACKSLASH character
encoding) is defined for this value type. encoding) is defined for this value type.
Example: The following is a URI for a network file: Example: The following is a URI for a network file:
http://host1.com/my-report.txt http://example.com/my-report.txt
3.3.14. UTC Offset 3.3.14. UTC Offset
Value Name: UTC-OFFSET Value Name: UTC-OFFSET
Purpose: This value type is used to identify properties that contain Purpose: This value type is used to identify properties that contain
an offset from UTC to local time. an offset from UTC to local time.
Format Definition: The data type is defined by the following Format Definition: The data type is defined by the following
notation: notation:
utc-offset = time-numzone ;As defined above in time data type utc-offset = time-numzone ;As defined above in time data type
skipping to change at page 47, line 17 skipping to change at page 48, line 27
an offset from UTC to local time. an offset from UTC to local time.
Format Definition: The data type is defined by the following Format Definition: The data type is defined by the following
notation: notation:
utc-offset = time-numzone ;As defined above in time data type utc-offset = time-numzone ;As defined above in time data type
time-numzone = ("+" / "-") time-hour time-minute [time- time-numzone = ("+" / "-") time-hour time-minute [time-
second] second]
Description: The PLUS SIGN character MUST be specified for positive Description: The PLUS SIGN (US-ASCII decimal 43) character MUST be
UTC offsets (i.e., ahead of UTC). The MINUS SIGN character MUST specified for positive UTC offsets (i.e., ahead of UTC). The
be specified for negative UTC offsets (i.e., behind of UTC). The HYPHEN-MINUS character (US-ASCII decimal 45) MUST be specified for
value of "-0000" and "-000000" are not allowed. The time-second, negative UTC offsets (i.e., behind of UTC). The value of "-0000"
if present, may not be 60; if absent, it defaults to zero. and "-000000" are not allowed. The time-second, if present, may
not be 60; if absent, it defaults to zero.
No additional content value encoding (i.e., BACKSLASH character No additional content value encoding (i.e., BACKSLASH character
encoding) is defined for this value type. encoding) is defined for this value type.
Example: The following UTC offsets are given for standard time for Example: The following UTC offsets are given for standard time for
New York (five hours behind UTC) and Geneva (one hour ahead of New York (five hours behind UTC) and Geneva (one hour ahead of
UTC): UTC):
-0500 -0500
skipping to change at page 48, line 9 skipping to change at page 49, line 16
icalobject = 1*("BEGIN" ":" "VCALENDAR" CRLF icalobject = 1*("BEGIN" ":" "VCALENDAR" CRLF
icalbody icalbody
"END" ":" "VCALENDAR" CRLF) "END" ":" "VCALENDAR" CRLF)
The following is a simple example of an iCalendar object: The following is a simple example of an iCalendar object:
BEGIN:VCALENDAR BEGIN:VCALENDAR
VERSION:2.0 VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT BEGIN:VEVENT
UID:19970610T172345Z-AF23B2@example.com
DTSTAMP:19970610T172345Z
DTSTART:19970714T170000Z DTSTART:19970714T170000Z
DTEND:19970715T035959Z DTEND:19970715T035959Z
SUMMARY:Bastille Day Party SUMMARY:Bastille Day Party
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
3.5. Property 3.5. Property
A property is the definition of an individual attribute describing a A property is the definition of an individual attribute describing a
calendar or a calendar component. A property takes the form defined calendar object or a calendar component. A property takes the form
by the "contentline" notation defined in Section 3.1. defined by the "contentline" notation defined in Section 3.1 .
The following is an example of a property: The following is an example of a property:
DTSTART:19960415T133000Z DTSTART:19960415T133000Z
This memo imposes no ordering of properties within an iCalendar This memo imposes no ordering of properties within an iCalendar
object. object.
Property names, parameter names and enumerated parameter values are Property names, parameter names and enumerated parameter values are
case insensitive. For example, the property name "DUE" is the same case insensitive. For example, the property name "DUE" is the same
as "due" and "Due", DTSTART;TZID=US-Eastern:19980714T120000 is the as "due" and "Due", DTSTART;TZID=US-Eastern:19980714T120000 is the
same as DtStart;TzID=US-Eastern:19980714T120000. same as DtStart;TzID=US-Eastern:19980714T120000.
3.6. Calendar Components 3.6. Calendar Components
The body of the iCalendar object consists of a sequence of calendar The body of the iCalendar object consists of a sequence of calendar
properties and one or more calendar components. The calendar properties and one or more calendar components. The calendar
properties are attributes that apply to the calendar as a whole. The properties are attributes that apply to the calendar object as a
calendar components are collections of properties that express a whole. The calendar components are collections of properties that
particular calendar semantic. For example, the calendar component express a particular calendar semantic. For example, the calendar
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, or 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 = 2*( calprops = 2*(
; 'prodid' and 'version' are both REQUIRED, ; 'prodid' and 'version' are both REQUIRED,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
prodid /version / prodid /version /
; 'calscale' and 'method' are optional, ; 'calscale' and 'method' are optional,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
calscale / calscale /
method / method /
; 'x-prop' is OPTIONAL,
; and MAY occur more than once
x-prop x-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
1*contentline 1*contentline
skipping to change at page 50, line 16 skipping to change at page 51, line 20
Purpose: Provide a grouping of component properties that describe an Purpose: Provide a grouping of component properties that describe an
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 = 3*(
; the following are REQUIRED,
; but MUST NOT occur more than once
dtstamp / dtstart / uid /
; the following are optional, ; the following are optional,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
class / created / description / dtstart / geo / class / created / description / geo /
last-mod / location / organizer / priority / last-mod / location / organizer / priority /
dtstamp / seq / status / summary / transp / seq / status / summary / transp /
uid / url / recurid / url / recurid /
; 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
skipping to change at page 51, line 37 skipping to change at page 53, line 6
The "VEVENT" calendar component cannot be nested within another The "VEVENT" calendar component cannot be nested within another
calendar component. However, "VEVENT" calendar components can be calendar component. However, "VEVENT" calendar components can be
related to each other or to a "VTODO" or to a "VJOURNAL" calendar related to each other or to a "VTODO" or to a "VJOURNAL" calendar
component with the "RELATED-TO" property. component with the "RELATED-TO" property.
Example: The following is an example of the "VEVENT" calendar Example: The following is an example of the "VEVENT" calendar
component used to represent a meeting that will also be opaque to component used to represent a meeting that will also be opaque to
searches for busy time: searches for busy time:
BEGIN:VEVENT BEGIN:VEVENT
UID:19970901T130000Z-123401@host.com UID:19970901T130000Z-123401@example.com
DTSTAMP:19970901T130000Z DTSTAMP:19970901T130000Z
DTSTART:19970903T163000Z DTSTART:19970903T163000Z
DTEND:19970903T190000Z DTEND:19970903T190000Z
SUMMARY:Annual Employee Review SUMMARY:Annual Employee Review
CLASS:PRIVATE CLASS:PRIVATE
CATEGORIES:BUSINESS,HUMAN RESOURCES CATEGORIES:BUSINESS,HUMAN RESOURCES
END:VEVENT END:VEVENT
The following is an example of the "VEVENT" calendar component The following is an example of the "VEVENT" calendar component
used to represent a reminder that will not be opaque, but rather used to represent a reminder that will not be opaque, but rather
transparent, to searches for busy time: transparent, to searches for busy time:
BEGIN:VEVENT BEGIN:VEVENT
UID:19970901T130000Z-123402@host.com UID:19970901T130000Z-123402@example.com
DTSTAMP:19970901T130000Z DTSTAMP:19970901T130000Z
DTSTART:19970401T163000Z DTSTART:19970401T163000Z
DTEND:19970402T010000Z DTEND:19970402T010000Z
SUMMARY:Laurel is in sensitivity awareness class. SUMMARY:Laurel is in sensitivity awareness class.
CLASS:PUBLIC CLASS:PUBLIC
CATEGORIES:BUSINESS,HUMAN RESOURCES CATEGORIES:BUSINESS,HUMAN RESOURCES
TRANSP:TRANSPARENT TRANSP:TRANSPARENT
END:VEVENT END:VEVENT
The following is an example of the "VEVENT" calendar component The following is an example of the "VEVENT" calendar component
used to represent an anniversary that will occur annually. Since used to represent an anniversary that will occur annually. Since
it takes up no time, it will not appear as opaque in a search for it takes up no time, it will not appear as opaque in a search for
busy time; no matter what the value of the "TRANSP" property busy time; no matter what the value of the "TRANSP" property
indicates: indicates:
BEGIN:VEVENT BEGIN:VEVENT
UID:19970901T130000Z-123403@host.com UID:19970901T130000Z-123403@example.com
DTSTAMP:19970901T130000Z DTSTAMP:19970901T130000Z
DTSTART:19971102 DTSTART;VALUE=DATE:19971102
SUMMARY:Our Blissful Anniversary SUMMARY:Our Blissful Anniversary
CLASS:CONFIDENTIAL CLASS:CONFIDENTIAL
CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION
RRULE:FREQ=YEARLY RRULE:FREQ=YEARLY
END:VEVENT END:VEVENT
3.6.2. To-do Component 3.6.2. To-do Component
Component Name: VTODO Component Name: VTODO
Purpose: Provide a grouping of calendar properties that describe a Purpose: Provide a grouping of calendar properties that describe a
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
skipping to change at page 53, line 9 skipping to change at page 54, line 14
Purpose: Provide a grouping of calendar properties that describe a Purpose: Provide a grouping of calendar properties that describe a
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 = 2*(
; the following are REQUIRED,
; but MUST NOT occur more than once
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 / dtstamp / 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 / uid / url / summary / url /
; either 'due' or 'duration' may appear in ; either 'due' or 'duration' may appear in
; a 'todoprop', but 'due' and 'duration' ; a 'todoprop', but 'due' and 'duration'
; MUST NOT occur in the same 'todoprop' ; MUST NOT occur in the same 'todoprop'
due / duration / due / duration /
; the following are optional, ; the following are optional,
; and MAY occur more than once ; and MAY occur more than once
attach / attendee / categories / comment / contact / attach / attendee / categories / comment / contact /
exdate / exrule / rstatus / related / resources / exdate / exrule / rstatus / related / resources /
rdate / rrule / x-prop rdate / rrule / x-prop
) )
Description: A "VTODO" calendar component is a grouping of component Description: A "VTODO" calendar component is a grouping of component
properties and possibly "VALARM" calendar components that properties and possibly "VALARM" calendar components that
represent an action-item or assignment. For example, it can be represent an action-item or assignment. For example, it can be
used to represent an item of work assigned to an individual; such used to represent an item of work assigned to an individual; such
skipping to change at page 53, line 41 skipping to change at page 55, line 7
) )
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 "VTODO" 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.
A "VTODO" calendar component without the "DTSTART" and "DUE" (or A "VTODO" calendar component without the "DTSTART" and "DUE" (or
"DURATION") properties specifies a to-do that will be associated "DURATION") properties specifies a to-do that will be associated
with each successive calendar date, until it is completed. with each successive calendar date, until it is completed.
Example: The following is an example of a "VTODO" calendar component: Example: The following is an example of a "VTODO" calendar component:
BEGIN:VTODO BEGIN:VTODO
UID:19970901T130000Z-123404@host.com UID:19970901T130000Z-123404@example.com
DTSTAMP:19970901T130000Z DTSTAMP:19970901T130000Z
DTSTART:19970415T133000Z DTSTART:19970415T133000Z
DUE:19970416T045959Z DUE:19970416T045959Z
SUMMARY:1996 Income Tax Preparation SUMMARY:1996 Income Tax Preparation
CLASS:CONFIDENTIAL CLASS:CONFIDENTIAL
CATEGORIES:FAMILY,FINANCE CATEGORIES:FAMILY,FINANCE
PRIORITY:1 PRIORITY:1
STATUS:NEEDS-ACTION STATUS:NEEDS-ACTION
END:VTODO END:VTODO
skipping to change at page 54, line 31 skipping to change at page 56, line 9
Purpose: Provide a grouping of component properties that describe a Purpose: Provide a grouping of component properties that describe a
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 = 1*(
; the following are REQUIRED,
; but MUST NOT occur more than once
dtstamp / uid /
; the following are optional, ; the following are optional,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
class / created / description / dtstart / dtstamp / class / created / description / dtstart /
last-mod / organizer / recurid / seq / status / last-mod / organizer / recurid / seq / status /
summary / uid / url / summary / url /
; the following are optional, ; the following are optional,
; and MAY occur more than once ; and MAY occur more than once
attach / attendee / categories / comment / attach / attendee / categories / comment /
contact / exdate / exrule / related / rdate / contact / exdate / exrule / related / rdate /
rrule / rstatus / x-prop rrule / rstatus / x-prop
) )
Description: A "VJOURNAL" calendar component is a grouping of Description: A "VJOURNAL" calendar component is a grouping of
skipping to change at page 55, line 25 skipping to change at page 57, line 9
The "VJOURNAL" calendar component cannot be nested within another The "VJOURNAL" calendar component cannot be nested within another
calendar component. However, "VJOURNAL" calendar components can calendar component. However, "VJOURNAL" calendar components can
be related to each other or to a "VEVENT" or to a "VTODO" calendar be related to each other or to a "VEVENT" or to a "VTODO" calendar
component, with the "RELATED-TO" property. component, with the "RELATED-TO" property.
Example: The following is an example of the "VJOURNAL" calendar Example: The following is an example of the "VJOURNAL" calendar
component: component:
BEGIN:VJOURNAL BEGIN:VJOURNAL
UID:19970901T130000Z-123405@host.com UID:19970901T130000Z-123405@example.com
DTSTAMP:19970901T130000Z DTSTAMP:19970901T130000Z
DTSTART;VALUE=DATE:19970317 DTSTART;VALUE=DATE:19970317
SUMMARY:Staff meeting minutes SUMMARY:Staff meeting minutes
DESCRIPTION:1. Staff meeting: Participants include Joe\, Lisa DESCRIPTION:1. Staff meeting: Participants include Joe\, Lisa
and Bob. Aurora project plans were reviewed. There is currently and Bob. Aurora project plans were reviewed. There is currentl
no budget reserves for this project. Lisa will escalate to y no budget reserves for this project. Lisa will escalate to
management. Next meeting on Tuesday.\n management. Next meeting on Tuesday.\n
2. Telephone Conference: ABC Corp. sales representative called 2. Telephone Conference: ABC Corp. sales representative called
to discuss new printer. Promised to get us a demo by Friday.\n to discuss new printer. Promised to get us a demo by Friday.\n
3. Henry Miller (Handsoff Insurance): Car was totaled by tree. 3. Henry Miller (Handsoff Insurance): Car was totaled by tree.
Is looking into a loaner car. 654-2323 (tel). Is looking into a loaner car. 654-2323 (tel).
END:VJOURNAL END:VJOURNAL
3.6.4. Free/Busy Component 3.6.4. Free/Busy Component
Component Name: VFREEBUSY Component Name: VFREEBUSY
skipping to change at page 57, line 36 skipping to change at page 59, line 20
The recurrence properties ("RRULE", "EXRULE", "RDATE", "EXDATE") The recurrence properties ("RRULE", "EXRULE", "RDATE", "EXDATE")
are not permitted within a "VFREEBUSY" calendar component. Any are not permitted within a "VFREEBUSY" calendar component. Any
recurring events are resolved into their individual busy time recurring events are resolved into their individual busy time
periods using the "FREEBUSY" property. periods using the "FREEBUSY" property.
Example: The following is an example of a "VFREEBUSY" calendar Example: The following is an example of a "VFREEBUSY" calendar
component used to request free or busy time information: component used to request free or busy time information:
BEGIN:VFREEBUSY BEGIN:VFREEBUSY
ORGANIZER:MAILTO:jane_doe@host1.com ORGANIZER:MAILTO:jane_doe@example.com
ATTENDEE:MAILTO:john_public@host2.com ATTENDEE:MAILTO:john_public@example.com
DTSTART:19971015T050000Z DTSTART:19971015T050000Z
DTEND:19971016T050000Z DTEND:19971016T050000Z
DTSTAMP:19970901T083000Z DTSTAMP:19970901T083000Z
END:VFREEBUSY END:VFREEBUSY
The following is an example of a "VFREEBUSY" calendar component The following is an example of a "VFREEBUSY" calendar component
used to reply to the request with busy time information: used to reply to the request with busy time information:
BEGIN:VFREEBUSY BEGIN:VFREEBUSY
ORGANIZER:MAILTO:jane_doe@host1.com ORGANIZER:MAILTO:jane_doe@example.com
ATTENDEE:MAILTO:john_public@host2.com ATTENDEE:MAILTO:john_public@example.com
DTSTAMP:19970901T100000Z DTSTAMP:19970901T100000Z
FREEBUSY;VALUE=PERIOD:19971015T050000Z/PT8H30M,
FREEBUSY:19971015T050000Z/PT8H30M,
19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M 19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M
URL:http://host2.com/pub/busy/jpublic-01.ifb URL:http://example.com/pub/busy/jpublic-01.ifb
COMMENT:This iCalendar file contains busy time information for COMMENT:This iCalendar file contains busy time information for
the next three months. the next three months.
END:VFREEBUSY END:VFREEBUSY
The following is an example of a "VFREEBUSY" calendar component The following is an example of a "VFREEBUSY" calendar component
used to publish busy time information. used to publish busy time information.
BEGIN:VFREEBUSY BEGIN:VFREEBUSY
ORGANIZER:jsmith@host.com ORGANIZER:jsmith@example.com
DTSTART:19980313T141711Z DTSTART:19980313T141711Z
DTEND:19980410T141711Z DTEND:19980410T141711Z
FREEBUSY:19980314T233000Z/19980315T003000Z FREEBUSY:19980314T233000Z/19980315T003000Z
FREEBUSY:19980316T153000Z/19980316T163000Z FREEBUSY:19980316T153000Z/19980316T163000Z
FREEBUSY:19980318T030000Z/19980318T040000Z FREEBUSY:19980318T030000Z/19980318T040000Z
URL:http://www.host.com/calendar/busytime/jsmith.ifb URL:http://www.example.com/calendar/busytime/jsmith.ifb
END:VFREEBUSY END:VFREEBUSY
3.6.5. Time Zone Component 3.6.5. Time Zone Component
Component Name: VTIMEZONE Component Name: VTIMEZONE
Purpose: Provide a grouping of component properties that defines a Purpose: Provide a grouping of component properties that defines a
time zone. time zone.
Format Definition: A "VTIMEZONE" calendar component is defined by the Format Definition: A "VTIMEZONE" calendar component is defined by the
skipping to change at page 60, line 23 skipping to change at page 62, line 4
+-----------+-------------------------+--------+--------------+ +-----------+-------------------------+--------+--------------+
| Date | (Date/Time) | Offset | Abbreviation | | Date | (Date/Time) | Offset | Abbreviation |
+-----------+-------------------------+--------+--------------+ +-----------+-------------------------+--------+--------------+
| 1967-* | last Sun in Oct, 02:00 | -0500 | EST | | 1967-* | last Sun in Oct, 02:00 | -0500 | EST |
| 1967-1973 | last Sun in Apr, 02:00 | -0400 | EDT | | 1967-1973 | last Sun in Apr, 02:00 | -0400 | EDT |
| 1974-1974 | Jan 6, 02:00 | -0400 | EDT | | 1974-1974 | Jan 6, 02:00 | -0400 | EDT |
| 1975-1975 | Feb 23, 02:00 | -0400 | EDT | | 1975-1975 | Feb 23, 02:00 | -0400 | EDT |
| 1976-1986 | last Sun in Apr, 02:00 | -0400 | EDT | | 1976-1986 | last Sun in Apr, 02:00 | -0400 | EDT |
| 1987-* | first Sun in Apr, 02:00 | -0400 | EDT | | 1987-* | first Sun in Apr, 02:00 | -0400 | EDT |
+-----------+-------------------------+--------+--------------+ +-----------+-------------------------+--------+--------------+
Effective Observance Rule
Date (Date/Time) Offset Abbreviation
1967-* last Sun in Oct, 02:00 -0500 EST
1967-1973 last Sun in Apr, 02:00 -0400 EDT
1974-1974 Jan 6, 02:00 -0400 EDT
1975-1975 Feb 23, 02:00 -0400 EDT
1976-1986 last Sun in Apr, 02:00 -0400 EDT
1987-* first Sun in Apr, 02:00 -0400 EDT
Note: The specification of a global time zone registry is not Note: The specification of a global time zone registry is not
addressed by this document and is left for future study. addressed by this document and is left for future study.
However, implementers may find the Olson time zone database However, implementers may find the Olson time zone database
[TZDB] a useful reference. It is an informal, public-domain [TZDB] a useful reference. It is an informal, public-domain
collection of time zone information, which is currently being collection of time zone information, which is currently being
maintained by volunteer Internet participants, and is used in maintained by volunteer Internet participants, and is used in
several operating systems. This database contains current and several operating systems. This database contains current and
historical time zone information for a wide variety of historical time zone information for a wide variety of
locations around the globe; it provides a time zone identifier locations around the globe; it provides a time zone identifier
for every unique time zone rule set in actual use since 1970, for every unique time zone rule set in actual use since 1970,
skipping to change at page 62, line 5 skipping to change at page 63, line 18
Each "VTIMEZONE" calendar component consists of a collection of Each "VTIMEZONE" calendar component consists of a collection of
one or more sub-components that describe the rule for a particular one or more sub-components that describe the rule for a particular
observance (either a Standard Time or a Daylight Saving Time observance (either a Standard Time or a Daylight Saving Time
observance). The "STANDARD" sub-component consists of a observance). The "STANDARD" sub-component consists of a
collection of properties that describe Standard Time. The collection of properties that describe Standard Time. The
"DAYLIGHT" sub-component consists of a collection of properties "DAYLIGHT" sub-component consists of a collection of properties
that describe Daylight Saving Time. In general this collection of that describe Daylight Saving Time. In general this collection of
properties consists of: properties consists of:
the first onset date-time for the observance * the first onset date-time for the observance
the last onset date-time for the observance, if a last onset is * the last onset date-time for the observance, if a last onset is
known. known.
the offset to be applied for the observance * the offset to be applied for the observance
a rule that describes the day and time when the observance * a rule that describes the day and time when the observance
takes effect takes effect
an optional name for the observance * an optional name for the observance
For a given time zone, there may be multiple unique definitions of For a given time zone, there may be multiple unique definitions of
the observances over a period of time. Each observance is the observances over a period of time. Each observance is
described using either a "STANDARD" or "DAYLIGHT" sub-component. described using either a "STANDARD" or "DAYLIGHT" sub-component.
The collection of these sub-components is used to describe the The collection of these sub-components is used to describe the
time zone for a given period of time. The offset to apply at any time zone for a given period of time. The offset to apply at any
given time is found by locating the observance that has the last given time is found by locating the observance that has the last
onset date and time before the time in question, and using the onset date and time before the time in question, and using the
offset value from that observance. offset value from that observance.
skipping to change at page 63, line 36 skipping to change at page 64, line 45
zone sub-component is defined by either the "RRULE" or "RDATE" zone sub-component is defined by either the "RRULE" or "RDATE"
property. If neither is specified, only one sub-component can be property. If neither is specified, only one sub-component can be
specified in the "VTIMEZONE" calendar component and it is assumed specified in the "VTIMEZONE" calendar component and it is assumed
that the single observance specified is always in effect. that the single observance specified is always in effect.
The "RRULE" property defines the recurrence rule for the onset of The "RRULE" property defines the recurrence rule for the onset of
the observance defined by this time zone sub-component. Some the observance defined by this time zone sub-component. Some
specific requirements for the usage of RRULE for this purpose specific requirements for the usage of RRULE for this purpose
include: include:
If observance is known to have an effective end date, the * If observance is known to have an effective end date, the
"UNTIL" recurrence rule parameter MUST be used to specify the "UNTIL" recurrence rule parameter MUST be used to specify the
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 "TZOFFSETTO" properties MUST be used when * The "DTSTART" and the "TZOFFSETTO" properties MUST be used when
generating the onset date-time values (instances) from the generating the onset date-time values (instances) from the
RRULE. RRULE.
Alternatively, the "RDATE" property can be used to define the Alternatively, the "RDATE" property can be used to define the
onset of the observance by giving the individual onset date and onset of the observance by giving the individual onset date and
times. "RDATE" in this usage MUST be specified as a local DATE- times. "RDATE" in this usage MUST be specified as a local DATE-
TIME value in UTC time. TIME value in UTC time.
The optional "COMMENT" property is also allowed for descriptive The optional "COMMENT" property is also allowed for descriptive
explanatory text. explanatory text.
skipping to change at page 71, line 27 skipping to change at page 72, line 31
Example: The following example is for a "VALARM" calendar component Example: The following example is for a "VALARM" calendar component
that specifies an audio alarm that will sound at a precise time that specifies an audio alarm that will sound at a precise time
and repeat 4 more times at 15 minute intervals: and repeat 4 more times at 15 minute intervals:
BEGIN:VALARM BEGIN:VALARM
TRIGGER;VALUE=DATE-TIME:19970317T133000Z TRIGGER;VALUE=DATE-TIME:19970317T133000Z
REPEAT:4 REPEAT:4
DURATION:PT15M DURATION:PT15M
ACTION:AUDIO ACTION:AUDIO
ATTACH;FMTTYPE=audio/basic:ftp://host.com/pub/sounds/bell-01.aud ATTACH;FMTTYPE=audio/basic:ftp://example.com/pub/
sounds/bell-01.aud
END:VALARM END:VALARM
The following example is for a "VALARM" calendar component that The following example is for a "VALARM" calendar component that
specifies a display alarm that will trigger 30 minutes before the specifies a display alarm that will trigger 30 minutes before the
scheduled start of the event or the due date/time of the to-do it scheduled start of the event or the due date/time of the to-do it
is associated with and will repeat 2 more times at 15 minute is associated with and will repeat 2 more times at 15 minute
intervals: intervals:
BEGIN:VALARM BEGIN:VALARM
TRIGGER:-PT30M TRIGGER:-PT30M
skipping to change at page 71, line 44 skipping to change at page 73, line 4
intervals: intervals:
BEGIN:VALARM BEGIN:VALARM
TRIGGER:-PT30M TRIGGER:-PT30M
REPEAT:2 REPEAT:2
DURATION:PT15M DURATION:PT15M
ACTION:DISPLAY ACTION:DISPLAY
DESCRIPTION:Breakfast meeting with executive\n DESCRIPTION:Breakfast meeting with executive\n
team at 8:30 AM EST. team at 8:30 AM EST.
END:VALARM END:VALARM
The following example is for a "VALARM" calendar component that The following example is for a "VALARM" calendar component that
specifies an email alarm that will trigger 2 days before the specifies an email alarm that will trigger 2 days before the
scheduled due date/time of a to-do it is associated with. It does scheduled due date/time of a to-do it is associated with. It does
not repeat. The email has a subject, body and attachment link. not repeat. The email has a subject, body and attachment link.
BEGIN:VALARM BEGIN:VALARM
TRIGGER:-P2D TRIGGER:-P2D
ACTION:EMAIL ACTION:EMAIL
ATTENDEE:MAILTO:john_doe@host.com ATTENDEE:MAILTO:john_doe@example.com
SUMMARY:*** REMINDER: SEND AGENDA FOR WEEKLY STAFF MEETING *** SUMMARY:*** REMINDER: SEND AGENDA FOR WEEKLY STAFF MEETING ***
DESCRIPTION:A draft agenda needs to be sent out to the attendees DESCRIPTION:A draft agenda needs to be sent out to the attendees
to the weekly managers meeting (MGR-LIST). Attached is a to the weekly managers meeting (MGR-LIST). Attached is a
pointer the document template for the agenda file. pointer the document template for the agenda file.
ATTACH;FMTTYPE=application/msword:http://host.com/templates/agen ATTACH;FMTTYPE=application/msword:http://example.com/
da.doc templates/agenda.doc
END:VALARM END:VALARM
The following example is for a "VALARM" calendar component that The following example is for a "VALARM" calendar component that
specifies a procedural alarm that will trigger at a precise date/ specifies a procedural alarm that will trigger at a precise date/
time and will repeat 23 more times at one hour intervals. The time and will repeat 23 more times at one hour intervals. The
alarm will invoke a procedure file. alarm will invoke a procedure file.
BEGIN:VALARM BEGIN:VALARM
TRIGGER;VALUE=DATE-TIME:19980101T050000Z TRIGGER;VALUE=DATE-TIME:19980101T050000Z
REPEAT:23 REPEAT:23
DURATION:PT1H DURATION:PT1H
ACTION:PROCEDURE ACTION:PROCEDURE
ATTACH;FMTTYPE=application/octet-stream:ftp://host.com/novo- ATTACH;FMTTYPE=application/octet-stream:ftp://example.com/novo-
procs/felizano.exe procs/felizano.exe
END:VALARM END:VALARM
3.7. Calendar Properties 3.7. Calendar Properties
The Calendar Properties are attributes that apply to the iCalendar The Calendar Properties are attributes that apply to the iCalendar
object, as a whole. These properties do not appear within a calendar object, as a whole. These properties do not appear within a calendar
component. They SHOULD be specified after the "BEGIN:VCALENDAR" component. They SHOULD be specified after the "BEGIN:VCALENDAR"
delimiter string and prior to any calendar component. delimiter string and prior to any calendar component.
skipping to change at page 77, line 26 skipping to change at page 78, line 26
; the following is optional, ; the following is optional,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" xparam)
) )
Example: The following are examples of this property: Example: The following are examples of this property:
ATTACH:CID:jsmith.part3.960817T083000.xyzMail@host1.com ATTACH:CID:jsmith.part3.960817T083000.xyzMail@example.com
ATTACH;FMTTYPE=application/postscript:ftp://xyzCorp.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
Property Name: CATEGORIES Property Name: CATEGORIES
Purpose: This property defines the categories for a calendar Purpose: This property defines the categories for a calendar
component. component.
Value Type: TEXT Value Type: TEXT
skipping to change at page 84, line 25 skipping to change at page 85, line 25
; the following is optional, ; the following is optional,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" xparam)
) )
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
Property Name: PERCENT-COMPLETE Property Name: PERCENT-COMPLETE
Purpose: This property is used by an assignee or delegatee of a to-do Purpose: This property is used by an assignee or delegatee of a to-do
to convey the percent completion of a to-do to the Organizer. to convey the percent completion of a to-do to the Organizer.
Value Type: INTEGER Value Type: INTEGER
skipping to change at page 85, line 45 skipping to change at page 86, line 45
specified on this property. specified on this property.
Conformance: The property can be specified in a "VEVENT" or "VTODO" Conformance: The property can be specified in a "VEVENT" or "VTODO"
calendar component. calendar component.
Description: The priority is specified as an integer in the range Description: The priority is specified as an integer in the range
zero to nine. A value of zero (US-ASCII decimal 48) specifies an zero to nine. A value of zero (US-ASCII decimal 48) specifies an
undefined priority. A value of one (US-ASCII decimal 49) is the undefined priority. A value of one (US-ASCII decimal 49) is the
highest priority. A value of two (US-ASCII decimal 50) is the highest priority. A value of two (US-ASCII decimal 50) is the
second highest priority. Subsequent numbers specify a decreasing second highest priority. Subsequent numbers specify a decreasing
ordinal priority. A value of nine (US-ASCII decimal 58) is the ordinal priority. A value of nine (US-ASCII decimal 57 ) is the
lowest priority. lowest priority.
A CUA with a three-level priority scheme of "HIGH", "MEDIUM" and A CUA with a three-level priority scheme of "HIGH", "MEDIUM" and
"LOW" is mapped into this property such that a property value in "LOW" is mapped into this property such that a property value in
the range of one (US-ASCII decimal 49) to four (US-ASCII decimal the range of one (US-ASCII decimal 49) to four (US-ASCII decimal
52) specifies "HIGH" priority. A value of five (US-ASCII decimal 52) specifies "HIGH" priority. A value of five (US-ASCII decimal
53) is the normal or "MEDIUM" priority. A value in the range of 53) is the normal or "MEDIUM" priority. A value in the range of
six (US- ASCII decimal 54) to nine (US-ASCII decimal 58) is "LOW" six (US-ASCII decimal 54) to nine (US-ASCII decimal 57 ) is "LOW"
priority. priority.
A CUA with a priority schema of "A1", "A2", "A3", "B1", "B2", ..., A CUA with a priority schema of "A1", "A2", "A3", "B1", "B2", ...,
"C3" is mapped into this property such that a property value of "C3" is mapped into this property such that a property value of
one (US-ASCII decimal 49) specifies "A1", a property value of two one (US-ASCII decimal 49) specifies "A1", a property value of two
(US- ASCII decimal 50) specifies "A2", a property value of three (US- ASCII decimal 50) specifies "A2", a property value of three
(US-ASCII decimal 51) specifies "A3", and so forth up to a (US-ASCII decimal 51) specifies "A3", and so forth up to a
property value of 9 (US-ASCII decimal 58) specifies "C3". property value of 9 (US-ASCII decimal 57 ) specifies "C3".
Other integer values are reserved for future use. Other integer values are reserved for future use.
Within a "VEVENT" calendar component, this property specifies a Within a "VEVENT" calendar component, this property specifies a
priority for the event. This property may be useful when more priority for the event. This property may be useful when more
than one event is scheduled for a given time period. than one event is scheduled for a given time period.
Within a "VTODO" calendar component, this property specified a Within a "VTODO" calendar component, this property specified a
priority for the to-do. This property is useful in prioritizing priority for the to-do. This property is useful in prioritizing
multiple action items for a given time period. multiple action items for a given time period.
skipping to change at page 86, line 34 skipping to change at page 87, line 34
Format Definition: The property is defined by the following notation: Format Definition: The property is defined by the following notation:
priority = "PRIORITY" prioparam ":" privalue CRLF priority = "PRIORITY" prioparam ":" privalue CRLF
;Default is zero ;Default is zero
prioparam = *(";" xparam) prioparam = *(";" xparam)
privalue = integer ;Must be in the range [0..9] privalue = integer ;Must be in the range [0..9]
; All other values are reserved for future use ; All other values are reserved for future use
The following is an example of a property with the highest Example: The following is an example of a property with the highest
priority: priority:
PRIORITY:1 PRIORITY:1
The following is an example of a property with a next highest The following is an example of a property with a next highest
priority: priority:
PRIORITY:2 PRIORITY:2
Example: The following is an example of a property with no priority. The following is an example of a property with no priority. This
is equivalent to not specifying the "PRIORITY" property:
This is equivalent to not specifying the "PRIORITY" property:
PRIORITY:0 PRIORITY:0
3.8.1.10. Resources 3.8.1.10. Resources
Property Name: RESOURCES Property Name: RESOURCES
Purpose: This property defines the equipment or resources anticipated Purpose: This property defines the equipment or resources anticipated
for an activity specified by a calendar entity.. for an activity specified by a calendar entity..
skipping to change at page 88, line 30 skipping to change at page 89, line 30
the "Organizer" can indicate that a meeting is tentative, the "Organizer" can indicate that a meeting is tentative,
confirmed or cancelled. In a "VTODO" calendar component, the confirmed or cancelled. In a "VTODO" calendar component, the
"Organizer" can indicate that an action item needs action, is "Organizer" can indicate that an action item needs action, is
completed, is in process or being worked on, or has been completed, is in process or being worked on, or has been
cancelled. In a "VJOURNAL" calendar component, the "Organizer" cancelled. In a "VJOURNAL" calendar component, the "Organizer"
can indicate that a journal entry is draft, final or has been can indicate that a journal entry is draft, final or has been
cancelled or removed. cancelled or removed.
Format Definition: The property is defined by the following notation: Format Definition: The property is defined by the following notation:
status = "STATUS" statparam] ":" statvalue CRLF status = "STATUS" statparam":" statvalue CRLF
statparam = *(";" xparam) statparam = *(";" xparam)
statvalue = "TENTATIVE" ;Indicates event is statvalue = "TENTATIVE" ;Indicates event is
;tentative. ;tentative.
/ "CONFIRMED" ;Indicates event is / "CONFIRMED" ;Indicates event is
;definite. ;definite.
/ "CANCELLED" ;Indicates event was / "CANCELLED" ;Indicates event was
;cancelled. ;cancelled.
;Status values for a "VEVENT" ;Status values for a "VEVENT"
statvalue =/ "NEEDS-ACTION" ;Indicates to-do needs action. statvalue = "NEEDS-ACTION" ;Indicates to-do needs action.
/ "COMPLETED" ;Indicates to-do completed. / "COMPLETED" ;Indicates to-do completed.
/ "IN-PROCESS" ;Indicates to-do in process of / "IN-PROCESS" ;Indicates to-do in process.
/ "CANCELLED" ;Indicates to-do was cancelled. / "CANCELLED" ;Indicates to-do was cancelled.
;Status values for "VTODO". ;Status values for "VTODO".
statvalue =/ "DRAFT" ;Indicates journal is draft. statvalue = "DRAFT" ;Indicates journal is draft.
/ "FINAL" ;Indicates journal is final. / "FINAL" ;Indicates journal is final.
/ "CANCELLED" ;Indicates journal is removed. / "CANCELLED" ;Indicates journal is removed.
;Status values for "VJOURNAL". ;Status values for "VJOURNAL".
Example: The following is an example of this property for a "VEVENT" Example: The following is an example of this property for a "VEVENT"
calendar component: calendar component:
STATUS:TENTATIVE STATUS:TENTATIVE
The following is an example of this property for a "VTODO" The following is an example of this property for a "VTODO"
skipping to change at page 93, line 44 skipping to change at page 94, line 44
Purpose: This property specifies when the calendar component begins. Purpose: This property specifies when the calendar component begins.
Value Type: The default value type is DATE-TIME. The time value MUST Value Type: The default value type is DATE-TIME. The time value MUST
be one of the forms defined for the DATE-TIME value type. The be one of the forms defined for the DATE-TIME value type. The
value type can be set to a DATE value type. value type can be set to a DATE value type.
Property Parameters: Non-standard, value data type, time zone Property Parameters: Non-standard, value data type, time zone
identifier property parameters can be specified on this property. identifier property parameters can be specified on this property.
Conformance: This property can be specified in the "VEVENT", "VTODO", Conformance: This property can be specified in the "VEVENT", "VTODO",
"VFREEBUSY", or "VTIMEZONE" calendar components. "VFREEBUSY", or "VTIMEZONE" calendar components. This property is
REQUIRED in "VEVENT" calendar components.
Description: Within the "VEVENT" calendar component, this property Description: Within the "VEVENT" calendar component, this property
defines the start date and time for the event. The property is defines the start date and time for the event. Events can have a
REQUIRED in "VEVENT" calendar components. Events can have a start start date/time but no end date/time. In that case, the event
date/time but no end date/time. In that case, the event does not does not take up any time.
take up any time.
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 "VTIMEZONE" calendar component, this property defines Within the "VTIMEZONE" calendar component, this property defines
the effective start date and time for a time zone specification. the effective start date and time for a time zone specification.
This property is REQUIRED within each STANDARD and DAYLIGHT part This property is REQUIRED within each STANDARD and DAYLIGHT part
included in "VTIMEZONE" calendar components and MUST be specified included in "VTIMEZONE" calendar components and MUST be specified
as a local DATE-TIME without the "TZID" property parameter. as a local DATE-TIME without the "TZID" property parameter.
skipping to change at page 95, line 41 skipping to change at page 96, line 41
DURATION:PT15M DURATION:PT15M
3.8.2.6. Free/Busy Time 3.8.2.6. Free/Busy Time
Property Name: FREEBUSY Property Name: FREEBUSY
Purpose: The property defines one or more free or busy time Purpose: The property defines one or more free or busy time
intervals. intervals.
Value Type: PERIOD. The date and time values MUST be in an UTC time Value Type: PERIOD. The date and time values MUST be in a UTC time
format. format.
Property Parameters: Non-standard or free/busy time type property Property Parameters: Non-standard or free/busy time type property
parameters can be specified on this property. parameters can be specified on this property.
Conformance: The property can be specified in a "VFREEBUSY" calendar Conformance: The property can be specified in a "VFREEBUSY" calendar
component. component.
Description: These time periods can be specified as either a start Description: These time periods can be specified as either a start
and end date-time or a start date-time and duration. The date and and end date-time or a start date-time and duration. The date and
skipping to change at page 96, line 21 skipping to change at page 97, line 21
end time, with the earliest periods first. end time, with the earliest periods first.
The "FREEBUSY" property can specify more than one value, separated The "FREEBUSY" property can specify more than one value, separated
by the COMMA character (US-ASCII decimal 44). In such cases, the by the COMMA character (US-ASCII decimal 44). In such cases, the
"FREEBUSY" property values SHOULD all be of the same "FBTYPE" "FREEBUSY" property values SHOULD 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: The property is defined by the following notation: Format Definition: The property is defined by the following notation:
freebusy = "FREEBUSY" fbparam ":" fbvalue freebusy = "FREEBUSY" fbparam ":" fbvalue CRLF
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
(";" xparam) (";" xparam)
) )
fbvalue = period *["," period] fbvalue = period *("," period
;Time value MUST be in the UTC time format. ;Time value MUST be in the UTC time format.
Example: The following are some examples of this property: Example: The following are some examples of this property:
FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M
FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H
FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H, FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H
19970308T230000Z/19970309T000000Z ,19970308T230000Z/19970309T000000Z
3.8.2.7. Time Transparency 3.8.2.7. Time Transparency
Property Name: TRANSP Property Name: TRANSP
Purpose: This property defines whether an event is transparent or not Purpose: This property defines whether an event is transparent or not
to busy time searches. to busy time searches.
Value Type: TEXT Value Type: TEXT
Property Parameters: Non-standard property parameters can be Property Parameters: Non-standard property parameters can be
skipping to change at page 97, line 28 skipping to change at page 98, line 28
determines whether it appears to consume time on a calendar. determines whether it appears to consume time on a calendar.
Events that consume actual time for the individual or resource Events that consume actual time for the individual or resource
associated with the calendar SHOULD be recorded as OPAQUE, associated with the calendar SHOULD be recorded as OPAQUE,
allowing them to be detected by free-busy time searches. Other allowing them to be detected by free-busy time searches. Other
events, which do not take up the individual's (or resource's) time events, which do not take up the individual's (or resource's) time
SHOULD be recorded as TRANSPARENT, making them invisible to free- SHOULD be recorded as TRANSPARENT, making them invisible to free-
busy time searches. busy time searches.
Format Definition: The property is defined by the following notation: Format Definition: The property is defined by the following notation:
transp = "TRANSP" tranparam ":" transvalue CRLF transp = "TRANSP" transparam ":" transvalue CRLF
tranparam = *(";" xparam) transparam = *(";" xparam)
transvalue = "OPAQUE" ;Blocks or opaque on busy time searches. transvalue = "OPAQUE"
/ "TRANSPARENT" ;Transparent on busy time searches. ;Blocks or opaque on busy time searches.
/ "TRANSPARENT"
;Transparent on busy time searches.
;Default value is OPAQUE ;Default value is OPAQUE
Example: The following is an example of this property for an event Example: The following is an example of this property for an event
that is transparent or does not block on free/busy time searches: that is transparent or does not block on free/busy time searches:
TRANSP:TRANSPARENT TRANSP:TRANSPARENT
The following is an example of this property for an event that is The following is an example of this property for an event that is
opaque or blocks on free/busy time searches: opaque or blocks on free/busy time searches:
skipping to change at page 102, line 25 skipping to change at page 103, line 25
VTIMEZONE component and a METHOD property set to PUBLISH. VTIMEZONE component and a METHOD property set to PUBLISH.
Format Definition: The property is defined by the following notation: Format Definition: The property is defined by the following notation:
tzurl = "TZURL" tzurlparam ":" uri CRLF tzurl = "TZURL" tzurlparam ":" uri CRLF
tzurlparam = *(";" xparam) tzurlparam = *(";" xparam)
Example: The following is an example of this property: Example: The following is an example of this property:
TZURL:http://timezones.r.us.net/tz/US-California-Los_Angeles TZURL:http://timezones.r.us.net/tz/US-California-Los_Angeles.ics
3.8.4. Relationship Component Properties 3.8.4. Relationship Component Properties
The following properties specify relationship information in calendar The following properties specify relationship information in calendar
components. components.
3.8.4.1. Attendee 3.8.4.1. Attendee
Property Name: ATTENDEE Property Name: ATTENDEE
skipping to change at page 103, line 29 skipping to change at page 104, line 29
for the status of the attendee's participation; RSVP, for for the status of the attendee's participation; RSVP, for
indicating whether the favor of a reply is requested; CUTYPE, to indicating whether the favor of a reply is requested; CUTYPE, to
indicate the type of calendar user; MEMBER, to indicate the groups indicate the type of calendar user; MEMBER, to indicate the groups
that the attendee belongs to; DELEGATED-TO, to indicate the that the attendee belongs to; DELEGATED-TO, to indicate the
calendar users that the original request was delegated to; and calendar users that the original request was delegated to; and
DELEGATED-FROM, to indicate whom the request was delegated from; DELEGATED-FROM, to indicate whom the request was delegated from;
SENT-BY, to indicate whom is acting on behalf of the ATTENDEE; and SENT-BY, to indicate whom is acting on behalf of the ATTENDEE; and
DIR, to indicate the URI that points to the directory information DIR, to indicate the URI that points to the directory information
corresponding to the attendee. These property parameters can be corresponding to the attendee. These property parameters can be
specified on an "ATTENDEE" property in either a "VEVENT", "VTODO" specified on an "ATTENDEE" property in either a "VEVENT", "VTODO"
or "VJOURNAL" calendar component. They MUST not be specified in or "VJOURNAL" calendar component. They MUST NOT be specified in
an "ATTENDEE" property in a "VFREEBUSY" or "VALARM" calendar an "ATTENDEE" property in a "VFREEBUSY" or "VALARM" calendar
component. If the LANGUAGE property parameter is specified, the component. If the LANGUAGE property parameter is specified, the
identified language applies to the CN parameter. identified language applies to the CN parameter.
A recipient delegated a request MUST inherit the RSVP and ROLE A recipient delegated a request MUST inherit the RSVP and ROLE
values from the attendee that delegated the request to them. values from the attendee that delegated the request to them.
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.
skipping to change at page 104, line 29 skipping to change at page 105, line 29
; the following is optional, ; the following is optional,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" xparam)
) )
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:
ORGANIZER:MAILTO:jsmith@host1.com ORGANIZER:MAILTO:jsmith@example.com
ATTENDEE;MEMBER="MAILTO:DEV-GROUP@host2.com": ATTENDEE;MEMBER="MAILTO:DEV-GROUP@example.com":
MAILTO:joecool@host2.com MAILTO:joecool@example.com
ATTENDEE;DELEGATED-FROM="MAILTO:immud@host3.com": ATTENDEE;DELEGATED-FROM="MAILTO:immud@example.com":
MAILTO:ildoit@host1.com MAILTO:ildoit@example.com
The following is an example of this property used for specifying The following is an example of this property used for specifying
multiple attendees to an event: multiple attendees to an event:
ORGANIZER:MAILTO:jsmith@host1.com ORGANIZER:MAILTO:jsmith@example.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Henry Cabot ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Henry
:MAILTO:hcabot@host2.com Cabot:MAILTO:hcabot@example.com
ATTENDEE;ROLE=REQ-PARTICIPANT;DELEGATED-FROM="MAILTO:bob@host.com" ATTENDEE;ROLE=REQ-PARTICIPANT;DELEGATED-FROM="MAILTO:bob@
;PARTSTAT=ACCEPTED;CN=Jane Doe:MAILTO:jdoe@host1.com example.com"
;PARTSTAT=ACCEPTED;CN=Jane Doe:MAILTO:jdoe@example.com
The following is an example of this property with a URI to the The following is an example of this property with a URI to the
directory information associated with the attendee: directory information associated with the attendee:
ATTENDEE;CN=John Smith;DIR="ldap://host.com:6666/o=eDABC% ATTENDEE;CN=John Smith;DIR="ldap://example.com:6666/o=ABC%
20Industries,c=3DUS??(cn=3DBJim%20Dolittle)":MAILTO:jimdo@ 20Industries,c=US???(cn=Jim%20Dolittle)":MAILTO:jimdo@
host1.com example.com
The following is an example of this property with "delegatee" and The following is an example of this property with "delegatee" and
"delegator" information for an event: "delegator" information for an event:
ORGANIZER;CN=John Smith:MAILTO:jsmith@host.com ORGANIZER;CN=John Smith:MAILTO:jsmith@example.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;DELEGATED-FROM= ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;DELEGATED-FROM=
"MAILTO:iamboss@host2.com";CN=Henry Cabot:MAILTO:hcabot@ "MAILTO:iamboss@example.com";CN=Henry Cabot:MAILTO:hcabot@
host2.com example.com
ATTENDEE;ROLE=NON-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO= ATTENDEE;ROLE=NON-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO=
"MAILTO:hcabot@host2.com";CN=The Big Cheese:MAILTO:iamboss "MAILTO:hcabot@example.com";CN=The Big Cheese:MAILTO:iamboss
@host2.com @example.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Jane Doe ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Jane Doe
:MAILTO:jdoe@host1.com :MAILTO:jdoe@example.com
Example: The following is an example of this property's use when Example: The following is an example of this property's use when
another calendar user is acting on behalf of the "Attendee": another calendar user is acting on behalf of the "Attendee":
ATTENDEE;SENT-BY=MAILTO:jan_doe@host1.com;CN=John Smith:MAILTO: ATTENDEE;SENT-BY=MAILTO:jan_doe@example.com;CN=John Smith:MAILTO:
jsmith@host1.com jsmith@example.com
3.8.4.2. Contact 3.8.4.2. Contact
Property Name: CONTACT Property Name: CONTACT
Purpose: The property is used to represent contact information or Purpose: The property is used to represent contact information or
alternately a reference to contact information associated with the alternately a reference to contact information associated with the
calendar component. calendar component.
Value Type: TEXT Value Type: TEXT
skipping to change at page 106, line 29 skipping to change at page 107, line 29
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:
CONTACT;ALTREP="ldap://host.com:6666/o=3DABC%20Industries\, CONTACT;ALTREP="ldap://example.com:6666/o=ABC%20Industries\,
c=3DUS??(cn=3DBJim%20Dolittle)":Jim Dolittle\, ABC Industries\, c=US???(cn=Jim%20Dolittle)":Jim Dolittle\, ABC Industries\,
+1-919-555-1234 +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 MIME body part containing the contact representation of a MIME body part containing the contact
information, such as a vCard [RFC2426] embedded in a [MIME-DIR] information, such as a vCard [RFC2426] embedded in a text/
content-type: directory media type [RFC2425] :
CONTACT;ALTREP="CID=<part3.msg970930T083000SILVER@host.com>":Jim CONTACT;ALTREP="CID:part3.msg970930T083000SILVER@example.com":
Dolittle\, ABC Industries\, +1-919-555-1234 Jim Dolittle\, ABC Industries\, +1-919-555-1234
The following is an example of this property referencing a network The following is an example of this property referencing a network
resource, such as a vCard [RFC2426] object containing the contact resource, such as a vCard [RFC2426] object containing the contact
information: information:
CONTACT;ALTREP="http://host.com/pdi/jdoe.vcf":Jim CONTACT;ALTREP="http://example.com/pdi/jdoe.vcf":Jim
Dolittle\, ABC Industries\, +1-919-555-1234 Dolittle\, ABC Industries\, +1-919-555-1234
3.8.4.3. Organizer 3.8.4.3. Organizer
Property Name: ORGANIZER Property Name: ORGANIZER
Purpose: The property defines the organizer for a calendar component. Purpose: The property defines the organizer for a calendar component.
Value Type: CAL-ADDRESS Value Type: CAL-ADDRESS
Property Parameters: Non-standard, language, common name, directory Property Parameters: Non-standard, language, common name, directory
skipping to change at page 107, line 24 skipping to change at page 108, line 24
Conformance: This property MUST be specified in an iCalendar object Conformance: This property MUST be specified in an iCalendar object
that specifies a group scheduled calendar entity. This property that specifies a group scheduled calendar entity. This property
MUST be specified in an iCalendar object that specifies the MUST be specified in an iCalendar object that specifies the
publication of a calendar user's busy time. This property MUST publication of a calendar user's busy time. This property MUST
NOT be specified in an iCalendar object that specifies only a time NOT be specified in an iCalendar object that specifies only a time
zone definition or that defines calendar entities that are not zone definition or that defines calendar entities that are not
group scheduled entities, but are entities only on a single user's group scheduled entities, but are entities only on a single user's
calendar. calendar.
Description: The property is specified within the "VEVENT", "VTODO", Description: The property is specified within the "VEVENT", "VTODO",
"VJOURNAL calendar components to specify the organizer of a group "VJOURNAL" calendar components to specify the organizer of a group
scheduled calendar entity. The property is specified within the scheduled calendar entity. The property is specified within the
"VFREEBUSY" calendar component to specify the calendar user "VFREEBUSY" calendar component to specify the calendar user
requesting the free or busy time. When publishing a "VFREEBUSY" requesting the free or busy time. When publishing a "VFREEBUSY"
calendar component, the property is used to specify the calendar calendar component, the property is used to specify the calendar
that the published busy time came from. that the published busy time came from.
The property has the property parameters CN, for specifying the The property has the property parameters CN, for specifying the
common or display name associated with the "Organizer", DIR, for common or display name associated with the "Organizer", DIR, for
specifying a pointer to the directory information associated with specifying a pointer to the directory information associated with
the "Organizer", SENT-BY, for specifying another calendar user the "Organizer", SENT-BY, for specifying another calendar user
skipping to change at page 108, line 25 skipping to change at page 109, line 25
; the following is optional, ; the following is optional,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" xparam)
) )
Example: The following is an example of this property: Example: The following is an example of this property:
ORGANIZER;CN=John Smith:MAILTO:jsmith@host1.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://host.com:6666/o=3DDC%20Associ ORGANIZER;CN=JohnSmith;DIR="ldap://example.com:6666/o=DC%20Ass
ates,c=3DUS??(cn=3DJohn%20Smith)":MAILTO:jsmith@host1.com ociates,c=US???(cn=John%20Smith)":MAILTO:jsmith@example.com
The following is an example of this property used by another The following is an example of this property used by another
calendar user who is acting on behalf of the organizer, with calendar user who is acting on behalf of the organizer, with
responses intended to be sent back to the organizer, not the other responses intended to be sent back to the organizer, not the other
calendar user: calendar user:
ORGANIZER;SENT-BY="MAILTO:jane_doe@host.com": ORGANIZER;SENT-BY="MAILTO:jane_doe@example.com":
MAILTO:jsmith@host1.com MAILTO:jsmith@example.com
3.8.4.4. Recurrence ID 3.8.4.4. Recurrence ID
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 effective value of the "DTSTART" property of the value is the effective value of the "DTSTART" property of the
recurrence instance. recurrence instance.
skipping to change at page 111, line 23 skipping to change at page 112, line 23
The CHILD relationship indicates that the calendar component is a The CHILD relationship indicates that the calendar component is a
superior of the referenced calendar component. The SIBLING superior of the referenced calendar component. The SIBLING
relationship indicates that the calendar component is a peer of relationship indicates that the calendar component is a peer of
the referenced calendar component. the referenced calendar component.
Changes to a calendar component referenced by this property can Changes to a calendar component referenced by this property can
have an implicit impact on the related calendar component. For have an implicit impact on the related calendar component. For
example, if a group event changes its start or end date or time, example, if a group event changes its start or end date or time,
then the related, dependent events will need to have their start then the related, dependent events will need to have their start
and end dates changed in a corresponding way. Similarly, if a and end dates changed in a corresponding way. Similarly, if a
PARENT calendar component is canceled or deleted, then there is an PARENT calendar component is cancelled or deleted, then there is
implied impact to the related CHILD calendar components. This an implied impact to the related CHILD calendar components. This
property is intended only to provide information on the property is intended only to provide information on the
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: The property is defined by the following notation: Format Definition: The property is defined by the following 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
(";" xparm) (";" xparam)
) )
The following is an example of this property: The following is an example of this property:
RELATED-TO:<jsmith.part7.19960817T083000.xyzMail@host3.com> RELATED-TO:jsmith.part7.19960817T083000.xyzMail@example.com
RELATED-TO:19960401-080045-4000F192713-0052@example.com
RELATED-TO:<19960401-080045-4000F192713-0052@host1.com>
3.8.4.6. Uniform Resource Locator 3.8.4.6. Uniform Resource Locator
Property Name: URL Property Name: URL
Purpose: This property defines a Uniform Resource Locator (URL) Purpose: This property defines a Uniform Resource Locator (URL)
associated with the iCalendar object. associated with the iCalendar object.
Value Type: URI Value Type: URI
skipping to change at page 113, line 12 skipping to change at page 114, line 12
Property Parameters: Non-standard property parameters can be Property Parameters: Non-standard property parameters can be
specified on this property. specified on this property.
Conformance: The property MUST be specified in the "VEVENT", "VTODO", Conformance: The property MUST be specified in the "VEVENT", "VTODO",
"VJOURNAL" or "VFREEBUSY" calendar components. "VJOURNAL" or "VFREEBUSY" calendar components.
Description: The UID itself MUST be a globally unique identifier. Description: The UID itself MUST be a globally unique identifier.
The generator of the identifier MUST guarantee that the identifier The generator of the identifier MUST guarantee that the identifier
is unique. There are several algorithms that can be used to is unique. There are several algorithms that can be used to
accomplish this. The identifier is RECOMMENDED to be the accomplish this. The identifier is RECOMMENDED to be the
identical syntax to the [RFC0822] addr-spec. A good method to identical syntax to the [RFC2822] addr-spec. A good method to
assure uniqueness is to put the domain name or a domain literal IP assure uniqueness is to put the domain name or a domain literal IP
address of the host on which the identifier was created on the address of the host on which the identifier was created on the
right hand side of the "@", and on the left hand side, put a right hand side of the "@", and on the left hand side, put a
combination of the current calendar date and time of day (i.e., combination of the current calendar date and time of day (i.e.,
formatted in as a DATE-TIME value) along with some other currently formatted in as a DATE-TIME value) along with some other currently
unique (perhaps sequential) identifier available on the system unique (perhaps sequential) identifier available on the system
(for example, a process id number). Using a date/time value on (for example, a process id number). Using a date/time value on
the left hand side and a domain name or domain literal on the the left hand side and a domain name or domain literal on the
right hand side makes it possible to guarantee uniqueness since no right hand side makes it possible to guarantee uniqueness since no
two hosts should be using the same domain name or IP address at two hosts should be using the same domain name or IP address at
skipping to change at page 113, line 47 skipping to change at page 114, line 47
This property is an important method for group scheduling This property is an important method for group scheduling
applications to match requests with later replies, modifications applications to match requests with later replies, modifications
or deletion requests. Calendaring and scheduling applications or deletion requests. Calendaring and scheduling applications
MUST generate this property in "VEVENT", "VTODO" and "VJOURNAL" MUST generate this property in "VEVENT", "VTODO" and "VJOURNAL"
calendar components to assure interoperability with other group calendar components to assure interoperability with other group
scheduling applications. This identifier is created by the scheduling applications. This identifier is created by the
calendar system that generates an iCalendar object. calendar system that generates an iCalendar object.
Implementations MUST be able to receive and persist values of at Implementations MUST be able to receive and persist values of at
least 255 characters for this property. least 255 octets for this property but MUST NOT truncate values in
the middle of a UTF-8 multi-octet sequence .
Format Definition: The property is defined by the following notation: Format Definition: The property is defined by the following notation:
uid = "UID" uidparam ":" text CRLF uid = "UID" uidparam ":" text CRLF
uidparam = *(";" xparam) uidparam = *(";" xparam)
Example: The following is an example of this property: Example: The following is an example of this property:
UID:19960401T080045Z-4000F192713-0052@host1.com UID:19960401T080045Z-4000F192713-0052@example.com
3.8.5. Recurrence Component Properties 3.8.5. Recurrence Component Properties
The following properties specify recurrence information in calendar The following properties specify recurrence information in calendar
components. components.
3.8.5.1. Exception Date/Times 3.8.5.1. Exception Date/Times
Property Name: EXDATE Property Name: EXDATE
skipping to change at page 120, line 29 skipping to change at page 121, line 29
(1997 9:00 AM EST)October 26-31;November 1-30;December 1-23 (1997 9:00 AM EST)October 26-31;November 1-30;December 1-23
Every other day - forever: Every other day - forever:
DTSTART;TZID=US-Eastern:19970902T090000 DTSTART;TZID=US-Eastern:19970902T090000
RRULE:FREQ=DAILY;INTERVAL=2 RRULE:FREQ=DAILY;INTERVAL=2
==> (1997 9:00 AM EDT)September2,4,6,8...24,26,28,30; ==> (1997 9:00 AM EDT)September2,4,6,8...24,26,28,30;
October 2,4,6...20,22,24 October 2,4,6...20,22,24
(1997 9:00 AM EST)October 26,28,30;November 1,3,5,7...25,27,29; (1997 9:00 AM EST)October 26,28,30;November 1,3,5,7...25,27,29;
Dec 1,3,... December 1,3,...
Every 10 days, 5 occurrences: Every 10 days, 5 occurrences:
DTSTART;TZID=US-Eastern:19970902T090000 DTSTART;TZID=US-Eastern:19970902T090000
RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5 RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5
==> (1997 9:00 AM EDT)September 2,12,22;October 2,12 ==> (1997 9:00 AM EDT)September 2,12,22;October 2,12
Everyday in January, for 3 years: Everyday in January, for 3 years:
DTSTART;TZID=US-Eastern:19980101T090000 DTSTART;TZID=US-Eastern:19980101T090000
RRULE:FREQ=YEARLY;UNTIL=20000131T090000Z;
RRULE:FREQ=YEARLY;UNTIL=20000131T140000Z;
BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA
or or
RRULE:FREQ=DAILY;UNTIL=20000131T090000Z;BYMONTH=1 RRULE:FREQ=DAILY;UNTIL=20000131T140000Z;BYMONTH=1
==> (1998 9:00 AM EDT)January 1-31 ==> (1998 9:00 AM EST)January 1-31
(1999 9:00 AM EDT)January 1-31 (1999 9:00 AM EST)January 1-31
(2000 9:00 AM EDT)January 1-31 (2000 9:00 AM EST)January 1-31
Weekly for 10 occurrences Weekly for 10 occurrences
DTSTART;TZID=US-Eastern:19970902T090000 DTSTART;TZID=US-Eastern:19970902T090000
RRULE:FREQ=WEEKLY;COUNT=10 RRULE:FREQ=WEEKLY;COUNT=10
==> (1997 9:00 AM EDT)September 2,9,16,23,30;October 7,14,21 ==> (1997 9:00 AM EDT)September 2,9,16,23,30;October 7,14,21
(1997 9:00 AM EST)October 28;November 4 (1997 9:00 AM EST)October 28;November 4
Weekly until December 24, 1997 Weekly until December 24, 1997
skipping to change at page 122, line 17 skipping to change at page 123, line 17
RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH
==> (1997 9:00 AM EDT)September 2,4,16,18,30;October 2,14,16 ==> (1997 9:00 AM EDT)September 2,4,16,18,30;October 2,14,16
Monthly on the 1st Friday for ten occurrences: Monthly on the 1st Friday for ten occurrences:
DTSTART;TZID=US-Eastern:19970905T090000 DTSTART;TZID=US-Eastern:19970905T090000
RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR
==> (1997 9:00 AM EDT)September 5;October 3 ==> (1997 9:00 AM EDT)September 5;October 3
(1997 9:00 AM EST)November 7;Dec 5 (1997 9:00 AM EST)November 7;December 5
(1998 9:00 AM EST)January 2;February 6;March 6;April 3 (1998 9:00 AM EST)January 2;February 6;March 6;April 3
(1998 9:00 AM EDT)May 1;June 5 (1998 9:00 AM EDT)May 1;June 5
Monthly on the 1st Friday until December 24, 1997: Monthly on the 1st Friday until December 24, 1997:
DTSTART;TZID=US-Eastern:19970905T090000 DTSTART;TZID=US-Eastern:19970905T090000
RRULE:FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR RRULE:FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR
==> (1997 9:00 AM EDT)September 5;October 3 ==> (1997 9:00 AM EDT)September 5;October 3
(1997 9:00 AM EST)November 7;December 5 (1997 9:00 AM EST)November 7;December 5
skipping to change at page 130, line 26 skipping to change at page 131, line 26
time alarm trigger). If a value type of DATE-TIME is specified, time alarm trigger). If a value type of DATE-TIME is specified,
then the property value MUST be specified in the UTC time format. then the property value MUST be specified in the UTC time format.
If an absolute trigger is specified on an alarm for a recurring If an absolute trigger is specified on an alarm for a recurring
event or to-do, then the alarm will only trigger for the specified event or to-do, then the alarm will only trigger for the specified
absolute date/time, along with any specified repeating instances. absolute date/time, along with any specified repeating instances.
If the trigger is set relative to START, then the "DTSTART" If the trigger is set relative to START, then the "DTSTART"
property MUST be present in the associated "VEVENT" or "VTODO" property MUST be present in the associated "VEVENT" or "VTODO"
calendar component. If an alarm is specified for an event with calendar component. If an alarm is specified for an event with
the trigger set relative to the END, then the "DTEND" property or the trigger set relative to the END, then the "DTEND" property or
the "DSTART" and "DURATION' properties MUST be present in the the "DTSTART" and "DURATION " properties MUST be present in the
associated "VEVENT" calendar component. If the alarm is specified associated "VEVENT" calendar component. If the alarm is specified
for a to-do with a trigger set relative to the END, then either for a to-do with a trigger set relative to the END, then either
the "DUE" property or the "DTSTART" and "DURATION" properties MUST the "DUE" property or the "DTSTART" and "DURATION " properties
be present in the associated "VTODO" calendar component. MUST be present in the associated "VTODO" calendar component.
Alarms specified in an event or to-do which is defined in terms of Alarms specified in an event or to-do which is defined in terms of
a DATE value type will be triggered relative to 00:00:00 UTC on a DATE value type will be triggered relative to 00:00:00 UTC on
the specified date. For example, if "DTSTART:19980205, then the the specified date. For example, if DTSTART is a DATE value set
duration trigger will be relative to19980205T000000Z. to 19980205 then the duration trigger will be relative to
19980205T000000Z.
Format Definition: The property is defined by the following notation: Format Definition: The property is defined by the following notation:
trigger = "TRIGGER" (trigrel / trigabs) 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,
skipping to change at page 134, line 11 skipping to change at page 135, line 11
Description: The property value MUST be specified in the UTC time Description: The property value MUST be specified in the UTC time
format. format.
Format Definition: The property is defined by the following notation: Format Definition: The property is defined by the following notation:
last-mod = "LAST-MODIFIED" lstparam ":" date-time CRLF last-mod = "LAST-MODIFIED" lstparam ":" date-time CRLF
lstparam = *(";" xparam) lstparam = *(";" xparam)
Example: The following is are examples of this property: Example: The following are examples of this property:
LAST-MODIFIED:19960817T133000Z LAST-MODIFIED:19960817T133000Z
3.8.7.4. Sequence Number 3.8.7.4. Sequence Number
Property Name: SEQUENCE Property Name: SEQUENCE
Purpose: This property defines the revision sequence number of the Purpose: This property defines the revision sequence number of the
calendar component within a sequence of revisions. calendar component within a sequence of revisions.
Value Type: integer Value Type: INTEGER
Property Parameters: Non-standard property parameters can be Property Parameters: Non-standard property parameters can be
specified on this property. specified on this property.
Conformance: The property can be specified in "VEVENT", "VTODO" or Conformance: The property can be specified in "VEVENT", "VTODO" or
"VJOURNAL" calendar component. "VJOURNAL" calendar component.
Description: When a calendar component is created, its sequence Description: When a calendar component is created, its sequence
number is zero (US-ASCII decimal 48). It is monotonically number is zero (US-ASCII decimal 48). It is monotonically
incremented by the "Organizer's" CUA each time the "Organizer" incremented by the "Organizer's" CUA each time the "Organizer"
makes a significant revision to the calendar component. When the makes a significant revision to the calendar component. When the
"Organizer" makes changes to one of the following properties, the "Organizer" makes changes to one of the following properties, the
sequence number MUST be incremented: sequence number MUST be incremented:
"DTSTART" * "DTSTART"
"DTEND" * "DTEND"
"DUE" * "DURATION"
"RDATE" * "DUE"
"RRULE" * "RDATE"
"EXDATE" * "RRULE"
"EXRULE" * "EXDATE"
"STATUS"
* "EXRULE"
* "STATUS"
In addition, changes made by the "Organizer" to other properties In addition, changes made by the "Organizer" to other properties
can also force the sequence number to be incremented. The can also force the sequence number to be incremented. The
"Organizer" CUA MUST increment the sequence number when ever it "Organizer" CUA MUST increment the sequence number when ever it
makes changes to properties in the calendar component that the makes changes to properties in the calendar component that the
"Organizer" deems will jeopardize the validity of the "Organizer" deems will jeopardize the validity of the
participation status of the "Attendees". For example, changing participation status of the "Attendees". For example, changing
the location of a meeting from one locale to another distant the location of a meeting from one locale to another distant
locale could effectively impact the participation status of the locale could effectively impact the participation status of the
"Attendees". "Attendees".
skipping to change at page 136, line 31 skipping to change at page 137, line 31
Conformance: This property can be specified in any calendar Conformance: This property can be specified in any calendar
component. component.
Description: The MIME Calendaring and Scheduling Content Type Description: The MIME Calendaring and Scheduling Content Type
provides a "standard mechanism for doing non-standard things". provides a "standard mechanism for doing non-standard things".
This extension support is provided for implementers to "push the This extension support is provided for implementers to "push the
envelope" on the existing version of the memo. Extension envelope" on the existing version of the memo. Extension
properties are specified by property and/or property parameter properties are specified by property and/or property parameter
names that have the prefix text of "X-" (the two character names that have the prefix text of "X-" (the two character
sequence: LATIN CAPITAL LETTER X character followed by the HYPEN- sequence: LATIN CAPITAL LETTER X character followed by the HYPHEN-
MINUS character). It is recommended that vendors concatenate onto MINUS character). It is recommended that vendors concatenate onto
this sentinel another short prefix text to identify the vendor. this sentinel another short prefix text to identify the vendor.
This will facilitate readability of the extensions and minimize This will facilitate readability of the extensions and minimize
possible collision of names between different vendors. User possible collision of names between different vendors. User
agents that support this content type are expected to be able to agents that support this content type are expected to be able to
parse the extension properties and property parameters but can parse the extension properties and property parameters but can
ignore them. ignore them.
At present, there is no registration authority for names of At present, there is no registration authority for names of
extension properties and property parameters. The data type for extension properties and property parameters. The data type for
skipping to change at page 139, line 48 skipping to change at page 140, line 48
REQUEST-STATUS:2.0;Success REQUEST-STATUS:2.0;Success
REQUEST-STATUS:3.1;Invalid property value;DTSTART:96-Apr-01 REQUEST-STATUS:3.1;Invalid property value;DTSTART:96-Apr-01
REQUEST-STATUS:2.8; Success\, repeating event ignored. Scheduled REQUEST-STATUS:2.8; Success\, repeating event ignored. Scheduled
as a single event.;RRULE:FREQ=WEEKLY\;INTERVAL=2 as a single event.;RRULE:FREQ=WEEKLY\;INTERVAL=2
REQUEST-STATUS:4.1;Event conflict. Date/time is busy. REQUEST-STATUS:4.1;Event conflict. Date/time is busy.
REQUEST-STATUS:3.7;Invalid calendar user;ATTENDEE: REQUEST-STATUS:3.7;Invalid calendar user;ATTENDEE:
MAILTO:jsmith@host.com MAILTO:jsmith@example.com
4. iCalendar Object Examples 4. iCalendar Object Examples
The following examples are provided as an informational source of The following examples are provided as an informational source of
illustrative iCalendar objects consistent with this content type. illustrative iCalendar objects consistent with this content type.
The following example specifies a three-day conference that begins at The following example specifies a three-day conference that begins at
8:00 AM EDT, September 18, 1996 and end at 6:00 PM EDT, September 20, 8:00 AM EDT, September 18, 1996 and end at 6:00 PM EDT, September 20,
1996. 1996.
BEGIN:VCALENDAR BEGIN:VCALENDAR
PRODID:-//xyz Corp//NONSGML PDA Calendar Version 1.0//EN PRODID:-//xyz Corp//NONSGML PDA Calendar Version 1.0//EN
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
DTSTAMP:19960704T120000Z DTSTAMP:19960704T120000Z
UID:uid1@host.com UID:uid1@example.com
ORGANIZER:MAILTO:jsmith@host.com ORGANIZER:MAILTO:jsmith@example.com
DTSTART:19960918T143000Z DTSTART:19960918T143000Z
DTEND:19960920T220000Z DTEND:19960920T220000Z
STATUS:CONFIRMED STATUS:CONFIRMED
CATEGORIES:CONFERENCE CATEGORIES:CONFERENCE
SUMMARY:Networld+Interop Conference SUMMARY:Networld+Interop Conference
DESCRIPTION:Networld+Interop Conference DESCRIPTION:Networld+Interop Conference
and Exhibit\nAtlanta World Congress Center\n and Exhibit\nAtlanta World Congress Center\n
Atlanta, Georgia Atlanta\, Georgia
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
The following example specifies a group scheduled meeting that begin The following example specifies a group scheduled meeting that begin
at 8:30 AM EST on March 12, 1998 and end at 9:30 AM EST on March 12, at 8:30 AM EST on March 12, 1998 and end at 9:30 AM EST on March 12,
1998. The "Organizer" has scheduled the meeting with one or more 1998. The "Organizer" has scheduled the meeting with one or more
calendar users in a group. A time zone specification for Eastern calendar users in a group. A time zone specification for Eastern
United States has been specified. United States has been specified.
BEGIN:VCALENDAR BEGIN:VCALENDAR
skipping to change at page 141, line 27 skipping to change at page 142, line 27
BEGIN:DAYLIGHT BEGIN:DAYLIGHT
DTSTART:19990404T020000 DTSTART:19990404T020000
RDATE:19990404T020000 RDATE:19990404T020000
TZOFFSETFROM:-0500 TZOFFSETFROM:-0500
TZOFFSETTO:-0400 TZOFFSETTO:-0400
TZNAME:EDT TZNAME:EDT
END:DAYLIGHT END:DAYLIGHT
END:VTIMEZONE END:VTIMEZONE
BEGIN:VEVENT BEGIN:VEVENT
DTSTAMP:19980309T231000Z DTSTAMP:19980309T231000Z
UID:guid-1.host1.com UID:guid-1.example.com
ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@host.com ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@example.com
ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP: ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP:
MAILTO:employee-A@host.com MAILTO:employee-A@example.com
DESCRIPTION:Project XYZ Review Meeting DESCRIPTION:Project XYZ Review Meeting
CATEGORIES:MEETING CATEGORIES:MEETING
CLASS:PUBLIC CLASS:PUBLIC
CREATED:19980309T130000Z CREATED:19980309T130000Z
SUMMARY:XYZ Project Review SUMMARY:XYZ Project Review
DTSTART;TZID=US-Eastern:19980312T083000 DTSTART;TZID=US-Eastern:19980312T083000
DTEND;TZID=US-Eastern:19980312T093000 DTEND;TZID=US-Eastern:19980312T093000
LOCATION:1CP Conference Room 4350 LOCATION:1CP Conference Room 4350
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
The following is an example of an iCalendar object passed in a MIME The following is an example of an iCalendar object passed in a MIME
message with a single body part consisting of a "text/calendar" message with a single body part consisting of a "text/calendar"
Content Type. Content Type.
TO:jsmith@host1.com TO:jsmith@example.com
FROM:jdoe@host1.com FROM:jdoe@example.com
MIME-VERSION:1.0 MIME-VERSION:1.0
MESSAGE-ID:<id3@host1.com> MESSAGE-ID:<id3@example.com>
CONTENT-TYPE:text/calendar CONTENT-TYPE:text/calendar; method="xyz"; component="VEVENT"
BEGIN:VCALENDAR BEGIN:VCALENDAR
METHOD:xyz METHOD:xyz
VERSION:2.0 VERSION:2.0
PRODID:-//ABC Corporation//NONSGML My Product//EN PRODID:-//ABC Corporation//NONSGML My Product//EN
BEGIN:VEVENT BEGIN:VEVENT
DTSTAMP:19970324T120000Z DTSTAMP:19970324T120000Z
SEQUENCE:0 SEQUENCE:0
UID:uid3@host1.com UID:uid3@example.com
ORGANIZER:MAILTO:jdoe@host1.com ORGANIZER:MAILTO:jdoe@example.com
ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host1.com ATTENDEE;RSVP=TRUE:MAILTO:jsmith@example.com
DTSTART:19970324T123000Z DTSTART:19970324T123000Z
DTEND:19970324T210000Z DTEND:19970324T210000Z
CATEGORIES:MEETING,PROJECT CATEGORIES:MEETING,PROJECT
CLASS:PUBLIC CLASS:PUBLIC
SUMMARY:Calendaring Interoperability Planning Meeting SUMMARY:Calendaring Interoperability Planning Meeting
DESCRIPTION:Discuss how we can test c&s interoperability\n DESCRIPTION:Discuss how we can test c&s interoperability\n
using iCalendar and other IETF standards. using iCalendar and other IETF standards.
LOCATION:LDB Lobby LOCATION:LDB Lobby
ATTACH;FMTTYPE=application/postscript:ftp://xyzCorp.com/pub/ ATTACH;FMTTYPE=application/postscript:ftp://example.com/pub/
conf/bkgrnd.ps conf/bkgrnd.ps
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR
The following is an example of a to-do due on April 15, 1998. An The following is an example of a to-do due on April 15, 1998. An
audio alarm has been specified to remind the calendar user at noon, audio alarm has been specified to remind the calendar user at noon,
the day before the to-do is expected to be completed and repeat the day before the to-do is expected to be completed and repeat
hourly, four additional times. The to-do definition has been hourly, four additional times. The to-do definition has been
modified twice since it was initially created. modified twice since it was initially created.
BEGIN:VCALENDAR BEGIN:VCALENDAR
VERSION:2.0 VERSION:2.0
PRODID:-//ABC Corporation//NONSGML My Product//EN PRODID:-//ABC Corporation//NONSGML My Product//EN
BEGIN:VTODO BEGIN:VTODO
DTSTAMP:19980130T134500Z DTSTAMP:19980130T134500Z
SEQUENCE:2 SEQUENCE:2
UID:uid4@host1.com UID:uid4@example.com
ORGANIZER:MAILTO:unclesam@us.gov ORGANIZER:MAILTO:unclesam@us.gov
ATTENDEE;PARTSTAT=ACCEPTED:MAILTO:jqpublic@host.com ATTENDEE;PARTSTAT=ACCEPTED:MAILTO:jqpublic@example.com
DUE:19980415T235959 DUE:19980415T235959
STATUS:NEEDS-ACTION STATUS:NEEDS-ACTION
SUMMARY:Submit Income Taxes SUMMARY:Submit Income Taxes
BEGIN:VALARM BEGIN:VALARM
ACTION:AUDIO ACTION:AUDIO
TRIGGER:19980403T120000 TRIGGER:19980403T120000Z
ATTACH;FMTTYPE=audio/basic:http://host.com/pub/audio- ATTACH;FMTTYPE=audio/basic:http://example.com/pub/audio-
files/ssbanner.aud files/ssbanner.aud
REPEAT:4 REPEAT:4
DURATION:PT1H DURATION:PT1H
END:VALARM END:VALARM
END:VTODO END:VTODO
END:VCALENDAR END:VCALENDAR
The following is an example of a journal entry. The following is an example of a journal entry.
BEGIN:VCALENDAR BEGIN:VCALENDAR
VERSION:2.0 VERSION:2.0
PRODID:-//ABC Corporation//NONSGML My Product//EN PRODID:-//ABC Corporation//NONSGML My Product//EN
BEGIN:VJOURNAL BEGIN:VJOURNAL
DTSTAMP:19970324T120000Z DTSTAMP:19970324T120000Z
UID:uid5@host1.com UID:uid5@example.com
ORGANIZER:MAILTO:jsmith@host.com ORGANIZER:MAILTO:jsmith@example.com
STATUS:DRAFT STATUS:DRAFT
CLASS:PUBLIC CLASS:PUBLIC
CATEGORY:Project Report, XYZ, Weekly Meeting CATEGORIES:Project Report,XYZ,Weekly Meeting
DESCRIPTION:Project xyz Review Meeting Minutes\n DESCRIPTION:Project xyz Review Meeting Minutes\n
Agenda\n1. Review of project version 1.0 requirements.\n2. Agenda\n1. Review of project version 1.0 requirements.\n2.
Definition Definition
of project processes.\n3. Review of project schedule.\n of project processes.\n3. Review of project schedule.\n
Participants: John Smith, Jane Doe, Jim Dandy\n-It was Participants: John Smith\, Jane Doe\, Jim Dandy\n-It was
decided that the requirements need to be signed off by decided that the requirements need to be signed off by
product marketing.\n-Project processes were accepted.\n product marketing.\n-Project processes were accepted.\n
-Project schedule needs to account for scheduled holidays -Project schedule needs to account for scheduled holidays
and employee vacation time. Check with HR for specific and employee vacation time. Check with HR for specific
dates.\n-New schedule will be distributed by Friday.\n- dates.\n-New schedule will be distributed by Friday.\n-
Next weeks meeting is cancelled. No meeting until 3/23. Next weeks meeting is cancelled. No meeting until 3/23.
END:VJOURNAL END:VJOURNAL
END:VCALENDAR END:VCALENDAR
The following is an example of published busy time information. The The following is an example of published busy time information. The
iCalendar object might be placed in the network resource iCalendar object might be placed in the network resource
www.host.com/calendar/busytime/jsmith.ifb. http://www.example.com/calendar/busytime/jsmith.ifb.
BEGIN:VCALENDAR BEGIN:VCALENDAR
VERSION:2.0 VERSION:2.0
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
BEGIN:VFREEBUSY BEGIN:VFREEBUSY
ORGANIZER:MAILTO:jsmith@host.com ORGANIZER:MAILTO:jsmith@example.com
DTSTART:19980313T141711Z DTSTART:19980313T141711Z
DTEND:19980410T141711Z DTEND:19980410T141711Z
FREEBUSY:19980314T233000Z/19980315T003000Z FREEBUSY:19980314T233000Z/19980315T003000Z
FREEBUSY:19980316T153000Z/19980316T163000Z FREEBUSY:19980316T153000Z/19980316T163000Z
FREEBUSY:19980318T030000Z/19980318T040000Z FREEBUSY:19980318T030000Z/19980318T040000Z
URL:http://www.host.com/calendar/busytime/jsmith.ifb URL:http://www.example.com/calendar/busytime/jsmith.ifb
END:VFREEBUSY END:VFREEBUSY
END:VCALENDAR END:VCALENDAR
5. Recommended Practices 5. Recommended Practices
These recommended practices should be followed in order to assure These recommended practices should be followed in order to assure
consistent handling of the following cases for an iCalendar object. consistent handling of the following cases for an iCalendar object.
1. Content lines longer than 75 octets SHOULD be folded. 1. Content lines longer than 75 octets SHOULD be folded.
skipping to change at page 145, line 9 skipping to change at page 146, line 9
5. When a calendar user receives multiple requests for the same 5. When a calendar user receives multiple requests for the same
calendar component (e.g., REQUEST for a "VEVENT" calendar calendar component (e.g., REQUEST for a "VEVENT" calendar
component) as a result of being on multiple mailing lists component) as a result of being on multiple mailing lists
specified by "ATTENDEE" properties in the request, they SHOULD specified by "ATTENDEE" properties in the request, they SHOULD
respond to only one of the requests. The calendar user SHOULD respond to only one of the requests. The calendar user SHOULD
also specify (using the "MEMBER" parameter of the "ATTENDEE" also specify (using the "MEMBER" parameter of the "ATTENDEE"
property) which mailing list they are a member of. property) which mailing list they are a member of.
6. An implementation can truncate a "SUMMARY" property value to 255 6. An implementation can truncate a "SUMMARY" property value to 255
characters. octets, but MUST NOT truncate the value in the middle of a UTF-8
multi-octet sequence .
7. If seconds of the minute are not supported by an implementation, 7. If seconds of the minute are not supported by an implementation,
then a value of "00" SHOULD be specified for the seconds then a value of "00" SHOULD be specified for the seconds
component in a time value. component in a time value.
8. If the value type parameter (VALUE=) contains an unknown value 8. If the value type parameter (VALUE=) contains an unknown value
type, it SHOULD be treated as TEXT. type, it SHOULD be treated as TEXT.
9. TZURL values SHOULD NOT be specified as a FILE URI type. This 9. TZURL values SHOULD NOT be specified as a FILE URI type. This
URI form can be useful within an organization, but is URI form can be useful within an organization, but is
skipping to change at page 147, line 41 skipping to change at page 148, line 45
Discussion on the new property MUST be allowed to take place on the Discussion on the new property MUST be allowed to take place on the
list for a minimum of two weeks. Consensus MUST be reached on the list for a minimum of two weeks. Consensus MUST be reached on the
property before proceeding to the next step. property before proceeding to the next step.
6.2.4. Submit the property for approval 6.2.4. Submit the property for approval
Once the two-week comment period has elapsed, and the proposer is Once the two-week comment period has elapsed, and the proposer is
convinced consensus has been reached on the property, the convinced consensus has been reached on the property, the
registration application should be submitted to the Method Reviewer registration application should be submitted to the Method Reviewer
for approval. The Method Reviewer is appointed to the Application for approval. The Method Reviewer is appointed by the Application
Area Directors and can either accept or reject the property Area Directors and can either accept or reject the property
registration. An accepted registration should be passed on by the registration. An accepted registration should be passed on by the
Method Reviewer to the IANA for inclusion in the official IANA method Method Reviewer to the IANA for inclusion in the official IANA method
registry. The registration can be rejected for any of the following registry. The registration can be rejected for any of the following
reasons. 1) Insufficient comment period; 2) Consensus not reached; 3) reasons. 1) Insufficient comment period; 2) Consensus not reached; 3)
Technical deficiencies raised on the list or elsewhere have not been Technical deficiencies raised on the list or elsewhere have not been
addressed. The Method Reviewer's decision to reject a property can addressed. The Method Reviewer's decision to reject a property can
be appealed by the proposer to the IESG, or the objections raised can be appealed by the proposer to the IESG, or the objections raised can
be addressed by the proposer and the property resubmitted. be addressed by the proposer and the property resubmitted.
skipping to change at page 149, line 36 skipping to change at page 150, line 41
Subject: Registration of media type text/calendar Subject: Registration of media type text/calendar
Type name: text Type name: text
Subtype name: calendar Subtype name: calendar
Required parameters: none Required parameters: none
Optional parameters: charset, method, component and optinfo Optional parameters: charset, method, component and optinfo
The "charset" parameter is defined in [RFC2046] for other body The "charset" parameter is defined in [RFC2046] for subtypes of
parts. It is used to identify the default character set used the "text" media type. It is used to indicate the charset used in
within the body part. the body part. The charset supported by this revision of
iCalendar is UTF-8. The use of any other charset is deprecated by
this revision of iCalendar; however note that this revision
requires that compliant applications MUST accept iCalendar objects
using either the UTF-8 or US-ASCII charset.
The "method" parameter is used to convey the iCalendar object The "method" parameter is used to convey the iCalendar object
method or transaction semantics for the calendaring and scheduling method or transaction semantics for the calendaring and scheduling
information. It also is an identifier for the restricted set of information. It also is an identifier for the restricted set of
properties and values that the iCalendar object consists of. The properties and values that the iCalendar object consists of. The
parameter is to be used as a guide for applications interpreting parameter is to be used as a guide for applications interpreting
the information contained within the body part. It SHOULD NOT be the information contained within the body part. It SHOULD NOT be
used to exclude or require particular pieces of information unless used to exclude or require particular pieces of information unless
the identified method definition specifically calls for this the identified method definition specifically calls for this
behavior. Unless specifically forbidden by a particular method behavior. Unless specifically forbidden by a particular method
skipping to change at page 152, line 19 skipping to change at page 153, line 33
Restrictions on usage: There are no restrictions on where this media Restrictions on usage: There are no restrictions on where this media
type can be used. type can be used.
Author: TBD Author: TBD
Change controller: IETF Change controller: IETF
10. Acknowledgments 10. Acknowledgments
The editor of this document wish to thank Frank Dawson and Stenerson The editor of this document wish to thank Frank Dawson and Stenerson
Derik, the original author of RFC2445. Derik, the original authors of RFC2445, as well as the following
individuals who have participated in the drafting, review and
discussion of this memo:
Joe Abley, Hervey Allen, Jay Batson, Oliver Block, Chris Bryant,
Tantek Celik, Mark Crispin, Cyrus Daboo, Mike Douglass, Andrew N.
Dowden, Lisa Dusseault, Ned Freed, Ted Hardie, Tim Hare, Jeffrey
Harris, Helge Hess, Leif Johansson, Reinhold Kainhofer, Eliot Lear,
Jeff McCullough, Bill McQuillan, Alexey Melnikov, Aki Niemi, John W.
Noerenberg II, Chuck Norris, Mark Paterson, Simon Pilette, Arnaud
Quillaud, Robert Ransdell, Julian F. Reschke, Caleb Richardson, Sam
Roberts, George Sexton, Simon Vaillancourt, Michiel van Leeuwen, 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.
11. References 11. References
11.1. Normative References 11.1. Normative References
[I-D.ietf-calsify-2446bis]
Daboo, C., "iCalendar Transport-Independent
Interoperability Protocol (iTIP)",
draft-ietf-calsify-2446bis-01 (work in progress),
March 2006.
[I-D.ietf-calsify-rfc2447bis]
Melnikov, A., "iCalendar Message-Based Interoperability
Protocol(iMIP)", draft-ietf-calsify-rfc2447bis-02 (work in
progress), June 2006.
[ISO.8601.1988] [ISO.8601.1988]
International Organization for Standardization, "Data International Organization for Standardization, "Data
elements and interchange formats - Information interchange elements and interchange formats - Information interchange
- Representation of dates and times", - Representation of dates and times",
<http://www.w3.org/TR/NOTE-datetime>. <http://www.w3.org/TR/NOTE-datetime>.
[ISO.9070.1991] [ISO.9070.1991]
International Organization for Standardization, International Organization for Standardization,
"Information Technology_SGML Support Facilities -- "Information Technology_SGML Support Facilities --
Registration Procedures for Public Text Owner Identifiers, Registration Procedures for Public Text Owner Identifiers,
Second Edition", April 1991, <http://www.ietf.org/ Second Edition", April 1991, <http://www.ietf.org/
proceedings/98dec/I-D/draft-ietf-calsch-icalfpi-00.txt>. proceedings/98dec/I-D/draft-ietf-calsch-icalfpi-00.txt>.
[RFC0822] Crocker, D., "Standard for the format of ARPA Internet
text messages", STD 11, RFC 822, August 1982.
[RFC1738] Berners-Lee, T., Masinter, L., and M. McCahill, "Uniform
Resource Locators (URL)", RFC 1738, December 1994.
[RFC1766] Alvestrand, H., "Tags for the Identification of
Languages", RFC 1766, March 1995.
[RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part One: Format of Internet Message Extensions (MIME) Part One: Format of Internet Message
Bodies", RFC 2045, November 1996. Bodies", RFC 2045, November 1996.
[RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part Two: Media Types", RFC 2046, Extensions (MIME) Part Two: Media Types", RFC 2046,
November 1996. November 1996.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax [RFC2368] Hoffman, P., Masinter, L., and J. Zawinski, "The mailto
Specifications: ABNF", RFC 2234, November 1997. URL scheme", RFC 2368, July 1998.
[RFC2279] Yergeau, F., "UTF-8, a transformation format of ISO [RFC2822] Resnick, P., "Internet Message Format", RFC 2822,
10646", RFC 2279, January 1998. April 2001.
[RFC3066] Alvestrand, H., "Tags for the Identification of
Languages", BCP 47, RFC 3066, January 2001.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, November 2003.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66,
RFC 3986, January 2005.
[RFC4234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", RFC 4234, October 2005.
11.2. Informative References
[I-D.dusseault-caldav]
Daboo, C., Desruisseaux, B., and L. Dusseault,
"Calendaring Extensions to WebDAV (CalDAV)",
draft-dusseault-caldav-15 (work in progress),
September 2006.
[I-D.ietf-calsify-2446bis]
Daboo, C., "iCalendar Transport-Independent
Interoperability Protocol (iTIP)",
draft-ietf-calsify-2446bis-02 (work in progress),
June 2006.
[I-D.ietf-calsify-rfc2447bis]
Melnikov, A., "iCalendar Message-Based Interoperability
Protocol(iMIP)", draft-ietf-calsify-rfc2447bis-02 (work in
progress), June 2006.
[RFC2425] Howes, T., Smith, M., and F. Dawson, "A MIME Content-Type [RFC2425] Howes, T., Smith, M., and F. Dawson, "A MIME Content-Type
for Directory Information", RFC 2425, September 1998. for Directory Information", RFC 2425, September 1998.
[RFC2426] Dawson, F. and T. Howes, "vCard MIME Directory Profile", [RFC2426] Dawson, F. and T. Howes, "vCard MIME Directory Profile",
RFC 2426, September 1998. RFC 2426, September 1998.
[TZDB] "Time zone code and data", October 2005, [TZDB] "Time zone code and data", October 2005,
<ftp://elsie.nci.nih.gov/pub/>. <ftp://elsie.nci.nih.gov/pub/>.
[VCAL] Internet Mail Consortium, "vCalendar: The Electronic [VCAL] Internet Mail Consortium, "vCalendar: The Electronic
Calendaring and Scheduling Exchange Format", Calendaring and Scheduling Exchange Format",
September 1996, <http://www.imc.org/pdi/vcal-10.txt>. September 1996, <http://www.imc.org/pdi/vcal-10.txt>.
11.2. Informative References
[I-D.dusseault-caldav]
Dusseault, L., "Calendaring Extensions to WebDAV
(CalDAV)", draft-dusseault-caldav-12 (work in progress),
April 2006.
URIs URIs
[1] <mailto:ietf-calsify@osafoundation.org> [1] <mailto:ietf-calsify@osafoundation.org>
Appendix A. Change Log (to be removed by RFC Editor before publication)
A.1. Changes in -02
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-02.html.
a. Numerous editorial changes including the typos listed in the
"RFC2445 Errata":
http://www.rfc-editor.org/cgi-bin/errataSearch.pl?rfc=2445&
and in the "RFC2445 Issues List":
http://www.softwarestudio.org/iCal/2445Issues.html.
b. Clarified line folding requirements.
c. Clarified charset requirements.
d. Clarified line limits requirements.
e. Clarified on the use of the LANGUAGE parameter.
f. Fixed the eventprop, todoprop and jourprop ABNF rules with
respect to required properties.
g. Fixed all the examples to use RFC2606-compliant FQDNs.
h. Fixed the Content-ID URLs in the examples.
i. Fixed the LDAP URLs in the examples.
j. Moved multiple references in the Informative References section.
k. Updated the Acknowledgments section.
A.2. Changes in -01
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-01.html.
a. Numerous editorial changes (typos, errors in examples, etc.).
b. Fixed invalid media types in examples.
c. Fixed the DTSTAMP values in the examples.
d. Moved media type registration in a separate IANA Consideration
section.
e. Added Internationalization Considerations section.
f. Added Security Considerations section.
g. Updated the Acknowledgments section.
Author's Address Author's Address
Bernard Desruisseaux (editor) Bernard Desruisseaux (editor)
Oracle Corporation Oracle Corporation
600 blvd. de Maisonneuve West 600 blvd. de Maisonneuve West
Suite 1900 Suite 1900
Montreal, QC H3A 3J2 Montreal, QC H3A 3J2
CA CA
Email: bernard.desruisseaux@oracle.com Email: bernard.desruisseaux@oracle.com
 End of changes. 224 change blocks. 
466 lines changed or deleted 576 lines changed or added

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