draft-ietf-calsify-rfc2445bis-05.txt   draft-ietf-calsify-rfc2445bis-06.txt 
Network Working Group B. Desruisseaux, Ed. Network Working Group B. Desruisseaux, Ed.
Internet-Draft Oracle Internet-Draft Oracle
Obsoletes: 2445 (if approved) January 29, 2007 Obsoletes: 2445 (if approved) March 2, 2007
Intended status: Standards Track Intended status: Standards Track
Expires: August 2, 2007 Expires: September 3, 2007
Internet Calendaring and Scheduling Core Object Specification Internet Calendaring and Scheduling Core Object Specification
(iCalendar) (iCalendar)
draft-ietf-calsify-rfc2445bis-05 draft-ietf-calsify-rfc2445bis-06
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
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
skipping to change at page 1, line 36 skipping to change at page 1, line 36
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on August 2, 2007. This Internet-Draft will expire on September 3, 2007.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2007). Copyright (C) The IETF Trust (2007).
Abstract Abstract
This document defines a MIME media type for representing and This document defines a MIME media type for representing and
exchanging calendaring and scheduling information such as events, to- exchanging calendaring and scheduling information such as events, to-
dos, journal entries and free/busy information. The definition of dos, journal entries and free/busy information. The definition of
the text/calendar media type, known as iCalendar, is independent of the text/calendar media type, known as iCalendar, is independent of
any particular calendar service or protocol. any particular calendar service or protocol.
Editorial Note (To be removed by RFC Editor before publication) Editorial Note (To be removed by RFC Editor prior to publication)
This document is a product of the Calendaring and Scheduling This document is a product of the Calendaring and Scheduling
Standards Simplification (Calsify) working group of the Internet Standards Simplification (Calsify) working group of the Internet
Engineering Task Force. Comments on this draft are welcomed, and Engineering Task Force. Comments on this draft are welcomed, and
should be addressed to the ietf-calsify@osafoundation.org [1] mailing should be addressed to the ietf-calsify@osafoundation.org [1] mailing
list. The issues raised on this mailing list are being tracked at list. The issues raised on this mailing list are being tracked at
the following web site: the following web site:
http://www.ofcourseimright.com/cgi-bin/roundup/calsify. http://www.ofcourseimright.com/cgi-bin/roundup/calsify.
Table of Contents Table of Contents
skipping to change at page 3, line 23 skipping to change at page 3, line 22
3.3.13. URI . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.3.13. URI . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.3.14. UTC Offset . . . . . . . . . . . . . . . . . . . . . 46 3.3.14. UTC Offset . . . . . . . . . . . . . . . . . . . . . 46
3.4. iCalendar Object . . . . . . . . . . . . . . . . . . . . 47 3.4. iCalendar Object . . . . . . . . . . . . . . . . . . . . 47
3.5. Property . . . . . . . . . . . . . . . . . . . . . . . . 47 3.5. Property . . . . . . . . . . . . . . . . . . . . . . . . 47
3.6. Calendar Components . . . . . . . . . . . . . . . . . . . 48 3.6. Calendar Components . . . . . . . . . . . . . . . . . . . 48
3.6.1. Event Component . . . . . . . . . . . . . . . . . . . 49 3.6.1. Event Component . . . . . . . . . . . . . . . . . . . 49
3.6.2. To-do Component . . . . . . . . . . . . . . . . . . . 52 3.6.2. To-do Component . . . . . . . . . . . . . . . . . . . 52
3.6.3. Journal Component . . . . . . . . . . . . . . . . . . 54 3.6.3. Journal Component . . . . . . . . . . . . . . . . . . 54
3.6.4. Free/Busy Component . . . . . . . . . . . . . . . . . 56 3.6.4. Free/Busy Component . . . . . . . . . . . . . . . . . 56
3.6.5. Time Zone Component . . . . . . . . . . . . . . . . . 59 3.6.5. Time Zone Component . . . . . . . . . . . . . . . . . 59
3.6.6. Alarm Component . . . . . . . . . . . . . . . . . . . 67 3.6.6. Alarm Component . . . . . . . . . . . . . . . . . . . 68
3.7. Calendar Properties . . . . . . . . . . . . . . . . . . . 73 3.7. Calendar Properties . . . . . . . . . . . . . . . . . . . 74
3.7.1. Calendar Scale . . . . . . . . . . . . . . . . . . . 73 3.7.1. Calendar Scale . . . . . . . . . . . . . . . . . . . 74
3.7.2. Method . . . . . . . . . . . . . . . . . . . . . . . 74 3.7.2. Method . . . . . . . . . . . . . . . . . . . . . . . 74
3.7.3. Product Identifier . . . . . . . . . . . . . . . . . 75 3.7.3. Product Identifier . . . . . . . . . . . . . . . . . 75
3.7.4. Version . . . . . . . . . . . . . . . . . . . . . . . 76 3.7.4. Version . . . . . . . . . . . . . . . . . . . . . . . 76
3.8. Component Properties . . . . . . . . . . . . . . . . . . 77 3.8. Component Properties . . . . . . . . . . . . . . . . . . 77
3.8.1. Descriptive Component Properties . . . . . . . . . . 77 3.8.1. Descriptive Component Properties . . . . . . . . . . 77
3.8.1.1. Attachment . . . . . . . . . . . . . . . . . . . 77 3.8.1.1. Attachment . . . . . . . . . . . . . . . . . . . 77
3.8.1.2. Categories . . . . . . . . . . . . . . . . . . . 78 3.8.1.2. Categories . . . . . . . . . . . . . . . . . . . 79
3.8.1.3. Classification . . . . . . . . . . . . . . . . . 79 3.8.1.3. Classification . . . . . . . . . . . . . . . . . 80
3.8.1.4. Comment . . . . . . . . . . . . . . . . . . . . . 80 3.8.1.4. Comment . . . . . . . . . . . . . . . . . . . . . 81
3.8.1.5. Description . . . . . . . . . . . . . . . . . . . 81 3.8.1.5. Description . . . . . . . . . . . . . . . . . . . 82
3.8.1.6. Geographic Position . . . . . . . . . . . . . . . 82 3.8.1.6. Geographic Position . . . . . . . . . . . . . . . 83
3.8.1.7. Location . . . . . . . . . . . . . . . . . . . . 84 3.8.1.7. Location . . . . . . . . . . . . . . . . . . . . 84
3.8.1.8. Percent Complete . . . . . . . . . . . . . . . . 85 3.8.1.8. Percent Complete . . . . . . . . . . . . . . . . 86
3.8.1.9. Priority . . . . . . . . . . . . . . . . . . . . 86 3.8.1.9. Priority . . . . . . . . . . . . . . . . . . . . 86
3.8.1.10. Resources . . . . . . . . . . . . . . . . . . . . 88 3.8.1.10. Resources . . . . . . . . . . . . . . . . . . . . 88
3.8.1.11. Status . . . . . . . . . . . . . . . . . . . . . 89 3.8.1.11. Status . . . . . . . . . . . . . . . . . . . . . 89
3.8.1.12. Summary . . . . . . . . . . . . . . . . . . . . . 90 3.8.1.12. Summary . . . . . . . . . . . . . . . . . . . . . 91
3.8.2. Date and Time Component Properties . . . . . . . . . 91 3.8.2. Date and Time Component Properties . . . . . . . . . 92
3.8.2.1. Date/Time Completed . . . . . . . . . . . . . . . 91 3.8.2.1. Date/Time Completed . . . . . . . . . . . . . . . 92
3.8.2.2. Date/Time End . . . . . . . . . . . . . . . . . . 92 3.8.2.2. Date/Time End . . . . . . . . . . . . . . . . . . 92
3.8.2.3. Date/Time Due . . . . . . . . . . . . . . . . . . 93 3.8.2.3. Date/Time Due . . . . . . . . . . . . . . . . . . 93
3.8.2.4. Date/Time Start . . . . . . . . . . . . . . . . . 94 3.8.2.4. Date/Time Start . . . . . . . . . . . . . . . . . 95
3.8.2.5. Duration . . . . . . . . . . . . . . . . . . . . 95 3.8.2.5. Duration . . . . . . . . . . . . . . . . . . . . 96
3.8.2.6. Free/Busy Time . . . . . . . . . . . . . . . . . 96 3.8.2.6. Free/Busy Time . . . . . . . . . . . . . . . . . 97
3.8.2.7. Time Transparency . . . . . . . . . . . . . . . . 98 3.8.2.7. Time Transparency . . . . . . . . . . . . . . . . 98
3.8.3. Time Zone Component Properties . . . . . . . . . . . 99 3.8.3. Time Zone Component Properties . . . . . . . . . . . 99
3.8.3.1. Time Zone Identifier . . . . . . . . . . . . . . 99 3.8.3.1. Time Zone Identifier . . . . . . . . . . . . . . 99
3.8.3.2. Time Zone Name . . . . . . . . . . . . . . . . . 100 3.8.3.2. Time Zone Name . . . . . . . . . . . . . . . . . 101
3.8.3.3. Time Zone Offset From . . . . . . . . . . . . . . 101 3.8.3.3. Time Zone Offset From . . . . . . . . . . . . . . 102
3.8.3.4. Time Zone Offset To . . . . . . . . . . . . . . . 102 3.8.3.4. Time Zone Offset To . . . . . . . . . . . . . . . 102
3.8.3.5. Time Zone URL . . . . . . . . . . . . . . . . . . 103 3.8.3.5. Time Zone URL . . . . . . . . . . . . . . . . . . 103
3.8.4. Relationship Component Properties . . . . . . . . . . 103 3.8.4. Relationship Component Properties . . . . . . . . . . 104
3.8.4.1. Attendee . . . . . . . . . . . . . . . . . . . . 104 3.8.4.1. Attendee . . . . . . . . . . . . . . . . . . . . 104
3.8.4.2. Contact . . . . . . . . . . . . . . . . . . . . . 106 3.8.4.2. Contact . . . . . . . . . . . . . . . . . . . . . 107
3.8.4.3. Organizer . . . . . . . . . . . . . . . . . . . . 108 3.8.4.3. Organizer . . . . . . . . . . . . . . . . . . . . 108
3.8.4.4. Recurrence ID . . . . . . . . . . . . . . . . . . 109 3.8.4.4. Recurrence ID . . . . . . . . . . . . . . . . . . 110
3.8.4.5. Related To . . . . . . . . . . . . . . . . . . . 111 3.8.4.5. Related To . . . . . . . . . . . . . . . . . . . 112
3.8.4.6. Uniform Resource Locator . . . . . . . . . . . . 113 3.8.4.6. Uniform Resource Locator . . . . . . . . . . . . 114
3.8.4.7. Unique Identifier . . . . . . . . . . . . . . . . 113 3.8.4.7. Unique Identifier . . . . . . . . . . . . . . . . 114
3.8.5. Recurrence Component Properties . . . . . . . . . . . 115 3.8.5. Recurrence Component Properties . . . . . . . . . . . 116
3.8.5.1. Exception Date/Times . . . . . . . . . . . . . . 115 3.8.5.1. Exception Date/Times . . . . . . . . . . . . . . 116
3.8.5.2. Recurrence Date/Times . . . . . . . . . . . . . . 117 3.8.5.2. Recurrence Date/Times . . . . . . . . . . . . . . 118
3.8.5.3. Recurrence Rule . . . . . . . . . . . . . . . . . 118 3.8.5.3. Recurrence Rule . . . . . . . . . . . . . . . . . 119
3.8.6. Alarm Component Properties . . . . . . . . . . . . . 128 3.8.6. Alarm Component Properties . . . . . . . . . . . . . 130
3.8.6.1. Action . . . . . . . . . . . . . . . . . . . . . 128 3.8.6.1. Action . . . . . . . . . . . . . . . . . . . . . 130
3.8.6.2. Repeat Count . . . . . . . . . . . . . . . . . . 129 3.8.6.2. Repeat Count . . . . . . . . . . . . . . . . . . 130
3.8.6.3. Trigger . . . . . . . . . . . . . . . . . . . . . 130 3.8.6.3. Trigger . . . . . . . . . . . . . . . . . . . . . 131
3.8.7. Change Management Component Properties . . . . . . . 132 3.8.7. Change Management Component Properties . . . . . . . 134
3.8.7.1. Date/Time Created . . . . . . . . . . . . . . . . 133 3.8.7.1. Date/Time Created . . . . . . . . . . . . . . . . 134
3.8.7.2. Date/Time Stamp . . . . . . . . . . . . . . . . . 133 3.8.7.2. Date/Time Stamp . . . . . . . . . . . . . . . . . 134
3.8.7.3. Last Modified . . . . . . . . . . . . . . . . . . 134 3.8.7.3. Last Modified . . . . . . . . . . . . . . . . . . 135
3.8.7.4. Sequence Number . . . . . . . . . . . . . . . . . 135 3.8.7.4. Sequence Number . . . . . . . . . . . . . . . . . 136
3.8.8. Miscellaneous Component Properties . . . . . . . . . 137 3.8.8. Miscellaneous Component Properties . . . . . . . . . 138
3.8.8.1. Non-standard Properties . . . . . . . . . . . . . 137 3.8.8.1. IANA Properties . . . . . . . . . . . . . . . . . 138
3.8.8.2. Request Status . . . . . . . . . . . . . . . . . 138 3.8.8.2. Non-standard Properties . . . . . . . . . . . . . 138
4. iCalendar Object Examples . . . . . . . . . . . . . . . . . . 141 3.8.8.3. Request Status . . . . . . . . . . . . . . . . . 139
5. Recommended Practices . . . . . . . . . . . . . . . . . . . . 145 4. iCalendar Object Examples . . . . . . . . . . . . . . . . . . 143
6. Registration of Content Type Elements . . . . . . . . . . . . 146 5. Recommended Practices . . . . . . . . . . . . . . . . . . . . 147
6. Registration of Content Type Elements . . . . . . . . . . . . 148
6.1. Registration of New and Modified iCalendar Object 6.1. Registration of New and Modified iCalendar Object
Methods . . . . . . . . . . . . . . . . . . . . . . . . . 146 Methods . . . . . . . . . . . . . . . . . . . . . . . . . 148
6.2. Registration of New Properties . . . . . . . . . . . . . 147 6.2. Registration of New Properties . . . . . . . . . . . . . 148
6.2.1. Define the property . . . . . . . . . . . . . . . . . 147 6.2.1. Define the property . . . . . . . . . . . . . . . . . 149
6.2.2. Post the Property definition . . . . . . . . . . . . 148 6.2.2. Post the Property definition . . . . . . . . . . . . 150
6.2.3. Allow a comment period . . . . . . . . . . . . . . . 148 6.2.3. Allow a comment period . . . . . . . . . . . . . . . 150
6.2.4. Submit the property for approval . . . . . . . . . . 148 6.2.4. Submit the property for approval . . . . . . . . . . 150
6.3. Property Change Control . . . . . . . . . . . . . . . . . 149 6.3. Property Change Control . . . . . . . . . . . . . . . . . 151
7. Internationalization Considerations . . . . . . . . . . . . . 149 7. Internationalization Considerations . . . . . . . . . . . . . 151
8. Security Considerations . . . . . . . . . . . . . . . . . . . 149 8. Security Considerations . . . . . . . . . . . . . . . . . . . 151
9. IANA Consideration . . . . . . . . . . . . . . . . . . . . . 150 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 152
9.1. Media Type Registration Information . . . . . . . . . . . 150 9.1. Components Registry . . . . . . . . . . . . . . . . . . . 152
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 153 9.2. Properties Registry . . . . . . . . . . . . . . . . . . . 153
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 154 9.3. Property Parameters Registry . . . . . . . . . . . . . . 154
11.1. Normative References . . . . . . . . . . . . . . . . . . 154 9.4. Value Data Type Values Registry . . . . . . . . . . . . . 155
11.2. Informative References . . . . . . . . . . . . . . . . . 155 9.5. Calendar User Type Values Registry . . . . . . . . . . . 156
Appendix A. Differences from RFC 2445 . . . . . . . . . . . . . 156 9.6. Free/Busy Time Type Values Registry . . . . . . . . . . . 156
A.1. New restrictions . . . . . . . . . . . . . . . . . . . . 156 9.7. Participation Status Values Registry . . . . . . . . . . 157
A.2. Deprecated features . . . . . . . . . . . . . . . . . . . 156 9.8. Relationship Type Values Registry . . . . . . . . . . . . 157
Appendix B. Change Log (to be removed by RFC Editor before 9.9. Participation Role Values Registry . . . . . . . . . . . 158
publication) . . . . . . . . . . . . . . . . . . . . 156 9.10. Action Values Registry . . . . . . . . . . . . . . . . . 158
B.1. Changes in -05 . . . . . . . . . . . . . . . . . . . . . 156 9.11. Method Values Registry . . . . . . . . . . . . . . . . . 158
B.2. Changes in -04 . . . . . . . . . . . . . . . . . . . . . 157 9.12. Media Type Registration Information . . . . . . . . . . . 158
B.3. Changes in -03 . . . . . . . . . . . . . . . . . . . . . 158 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 161
B.4. Changes in -02 . . . . . . . . . . . . . . . . . . . . . 159 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 162
B.5. Changes in -01 . . . . . . . . . . . . . . . . . . . . . 159 11.1. Normative References . . . . . . . . . . . . . . . . . . 162
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 160 11.2. Informative References . . . . . . . . . . . . . . . . . 163
Intellectual Property and Copyright Statements . . . . . . . . . 161 Appendix A. Differences from RFC 2445 . . . . . . . . . . . . . 164
A.1. New restrictions . . . . . . . . . . . . . . . . . . . . 164
A.2. Deprecated features . . . . . . . . . . . . . . . . . . . 165
Appendix B. Change Log (to be removed by RFC Editor prior to
publication) . . . . . . . . . . . . . . . . . . . . 165
B.1. Changes in -06 . . . . . . . . . . . . . . . . . . . . . 165
B.2. Changes in -05 . . . . . . . . . . . . . . . . . . . . . 166
B.3. Changes in -04 . . . . . . . . . . . . . . . . . . . . . 167
B.4. Changes in -03 . . . . . . . . . . . . . . . . . . . . . 169
B.5. Changes in -02 . . . . . . . . . . . . . . . . . . . . . 169
B.6. Changes in -01 . . . . . . . . . . . . . . . . . . . . . 170
Appendix C. Open issues (to be removed by RFC Editor prior to
publication) . . . . . . . . . . . . . . . . . . . . 170
C.1. update_intro . . . . . . . . . . . . . . . . . . . . . . 170
C.2. update_vtimezone_examples . . . . . . . . . . . . . . . . 170
C.3. #issue10+end_date_not_inclusive . . . . . . . . . . . . . 171
C.4. #issue61+ianaparam . . . . . . . . . . . . . . . . . . . 171
C.5. #issue11+4.3.10_byxxx_rule_part_examples . . . . . . . . 171
C.6. #issue75+4.6.5_rdate_format_in_vtimezone . . . . . . . . 171
C.7. #issue79+4.6.5_dtstart_and_rdate_in_vtimezone . . . . . . 172
C.8. 4.8.1.1_attach_description_incomplete . . . . . . . . . . 172
C.9. 4.8.1.4_comment_description_incomplete . . . . . . . . . 172
C.10. 4.8.2.1_completed_description_incomplete . . . . . . . . 172
C.11. #issue76+4.8.2.2_dtend_dtstart_value_type . . . . . . . . 172
C.12. #issue77+4.8.2.3_due_dtstart_value_type . . . . . . . . . 173
C.13. 4.8.2.3_due_description_incomplete . . . . . . . . . . . 173
C.14. #issue63+4.8.5.3_rdate_and_dtstart . . . . . . . . . . . 173
C.15. 4.8.6.2_repeat_description_incomplete . . . . . . . . . . 173
C.16. 4.8.7.1_created_description_incomplete . . . . . . . . . 174
C.17. 4.8.7.2_dtstamp_description_incomplete . . . . . . . . . 174
C.18. #issue65+6_recommended_practices_tzid . . . . . . . . . . 174
C.19. add_i18n_section . . . . . . . . . . . . . . . . . . . . 174
C.20. #issue19+iana_considerations . . . . . . . . . . . . . . 174
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 10, line 51 skipping to change at page 10, line 51
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
QSAFE-CHAR = WSP / %x21 / %x23-7E / NON-US-ASCII QSAFE-CHAR = WSP / %x21 / %x23-7E / NON-US-ASCII
; Any character except CONTROL, DQUOTE, ";", ":", "," ; Any character except CONTROL 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 CONTROL, DQUOTE, ";", ":", "," ; Any character except CONTROL, 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 = UTF8-2 / UTF8-3 / UTF8-4 NON-US-ASCII = UTF8-2 / UTF8-3 / UTF8-4
; UTF8-2, UTF8-3, and UTF8-4 are defined in [RFC3629] ; UTF8-2, UTF8-3, and UTF8-4 are defined in [RFC3629]
skipping to change at page 12, line 31 skipping to change at page 12, line 31
3.1.3. Binary Content 3.1.3. Binary Content
Binary content information in an iCalendar object SHOULD be Binary content information in an iCalendar object SHOULD be
referenced using a URI within a property value. That is the binary referenced using a URI within a property value. That is the binary
content information SHOULD be placed in an external MIME entity that content information SHOULD be placed in an external MIME entity that
can be referenced by a URI from within the iCalendar object. In can be referenced by a URI from within the iCalendar object. In
applications where this is not feasible, binary content information applications where this is not feasible, binary content information
can be included within an iCalendar object, but only after first can be included within an iCalendar object, but only after first
encoding it into text using the "BASE64" encoding method defined in encoding it into text using the "BASE64" encoding method defined in
[RFC4648]. Inline binary contact SHOULD only be used in applications [RFC4648]. Inline binary content SHOULD only be used in applications
whose special circumstances demand that an iCalendar object be whose special circumstances demand that an iCalendar object be
expressed as a single entity. A property containing inline binary expressed as a single entity. A property containing inline binary
content information MUST specify the "ENCODING" property parameter. content information MUST specify the "ENCODING" property parameter.
Binary content information placed external to the iCalendar object Binary content information placed external to the iCalendar object
MUST be referenced by a uniform resource identifier (URI). MUST be referenced by a uniform resource identifier (URI).
The following example specifies an "ATTACH" property that references The following example specifies an "ATTACH" property that references
an attachment external to the iCalendar object with a URI reference: an attachment external to the iCalendar object with a URI reference:
ATTACH:http://example.com/public/quarterly-report.doc ATTACH:http://example.com/public/quarterly-report.doc
skipping to change at page 14, line 5 skipping to change at page 14, line 5
DESCRIPTION;ALTREP="http://www.example.org":The Fall'98 Wild DESCRIPTION;ALTREP="http://www.example.org":The Fall'98 Wild
Wizards 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 icalparameter = altrepparam ; Alternate text representation
/ cnparam ; Common name / cnparam ; Common name
/ cutypeparam ; Calendar user type / cutypeparam ; Calendar user type
/ delfromparam ; Delegator / delfromparam ; Delegator
/ deltoparam ; Delegatee / deltoparam ; Delegatee
/ dirparam ; Directory entry / dirparam ; Directory entry
/ encodingparam ; Inline encoding / encodingparam ; Inline encoding
/ fmttypeparam ; Format type / fmttypeparam ; Format type
/ fbtypeparam ; Free/busy time type / fbtypeparam ; Free/busy time type
/ languageparam ; Language for text / languageparam ; Language for text
/ memberparam ; Group or list membership / memberparam ; Group or list membership
/ partstatparam ; Participation status / partstatparam ; Participation status
/ trigrelparam ; Alarm trigger relationship / trigrelparam ; Alarm trigger relationship
/ reltypeparam ; Relationship type / reltypeparam ; Relationship type
/ roleparam ; Participation role / roleparam ; Participation role
/ rsvpparam ; RSVP expectation / rsvpparam ; RSVP expectation
/ sentbyparam ; Sent by / sentbyparam ; Sent by
/ tzidparam ; Reference to time zone object / tzidparam ; Reference to time zone object
/ valuetypeparam ; Property value data type / valuetypeparam ; Property value data type
/ ianaparam / other-param
; Some other IANA registered iCalendar parameter.
/ xparam
; A non-standard, experimental parameter.
ianaparam = iana-token "=" param-value *("," param-value) other-param = (iana-param / x-param)
xparam = x-name "=" param-value *("," param-value) iana-param = iana-token "=" param-value *("," param-value)
; Some other IANA registered iCalendar parameter.
x-param = x-name "=" param-value *("," param-value)
; A non-standard, experimental parameter.
3.2.1. Alternate Text Representation 3.2.1. Alternate Text Representation
Parameter Name: ALTREP Parameter Name: ALTREP
Purpose: To specify an alternate text representation for the Purpose: To specify an alternate text representation for the
property value. property value.
Format Definition: This property parameter is defined by the Format Definition: This property parameter is defined by the
following notation: following notation:
skipping to change at page 18, line 36 skipping to change at page 18, line 36
value. value.
Format Definition: This property parameter is defined by the Format Definition: This property parameter is defined by the
following notation: following notation:
encodingparam = "ENCODING" "=" encodingparam = "ENCODING" "="
("8BIT" ("8BIT"
; "8bit" text encoding is defined in [RFC2045] ; "8bit" text encoding is defined in [RFC2045]
/ "BASE64" / "BASE64"
; "BASE64" binary encoding format is defined in [RFC4648] ; "BASE64" binary encoding format is defined in [RFC4648]
/ iana-token )
; Some other IANA registered iCalendar encoding type
/ x-name)
; A non-standard, experimental encoding type
Description: This property parameter identifies the inline encoding Description: This property parameter identifies the inline encoding
used in a property value. The default encoding is "8BIT", used in a property value. The default encoding is "8BIT",
corresponding to a property value consisting of text. The corresponding to a property value consisting of text. The
"BASE64" encoding type corresponds to a property value encoded "BASE64" encoding type corresponds to a property value encoded
using the "BASE64" encoding defined in [RFC2045]. using the "BASE64" encoding defined in [RFC2045].
If the value type parameter is ";VALUE=BINARY", then the inline If the value type parameter is ";VALUE=BINARY", then the inline
encoding parameter MUST be specified with the value encoding parameter MUST be specified with the value
";ENCODING=BASE64". ";ENCODING=BASE64".
skipping to change at page 19, line 21 skipping to change at page 19, line 15
3.2.8. Format Type 3.2.8. Format Type
Parameter Name: FMTTYPE Parameter Name: FMTTYPE
Purpose: To specify the content type of a referenced object. Purpose: To specify the content type of a referenced object.
Format Definition: This property parameter is defined by the Format Definition: This property parameter is defined by the
following notation: following notation:
fmttypeparam = "FMTTYPE" "=" iana-token fmttypeparam = "FMTTYPE" "=" type "/" subtype *(";" parameter)
; A IANA registered media type ; Where "type", "subtype", and "parameter"
/ x-name ; are defined in section 5.1 of [RFC2045]
; A non-standard media type
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
media type or a non-standard media type. media type or a non-standard media type.
Example: Example:
skipping to change at page 20, line 38 skipping to change at page 20, line 37
Format Definition: This property parameter is defined by the Format Definition: This property parameter is defined by the
following notation: following notation:
languageparam = "LANGUAGE" "=" language languageparam = "LANGUAGE" "=" language
language = Language-Tag language = Language-Tag
; As defined in [RFC4646] ; As defined in [RFC4646]
Description: This parameter identifies the language of the text in Description: This parameter identifies the language of the text in
the property or property parameter value. The value of the the property value and of all property parameter values of the
"language" property parameter is that defined in [RFC4646] . property. The value of the "LANGUAGE" property parameter is that
defined in [RFC4646].
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: The following are examples of this parameter on the SUMMARY Example: The following are examples of this parameter on the
and LOCATION properties: "SUMMARY" and "LOCATION" properties:
SUMMARY;LANGUAGE=us-EN:Company Holiday Party SUMMARY;LANGUAGE=us-EN:Company Holiday Party
LOCATION;LANGUAGE=en:Germany LOCATION;LANGUAGE=en:Germany
LOCATION;LANGUAGE=no:Tyskland LOCATION;LANGUAGE=no:Tyskland
3.2.11. Group or List Membership 3.2.11. Group or List Membership
Parameter Name: MEMBER Parameter Name: MEMBER
Purpose: To specify the group or list membership of the calendar Purpose: To specify the group or list membership of the calendar
user specified by the property. user specified by the property.
Format Definition: This property parameter is defined by the Format Definition: This property parameter is defined by the
skipping to change at page 27, line 8 skipping to change at page 27, line 8
value if the DATE-TIME is not either a UTC or a "floating" time. value if the DATE-TIME is not either a UTC or a "floating" time.
The presence of the SOLIDUS character (US-ASCII decimal 47) as a The presence of the SOLIDUS character (US-ASCII decimal 47) as a
prefix, indicates that this "TZID" represents a unique ID in a prefix, indicates that this "TZID" represents a unique ID in a
globally defined time zone registry (when such registry is globally defined time zone registry (when such registry is
defined). defined).
Note: This document does not define a naming convention for Note: This document does not define a naming convention for
time zone identifiers. Implementers may want to use the naming time zone identifiers. Implementers may want to use the naming
conventions defined in existing time zone specifications such conventions defined in existing time zone specifications such
as the public-domain TZ Database [TZDB]. The specification of as the public-domain TZ database [TZDB]. The specification of
globally unique time zone identifiers is not addressed by this globally unique time zone identifiers is not addressed by this
document and is left for future study. document and is left for future study.
The following are examples of this property parameter: The following are examples of this property parameter:
DTSTART;TZID=US-Eastern:19980119T020000 DTSTART;TZID=America/New_York:19980119T020000
DTEND;TZID=US-Eastern:19980119T030000 DTEND;TZID=America/New_York:19980119T030000
The "TZID" property parameter MUST NOT be applied to DATE-TIME or The "TZID" property parameter MUST NOT be applied to DATE-TIME or
TIME properties whose time values are specified in UTC. TIME properties whose time values are specified in UTC.
The use of local time in a DATE-TIME or TIME value without the The use of local time in a DATE-TIME or TIME value without the
"TZID" property parameter is to be interpreted as a local time "TZID" property parameter is to be interpreted as a local time
value, regardless of the existence of "VTIMEZONE" calendar value, regardless of the existence of "VTIMEZONE" calendar
components in the iCalendar object. components in the iCalendar object.
For more information see the sections on the value types DATE-TIME For more information see the sections on the value types DATE-TIME
skipping to change at page 33, line 4 skipping to change at page 32, line 46
the iCalendar object. the iCalendar object.
FORM #2: DATE WITH UTC TIME FORM #2: DATE WITH UTC TIME
The date with UTC time, or absolute time, is identified by a LATIN The date with UTC time, or absolute time, is identified by a LATIN
CAPITAL LETTER Z suffix character (US-ASCII decimal 90), the UTC CAPITAL LETTER Z suffix character (US-ASCII decimal 90), the UTC
designator, appended to the time value. For example, the designator, appended to the time value. For example, the
following represents January 19, 1998, at 0700 UTC: following represents January 19, 1998, at 0700 UTC:
19980119T070000Z 19980119T070000Z
The "TZID" property parameter MUST NOT be applied to DATE-TIME The "TZID" property parameter MUST NOT be applied to DATE-TIME
properties whose time values are specified in UTC. properties whose time values are specified in UTC.
FORM #3: DATE WITH LOCAL TIME AND TIME ZONE REFERENCE FORM #3: DATE WITH LOCAL TIME AND TIME ZONE REFERENCE
The date and local time with reference to time zone information is The date and local time with reference to time zone information is
identified by the use the "TZID" property parameter to reference identified by the use the "TZID" property parameter to reference
the appropriate time zone definition. "TZID" is discussed in the appropriate time zone definition. "TZID" is discussed in
detail in Section 3.2.18. For example, the following represents 2 detail in Section 3.2.18. For example, the following represents
AM in New York on Janurary 19, 1998: 2:00 A.M. in New York on Janurary 19, 1998:
TZID=US-Eastern:19980119T020000 TZID=America/New_York: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=America/New_York:19970714T133000
; Local time and time
; zone reference ; zone reference
A time value MUST ONLY specify 60 seconds when specifying the A time value MUST only specify the second 60 when specifying a
periodic "leap second" in the time value. For example: positive "leap second" . For example:
19970630T235960Z 19970630T235960Z
3.3.6. Duration 3.3.6. Duration
Value Name: DURATION Value Name: DURATION
Purpose: This value type is used to identify properties that contain Purpose: This value type is used to identify properties that contain
a duration of time. a duration of time.
skipping to change at page 37, line 31 skipping to change at page 37, line 31
/ ( "BYWEEKNO" "=" bywknolist ) / ( "BYWEEKNO" "=" bywknolist )
/ ( "BYMONTH" "=" bymolist ) / ( "BYMONTH" "=" bymolist )
/ ( "BYSETPOS" "=" bysplist ) / ( "BYSETPOS" "=" bysplist )
/ ( "WKST" "=" weekday ) / ( "WKST" "=" weekday )
freq = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY" freq = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY"
/ "WEEKLY" / "MONTHLY" / "YEARLY" / "WEEKLY" / "MONTHLY" / "YEARLY"
enddate = date / date-time ;A UTC value enddate = date / date-time ;A UTC value
byseclist = seconds / ( seconds *("," seconds) ) byseclist = ( seconds *("," seconds) )
seconds = DIGIT / 2DIGIT ;0 to 60 seconds = 1*2DIGIT ;0 to 60
byminlist = minutes / ( minutes *("," minutes) ) byminlist = ( minutes *("," minutes) )
minutes = DIGIT / 2DIGIT ;0 to 59 minutes = 1*2DIGIT ;0 to 59
byhrlist = hour / ( hour *("," hour) ) byhrlist = ( hour *("," hour) )
hour = DIGIT / 2DIGIT ;0 to 23 hour = 1*2DIGIT ;0 to 23
bywdaylist = weekdaynum / ( weekdaynum *("," weekdaynum) ) bywdaylist = ( weekdaynum *("," weekdaynum) )
weekdaynum = [([plus] ordwk / minus ordwk)] weekday weekdaynum = [[plus / minus] ordwk] weekday
plus = "+" plus = "+"
minus = "-" minus = "-"
ordwk = DIGIT / 2DIGIT ;1 to 53 ordwk = 1*2DIGIT ;1 to 53
weekday = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA" weekday = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA"
;Corresponding to SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, ;Corresponding to SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY,
;FRIDAY, and SATURDAY days of the week. ;FRIDAY, and SATURDAY days of the week.
bymodaylist = monthdaynum / ( monthdaynum *("," monthdaynum) ) bymodaylist = ( monthdaynum *("," monthdaynum) )
monthdaynum = ([plus] ordmoday) / (minus ordmoday) monthdaynum = [plus / minus] ordmoday
ordmoday = DIGIT / 2DIGIT ;1 to 31 ordmoday = 1*2DIGIT ;1 to 31
byyrdaylist = yeardaynum / ( yeardaynum *("," yeardaynum) ) byyrdaylist = ( yeardaynum *("," yeardaynum) )
yeardaynum = ([plus] ordyrday) / (minus ordyrday) yeardaynum = [plus / minus] ordyrday
ordyrday = DIGIT / 2DIGIT / 3DIGIT ;1 to 366 ordyrday = 1*3DIGIT ;1 to 366
bywknolist = weeknum / ( weeknum *("," weeknum) ) bywknolist = ( weeknum *("," weeknum) )
weeknum = ([plus] ordwk) / (minus ordwk) weeknum = [plus / minus] ordwk
bymolist = monthnum / ( monthnum *("," monthnum) ) bymolist = ( monthnum *("," monthnum) )
monthnum = DIGIT / 2DIGIT ;1 to 12 monthnum = 1*2DIGIT ;1 to 12
bysplist = setposday / ( setposday *("," setposday) ) bysplist = ( setposday *("," setposday) )
setposday = yeardaynum setposday = yeardaynum
Description: This value type is a structured value consisting of a Description: This value type is a structured value consisting of a
list of one or more recurrence grammar parts. Each rule part is list of one or more recurrence grammar parts. Each rule part is
defined by a NAME=VALUE pair. The rule parts are separated from defined by a NAME=VALUE pair. The rule parts are separated from
each other by the SEMICOLON character (US-ASCII decimal 59). The each other by the SEMICOLON character (US-ASCII decimal 59). The
rule parts are not ordered in any particular sequence. Individual rule parts are not ordered in any particular sequence. Individual
rule parts MUST only be specified once. rule parts MUST only be specified once.
Note: Compliant applications MUST accept rule parts ordered in
any sequence, but to ensure backward compatibility with
applications that pre-date this revision of iCalendar the FREQ
rule part MUST be the first rule part specified in a RECUR
value.
The FREQ rule part identifies the type of recurrence rule. This The FREQ rule part identifies the type of recurrence rule. This
rule part MUST be specified in the recurrence rule. Valid values rule part MUST be specified in the recurrence rule. Valid values
include SECONDLY, to specify repeating events based on an interval include SECONDLY, to specify repeating events based on an interval
of a second or more; MINUTELY, to specify repeating events based of a second or more; MINUTELY, to specify repeating events based
on an interval of a minute or more; HOURLY, to specify repeating on an interval of a minute or more; HOURLY, to specify repeating
events based on an interval of an hour or more; DAILY, to specify events based on an interval of an hour or more; DAILY, to specify
repeating events based on an interval of a day or more; WEEKLY, to repeating events based on an interval of a day or more; WEEKLY, to
specify repeating events based on an interval of a week or more; specify repeating events based on an interval of a week or more;
MONTHLY, to specify repeating events based on an interval of a MONTHLY, to specify repeating events based on an interval of a
month or more; and YEARLY, to specify repeating events based on an month or more; and YEARLY, to specify repeating events based on an
interval of a year or more. interval of a year or more.
The INTERVAL rule part contains a positive integer representing The INTERVAL rule part contains a positive integer representing
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 or DATE-TIME value which bounds
recurrence rule in an inclusive manner. If the value specified by the recurrence rule in an inclusive manner. If the value
UNTIL is synchronized with the specified recurrence, this date or specified by UNTIL is synchronized with the specified recurrence,
date-time becomes the last instance of the recurrence. If this DATE or DATE-TIME becomes the last instance of the
specified as a date-time value, then it MUST be specified in a UTC recurrence. The value of the UNTIL rule part MUST have the same
time format. If not present, and the COUNT rule part is also not value type as the "DTSTART" property. If specified as a DATE-TIME
present, the "RRULE" is considered to repeat forever. value, then it MUST be specified in a UTC time format. If not
present, and the COUNT rule part is also not present, the "RRULE"
is considered to repeat forever.
The COUNT rule part defines the number of occurrences at which to The COUNT rule part defines the number of occurrences at which to
range-bound the recurrence. The "DTSTART" property value always range-bound the recurrence. The "DTSTART" property value always
counts as the first occurrence. counts as the first occurrence.
The BYSECOND rule part specifies a COMMA character (US-ASCII The BYSECOND rule part specifies a COMMA character (US-ASCII
decimal 44) separated list of seconds within a minute. Valid decimal 44) separated list of seconds within a minute. Valid
values are 0 to 60. The BYMINUTE rule part specifies a COMMA values are 0 to 60. 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 41, line 41 skipping to change at page 41, line 47
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.
DTSTART;TZID=US-Eastern:19970105T083000 DTSTART;TZID=America/New_York:19970105T083000
RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9; RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;
BYMINUTE=30 BYMINUTE=30
First, the "INTERVAL=2" would be applied to "FREQ=YEARLY" to First, the "INTERVAL=2" would be applied to "FREQ=YEARLY" to
arrive at "every other year". Then, "BYMONTH=1" would be applied arrive at "every other year". Then, "BYMONTH=1" would be applied
to arrive at "every January, every other year". Then, "BYDAY=SU" to arrive at "every January, every other year". Then, "BYDAY=SU"
would be applied to arrive at "every Sunday in January, every would be applied to arrive at "every Sunday in January, every
other year". Then, "BYHOUR=8,9" would be applied to arrive at other year". Then, "BYHOUR=8,9" would be applied to arrive at
"every Sunday in January at 8 AM and 9 AM, every other year". "every Sunday in January at 8 AM and 9 AM, every other year".
Then, "BYMINUTE=30" would be applied to arrive at "every Sunday in Then, "BYMINUTE=30" would be applied to arrive at "every Sunday in
skipping to change at page 45, line 39 skipping to change at page 45, line 43
identified by the use the "TZID" property parameter to reference identified by the use the "TZID" property parameter to reference
the appropriate time zone definition. "TZID" is discussed in the appropriate time zone definition. "TZID" is discussed in
detail in Section 3.2.18 . detail in Section 3.2.18 .
Example: The following represents 8:30 AM in New York in Winter, Example: The following represents 8:30 AM in New York in Winter,
five hours behind UTC, in each of the three formats : five hours behind UTC, in each of the three formats :
083000 083000
133000Z 133000Z
TZID=US-Eastern:083000 TZID=America/New_York:083000
3.3.13. URI 3.3.13. URI
Value Name: URI Value Name: URI
Purpose: This value type is used to identify values that contain a Purpose: This value type is used to identify values that contain a
uniform resource identifier (URI) type of reference to the uniform resource identifier (URI) type of reference to the
property value. property value.
Format Definition: This value type is defined by the following Format Definition: This value type is defined by the following
notation: notation:
uri = URI ; As defined in [RFC3986] uri = <As defined in section 3 of [RFC3986]>
Description: This value type might be used to reference binary Description: This value type might be used to reference binary
information, for values that are large, or otherwise undesirable information, for values that are large, or otherwise undesirable
to include directly in the iCalendar object. to include directly in the iCalendar object.
The URI value formats in [RFC3986] and any other IETF registered Property values with this value type MUST follow the generic URI
value format can be specified. syntax defined in [RFC3986].
Any IANA registered URI format can be used. These include, but
are not limited to, those defined in [RFC3986].
When a property parameter value is a URI value type, the URI MUST When a property parameter value is a URI value type, the URI MUST
be specified as a quoted-string value. be specified as a quoted-string value.
No additional content value encoding (i.e., BACKSLASH character No additional content value encoding (i.e., BACKSLASH character
encoding) is defined for this value type. encoding) is defined for this value type.
Example: The following is a URI for a network file: Example: The following is a URI for a network file:
http://example.com/my-report.txt http://example.com/my-report.txt
skipping to change at page 48, line 12 skipping to change at page 48, line 12
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=America/New_York:19980714T120000 is
same as DtStart;TzID=US-Eastern:19980714T120000. the same as DtStart;TzID=America/New_York: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 object as a properties are attributes that apply to the calendar object as a
whole. The calendar components are collections of properties that whole. The calendar components are collections of properties that
express a particular calendar semantic. For example, the calendar express a particular calendar semantic. For example, the calendar
component can specify an event, a to-do, a journal entry, time zone component can specify an event, a to-do, a journal entry, time zone
information, free/busy time information, or an alarm. information, free/busy time information, or an alarm.
The body of the iCalendar object is defined by the following The body of the iCalendar object is defined by the following
notation: notation:
icalbody = calprops component icalbody = calprops component
calprops = *( calprops = *(
; 'prodid' and 'version' are both REQUIRED, ; the following are REQUIRED,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
prodid / version / prodid / version /
; 'calscale' and 'method' are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
calscale / calscale / method /
method /
; 'x-prop' is OPTIONAL, ; the following are OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
x-prop x-prop / iana-prop
) )
component = 1*(eventc / todoc / journalc / freebusyc / component = 1*(eventc / todoc / journalc / freebusyc /
timezonec / iana-comp / x-comp) timezonec / iana-comp / x-comp)
iana-comp = "BEGIN" ":" iana-token CRLF iana-comp = "BEGIN" ":" iana-token CRLF
1*contentline 1*contentline
"END" ":" iana-token CRLF "END" ":" iana-token CRLF
x-comp = "BEGIN" ":" x-name CRLF x-comp = "BEGIN" ":" x-name CRLF
skipping to change at page 50, line 47 skipping to change at page 50, line 47
; a 'eventprop', but 'dtend' and 'duration' ; a 'eventprop', but 'dtend' and 'duration'
; MUST NOT occur in the same 'eventprop' ; MUST NOT occur in the same 'eventprop'
dtend / duration / dtend / duration /
; the following are OPTIONAL, ; the following are OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
attach / attendee / categories / comment / attach / attendee / categories / comment /
contact / exdate / rstatus / related / contact / exdate / rstatus / related /
resources / rdate / x-prop resources / rdate / x-prop / iana-prop
) )
Description: A "VEVENT" calendar component is a grouping of Description: A "VEVENT" calendar component is a grouping of
component properties, and possibly including "VALARM" calendar component properties, and possibly including "VALARM" calendar
components, that represents a scheduled amount of time on a components, that represents a scheduled amount of time on a
calendar. For example, it can be an activity; such as a one-hour calendar. For example, it can be an activity; such as a one-hour
long, department meeting from 8:00 AM to 9:00 AM, tomorrow. long, department meeting from 8:00 AM to 9:00 AM, tomorrow.
Generally, an event will take up time on an individual calendar. Generally, an event will take up time on an individual calendar.
Hence, the event will appear as an opaque interval in a search for Hence, the event will appear as an opaque interval in a search for
busy time. Alternately, the event can have its Time Transparency busy time. Alternately, the event can have its Time Transparency
set to "TRANSPARENT" in order to prevent blocking of the event in set to "TRANSPARENT" in order to prevent blocking of the event in
searches for busy time. searches for busy time.
The "VEVENT" is also the calendar component used to specify an The "VEVENT" is also the calendar component used to specify an
anniversary or daily reminder within a calendar. These events anniversary or daily reminder within a calendar. These events
have a DATE value type for the "DTSTART" property instead of the have a DATE value type for the "DTSTART" property instead of the
default value type of DATE-TIME. If such a "VEVENT" has a "DTEND" default value type of DATE-TIME. If such a "VEVENT" has a "DTEND"
property, it MUST be specified as a DATE value also. The property, it MUST be specified as a DATE value also. The
anniversary type of "VEVENT" can span more than one date (i.e, anniversary type of "VEVENT" can span more than one date (i.e.,
"DTEND" property value is set to a calendar date after the "DTEND" property value is set to a calendar date after the
"DTSTART" property value). If such a "VEVENT" has a "DURATION" "DTSTART" property value). If such a "VEVENT" has a "DURATION"
property, it MUST be specified as a "dur-day" or "dur-week" value. property, it MUST be specified as a "dur-day" or "dur-week" value.
The "DTSTART" property for a "VEVENT" specifies the inclusive The "DTSTART" property for a "VEVENT" specifies the inclusive
start of the event. For recurring events, it also specifies the start of the event. For recurring events, it also specifies the
very first instance in the recurrence set. The "DTEND" property very first instance in the recurrence set. The "DTEND" property
for a "VEVENT" calendar component specifies the non-inclusive end for a "VEVENT" calendar component specifies the non-inclusive end
of the event. For cases where a "VEVENT" calendar component of the event. For cases where a "VEVENT" calendar component
specifies a "DTSTART" property with a DATE value type but no specifies a "DTSTART" property with a DATE value type but no
skipping to change at page 52, line 31 skipping to change at page 52, line 31
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.
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
indicates:
BEGIN:VEVENT BEGIN:VEVENT
UID:19970901T130000Z-123403@example.com UID:19970901T130000Z-123403@example.com
DTSTAMP:19970901T130000Z DTSTAMP:19970901T130000Z
DTSTART;VALUE=DATE:19971102 DTSTART;VALUE=DATE:19971102
SUMMARY:Our Blissful Anniversary SUMMARY:Our Blissful Anniversary
TRANSP:TRANSPARENT
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 36 skipping to change at page 53, line 34
percent / priority / recurid / seq / status / percent / priority / recurid / seq / status /
summary / url / summary / url /
; the following is OPTIONAL, ; the following is OPTIONAL,
; but SHOULD NOT occur more than once ; but SHOULD NOT occur more than once
rrule / rrule /
; either 'due' or 'duration' MAY appear in ; either 'due' or 'duration' MAY appear in
; a 'todoprop', but 'due' and 'duration' ; a 'todoprop', but 'due' and 'duration'
; MUST NOT occur in the same 'todoprop' ; MUST NOT occur in the same 'todoprop'.
; If 'duration' appear in a 'todoprop',
; then 'dtstart' MUST also appear 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 / rstatus / related / resources / exdate / rstatus / related / resources /
rdate / x-prop rdate / x-prop / iana-prop
) )
Description: A "VTODO" calendar component is a grouping of component Description: A "VTODO" calendar component is a grouping of component
properties and possibly "VALARM" calendar components that properties and possibly "VALARM" calendar components that
represent an action-item or assignment. For example, it can be represent an action-item or assignment. For example, it can be
used to represent an item of work assigned to an individual; such used to represent an item of work assigned to an individual; such
as "turn in travel expense today". as "turn in travel expense today".
The "VTODO" calendar component cannot be nested within another The "VTODO" calendar component cannot be nested within another
calendar component. However, "VTODO" calendar components can be calendar component. However, "VTODO" calendar components can be
skipping to change at page 55, line 33 skipping to change at page 55, line 33
; the following is OPTIONAL, ; the following is OPTIONAL,
; but SHOULD NOT occur more than once ; but SHOULD NOT occur more than once
rrule / rrule /
; the following are OPTIONAL, ; the following are OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
attach / attendee / categories / comment / attach / attendee / categories / comment /
contact / description / exdate / related / rdate / contact / description / exdate / related / rdate /
rstatus / x-prop rstatus / x-prop / iana-prop
) )
Description: A "VJOURNAL" calendar component is a grouping of Description: A "VJOURNAL" calendar component is a grouping of
component properties that represent one or more descriptive text component properties that represent one or more descriptive text
notes associated with a particular calendar date. The "DTSTART" notes associated with a particular calendar date. The "DTSTART"
property is used to specify the calendar date that the journal property is used to specify the calendar date that the journal
entry is associated with. Generally, it will have a DATE value entry is associated with. Generally, it will have a DATE value
data type, but it can also be used to specify a DATE-TIME value data type, but it can also be used to specify a DATE-TIME value
data type. Examples of a journal entry include a daily record of data type. Examples of a journal entry include a daily record of
a legislative body or a journal entry of individual telephone a legislative body or a journal entry of individual telephone
skipping to change at page 57, line 25 skipping to change at page 57, line 25
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
contact / dtstart / dtend / duration / dtstamp / contact / dtstart / dtend / duration / dtstamp /
organizer / uid / url / organizer / uid / url /
; the following are OPTIONAL, ; the following are OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
attendee / comment / freebusy / rstatus / x-prop attendee / comment / freebusy / rstatus / x-prop /
iana-prop
) )
Description: A "VFREEBUSY" calendar component is a grouping of Description: A "VFREEBUSY" calendar component is a grouping of
component properties that represents either a request for, a reply component properties that represents either a request for, a reply
to a request for free or busy time information or a published set to a request for free or busy time information or a published set
of busy time information. of busy time information.
When used to request free/busy time information, the "ATTENDEE" When used to request free/busy time information, the "ATTENDEE"
property specifies the calendar users whose free/busy time is property specifies the calendar users whose free/busy time is
being requested; the "ORGANIZER" property specifies the calendar being requested; the "ORGANIZER" property specifies the calendar
skipping to change at page 58, line 44 skipping to change at page 58, line 44
The recurrence properties ("RRULE", "RDATE", "EXDATE") are not The recurrence properties ("RRULE", "RDATE", "EXDATE") are not
permitted within a "VFREEBUSY" calendar component. Any recurring permitted within a "VFREEBUSY" calendar component. Any recurring
events are resolved into their individual busy time periods using events are resolved into their individual busy time periods using
the "FREEBUSY" property. the "FREEBUSY" property.
Example: The following is an example of a "VFREEBUSY" calendar Example: The following is an example of a "VFREEBUSY" calendar
component used to request free or busy time information: component used to request free or busy time information:
BEGIN:VFREEBUSY BEGIN:VFREEBUSY
UID:19970901T082949Z-FA43EF@example.com
ORGANIZER:mailto:jane_doe@example.com ORGANIZER:mailto:jane_doe@example.com
ATTENDEE:mailto:john_public@example.com ATTENDEE:mailto:john_public@example.com
DTSTART:19971015T050000Z DTSTART:19971015T050000Z
DTEND:19971016T050000Z DTEND:19971016T050000Z
DTSTAMP:19970901T083000Z DTSTAMP:19970901T083000Z
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
UID:19970901T095957Z-76A912@example.com
ORGANIZER:mailto:jane_doe@example.com ORGANIZER:mailto:jane_doe@example.com
ATTENDEE:mailto:john_public@example.com ATTENDEE:mailto:john_public@example.com
DTSTAMP:19970901T100000Z DTSTAMP:19970901T100000Z
FREEBUSY:19971015T050000Z/PT8H30M, FREEBUSY:19971015T050000Z/PT8H30M,
19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M 19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M
URL:http://example.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.
skipping to change at page 59, line 23 skipping to change at page 59, line 23
19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M 19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M
URL:http://example.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
UID:19970901T115957Z-76A912@example.com
DTSTAMP:19970901T120000Z
ORGANIZER:jsmith@example.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.example.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
skipping to change at page 59, line 49 skipping to change at page 60, line 4
Format Definition: A "VTIMEZONE" calendar component is defined by Format Definition: A "VTIMEZONE" calendar component is defined by
the following notation: the following notation:
timezonec = "BEGIN" ":" "VTIMEZONE" CRLF timezonec = "BEGIN" ":" "VTIMEZONE" CRLF
*( *(
; 'tzid' is REQUIRED, but MUST NOT occur more ; 'tzid' is REQUIRED, but MUST NOT occur more
; than once ; than once
tzid / tzid /
; 'last-mod' and 'tzurl' are OPTIONAL, ; 'last-mod' and 'tzurl' are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
last-mod / tzurl / last-mod / tzurl /
; one of 'standardc' or 'daylightc' MUST occur ; one of 'standardc' or 'daylightc' MUST occur
; and each MAY occur more than once. ; and each MAY occur more than once.
standardc / daylightc / standardc / daylightc /
; the following is OPTIONAL, ; the following are OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
x-prop x-prop / iana-prop
) )
"END" ":" "VTIMEZONE" CRLF "END" ":" "VTIMEZONE" CRLF
standardc = "BEGIN" ":" "STANDARD" CRLF standardc = "BEGIN" ":" "STANDARD" CRLF
tzprop tzprop
"END" ":" "STANDARD" CRLF "END" ":" "STANDARD" CRLF
daylightc = "BEGIN" ":" "DAYLIGHT" CRLF daylightc = "BEGIN" ":" "DAYLIGHT" CRLF
tzprop tzprop
"END" ":" "DAYLIGHT" CRLF "END" ":" "DAYLIGHT" CRLF
tzprop = *( tzprop = *(
; the following are each REQUIRED, ; the following are REQUIRED,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
dtstart / tzoffsetto / tzoffsetfrom / dtstart / tzoffsetto / tzoffsetfrom /
; the following is OPTIONAL, ; the following is OPTIONAL,
; but SHOULD NOT occur more than once ; but SHOULD NOT occur more than once
rrule / rrule /
; the following are OPTIONAL, ; the following are OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
comment / rdate / tzname / x-prop comment / rdate / tzname / x-prop / iana-prop
) )
Description: A time zone is unambiguously defined by the set of time Description: A time zone is unambiguously defined by the set of time
measurement rules determined by the governing body for a given measurement rules determined by the governing body for a given
geographic area. These rules describe at a minimum the base geographic area. These rules describe at a minimum the base
offset from UTC for the time zone, often referred to as the offset from UTC for the time zone, often referred to as the
Standard Time offset. Many locations adjust their Standard Time Standard Time offset. Many locations adjust their Standard Time
forward or backward by one hour, in order to accommodate seasonal forward or backward by one hour, in order to accommodate seasonal
changes in number of daylight hours, often referred to as Daylight changes in number of daylight hours, often referred to as Daylight
Saving Time. Some locations adjust their time by a fraction of an Saving Time. Some locations adjust their time by a fraction of an
hour. Standard Time is also known as Winter Time. Daylight hour. Standard Time is also known as Winter Time. Daylight
Saving Time is also known as Advanced Time, Summer Time, or Legal Saving Time is also known as Advanced Time, Summer Time, or Legal
skipping to change at page 61, line 16 skipping to change at page 61, line 21
Saving Time. Some locations adjust their time by a fraction of an Saving Time. Some locations adjust their time by a fraction of an
hour. Standard Time is also known as Winter Time. Daylight hour. Standard Time is also known as Winter Time. Daylight
Saving Time is also known as Advanced Time, Summer Time, or Legal Saving Time is also known as Advanced Time, Summer Time, or Legal
Time in certain countries. The following table shows the changes Time in certain countries. The following table shows the changes
in time zone rules in effect for New York City starting from 1967. in time zone rules in effect for New York City starting from 1967.
Each line represents a description or rule for a particular Each line represents a description or rule for a particular
observance. observance.
Effective Observance Rule Effective Observance Rule
+-----------+-------------------------+--------+--------------+ +-----------+--------------------------+--------+--------------+
| Date | (Date/Time) | Offset | Abbreviation | | Date | (Date/Time) | Offset | Abbreviation |
+-----------+-------------------------+--------+--------------+ +-----------+--------------------------+--------+--------------+
| 1967-* | last Sun in Oct, 02:00 | -0500 | EST | | 1967-2006 | 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-2006 | first Sun in Apr, 02:00 | -0400 | EDT |
+-----------+-------------------------+--------+--------------+ | 2007-* | first Sun in Nov, 02:00 | -0500 | EST |
| 2007-* | second Sun in Mar, 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 TZ Database [TZDB] a useful However, implementers may find the TZ database [TZDB] a useful
reference. It is an informal, public-domain collection of time reference. It is an informal, public-domain collection of time
zone information, which is currently being maintained by zone information, which is currently being maintained by
volunteer Internet participants, and is used in several volunteer Internet participants, and is used in several
operating systems. This database contains current and 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,
with historical data going back to the introduction of standard with historical data going back to the introduction of standard
time. time.
skipping to change at page 62, line 8 skipping to change at page 62, line 15
If present, the "VTIMEZONE" calendar component defines the set of If present, the "VTIMEZONE" calendar component defines the set of
Standard Time and Daylight Saving Time observances (or rules) for Standard Time and Daylight Saving Time observances (or rules) for
a particular time zone for a given interval of time. The a particular time zone for a given interval of time. The
"VTIMEZONE" calendar component cannot be nested within other "VTIMEZONE" calendar component cannot be nested within other
calendar components. Multiple "VTIMEZONE" calendar components can calendar components. Multiple "VTIMEZONE" calendar components can
exist in an iCalendar object. In this situation, each "VTIMEZONE" exist in an iCalendar object. In this situation, each "VTIMEZONE"
MUST represent a unique time zone definition. This is necessary MUST represent a unique time zone definition. This is necessary
for some classes of events, such as airline flights, that start in for some classes of events, such as airline flights, that start in
one time zone and end in another. one time zone and end in another.
The "VTIMEZONE" calendar component MUST be present if the
iCalendar object contains an "RRULE" that generates dates on both
sides of a time zone shift (e.g., both in Standard Time and
Daylight Saving Time) unless the iCalendar object intends to
convey a floating time (see Section 3.3.12 for proper
interpretation of floating time). It can be present if the
iCalendar object does not contain such a "RRULE". In addition, if
a "RRULE" is present, there MUST be valid time zone information
for all recurrence instances.
The "VTIMEZONE" calendar component MUST include the "TZID" The "VTIMEZONE" calendar component MUST include the "TZID"
property and at least one definition of a "STANDARD" or "DAYLIGHT" property and at least one definition of a "STANDARD" or "DAYLIGHT"
subcomponent. The "STANDARD" or "DAYLIGHT" subcomponent. MUST sub-component. The "STANDARD" or "DAYLIGHT" subcomponent MUST
include the "DTSTART", "TZOFFSETFROM" and "TZOFFSETTO" properties. include the "DTSTART", "TZOFFSETFROM" and "TZOFFSETTO" properties.
An individual "VTIMEZONE" calendar component MUST be specified for An individual "VTIMEZONE" calendar component MUST be specified for
each unique "TZID" parameter value specified in the iCalendar each unique "TZID" parameter value specified in the iCalendar
object. object. In addition, a "VTIMEZONE" calendar component, referred
to by a recurring calendar component, MUST provide valid time zone
information for all recurrence instances.
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:
skipping to change at page 64, line 27 skipping to change at page 64, line 27
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 "TZOFFSETFROM" properties MUST be used
generating the onset date-time values (instances) from the when 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 . TIME value .
The optional "COMMENT" property is also allowed for descriptive The optional "COMMENT" property is also allowed for descriptive
explanatory text. explanatory text.
Example: The following are examples of the "VTIMEZONE" calendar Example: The following are examples of the "VTIMEZONE" calendar
component: component:
This is an example showing time zone information for the Eastern This is an example showing all the time zone rules for New York
United States using "RDATE" property. Note that this is only City since April 30, 1967 at 03:00:00 EDT.
suitable for a recurring event that starts on or later than April
6, 1997 at 03:00:00 EDT (i.e., the earliest effective transition
date and time) and ends no later than April 7, 1998 02:00:00 EST
(i.e., latest valid date and time for EST in this scenario). For
example, this can be used for a recurring event that occurs every
Friday, 8:00AM-9:00 AM, starting June 1, 1997, ending December 31,
1997.
BEGIN:VTIMEZONE BEGIN:VTIMEZONE
TZID:US-Eastern TZID:America/New_York
LAST-MODIFIED:20050809T050000Z
BEGIN:STANDARD
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
DTSTART:19671029T020000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU;UNTIL=20061029T060000Z
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
DTSTART:20071104T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
DTSTART:19670430T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1SU;UNTIL=19730429T070000Z
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
DTSTART:19740106T020000
RDATE:19750223T020000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
DTSTART:19760425T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1SU;UNTIL=19860427T070000Z
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
DTSTART:19870405T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU;UNTIL=20060402T070000Z
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
DTSTART:20070311T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
END:VTIMEZONE
This is an example showing time zone information for New York City
using "RDATE" property. Note that this is only suitable for a
recurring event that starts on or later than March 11, 2007 at 03:
00:00 EDT (i.e., the earliest effective transition date and time)
and ends no later than April 7, 1998 02:00:00 EST (i.e., latest
valid date and time for EST in this scenario). For example, this
can be used for a recurring event that occurs every Friday, 8:00
A.M.-9:00 A.M., starting June 1, 1997, ending December 31, 1997.
BEGIN:VTIMEZONE
TZID:America/New_York
LAST-MODIFIED:19870101T000000Z LAST-MODIFIED:19870101T000000Z
BEGIN:STANDARD BEGIN:STANDARD
DTSTART:19971026T020000 DTSTART:19971026T020000
RDATE:19971026T020000 RDATE:19971026T020000
TZOFFSETFROM:-0400 TZOFFSETFROM:-0400
TZOFFSETTO:-0500 TZOFFSETTO:-0500
TZNAME:EST TZNAME:EST
END:STANDARD END:STANDARD
BEGIN:DAYLIGHT BEGIN:DAYLIGHT
DTSTART:19970406T020000 DTSTART:19970406T020000
skipping to change at page 65, line 31 skipping to change at page 67, line 6
END:DAYLIGHT END:DAYLIGHT
END:VTIMEZONE END:VTIMEZONE
This is a simple example showing the current time zone rules for This is a simple example showing the current time zone rules for
the Eastern United States using a "RRULE" recurrence pattern. the Eastern United States using a "RRULE" recurrence pattern.
Note that there is no effective end date to either of the Standard Note that there is no effective end date to either of the Standard
Time or Daylight Time rules. This information would be valid for Time or Daylight Time rules. This information would be valid for
a recurring event starting today and continuing indefinitely. a recurring event starting today and continuing indefinitely.
BEGIN:VTIMEZONE BEGIN:VTIMEZONE
TZID:US-Eastern TZID:America/New_York
LAST-MODIFIED:19870101T000000Z LAST-MODIFIED:19870101T000000Z
TZURL:http://zones.example.com/tz/US-Eastern.ics TZURL:http://zones.example.com/tz/America-New_York.ics
BEGIN:STANDARD BEGIN:STANDARD
DTSTART:19671029T020000 DTSTART:19671029T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZOFFSETFROM:-0400 TZOFFSETFROM:-0400
TZOFFSETTO:-0500 TZOFFSETTO:-0500
TZNAME:EST TZNAME:EST
END:STANDARD END:STANDARD
BEGIN:DAYLIGHT BEGIN:DAYLIGHT
DTSTART:19870405T020000 DTSTART:19870405T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
skipping to change at page 66, line 4 skipping to change at page 67, line 24
TZNAME:EST TZNAME:EST
END:STANDARD END:STANDARD
BEGIN:DAYLIGHT BEGIN:DAYLIGHT
DTSTART:19870405T020000 DTSTART:19870405T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
TZOFFSETFROM:-0500 TZOFFSETFROM:-0500
TZOFFSETTO:-0400 TZOFFSETTO:-0400
TZNAME:EDT TZNAME:EDT
END:DAYLIGHT END:DAYLIGHT
END:VTIMEZONE END:VTIMEZONE
This is an example showing a fictitious set of rules for the This is an example showing a fictitious set of rules for the
Eastern United States, where the Daylight Time rule has an Eastern United States, where the Daylight Time rule has an
effective end date (i.e., after that date, Daylight Time is no effective end date (i.e., after that date, Daylight Time is no
longer observed). longer observed).
BEGIN:VTIMEZONE BEGIN:VTIMEZONE
TZID:US--Fictitious-Eastern TZID:Fictitious--America/New_York
LAST-MODIFIED:19870101T000000Z LAST-MODIFIED:19870101T000000Z
BEGIN:STANDARD BEGIN:STANDARD
DTSTART:19671029T020000 DTSTART:19671029T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZOFFSETFROM:-0400 TZOFFSETFROM:-0400
TZOFFSETTO:-0500 TZOFFSETTO:-0500
TZNAME:EST TZNAME:EST
END:STANDARD END:STANDARD
BEGIN:DAYLIGHT BEGIN:DAYLIGHT
DTSTART:19870405T020000 DTSTART:19870405T020000
skipping to change at page 66, line 27 skipping to change at page 68, line 4
TZNAME:EST TZNAME:EST
END:STANDARD END:STANDARD
BEGIN:DAYLIGHT BEGIN:DAYLIGHT
DTSTART:19870405T020000 DTSTART:19870405T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z
TZOFFSETFROM:-0500 TZOFFSETFROM:-0500
TZOFFSETTO:-0400 TZOFFSETTO:-0400
TZNAME:EDT TZNAME:EDT
END:DAYLIGHT END:DAYLIGHT
END:VTIMEZONE END:VTIMEZONE
This is an example showing a fictitious set of rules for the This is an example showing a fictitious set of rules for the
Eastern United States, where the first Daylight Time rule has an Eastern United States, where the first Daylight Time rule has an
effective end date. There is a second Daylight Time rule that effective end date. There is a second Daylight Time rule that
picks up where the other left off. picks up where the other left off.
BEGIN:VTIMEZONE BEGIN:VTIMEZONE
TZID:US--Fictitious-Eastern TZID:Fictitious--America/New_York
LAST-MODIFIED:19870101T000000Z LAST-MODIFIED:19870101T000000Z
BEGIN:STANDARD BEGIN:STANDARD
DTSTART:19671029T020000 DTSTART:19671029T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZOFFSETFROM:-0400 TZOFFSETFROM:-0400
TZOFFSETTO:-0500 TZOFFSETTO:-0500
TZNAME:EST TZNAME:EST
END:STANDARD END:STANDARD
BEGIN:DAYLIGHT BEGIN:DAYLIGHT
DTSTART:19870405T020000 DTSTART:19870405T020000
skipping to change at page 68, line 17 skipping to change at page 69, line 22
duration / repeat / duration / repeat /
; the following is OPTIONAL, ; the following is OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
attach / attach /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
x-prop x-prop / iana-prop
) )
dispprop = *( dispprop = *(
; the following are all REQUIRED, ; the following are REQUIRED,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
action / description / trigger / action / description / trigger /
; 'duration' and 'repeat' are both OPTIONAL, ; 'duration' and 'repeat' are both OPTIONAL,
; and MUST NOT occur more than once each, ; and MUST NOT occur more than once each,
; but if one occurs, so MUST the other ; but if one occurs, so MUST the other
duration / repeat / duration / repeat /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
x-prop x-prop / iana-prop
) )
emailprop = *( emailprop = *(
; the following are all REQUIRED, ; the following are all REQUIRED,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
action / description / trigger / summary / action / description / trigger / summary /
; the following is REQUIRED, ; the following is REQUIRED,
; and MAY occur more than once ; and MAY occur more than once
attendee / attendee /
; 'duration' and 'repeat' are both OPTIONAL, ; 'duration' and 'repeat' are both OPTIONAL,
; and MUST NOT occur more than once each, ; and MUST NOT occur more than once each,
; but if one occurs, so MUST the other ; but if one occurs, so MUST the other
duration / repeat / duration / repeat /
; the following are OPTIONAL, ; the following are OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
attach / x-prop attach / x-prop / iana-prop
) )
procprop = *( procprop = *(
; the following are all REQUIRED, ; the following are all REQUIRED,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
action / attach / trigger / action / attach / trigger /
skipping to change at page 69, line 38 skipping to change at page 70, line 43
duration / repeat / duration / repeat /
; 'description' is OPTIONAL, ; 'description' is OPTIONAL,
; and MUST NOT occur more than once ; and MUST NOT occur more than once
description / description /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
x-prop x-prop / iana-prop
) )
Description: A "VALARM" calendar component is a grouping of Description: A "VALARM" calendar component is a grouping of
component properties that is a reminder or alarm for an event or a component properties that is a reminder or alarm for an event or a
to-do. For example, it may be used to define a reminder for a to-do. For example, it may be used to define a reminder for a
pending event or an overdue to-do. pending event or an overdue to-do.
The "VALARM" calendar component MUST include the "ACTION" and The "VALARM" calendar component MUST include the "ACTION" and
"TRIGGER" properties. The "ACTION" property further constrains "TRIGGER" properties. The "ACTION" property further constrains
skipping to change at page 70, line 22 skipping to change at page 71, line 26
When the action is "EMAIL", the alarm MUST include a "DESCRIPTION" When the action is "EMAIL", the alarm MUST include a "DESCRIPTION"
property, which contains the text to be used as the message body, property, which contains the text to be used as the message body,
a "SUMMARY" property, which contains the text to be used as the a "SUMMARY" property, which contains the text to be used as the
message subject, and one or more "ATTENDEE" properties, which message subject, and one or more "ATTENDEE" properties, which
contain the email address of attendees to receive the message. It contain the email address of attendees to receive the message. It
can also include one or more "ATTACH" properties, which are can also include one or more "ATTACH" properties, which are
intended to be sent as message attachments. When the alarm is intended to be sent as message attachments. When the alarm is
triggered, the email message is sent. triggered, the email message is sent.
When the action is "PROCEDURE", the alarm MUST include one and
only one "ATTACH" property, which MUST point to a procedure
resource, which is invoked when the alarm is triggered.
The "VALARM" calendar component MUST only appear within either a The "VALARM" calendar component MUST only appear within either a
"VEVENT" or "VTODO" calendar component. "VALARM" calendar "VEVENT" or "VTODO" calendar component. "VALARM" calendar
components cannot be nested. Multiple mutually independent components cannot be nested. Multiple mutually independent
"VALARM" calendar components can be specified for a single "VALARM" calendar components can be specified for a single
"VEVENT" or "VTODO" calendar component. "VEVENT" or "VTODO" calendar component.
The "TRIGGER" property specifies when the alarm will be triggered. The "TRIGGER" property specifies when the alarm will be triggered.
The "TRIGGER" property specifies a duration prior to the start of The "TRIGGER" property specifies a duration prior to the start of
an event or a to-do. The "TRIGGER" edge may be explicitly set to an event or a to-do. The "TRIGGER" edge may be explicitly set to
be relative to the "START" or "END" of the event or to-do with the be relative to the "START" or "END" of the event or to-do with the
skipping to change at page 71, line 24 skipping to change at page 72, line 24
the alarm will not repeat beyond the initial trigger. the alarm will not repeat beyond the initial trigger.
The "ACTION" property is used within the "VALARM" calendar The "ACTION" property is used within the "VALARM" calendar
component to specify the type of action invoked when the alarm is component to specify the type of action invoked when the alarm is
triggered. The "VALARM" properties provide enough information for triggered. The "VALARM" properties provide enough information for
a specific action to be invoked. It is typically the a specific action to be invoked. It is typically the
responsibility of a "Calendar User Agent" (CUA) to deliver the responsibility of a "Calendar User Agent" (CUA) to deliver the
alarm in the specified fashion. An "ACTION" property value of alarm in the specified fashion. An "ACTION" property value of
AUDIO specifies an alarm that causes a sound to be played to alert AUDIO specifies an alarm that causes a sound to be played to alert
the user; DISPLAY specifies an alarm that causes a text message to the user; DISPLAY specifies an alarm that causes a text message to
be displayed to the user; EMAIL specifies an alarm that causes an be displayed to the user; and EMAIL specifies an alarm that causes
electronic email message to be delivered to one or more email an electronic email message to be delivered to one or more email
addresses; and PROCEDURE specifies an alarm that causes a addresses.
procedure to be executed. The "ACTION" property MUST specify one
and only one of these values.
In an AUDIO alarm, if the optional "ATTACH" property is included, In an AUDIO alarm, if the optional "ATTACH" property is included,
it MUST specify an audio sound resource. The intention is that it MUST specify an audio sound resource. The intention is that
the sound will be played as the alarm effect. If an "ATTACH" the sound will be played as the alarm effect. If an "ATTACH"
property is specified that does not refer to a sound resource, or property is specified that does not refer to a sound resource, or
if the specified sound resource cannot be rendered (because its if the specified sound resource cannot be rendered (because its
format is unsupported, or because it cannot be retrieved), then format is unsupported, or because it cannot be retrieved), then
the CUA or other entity responsible for playing the sound may the CUA or other entity responsible for playing the sound may
choose a fallback action, such as playing a built-in default choose a fallback action, such as playing a built-in default
sound, or playing no sound at all. sound, or playing no sound at all.
skipping to change at page 72, line 5 skipping to change at page 73, line 5
In an EMAIL alarm, the intended alarm effect is for an email In an EMAIL alarm, the intended alarm effect is for an email
message to be composed and delivered to all the addresses message to be composed and delivered to all the addresses
specified by the "ATTENDEE" properties in the "VALARM" calendar specified by the "ATTENDEE" properties in the "VALARM" calendar
component. The "DESCRIPTION" property of the "VALARM" calendar component. The "DESCRIPTION" property of the "VALARM" calendar
component MUST be used as the body text of the message, and the component MUST be used as the body text of the message, and the
"SUMMARY" property MUST be used as the subject text. Any "ATTACH" "SUMMARY" property MUST be used as the subject text. Any "ATTACH"
properties in the "VALARM" calendar component SHOULD be sent as properties in the "VALARM" calendar component SHOULD be sent as
attachments to the message. attachments to the message.
In a PROCEDURE alarm, the "ATTACH" property in the "VALARM"
calendar component MUST specify a procedure or program that is
intended to be invoked as the alarm effect. If the procedure or
program is in a format that cannot be rendered, then no procedure
alarm will be invoked. If the "DESCRIPTION" property is present,
its value specifies the argument string to be passed to the
procedure or program. "Calendar User Agents" that receive an
iCalendar object with this category of alarm, can disable or allow
the "Calendar User" to disable, or otherwise ignore this type of
alarm. While a very useful alarm capability, the PROCEDURE type
of alarm SHOULD be treated by the "Calendar User Agent" as a
potential security risk.
Example: The following example is for a "VALARM" calendar component Example: The following example is for a "VALARM" calendar component
that specifies an audio alarm that will sound at a precise time that specifies an audio alarm that will sound at a precise time
and repeat 4 more times at 15 minute intervals: and repeat 4 more times at 15 minute intervals:
BEGIN:VALARM BEGIN:VALARM
TRIGGER;VALUE=DATE-TIME:19970317T133000Z TRIGGER;VALUE=DATE-TIME:19970317T133000Z
REPEAT:4 REPEAT:4
DURATION:PT15M DURATION:PT15M
ACTION:AUDIO ACTION:AUDIO
ATTACH;FMTTYPE=audio/basic:ftp://example.com/pub/ ATTACH;FMTTYPE=audio/basic:ftp://example.com/pub/
skipping to change at page 73, line 17 skipping to change at page 74, line 5
ACTION:EMAIL ACTION:EMAIL
ATTENDEE:mailto:john_doe@example.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://example.com/ ATTACH;FMTTYPE=application/msword:http://example.com/
templates/agenda.doc templates/agenda.doc
END:VALARM END:VALARM
The following example is for a "VALARM" calendar component that
specifies a procedural alarm that will trigger at a precise date/
time and will repeat 23 more times at one hour intervals. The
alarm will invoke a procedure file.
BEGIN:VALARM
TRIGGER;VALUE=DATE-TIME:19980101T050000Z
REPEAT:23
DURATION:PT1H
ACTION:PROCEDURE
ATTACH;FMTTYPE=application/octet-stream:ftp://example.com/novo-
procs/felizano.exe
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.
3.7.1. Calendar Scale 3.7.1. Calendar Scale
Property Name: CALSCALE Property Name: CALSCALE
Purpose: This property defines the calendar scale used for the Purpose: This property defines the calendar scale used for the
calendar information specified in the iCalendar object. calendar information specified in the iCalendar object.
Value Type: TEXT Value Type: TEXT
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: Property can be specified in an iCalendar object. The Conformance: This property can be specified once in an iCalendar
default value is "GREGORIAN". object. The default value is "GREGORIAN".
Description: This memo is based on the Gregorian calendar scale. Description: This memo is based on the Gregorian calendar scale.
The Gregorian calendar scale is assumed if this property is not The Gregorian calendar scale is assumed if this property is not
specified in the iCalendar object. It is expected that other specified in the iCalendar object. It is expected that other
calendar scales will be defined in other specifications or by calendar scales will be defined in other specifications or by
future versions of this memo. future versions of this memo.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
calscale = "CALSCALE" calparam ":" calvalue CRLF calscale = "CALSCALE" calparam ":" calvalue CRLF
calparam = *(";" xparam) calparam = *(";" other-param)
calvalue = "GREGORIAN" / iana-token calvalue = "GREGORIAN"
Example: The following is an example of this property: Example: The following is an example of this property:
CALSCALE:GREGORIAN CALSCALE:GREGORIAN
3.7.2. Method 3.7.2. Method
Property Name: METHOD Property Name: METHOD
Purpose: This property defines the iCalendar object method Purpose: This property defines the iCalendar object method
associated with the calendar object. associated with the calendar object.
Value Type: TEXT Value Type: TEXT
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: The property can be specified once in an iCalendar Conformance: This property can be specified once in an iCalendar
object. object.
Description: When used in a MIME message entity, the value of this Description: When used in a MIME message entity, the value of this
property MUST be the same as the Content-Type "method" parameter property MUST be the same as the Content-Type "method" parameter
value. If either the "METHOD" property or the Content-Type value. If either the "METHOD" property or the Content-Type
"method" parameter is specified, then the other MUST also be "method" parameter is specified, then the other MUST also be
specified. specified.
No methods are defined by this specification. This is the subject No methods are defined by this specification. This is the subject
of other specifications, such as the iCalendar Transport- of other specifications, such as the iCalendar Transport-
skipping to change at page 75, line 16 skipping to change at page 75, line 37
scheduling transaction MUST NOT be assumed. In such cases, the scheduling transaction MUST NOT be assumed. In such cases, the
iCalendar object is merely being used to transport a snapshot of iCalendar object is merely being used to transport a snapshot of
some calendar information; without the intention of conveying a some calendar information; without the intention of conveying a
scheduling semantic. scheduling semantic.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
method = "METHOD" metparam ":" metvalue CRLF method = "METHOD" metparam ":" metvalue CRLF
metparam = *(";" xparam) metparam = *(";" other-param)
metvalue = iana-token metvalue = iana-token
Example: The following is a hypothetical example of this property to Example: The following is a hypothetical example of this property to
convey that the iCalendar object is a scheduling request : convey that the iCalendar object is a scheduling request :
METHOD:REQUEST METHOD:REQUEST
3.7.3. Product Identifier 3.7.3. Product Identifier
Property Name: PRODID Property Name: PRODID
Purpose: This property specifies the identifier for the product that Purpose: This property specifies the identifier for the product that
created the iCalendar object. created the iCalendar object.
Value Type: TEXT Value Type: TEXT
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: The property MUST be specified once in an iCalendar Conformance: The property MUST be specified once in an iCalendar
object. object.
Description: The vendor of the implementation SHOULD assure that Description: The vendor of the implementation SHOULD assure that
this is a globally unique identifier; using some technique such as this is a globally unique identifier; using some technique such as
an FPI value, as defined in [ISO.9070.1991]. an FPI value, as defined in [ISO.9070.1991].
This property SHOULD not be used to alter the interpretation of an This property SHOULD not be used to alter the interpretation of an
iCalendar object beyond the semantics specified in this memo. For iCalendar object beyond the semantics specified in this memo. For
example, it is not to be used to further the understanding of non- example, it is not to be used to further the understanding of non-
standard properties. standard properties.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
prodid = "PRODID" pidparam ":" pidvalue CRLF prodid = "PRODID" pidparam ":" pidvalue CRLF
pidparam = *(";" xparam) pidparam = *(";" other-param)
pidvalue = text pidvalue = text
;Any text that describes the product and version ;Any text that describes the product and version
;and that is generally assured of being unique. ;and that is generally assured of being unique.
Example: The following is an example of this property. It does not Example: The following is an example of this property. It does not
imply that English is the default language. imply that English is the default language.
PRODID:-//ABC Corporation//NONSGML My Product//EN PRODID:-//ABC Corporation//NONSGML My Product//EN
skipping to change at page 76, line 29 skipping to change at page 77, line 7
Property Name: VERSION Property Name: VERSION
Purpose: This property specifies the identifier corresponding to the Purpose: This property specifies the identifier corresponding to the
highest version number or the minimum and maximum range of the highest version number or the minimum and maximum range of the
iCalendar specification that is required in order to interpret the iCalendar specification that is required in order to interpret the
iCalendar object. iCalendar object.
Value Type: TEXT Value Type: TEXT
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: This property MUST be specified by an iCalendar object, Conformance: This property MUST be specified once in an iCalendar
but MUST only be specified once. object.
Description: A value of "2.0" corresponds to this memo. Description: A value of "2.0" corresponds to this memo.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
version = "VERSION" verparam ":" vervalue CRLF version = "VERSION" verparam ":" vervalue CRLF
verparam = *(";" xparam) verparam = *(";" other-param)
vervalue = "2.0" ;This memo vervalue = "2.0" ;This memo
/ maxver / maxver
/ (minver ";" maxver) / (minver ";" maxver)
minver = <A IANA registered iCalendar version identifier> minver = <A IANA registered iCalendar version identifier>
;Minimum iCalendar version needed to parse the iCalendar object ;Minimum iCalendar version needed to parse the iCalendar object
maxver = <A IANA registered iCalendar version identifier> maxver = <A IANA registered iCalendar version identifier>
;Maximum iCalendar version needed to parse the iCalendar object ;Maximum iCalendar version needed to parse the iCalendar object
skipping to change at page 77, line 21 skipping to change at page 78, line 4
specified by each component property definition. specified by each component property definition.
3.8.1. Descriptive Component Properties 3.8.1. Descriptive Component Properties
The following properties specify descriptive information about The following properties specify descriptive information about
calendar components. calendar components.
3.8.1.1. Attachment 3.8.1.1. Attachment
Property Name: ATTACH Property Name: ATTACH
Purpose: This property provides the capability to associate a Purpose: This property provides the capability to associate a
document object with a calendar component. document object with a calendar component.
Value Type: The default value type for this property is URI. The Value Type: The default value type for this property is URI. The
value type can also be set to BINARY to indicate inline binary value type can also be set to BINARY to indicate inline binary
encoded content information. encoded content information.
Property Parameters: Non-standard, inline encoding, format type and Property Parameters: IANA, non-standard, inline encoding, format
value data type property parameters can be specified on this type and value data type property parameters can be specified on
property. this property.
Conformance: The property can be specified in a "VEVENT", "VTODO", Conformance: The property can be specified in a "VEVENT", "VTODO",
"VJOURNAL" or "VALARM" calendar components. "VJOURNAL" or "VALARM" calendar components.
Description: This property can be specified within "VEVENT", Description: This property can be specified within "VEVENT",
"VTODO", "VJOURNAL", or "VALARM" calendar components. This "VTODO", "VJOURNAL", or "VALARM" calendar components. This
property can be specified multiple times within an iCalendar property can be specified multiple times within an iCalendar
object. object.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
skipping to change at page 78, line 20 skipping to change at page 78, line 41
attachparam = *( attachparam = *(
; the following is OPTIONAL, ; the following is OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" fmttypeparam) / (";" fmttypeparam) /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" other-param)
) )
Example: The following are examples of this property: Example: The following are examples of this property:
ATTACH:CID:jsmith.part3.960817T083000.xyzMail@example.com ATTACH:CID:jsmith.part3.960817T083000.xyzMail@example.com
ATTACH;FMTTYPE=application/postscript:ftp://example.com/pub/ ATTACH;FMTTYPE=application/postscript:ftp://example.com/pub/
reports/r-960812.ps reports/r-960812.ps
3.8.1.2. Categories 3.8.1.2. Categories
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
Property Parameters: Non-standard and language property parameters Property Parameters: IANA, non-standard, and language property
can be specified on this property. parameters can be specified on this property.
Conformance: The property can be specified within "VEVENT", "VTODO" Conformance: The property can be specified within "VEVENT", "VTODO"
or "VJOURNAL" calendar components. or "VJOURNAL" calendar components.
Description: This property is used to specify categories or subtypes Description: This property is used to specify categories or subtypes
of the calendar component. The categories are useful in searching of the calendar component. The categories are useful in searching
for a calendar component of a particular type and category. for a calendar component of a particular type and category.
Within the "VEVENT", "VTODO" or "VJOURNAL" calendar components, Within the "VEVENT", "VTODO" or "VJOURNAL" calendar components,
more than one category can be specified as a list of categories more than one category can be specified as a list of categories
separated by the COMMA character (US-ASCII decimal 44). separated by the COMMA character (US-ASCII decimal 44).
skipping to change at page 79, line 21 skipping to change at page 79, line 43
catparam = *( catparam = *(
; the following is OPTIONAL, ; the following is OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" languageparam ) / (";" languageparam ) /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" other-param)
) )
Example: The following are examples of this property: Example: The following are examples of this property:
CATEGORIES:APPOINTMENT,EDUCATION CATEGORIES:APPOINTMENT,EDUCATION
CATEGORIES:MEETING CATEGORIES:MEETING
3.8.1.3. Classification 3.8.1.3. Classification
Property Name: CLASS Property Name: CLASS
Purpose: This property defines the access classification for a Purpose: This property defines the access classification for a
calendar component. calendar component.
Value Type: TEXT Value Type: TEXT
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: The property can be specified once in a "VEVENT", Conformance: The property can be specified once in a "VEVENT",
"VTODO" or "VJOURNAL" calendar components. "VTODO" or "VJOURNAL" calendar components.
Description: An access classification is only one component of the Description: An access classification is only one component of the
general security system within a calendar application. It general security system within a calendar application. It
provides a method of capturing the scope of the access the provides a method of capturing the scope of the access the
calendar owner intends for information within an individual calendar owner intends for information within an individual
calendar entry. The access classification of an individual calendar entry. The access classification of an individual
iCalendar component is useful when measured along with the other iCalendar component is useful when measured along with the other
skipping to change at page 80, line 18 skipping to change at page 80, line 41
memo, these access classifications cannot serve as an enforcement memo, these access classifications cannot serve as an enforcement
statement for a system receiving an iCalendar object. Rather, statement for a system receiving an iCalendar object. Rather,
they provide a method for capturing the intention of the calendar they provide a method for capturing the intention of the calendar
owner for the access to the calendar component. owner for the access to the calendar component.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
class = "CLASS" classparam ":" classvalue CRLF class = "CLASS" classparam ":" classvalue CRLF
classparam = *(";" xparam) classparam = *(";" other-param)
classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token
/ x-name / x-name
;Default is PUBLIC ;Default is PUBLIC
Example: The following is an example of this property: Example: The following is an example of this property:
CLASS:PUBLIC CLASS:PUBLIC
3.8.1.4. Comment 3.8.1.4. Comment
Property Name: COMMENT Property Name: COMMENT
Purpose: This property specifies non-processing information intended Purpose: This property specifies non-processing information intended
to provide a comment to the calendar user. to provide a comment to the calendar user.
Value Type: TEXT Value Type: TEXT
Property Parameters: Non-standard, alternate text representation and Property Parameters: IANA, non-standard, alternate text
language property parameters can be specified on this property. representation and language property parameters can be specified
on this property.
Conformance: This property can be specified one or more times in Conformance: This property can be specified one or more times in
"VEVENT", "VTODO", "VJOURNAL", "VTIMEZONE" or "VFREEBUSY" calendar "VEVENT", "VTODO", "VJOURNAL", and "VFREEBUSY" calendar components
components. as well as in the "STANDARD" and "DAYLIGHT" sub-components.
Description: The property can be specified multiple times. Description: The property can be specified multiple times.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
comment = "COMMENT" commparam ":" text CRLF comment = "COMMENT" commparam ":" text CRLF
commparam = *( commparam = *(
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" altrepparam) / (";" languageparam) / (";" altrepparam) / (";" languageparam) /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" other-param)
) )
Example: The following is an example of this property: Example: The following is an example of this property:
COMMENT:The meeting really needs to include both ourselves COMMENT:The meeting really needs to include both ourselves
and the customer. We can't hold this meeting without them. and the customer. We can't hold this meeting without them.
As a matter of fact\, the venue for the meeting ought to be at As a matter of fact\, the venue for the meeting ought to be at
their site. - - John their site. - - John
3.8.1.5. Description 3.8.1.5. Description
Property Name: DESCRIPTION Property Name: DESCRIPTION
Purpose: This property provides a more complete description of the Purpose: This property provides a more complete description of the
calendar component, than that provided by the "SUMMARY" property. calendar component, than that provided by the "SUMMARY" property.
Value Type: TEXT Value Type: TEXT
Property Parameters: Non-standard, alternate text representation and Property Parameters: IANA, non-standard, alternate text
language property parameters can be specified on this property. representation and language property parameters can be specified
on this property.
Conformance: The property can be specified in the "VEVENT", "VTODO", Conformance: The property can be specified in the "VEVENT", "VTODO",
"VJOURNAL" or "VALARM" calendar components. The property can be "VJOURNAL" or "VALARM" calendar components. The property can be
specified multiple times only within a "VJOURNAL" calendar specified multiple times only within a "VJOURNAL" calendar
component. component.
Description: This property is used in the "VEVENT" and "VTODO" to Description: This property is used in the "VEVENT" and "VTODO" to
capture lengthy textual decriptions associated with the activity. capture lengthy textual decriptions associated with the activity.
This property is used in the "VJOURNAL" calendar component to This property is used in the "VJOURNAL" calendar component to
capture one or more textual journal entries. capture one or more textual journal entries.
This property is used in the "VALARM" calendar component to This property is used in the "VALARM" calendar component to
capture the display text for a DISPLAY category of alarm, to capture the display text for a DISPLAY category of alarm, and to
capture the body text for an EMAIL category of alarm and to capture the body text for an EMAIL category of alarm .
capture the argument string for a PROCEDURE category of alarm.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
description = "DESCRIPTION" descparam ":" text CRLF description = "DESCRIPTION" descparam ":" text CRLF
descparam = *( descparam = *(
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" altrepparam) / (";" languageparam) / (";" altrepparam) / (";" languageparam) /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" other-param)
) )
Example: The following is an example of this property with formatted
Example: The following is an example of the property with formatted
line breaks in the property value: line breaks in the property value:
DESCRIPTION:Meeting to provide technical review for "Phoenix" DESCRIPTION:Meeting to provide technical review for "Phoenix"
design.\nHappy Face Conference Room. Phoenix design team design.\nHappy Face Conference Room. Phoenix design team
MUST attend this meeting.\nRSVP to team leader. MUST attend this meeting.\nRSVP to team leader.
3.8.1.6. Geographic Position 3.8.1.6. Geographic Position
Property Name: GEO Property Name: GEO
Purpose: This property specifies information related to the global Purpose: This property specifies information related to the global
position for the activity specified by a calendar component. position for the activity specified by a calendar component.
Value Type: FLOAT. The value MUST be two SEMICOLON separated FLOAT Value Type: FLOAT. The value MUST be two SEMICOLON separated FLOAT
values. values.
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: This property can be specified in "VEVENT" or "VTODO" Conformance: This property can be specified in "VEVENT" or "VTODO"
calendar components. calendar components.
Description: This property value specifies latitude and longitude, Description: This property value specifies latitude and longitude,
in that order (i.e., "LAT LON" ordering). The longitude in that order (i.e., "LAT LON" ordering). The longitude
represents the location East or West of the prime meridian as a represents the location East or West of the prime meridian as a
positive or negative real number, respectively. The longitude and positive or negative real number, respectively. The longitude and
latitude values MAY be specified up to six decimal places, which latitude values MAY be specified up to six decimal places, which
will allow for accuracy to within one meter of geographical will allow for accuracy to within one meter of geographical
skipping to change at page 83, line 22 skipping to change at page 83, line 44
precision and MAY truncate values of greater precision. precision and MAY truncate values of greater precision.
Values for latitude and longitude shall be expressed as decimal Values for latitude and longitude shall be expressed as decimal
fractions of degrees. Whole degrees of latitude shall be fractions of degrees. Whole degrees of latitude shall be
represented by a two-digit decimal number ranging from 0 through represented by a two-digit decimal number ranging from 0 through
90. Whole degrees of longitude shall be represented by a decimal 90. Whole degrees of longitude shall be represented by a decimal
number ranging from 0 through 180. When a decimal fraction of a number ranging from 0 through 180. When a decimal fraction of a
degree is specified, it shall be separated from the whole number degree is specified, it shall be separated from the whole number
of degrees by a decimal point. of degrees by a decimal point.
Latitudes north of the equator shall be specified by a plus sign Latitudes North of the equator shall be specified by a plus sign
(+), or by the absence of a minus sign (-), preceding the digits (+), or by the absence of a minus sign (-), preceding the digits
designating degrees. Latitudes south of the Equator shall be designating degrees. Latitudes South of the Equator shall be
designated by a minus sign (-) preceding the digits designating designated by a minus sign (-) preceding the digits designating
degrees. A point on the Equator shall be assigned to the Northern degrees. A point on the Equator shall be assigned to the Northern
Hemisphere. Hemisphere.
Longitudes east of the prime meridian shall be specified by a plus Longitudes east of the prime meridian shall be specified by a plus
sign (+), or by the absence of a minus sign (-), preceding the sign (+), or by the absence of a minus sign (-), preceding the
digits designating degrees. Longitudes west of the meridian shall digits designating degrees. Longitudes west of the meridian shall
be designated by minus sign (-) preceding the digits designating be designated by minus sign (-) preceding the digits designating
degrees. A point on the prime meridian shall be assigned to the degrees. A point on the prime meridian shall be assigned to the
Eastern Hemisphere. A point on the 180th meridian shall be Eastern Hemisphere. A point on the 180th meridian shall be
skipping to change at page 84, line 15 skipping to change at page 84, line 37
The simple formula for converting degrees-minutes-seconds into The simple formula for converting degrees-minutes-seconds into
decimal degrees is: decimal degrees is:
decimal = degrees + minutes/60 + seconds/3600. decimal = degrees + minutes/60 + seconds/3600.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
geo = "GEO" geoparam ":" geovalue CRLF geo = "GEO" geoparam ":" geovalue CRLF
geoparam = *(";" xparam) geoparam = *(";" other-param)
geovalue = float ";" float geovalue = float ";" float
;Latitude and Longitude components ;Latitude and Longitude components
Example: The following is an example of this property: Example: The following is an example of this property:
GEO:37.386013;-122.082932 GEO:37.386013;-122.082932
3.8.1.7. Location 3.8.1.7. Location
skipping to change at page 84, line 27 skipping to change at page 85, line 4
geovalue = float ";" float geovalue = float ";" float
;Latitude and Longitude components ;Latitude and Longitude components
Example: The following is an example of this property: Example: The following is an example of this property:
GEO:37.386013;-122.082932 GEO:37.386013;-122.082932
3.8.1.7. Location 3.8.1.7. Location
Property Name: LOCATION Property Name: LOCATION
Purpose: This property defines the intended venue for the activity Purpose: This property defines the intended venue for the activity
defined by a calendar component. defined by a calendar component.
Value Type: TEXT Value Type: TEXT
Property Parameters: Non-standard, alternate text representation and Property Parameters: IANA, non-standard, alternate text
language property parameters can be specified on this property. representation and language property parameters can be specified
on this property.
Conformance: This property can be specified in "VEVENT" or "VTODO" Conformance: This property can be specified in "VEVENT" or "VTODO"
calendar component. calendar component.
Description: Specific venues such as conference or meeting rooms may Description: Specific venues such as conference or meeting rooms may
be explicitly specified using this property. An alternate be explicitly specified using this property. An alternate
representation may be specified that is a URI that points to representation may be specified that is a URI that points to
directory information with more structured specification of the directory information with more structured specification of the
location. For example, the alternate representation may specify location. For example, the alternate representation may specify
either an LDAP URL [RFC4516] pointing to an LDAP server entry or a either an LDAP URL [RFC4516] pointing to an LDAP server entry or a
skipping to change at page 85, line 17 skipping to change at page 85, line 40
locparam = *( locparam = *(
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" altrepparam) / (";" languageparam) / (";" altrepparam) / (";" languageparam) /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" other-param)
) )
Example: The following are some examples of this property: Example: The following are some examples of this property:
LOCATION:Conference Room - F123\, Bldg. 002 LOCATION:Conference Room - F123\, Bldg. 002
LOCATION;ALTREP="http://xyzcorp.com/conf-rooms/f123.vcf": LOCATION;ALTREP="http://xyzcorp.com/conf-rooms/f123.vcf":
Conference Room - F123\, Bldg. 002 Conference Room - F123\, Bldg. 002
3.8.1.8. Percent Complete 3.8.1.8. Percent Complete
Property Name: PERCENT-COMPLETE Property Name: PERCENT-COMPLETE
Purpose: This property is used by an assignee or delegatee of a 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 to-do to convey the percent completion of a to-do to the
"Organizer". "Organizer".
Value Type: INTEGER Value Type: INTEGER
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: This property can be specified in a "VTODO" calendar Conformance: This property can be specified once in a "VTODO"
component. calendar component.
Description: The property value is a positive integer between zero Description: The property value is a positive integer between zero
and one hundred. A value of "0" indicates the to-do has not yet and one hundred. A value of "0" indicates the to-do has not yet
been started. A value of "100" indicates that the to-do has been been started. A value of "100" indicates that the to-do has been
completed. Integer values in between indicate the percent completed. Integer values in between indicate the percent
partially complete. partially complete.
When a to-do is assigned to multiple individuals, the property When a to-do is assigned to multiple individuals, the property
value indicates the percent complete for that portion of the to-do value indicates the percent complete for that portion of the to-do
assigned to the assignee or delegatee. For example, if a to-do is assigned to the assignee or delegatee. For example, if a to-do is
skipping to change at page 86, line 19 skipping to change at page 86, line 41
percent complete of "70" indicates that "A" has completed 70% of percent complete of "70" indicates that "A" has completed 70% of
the to-do assigned to them. A reply from "B" with a percent the to-do assigned to them. A reply from "B" with a percent
complete of "50" indicates "B" has completed 50% of the to-do complete of "50" indicates "B" has completed 50% of the to-do
assigned to them. assigned to them.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
percent = "PERCENT-COMPLETE" pctparam ":" integer CRLF percent = "PERCENT-COMPLETE" pctparam ":" integer CRLF
pctparam = *(";" xparam) pctparam = *(";" other-param)
Example: The following is an example of this property to show 39% Example: The following is an example of this property to show 39%
completion: completion:
PERCENT-COMPLETE:39 PERCENT-COMPLETE:39
3.8.1.9. Priority 3.8.1.9. Priority
Property Name: PRIORITY Property Name: PRIORITY
Purpose: This property defines the relative priority for a calendar Purpose: This property defines the relative priority for a calendar
component. component.
Value Type: INTEGER Value Type: INTEGER
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: This property can be specified in a "VEVENT" or "VTODO" Conformance: This property can be specified in "VEVENT" and "VTODO"
calendar component. calendar components.
Description: This priority is specified as an integer in the range Description: This 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 57 ) 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
skipping to change at page 87, line 25 skipping to change at page 88, line 5
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.
Format Definition: This . property is defined by the following Format Definition: This property is defined by the following
notation: notation:
priority = "PRIORITY" prioparam ":" priovalue CRLF priority = "PRIORITY" prioparam ":" priovalue CRLF
;Default is zero (i.e., undefined) ;Default is zero (i.e., undefined)
prioparam = *(";" xparam) prioparam = *(";" other-param)
priovalue = integer ;Must be in the range [0..9] priovalue = integer ;Must be in the range [0..9]
; All other values are reserved for future use ; All other values are reserved for future use
Example: 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
skipping to change at page 88, line 14 skipping to change at page 88, line 40
3.8.1.10. Resources 3.8.1.10. Resources
Property Name: RESOURCES Property Name: RESOURCES
Purpose: This property defines the equipment or resources Purpose: This property defines the equipment or resources
anticipated for an activity specified by a calendar component. anticipated for an activity specified by a calendar component.
Value Type: TEXT Value Type: TEXT
Property Parameters: Non-standard, alternate text representation and Property Parameters: IANA, non-standard, alternate text
language property parameters can be specified on this property. representation and language property parameters can be specified
on this property.
Conformance: This property can be specified in "VEVENT" or "VTODO" Conformance: This property can be specified once in "VEVENT" or
calendar component. "VTODO" calendar component.
Description: The property value is an arbitrary text. More than one Description: The property value is an arbitrary text. More than one
resource can be specified as a list of resources separated by the resource can be specified as a list of resources separated by the
COMMA character (US-ASCII decimal 44). COMMA character (US-ASCII decimal 44).
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
resources = "RESOURCES" resrcparam ":" text *("," text) CRLF resources = "RESOURCES" resrcparam ":" text *("," text) CRLF
resrcparam = *( resrcparam = *(
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" altrepparam) / (";" languageparam) / (";" altrepparam) / (";" languageparam) /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" other-param)
) )
Example: The following is an example of this property: Example: The following is an example of this property:
RESOURCES:EASEL,PROJECTOR,VCR RESOURCES:EASEL,PROJECTOR,VCR
RESOURCES;LANGUAGE=fr:1 raton-laveur RESOURCES;LANGUAGE=fr:1 raton-laveur
3.8.1.11. Status 3.8.1.11. Status
Property Name: STATUS Property Name: STATUS
Purpose: This property defines the overall status or confirmation Purpose: This property defines the overall status or confirmation
for the calendar component. for the calendar component.
Value Type: TEXT Value Type: TEXT
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: This property can be specified in "VEVENT", "VTODO" or Conformance: This property can be specified once in "VEVENT",
"VJOURNAL" calendar components. "VTODO" or "VJOURNAL" calendar components.
Description: In a group scheduled calendar component, the property Description: In a group scheduled calendar component, the property
is used by the "Organizer" to provide a confirmation of the event is used by the "Organizer" to provide a confirmation of the event
to the "Attendees". For example in a "VEVENT" calendar component, to the "Attendees". For example in a "VEVENT" calendar component,
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: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
status = "STATUS" statparam ":" statvalue CRLF status = "STATUS" statparam ":" statvalue CRLF
statparam = *(";" xparam) statparam = *(";" other-param)
statvalue = ( "TENTATIVE" ;Indicates event is tentative. statvalue = (statvalue-event
/ statvalue-todo
/ statvalue-jour)
statvalue-event = "TENTATIVE" ;Indicates event is tentative.
/ "CONFIRMED" ;Indicates event is definite. / "CONFIRMED" ;Indicates event is definite.
/ "CANCELLED" ) ;Indicates event was cancelled. / "CANCELLED" ;Indicates event was cancelled.
;Status values for a "VEVENT" ;Status values for a "VEVENT"
/ statvalue-todo = "NEEDS-ACTION" ;Indicates to-do needs action.
( "NEEDS-ACTION" ;Indicates to-do needs action.
/ "COMPLETED" ;Indicates to-do completed. / "COMPLETED" ;Indicates to-do completed.
/ "IN-PROCESS" ;Indicates to-do in process. / "IN-PROCESS" ;Indicates to-do in process of.
/ "CANCELLED" ) ;Indicates to-do was cancelled. / "CANCELLED" ;Indicates to-do was cancelled.
;Status values for "VTODO". ;Status values for "VTODO".
/ statvalue-jour = "DRAFT" ;Indicates journal is draft.
( "DRAFT" ;Indicates journal is draft.
/ "FINAL" ;Indicates journal is final. / "FINAL" ;Indicates journal is final.
/ "CANCELLED" ) ;Indicates journal is removed. / "CANCELLED" ;Indicates journal is removed.
;Status values for "VJOURNAL". ;Status values for "VJOURNAL".
Example: The following is an example of this property for a "VEVENT" Example: The following is an example of this property for a "VEVENT"
calendar component: calendar component:
STATUS:TENTATIVE STATUS:TENTATIVE
The following is an example of this property for a "VTODO" The following is an example of this property for a "VTODO"
calendar component: calendar component:
skipping to change at page 91, line 4 skipping to change at page 91, line 13
STATUS:DRAFT STATUS:DRAFT
3.8.1.12. Summary 3.8.1.12. Summary
Property Name: SUMMARY Property Name: SUMMARY
Purpose: This property defines a short summary or subject for the Purpose: This property defines a short summary or subject for the
calendar component. calendar component.
Value Type: TEXT Value Type: TEXT
Property Parameters: Non-standard, alternate text representation and
language property parameters can be specified on this property. Property Parameters: IANA, non-standard, alternate text
representation and language property parameters can be specified
on this property.
Conformance: The property can be specified in "VEVENT", "VTODO", Conformance: The property can be specified in "VEVENT", "VTODO",
"VJOURNAL" or "VALARM" calendar components. "VJOURNAL" or "VALARM" calendar components.
Description: This property is used in the "VEVENT", "VTODO" and Description: This property is used in the "VEVENT", "VTODO" and
"VJOURNAL" calendar components to capture a short, one line "VJOURNAL" calendar components to capture a short, one line
summary about the activity or journal entry. summary about the activity or journal entry.
This property is used in the "VALARM" calendar component to This property is used in the "VALARM" calendar component to
capture the subject of an EMAIL category of alarm. capture the subject of an EMAIL category of alarm.
skipping to change at page 91, line 32 skipping to change at page 91, line 43
summparam = *( summparam = *(
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" altrepparam) / (";" languageparam) / (";" altrepparam) / (";" languageparam) /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" other-param)
) )
Example: The following is an example of this property: Example: The following is an example of this property:
SUMMARY:Department Party SUMMARY:Department Party
3.8.2. Date and Time Component Properties 3.8.2. Date and Time Component Properties
The following properties specify date and time related information in The following properties specify date and time related information in
skipping to change at page 92, line 4 skipping to change at page 92, line 13
SUMMARY:Department Party SUMMARY:Department Party
3.8.2. Date and Time Component Properties 3.8.2. Date and Time Component Properties
The following properties specify date and time related information in The following properties specify date and time related information in
calendar components. calendar components.
3.8.2.1. Date/Time Completed 3.8.2.1. Date/Time Completed
Property Name: COMPLETED Property Name: COMPLETED
Purpose: This property defines the date and time that a to-do was Purpose: This property defines the date and time that a to-do was
actually completed. actually completed.
Value Type: DATE-TIME Value Type: DATE-TIME
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: The property can be specified in a "VTODO" calendar Conformance: The property can be specified in a "VTODO" calendar
component. component.
Description: The date and time MUST be in a UTC format. Description: The date and time MUST be in a UTC format.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
completed = "COMPLETED" compparam ":" date-time CRLF completed = "COMPLETED" compparam ":" date-time CRLF
compparam = *(";" xparam) compparam = *(";" other-param)
Example: The following is an example of this property: Example: The following is an example of this property:
COMPLETED:19960401T235959Z COMPLETED:19960401T150000Z
3.8.2.2. Date/Time End 3.8.2.2. Date/Time End
Property Name: DTEND Property Name: DTEND
Purpose: This property specifies the date and time that a calendar Purpose: This property specifies the date and time that a calendar
component ends. component ends.
Value Type: The default value type is DATE-TIME. The value type can Value Type: The default value type is DATE-TIME. The value type can
be set to a DATE value type. be set to a DATE value type.
Property Parameters: Non-standard, value data type, time zone Property Parameters: IANA, non-standard, value data type, and time
identifier property parameters can be specified on this property. zone identifier property parameters can be specified on this
property.
Conformance: This property can be specified in "VEVENT" or Conformance: This property can be specified in "VEVENT" or
"VFREEBUSY" calendar components. "VFREEBUSY" calendar components.
Description: Within the "VEVENT" calendar component, this property Description: Within the "VEVENT" calendar component, this property
defines the date and time by which the event ends. The value MUST defines the date and time by which the event ends. The value MUST
be later in time than the value of the "DTSTART" property. be later in time than the value of the "DTSTART" property.
Within the "VFREEBUSY" calendar component, this property defines Within the "VFREEBUSY" calendar component, this property defines
the end date and time for the free or busy time information. The the end date and time for the free or busy time information. The
skipping to change at page 93, line 21 skipping to change at page 93, line 33
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" "VALUE" "=" ("DATE-TIME" / "DATE")) / (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
(";" tzidparam) / (";" tzidparam) /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" other-param)
) )
dtendval = date-time / date dtendval = date-time / date
;Value MUST match value type ;Value MUST match value type
Example: The following is an example of this property: Example: The following is an example of this property:
DTEND:19960401T235959Z DTEND:19960401T150000Z
DTEND;VALUE=DATE:19980704 DTEND;VALUE=DATE:19980704
3.8.2.3. Date/Time Due 3.8.2.3. Date/Time Due
Property Name: DUE Property Name: DUE
Purpose: This property defines the date and time that a to-do is Purpose: This property defines the date and time that a to-do is
expected to be completed. expected to be completed.
Value Type: The default value type is DATE-TIME. The value type can Value Type: The default value type is DATE-TIME. The value type can
be set to a DATE value type. be set to a DATE value type.
Property Parameters: Non-standard, value data type, time zone Property Parameters: IANA, non-standard, value data type, and time
identifier property parameters can be specified on this property. zone identifier property parameters can be specified on this
property.
Conformance: The property can be specified once in a "VTODO" Conformance: The property can be specified once in a "VTODO"
calendar component. calendar component.
Description: The value MUST be a date/time equal to or after the Description: The value MUST be a date/time equal to or after the
"DTSTART" value, if specified. "DTSTART" value, if specified.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
skipping to change at page 94, line 24 skipping to change at page 94, line 38
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" "VALUE" "=" ("DATE-TIME" / "DATE")) / (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
(";" tzidparam) / (";" tzidparam) /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" other-param)
) )
dueval = date-time / date dueval = date-time / date
;Value MUST match value type ;Value MUST match value type
Example: The following is an example of this property: Example: The following is an example of this property:
DUE:19980430T235959Z DUE:19980430T000000Z
3.8.2.4. Date/Time Start 3.8.2.4. Date/Time Start
Property Name: DTSTART Property Name: DTSTART
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 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. MUST be one of the forms defined for the DATE-TIME value type.
The value type can be set to a DATE value type. The value type can be set to a DATE value type.
Property Parameters: Non-standard, value data type, time zone Property Parameters: IANA, non-standard, value data type, and time
identifier property parameters can be specified on this property. zone identifier property parameters can be specified on this
property.
Conformance: This property can be specified in the "VEVENT", Conformance: This property can be specified once in the "VEVENT",
"VTODO", "VFREEBUSY", or "VTIMEZONE" calendar components. This "VTODO", or "VFREEBUSY" calendar components as well as in the
property is REQUIRED in "VEVENT" calendar components and in all "STANDARD" and "DAYLIGHT" sub-components. This property is
types of recurring calendar components. REQUIRED in "VEVENT" calendar components and in all types of
recurring 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. Events can have a defines the start date and time for the event.
start date/time but no end date/time. In that case, the event
does not 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 "STANDARD" and "DAYLIGHT" sub-components, this property
the effective start date and time for a time zone specification. defines the effective start date and time for a time zone
This property is REQUIRED within each "STANDARD" and "DAYLIGHT" specification. This property is REQUIRED within each "STANDARD"
sub-components included in "VTIMEZONE" calendar components and and "DAYLIGHT" sub-components included in "VTIMEZONE" calendar
MUST be specified as a local DATE-TIME without the "TZID" property components and MUST be specified as a local DATE-TIME without the
parameter. "TZID" property parameter.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
dtstart = "DTSTART" dtstparam ":" dtstval CRLF dtstart = "DTSTART" dtstparam ":" dtstval CRLF
dtstparam = *( dtstparam = *(
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" "VALUE" "=" ("DATE-TIME" / "DATE")) / (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
(";" tzidparam) / (";" tzidparam) /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" other-param)
) )
dtstval = date-time / date dtstval = date-time / date
;Value MUST match value type ;Value MUST match value type
Example: The following is an example of this property: Example: The following is an example of this property:
DTSTART:19980118T073000Z DTSTART:19980118T073000Z
skipping to change at page 96, line 4 skipping to change at page 96, line 30
) )
dtstval = date-time / date dtstval = date-time / date
;Value MUST match value type ;Value MUST match value type
Example: The following is an example of this property: Example: The following is an example of this property:
DTSTART:19980118T073000Z DTSTART:19980118T073000Z
3.8.2.5. Duration 3.8.2.5. Duration
Property Name: DURATION Property Name: DURATION
Purpose: This property specifies a positive duration of time. Purpose: This property specifies a positive duration of time.
Value Type: DURATION Value Type: DURATION
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: This property can be specified in "VEVENT", "VTODO", Conformance: This property can be specified in "VEVENT", "VTODO",
"VFREEBUSY" or "VALARM" calendar components. "VFREEBUSY" or "VALARM" calendar components.
Description: In a "VEVENT" calendar component the property may be Description: In a "VEVENT" calendar component the property may be
used to specify a duration of the event, instead of an explicit used to specify a duration of the event, instead of an explicit
end date/time. In a "VTODO" calendar component the property may end date/time. In a "VTODO" calendar component the property may
be used to specify a duration for the to-do, instead of an be used to specify a duration for the to-do, instead of an
explicit due date/time. In a "VFREEBUSY" calendar component the explicit due date/time. In a "VFREEBUSY" calendar component the
property may be used to specify the interval of free time being property may be used to specify the interval of free time being
requested. In a "VALARM" calendar component the property may be requested. In a "VALARM" calendar component the property may be
used to specify the delay period prior to repeating an alarm. used to specify the delay period prior to repeating an alarm.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
duration = "DURATION" durparam ":" dur-value CRLF duration = "DURATION" durparam ":" dur-value CRLF
;consisting of a positive duration of time. ;consisting of a positive duration of time.
durparam = *(";" xparam) durparam = *(";" other-param)
Example: The following is an example of this property that specifies Example: The following is an example of this property that specifies
an interval of time of 1 hour and zero minutes and zero seconds: an interval of time of 1 hour and zero minutes and zero seconds:
DURATION:PT1H0M0S DURATION:PT1H0M0S
The following is an example of this property that specifies an The following is an example of this property that specifies an
interval of time of 15 minutes. interval of time of 15 minutes.
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: This property defines one or more free or busy time Purpose: This property defines one or more free or busy time
intervals. intervals.
Value Type: PERIOD Value Type: PERIOD
Property Parameters: Non-standard or free/busy time type property Property Parameters: IANA, non-standard, and free/busy time type
parameters can be specified on this property. 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
time MUST be a UTC time format. time MUST be a UTC time format.
"FREEBUSY" properties within the "VFREEBUSY" calendar component "FREEBUSY" properties within the "VFREEBUSY" calendar component
SHOULD be sorted in ascending order, based on start time and then SHOULD be sorted in ascending order, based on start time and then
skipping to change at page 97, line 41 skipping to change at page 98, line 19
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) (";" other-param)
) )
fbvalue = period *("," period) fbvalue = period *("," period)
;Time value MUST be in the UTC time format. ;Time value MUST be in the UTC time format.
Example: The following are some examples of this property: Example: The following are some examples of this property:
FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M
skipping to change at page 98, line 21 skipping to change at page 98, line 44
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 Purpose: This property defines whether an event is transparent or
not to busy time searches. not to busy time searches.
Value Type: TEXT Value Type: TEXT
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: This property can be specified once in a "VEVENT" Conformance: This property can be specified once in a "VEVENT"
calendar component. calendar component.
Description: Time Transparency is the characteristic of an event Description: Time Transparency is the characteristic of an event
that determines whether it appears to consume time on a calendar. that 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: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
transp = "TRANSP" transparam ":" transvalue CRLF transp = "TRANSP" transparam ":" transvalue CRLF
transparam = *(";" xparam) transparam = *(";" other-param)
transvalue = "OPAQUE" transvalue = "OPAQUE"
;Blocks or opaque on busy time searches. ;Blocks or opaque on busy time searches.
/ "TRANSPARENT" / "TRANSPARENT"
;Transparent on busy time searches. ;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:
TRANSP:OPAQUE TRANSP:OPAQUE
skipping to change at page 99, line 24 skipping to change at page 99, line 47
3.8.3. Time Zone Component Properties 3.8.3. Time Zone Component Properties
The following properties specify time zone information in calendar The following properties specify time zone information in calendar
components. components.
3.8.3.1. Time Zone Identifier 3.8.3.1. Time Zone Identifier
Property Name: TZID Property Name: TZID
Purpose: This property specifies the text value that uniquely Purpose: This property specifies the text value that uniquely
identifies the "VTIMEZONE" calendar component. identifies the "VTIMEZONE" calendar component in the scope of an
iCalendar object.
Value Type: TEXT Value Type: TEXT
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: This property MUST be specified in a "VTIMEZONE" Conformance: This property MUST be specified in a "VTIMEZONE"
calendar component. calendar component.
Description: This is the label by which a time zone calendar Description: This is the label by which a time zone calendar
component is referenced by any iCalendar properties whose value component is referenced by any iCalendar properties whose value
type is either DATE-TIME or TIME and not intended to specify a UTC type is either DATE-TIME or TIME and not intended to specify a UTC
or a "floating" time. The presence of the SOLIDUS character (US- or a "floating" time. The presence of the SOLIDUS character (US-
ASCII decimal 47) as a prefix, indicates that this "TZID" ASCII decimal 47) as a prefix, indicates that this "TZID"
represents an unique ID in a globally defined time zone registry represents an unique ID in a globally defined time zone registry
(when such registry is defined). (when such registry is defined).
Note: This document does not define a naming convention for Note: This document does not define a naming convention for
time zone identifiers. Implementers may want to use the naming time zone identifiers. Implementers may want to use the naming
conventions defined in existing time zone specifications such conventions defined in existing time zone specifications such
as the public-domain TZ Database [TZDB]. The specification of as the public-domain TZ database [TZDB]. The specification of
globally unique time zone identifiers is not addressed by this globally unique time zone identifiers is not addressed by this
document and is left for future study. document and is left for future study.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
tzid = "TZID" tzidpropparam ":" [tzidprefix] text CRLF tzid = "TZID" tzidpropparam ":" [tzidprefix] text CRLF
tzidpropparam = *(";" xparam) tzidpropparam = *(";" other-param)
;tzidprefix = "/" ;tzidprefix = "/"
; Defined previously. Just listed here for reader convenience. ; Defined previously. Just listed here for reader convenience.
Example: The following are examples of non-globally unique time zone Example: The following are examples of non-globally unique time zone
identifiers: identifiers:
TZID:US-Eastern TZID:America/New_York
TZID:California-Los_Angeles TZID:America/Los_Angeles
The following is an example of a fictitious globally unique time The following is an example of a fictitious globally unique time
zone identifier: zone identifier:
TZID:/US-New_York-New_York TZID:/example.org/America/New_York
3.8.3.2. Time Zone Name 3.8.3.2. Time Zone Name
Property Name: TZNAME Property Name: TZNAME
Purpose: This property specifies the customary designation for a Purpose: This property specifies the customary designation for a
time zone description. time zone description.
Value Type: TEXT Value Type: TEXT
Property Parameters: Non-standard and language property parameters Property Parameters: IANA, non-standard, and language property
can be specified on this property. parameters can be specified on this property.
Conformance: This property can be specified in a "VTIMEZONE" Conformance: This property can be specified in "STANDARD" and
calendar component. "DAYLIGHT" sub-components.
Description: This property may be specified in multiple languages; Description: This property may be specified in multiple languages;
in order to provide for different language requirements. in order to provide for different language requirements.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
tzname = "TZNAME" tznparam ":" text CRLF tzname = "TZNAME" tznparam ":" text CRLF
tznparam = *( tznparam = *(
; the following is OPTIONAL, ; the following is OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" languageparam) / (";" languageparam) /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" other-param)
) )
Example: The following are example of this property: Example: The following are example of this property:
TZNAME:EST TZNAME:EST
The following is an example of this property when two different The following is an example of this property when two different
languages for the time zone name are specified: languages for the time zone name are specified:
skipping to change at page 101, line 40 skipping to change at page 102, line 14
3.8.3.3. Time Zone Offset From 3.8.3.3. Time Zone Offset From
Property Name: TZOFFSETFROM Property Name: TZOFFSETFROM
Purpose: This property specifies the offset which is in use prior to Purpose: This property specifies the offset which is in use prior to
this time zone observance. this time zone observance.
Value Type: UTC-OFFSET Value Type: UTC-OFFSET
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: This property MUST be specified in a "VTIMEZONE" Conformance: This property MUST be specified in "STANDARD" and
calendar component. "DAYLIGHT" sub-components.
Description: This property specifies the offset which is in use Description: This property specifies the offset which is in use
prior to this time observance. It is used to calculate the prior to this time observance. It is used to calculate the
absolute time at which the transition to a given observance takes absolute time at which the transition to a given observance takes
place. This property MUST only be specified in a "VTIMEZONE" place. This property MUST only be specified in a "VTIMEZONE"
calendar component. A "VTIMEZONE" calendar component MUST include calendar component. A "VTIMEZONE" calendar component MUST include
this property. The property value is a signed numeric indicating this property. The property value is a signed numeric indicating
the number of hours and possibly minutes from UTC. Positive the number of hours and possibly minutes from UTC. Positive
numbers represent time zones east of the prime meridian, or ahead numbers represent time zones east of the prime meridian, or ahead
of UTC. Negative numbers represent time zones west of the prime of UTC. Negative numbers represent time zones west of the prime
meridian, or behind UTC. meridian, or behind UTC.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
tzoffsetfrom = "TZOFFSETFROM" frmparam ":" utc-offset tzoffsetfrom = "TZOFFSETFROM" frmparam ":" utc-offset
CRLF CRLF
frmparam = *(";" xparam) frmparam = *(";" other-param)
Example: The following are examples of this property: Example: The following are examples of this property:
TZOFFSETFROM:-0500 TZOFFSETFROM:-0500
TZOFFSETFROM:+1345 TZOFFSETFROM:+1345
3.8.3.4. Time Zone Offset To 3.8.3.4. Time Zone Offset To
Property Name: TZOFFSETTO Property Name: TZOFFSETTO
Purpose: This property specifies the offset which is in use in this Purpose: This property specifies the offset which is in use in this
time zone observance. time zone observance.
Value Type: UTC-OFFSET Value Type: UTC-OFFSET
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: This property MUST be specified in a "VTIMEZONE" Conformance: This property MUST be specified in "STANDARD" and
calendar component. "DAYLIGHT" sub-components.
Description: This property specifies the offset which is in use in Description: This property specifies the offset which is in use in
this time zone observance. It is used to calculate the absolute this time zone observance. It is used to calculate the absolute
time for the new observance. The property value is a signed time for the new observance. The property value is a signed
numeric indicating the number of hours and possibly minutes from numeric indicating the number of hours and possibly minutes from
UTC. Positive numbers represent time zones east of the prime UTC. Positive numbers represent time zones east of the prime
meridian, or ahead of UTC. Negative numbers represent time zones meridian, or ahead of UTC. Negative numbers represent time zones
west of the prime meridian, or behind UTC. west of the prime meridian, or behind UTC.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
tzoffsetto = "TZOFFSETTO" toparam ":" utc-offset CRLF tzoffsetto = "TZOFFSETTO" toparam ":" utc-offset CRLF
toparam = *(";" xparam) toparam = *(";" other-param)
Example: The following are examples of this property: Example: The following are examples of this property:
TZOFFSETTO:-0400 TZOFFSETTO:-0400
TZOFFSETTO:+1245 TZOFFSETTO:+1245
3.8.3.5. Time Zone URL 3.8.3.5. Time Zone URL
Property Name: TZURL Property Name: TZURL
Purpose: This property provides a means for a "VTIMEZONE" component Purpose: This property provides a means for a "VTIMEZONE" component
to point to a network location that can be used to retrieve an up- to point to a network location that can be used to retrieve an up-
to-date version of itself. to-date version of itself.
Value Type: URI Value Type: URI
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: This property can be specified in a "VTIMEZONE" Conformance: This property can be specified in a "VTIMEZONE"
calendar component. calendar component.
Description: This property provides a means for a "VTIMEZONE" Description: This property provides a means for a "VTIMEZONE"
component to point to a network location that can be used to component to point to a network location that can be used to
retrieve an up-to-date version of itself. This provides a hook to retrieve an up-to-date version of itself. This provides a hook to
handle changes government bodies impose upon time zone handle changes government bodies impose upon time zone
definitions. Retrieval of this resource results in an iCalendar definitions. Retrieval of this resource results in an iCalendar
object containing a single "VTIMEZONE" component and a "METHOD" object containing a single "VTIMEZONE" component and a "METHOD"
property set to PUBLISH. property set to PUBLISH.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
tzurl = "TZURL" tzurlparam ":" uri CRLF tzurl = "TZURL" tzurlparam ":" uri CRLF
tzurlparam = *(";" xparam) tzurlparam = *(";" other-param)
Example: The following is an example of this property: Example: The following is an example of this property:
TZURL:http://timezones.example.org/tz/US-California-Los_Angeles.ics TZURL:http://timezones.example.org/tz/America-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
Purpose: This property defines an "Attendee" within a calendar Purpose: This property defines an "Attendee" within a calendar
component. component.
Value Type: CAL-ADDRESS Value Type: CAL-ADDRESS
Property Parameters: Non-standard, language, calendar user type, Property Parameters: IANA, non-standard, language, calendar user
group or list membership, participation role, participation type, group or list membership, participation role, participation
status, RSVP expectation, delegatee, delegator, sent by, common status, RSVP expectation, delegatee, delegator, sent by, common
name or directory entry reference property parameters can be name or directory entry reference property parameters can be
specified on this property. specified on this property.
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 NOT be specified in an iCalendar object when publishing the MUST NOT be specified in an iCalendar object when publishing the
calendar information (e.g., NOT in an iCalendar object that calendar information (e.g., NOT in an iCalendar object that
specifies the publication of a calendar user's busy time, event, specifies the publication of a calendar user's busy time, event,
to-do or journal). This property is not specified in an iCalendar to-do or journal). This property is not specified in an iCalendar
skipping to change at page 105, line 33 skipping to change at page 106, line 22
(";" cutypeparam) / (";" memberparam) / (";" cutypeparam) / (";" memberparam) /
(";" roleparam) / (";" partstatparam) / (";" roleparam) / (";" partstatparam) /
(";" rsvpparam) / (";" deltoparam) / (";" rsvpparam) / (";" deltoparam) /
(";" delfromparam) / (";" sentbyparam) / (";" delfromparam) / (";" sentbyparam) /
(";" cnparam) / (";" dirparam) / (";" cnparam) / (";" dirparam) /
(";" languageparam) / (";" languageparam) /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" other-param)
) )
Example: The following are examples of this property's use for a Example: The following are examples of this property's use for a
to-do: to-do:
ORGANIZER:mailto:jsmith@example.com
ATTENDEE;MEMBER="mailto:DEV-GROUP@example.com": ATTENDEE;MEMBER="mailto:DEV-GROUP@example.com":
mailto:joecool@example.com mailto:joecool@example.com
ATTENDEE;DELEGATED-FROM="mailto:immud@example.com": ATTENDEE;DELEGATED-FROM="mailto:immud@example.com":
mailto:ildoit@example.com mailto:ildoit@example.com
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@example.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Henry ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Henry
Cabot:mailto:hcabot@example.com Cabot:mailto:hcabot@example.com
ATTENDEE;ROLE=REQ-PARTICIPANT;DELEGATED-FROM="mailto:bob@ ATTENDEE;ROLE=REQ-PARTICIPANT;DELEGATED-FROM="mailto:bob@
example.com" example.com";PARTSTAT=ACCEPTED;CN=Jane Doe:mailto:jdoe@
;PARTSTAT=ACCEPTED;CN=Jane Doe:mailto:jdoe@example.com 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://example.com:6666/o=ABC% ATTENDEE;CN=John Smith;DIR="ldap://example.com:6666/o=ABC%
20Industries,c=US???(cn=Jim%20Dolittle)":mailto:jimdo@ 20Industries,c=US???(cn=Jim%20Dolittle)":mailto:jimdo@
example.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@example.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;DELEGATED-FROM= ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;DELEGATED-FROM=
"mailto:iamboss@example.com";CN=Henry Cabot:mailto:hcabot@ "mailto:iamboss@example.com";CN=Henry Cabot:mailto:hcabot@
example.com example.com
ATTENDEE;ROLE=NON-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO= ATTENDEE;ROLE=NON-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO=
"mailto:hcabot@example.com";CN=The Big Cheese:mailto:iamboss "mailto:hcabot@example.com";CN=The Big Cheese:mailto:iamboss
@example.com @example.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Jane Doe ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Jane Doe
:mailto:jdoe@example.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
skipping to change at page 106, line 48 skipping to change at page 107, line 32
3.8.4.2. Contact 3.8.4.2. Contact
Property Name: CONTACT Property Name: CONTACT
Purpose: This property is used to represent contact information or Purpose: This 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
Property Parameters: Non-standard, alternate text representation and Property Parameters: IANA, non-standard, alternate text
language property parameters can be specified on this property. representation and language property parameters can be specified
on this property.
Conformance: This property can be specified in a "VEVENT", "VTODO", Conformance: This property can be specified in a "VEVENT", "VTODO",
"VJOURNAL" or "VFREEBUSY" calendar component. "VJOURNAL" or "VFREEBUSY" calendar component.
Description: The property value consists of textual contact Description: The property value consists of textual contact
information. An alternative representation for the property value information. An alternative representation for the property value
can also be specified that refers to a URI pointing to an can also be specified that refers to a URI pointing to an
alternate form, such as a vCard [RFC2426], for the contact alternate form, such as a vCard [RFC2426], for the contact
information. information.
skipping to change at page 107, line 28 skipping to change at page 108, line 16
contparam = *( contparam = *(
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" altrepparam) / (";" languageparam) / (";" altrepparam) / (";" languageparam) /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" other-param)
) )
Example: The following is an example of this property referencing Example: The following is an example of this property referencing
textual contact information: textual contact information:
CONTACT:Jim Dolittle\, ABC Industries\, +1-919-555-1234 CONTACT:Jim Dolittle\, ABC Industries\, +1-919-555-1234
The following is an example of this property with an alternate The following is an example of this property with an alternate
representation of a LDAP URI to a directory entry containing the representation of a LDAP URI to a directory entry containing the
skipping to change at page 108, line 4 skipping to change at page 108, line 40
c=US???(cn=Jim%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 text/ information, such as a vCard [RFC2426] embedded in a text/
directory media type [RFC2425]: directory media type [RFC2425]:
CONTACT;ALTREP="CID:part3.msg970930T083000SILVER@example.com": CONTACT;ALTREP="CID:part3.msg970930T083000SILVER@example.com":
Jim 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://example.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: This property defines the organizer for a calendar Purpose: This property defines the organizer for a calendar
component. component.
Value Type: CAL-ADDRESS Value Type: CAL-ADDRESS
Property Parameters: Non-standard, language, common name, directory Property Parameters: IANA, non-standard, language, common name,
entry reference, sent by property parameters can be specified on directory entry reference, sent by property parameters can be
this property. specified on this property.
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 components that are not zone definition or that defines calendar components that are not
group scheduled components, but are components only on a single group scheduled components, but are components only on a single
user's calendar. user's calendar.
skipping to change at page 109, line 22 skipping to change at page 110, line 19
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" cnparam) / (";" dirparam) / (";" sentbyparam) / (";" cnparam) / (";" dirparam) / (";" sentbyparam) /
(";" languageparam) / (";" languageparam) /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" other-param)
) )
Example: The following is an example of this property: Example: The following is an example of this property:
ORGANIZER;CN=John Smith:mailto:jsmith@example.com ORGANIZER;CN=John Smith:mailto:jsmith@example.com
The following is an example of this property with a pointer to the The following is an example of this property with a pointer to the
directory information associated with the organizer: directory information associated with the organizer:
skipping to change at page 109, line 51 skipping to change at page 110, line 48
ORGANIZER;SENT-BY="mailto:jane_doe@example.com": ORGANIZER;SENT-BY="mailto:jane_doe@example.com":
mailto:jsmith@example.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 original value of the "DTSTART" property of the
recurrence instance. recurrence instance.
Value Type: The default value type for this property is DATE-TIME. Value Type: The default value type for this property is DATE-TIME.
The time format can be any of the valid forms defined for a DATE- The time format can be any of the valid forms defined for a DATE-
TIME value type. See DATE-TIME value type definition for specific TIME value type. See DATE-TIME value type definition for specific
interpretations of the various forms. The value type can be set interpretations of the various forms. The value type can be set
to DATE. to DATE.
Property Parameters: Non-standard property, value data type, and Property Parameters: IANA, non-standard, value data type, and time
time zone identifier parameters can be specified on this property. zone identifier parameters can be specified on this property.
Conformance: This property can be specified in an iCalendar object Conformance: This property can be specified in an iCalendar object
containing a recurring calendar component. containing a recurring calendar component.
Description: The full range of calendar components specified by a Description: The full range of calendar components specified by a
recurrence set is referenced by referring to just the "UID" recurrence set is referenced by referring to just the "UID"
property value corresponding to the calendar component. The property value corresponding to the calendar component. The
"RECURRENCE-ID" property allows the reference to an individual "RECURRENCE-ID" property allows the reference to an individual
instance within the recurrence set. instance within the recurrence set.
skipping to change at page 110, line 35 skipping to change at page 111, line 35
The date/time value is set to the time when the original The date/time value is set to the time when the original
recurrence instance would occur; meaning that if the intent is to recurrence instance would occur; meaning that if the intent is to
change a Friday meeting to Thursday, the date/time is still set to change a Friday meeting to Thursday, the date/time is still set to
the original Friday meeting. the original Friday meeting.
The "RECURRENCE-ID" property is used in conjunction with the "UID" The "RECURRENCE-ID" property is used in conjunction with the "UID"
and "SEQUENCE" property to identify a particular instance of a and "SEQUENCE" property to identify a particular instance of a
recurring event, to-do or journal. For a given pair of "UID" and recurring event, to-do or journal. For a given pair of "UID" and
"SEQUENCE" property values, the "RECURRENCE-ID" value for a "SEQUENCE" property values, the "RECURRENCE-ID" value for a
recurrence instance is fixed. When the definition of the recurrence instance is fixed.
recurrence set for a calendar component changes, and hence the
"SEQUENCE" property value changes, the "RECURRENCE-ID" for a given
recurrence instance might also change.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
recurid = "RECURRENCE-ID" ridparam ":" ridval CRLF recurid = "RECURRENCE-ID" ridparam ":" ridval CRLF
ridparam = *( ridparam = *(
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" "VALUE" "=" ("DATE-TIME" / "DATE")) / (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
(";" tzidparam) / (";" tzidparam) /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" other-param)
) )
ridval = date-time / date ridval = date-time / date
;Value MUST match value type ;Value MUST match value type
Example: The following are examples of this property: Example: The following are examples of this property:
RECURRENCE-ID;VALUE=DATE:19960401 RECURRENCE-ID;VALUE=DATE:19960401
skipping to change at page 111, line 40 skipping to change at page 112, line 40
3.8.4.5. Related To 3.8.4.5. Related To
Property Name: RELATED-TO Property Name: RELATED-TO
Purpose: This property is used to represent a relationship or Purpose: This property is used to represent a relationship or
reference between one calendar component and another. reference between one calendar component and another.
Value Type: TEXT Value Type: TEXT
Property Parameters: Non-standard and relationship type property Property Parameters: IANA, non-standard, and relationship type
parameters can be specified on this property. property parameters can be specified on this property.
Conformance: This property can be specified one or more times in the Conformance: This property can be specified in the "VEVENT", "VTODO"
"VEVENT", "VTODO" or "VJOURNAL" calendar components. and "VJOURNAL" calendar components.
Description: The property value consists of the persistent, globally Description: The property value consists of the persistent, globally
unique identifier of another calendar component. This value would unique identifier of another calendar component. This value would
be represented in a calendar component by the "UID" property. be represented in a calendar component by the "UID" property.
By default, the property value points to another calendar By default, the property value points to another calendar
component that has a PARENT relationship to the referencing component that has a PARENT relationship to the referencing
object. The "RELTYPE" property parameter is used to either object. The "RELTYPE" property parameter is used to either
explicitly state the default PARENT relationship type to the explicitly state the default PARENT relationship type to the
referenced calendar component or to override the default PARENT referenced calendar component or to override the default PARENT
skipping to change at page 112, line 45 skipping to change at page 113, line 45
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
(";" xparam) (";" other-param)
) )
The following is an example of this property: The following is an example of this property:
RELATED-TO:jsmith.part7.19960817T083000.xyzMail@example.com RELATED-TO:jsmith.part7.19960817T083000.xyzMail@example.com
RELATED-TO:19960401-080045-4000F192713-0052@example.com RELATED-TO:19960401-080045-4000F192713-0052@example.com
3.8.4.6. Uniform Resource Locator 3.8.4.6. Uniform Resource Locator
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
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: This property can be specified once in the "VEVENT", Conformance: This property can be specified once in the "VEVENT",
"VTODO", "VJOURNAL" or "VFREEBUSY" calendar components. "VTODO", "VJOURNAL" or "VFREEBUSY" calendar components.
Description: This property may be used in a calendar component to Description: This property may be used in a calendar component to
convey a location where a more dynamic rendition of the calendar convey a location where a more dynamic rendition of the calendar
information associated with the calendar component can be found. information associated with the calendar component can be found.
This memo does not attempt to standardize the form of the URI, nor This memo does not attempt to standardize the form of the URI, nor
the format of the resource pointed to by the property value. If the format of the resource pointed to by the property value. If
the URL property and Content-Location MIME header are both the URL property and Content-Location MIME header are both
specified, they MUST point to the same resource. specified, they MUST point to the same resource.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
url = "URL" urlparam ":" uri CRLF url = "URL" urlparam ":" uri CRLF
urlparam = *(";" xparam) urlparam = *(";" other-param)
Example: The following is an example of this property: Example: The following is an example of this property:
URL:http://abc.com/pub/calendars/jsmith/mytime.ics URL:http://example.com/pub/calendars/jsmith/mytime.ics
3.8.4.7. Unique Identifier 3.8.4.7. Unique Identifier
Property Name: UID Property Name: UID
Purpose: This property defines the persistent, globally unique Purpose: This property defines the persistent, globally unique
identifier for the calendar component. identifier for the calendar component.
Value Type: TEXT Value Type: TEXT
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: The property MUST be specified in the "VEVENT", Conformance: The property MUST be specified in the "VEVENT",
"VTODO", "VJOURNAL" or "VFREEBUSY" calendar components. "VTODO", "VJOURNAL" or "VFREEBUSY" calendar components.
Description: The "UID" itself MUST be a globally unique identifier. Description: The "UID" itself MUST be a globally unique identifier.
The generator of the identifier MUST guarantee that the identifier The generator of the identifier MUST guarantee that the identifier
is unique. There are several algorithms that can be used to is unique. There are several algorithms that can be used to
accomplish this. The identifier is RECOMMENDED to be the accomplish this. The identifier is RECOMMENDED to be the
identical syntax to the [RFC2822] 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
skipping to change at page 115, line 14 skipping to change at page 116, line 14
Implementations MUST be able to receive and persist values of at Implementations MUST be able to receive and persist values of at
least 255 octets for this property but MUST NOT truncate values in least 255 octets for this property but MUST NOT truncate values in
the middle of a UTF-8 multi-octet sequence. the middle of a UTF-8 multi-octet sequence.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
uid = "UID" uidparam ":" text CRLF uid = "UID" uidparam ":" text CRLF
uidparam = *(";" xparam) uidparam = *(";" other-param)
Example: The following is an example of this property: Example: The following is an example of this property:
UID:19960401T080045Z-4000F192713-0052@example.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.
skipping to change at page 115, line 36 skipping to change at page 116, line 36
Property Name: EXDATE Property Name: EXDATE
Purpose: This property defines the list of date/time exceptions for Purpose: This property defines the list of date/time exceptions for
recurring events, to-dos, journal entries or time zone recurring events, to-dos, journal entries or time zone
definitions. definitions.
Value Type: The default value type for this property is DATE-TIME. Value Type: The default value type for this property is DATE-TIME.
The value type can be set to DATE. The value type can be set to DATE.
Property Parameters: Non-standard, value data type and time zone Property Parameters: IANA, non-standard, value data type and time
identifier property parameters can be specified on this property. zone identifier property parameters can be specified on this
property.
Conformance: This property can be specified in recurring "VEVENT", Conformance: This property can be specified in recurring "VEVENT",
"VTODO", and "VJOURNAL" calendar components as well as in the "VTODO", and "VJOURNAL" calendar components as well as in the
"STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE" "STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE"
calendar component. calendar component.
Description: The exception dates, if specified, are used in Description: The exception dates, if specified, are used in
computing the recurrence set. The recurrence set is the complete computing the recurrence set. The recurrence set is the complete
set of recurrence instances for a calendar component. The set of recurrence instances for a calendar component. The
recurrence set is generated by considering the initial "DTSTART" recurrence set is generated by considering the initial "DTSTART"
skipping to change at page 116, line 11 skipping to change at page 117, line 12
defines the first instance in the recurrence set. The "DTSTART" defines the first instance in the recurrence set. The "DTSTART"
property value SHOULD match the pattern of the recurrence rule, if property value SHOULD match the pattern of the recurrence rule, if
specified. The recurrence set generated with a "DTSTART" property specified. The recurrence set generated with a "DTSTART" property
value that doesn't match the pattern of the rule is undefined. value that doesn't match the pattern of the rule is undefined.
The final recurrence set is generated by gathering all of the The final recurrence set is generated by gathering all of the
start date-times generated by any of the specified "RRULE" and start date-times generated by any of the specified "RRULE" and
"RDATE" properties, and then excluding any start date and times "RDATE" properties, and then excluding any start date and times
specified by "EXDATE" properties. This implies that start date specified by "EXDATE" properties. This implies that start date
and times specified by "EXDATE" properties take precedence over and times specified by "EXDATE" properties take precedence over
those specified by inclusion properties (i.e., "RDATE" and those specified by inclusion properties (i.e., "RDATE" and
"RRULE"). Where duplicate instances are generated by the "RRULE" "RRULE"). When duplicate instances are generated by the "RRULE"
and "RDATE" properties, only one recurrence is considered. and "RDATE" properties, only one recurrence is considered.
Duplicate instances are ignored. Duplicate instances are ignored.
The "EXDATE" property can be used to exclude the value specified The "EXDATE" property can be used to exclude the value specified
in "DTSTART". However, in such cases the original "DTSTART" date in "DTSTART". However, in such cases the original "DTSTART" date
MUST still be maintained by the calendaring and scheduling system MUST still be maintained by the calendaring and scheduling system
because the original "DTSTART" value has inherent usage because the original "DTSTART" value has inherent usage
dependencies by other properties such as the "RECURRENCE-ID". dependencies by other properties such as the "RECURRENCE-ID".
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
skipping to change at page 116, line 38 skipping to change at page 117, line 39
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" "VALUE" "=" ("DATE-TIME" / "DATE")) / (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
(";" tzidparam) / (";" tzidparam) /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" other-param)
) )
exdtval = date-time / date exdtval = date-time / date
;Value MUST match value type ;Value MUST match value type
Example: The following is an example of this property: Example: The following is an example of this property:
EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z
3.8.5.2. Recurrence Date/Times 3.8.5.2. Recurrence Date/Times
Property Name: RDATE Property Name: RDATE
Purpose: This property defines the list of date/times for recurring Purpose: This property defines the list of date/times for recurring
events, to-dos, journal entries or time zone definitions. events, to-dos, journal entries or time zone definitions.
Value Type: The default value type for this property is DATE-TIME. Value Type: The default value type for this property is DATE-TIME.
The value type can be set to DATE or PERIOD. The value type can be set to DATE or PERIOD.
Property Parameters: Non-standard, value data type and time zone Property Parameters: IANA, non-standard, value data type and time
identifier property parameters can be specified on this property. zone identifier property parameters can be specified on this
property.
Conformance: This property can be specified in recurring "VEVENT", Conformance: This property can be specified in recurring "VEVENT",
"VTODO", and "VJOURNAL" calendar components as well as in the "VTODO", and "VJOURNAL" calendar components as well as in the
"STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE" "STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE"
calendar component. calendar component.
Description: This property can appear along with the "RRULE" Description: This property can appear along with the "RRULE"
property to define an aggregate set of repeating occurrences. property to define an aggregate set of repeating occurrences.
When they both appear in a recurring component, the recurrence When they both appear in a recurring component, the recurrence
instances are defined by the union of occurrences defined by both instances are defined by the union of occurrences defined by both
skipping to change at page 118, line 18 skipping to change at page 119, line 21
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" "VALUE" "=" ("DATE-TIME" / "DATE" / "PERIOD")) / (";" "VALUE" "=" ("DATE-TIME" / "DATE" / "PERIOD")) /
(";" tzidparam) / (";" tzidparam) /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" other-param)
) )
rdtval = date-time / date / period rdtval = date-time / date / period
;Value MUST match value type ;Value MUST match value type
Example: The following are examples of this property: Example: The following are examples of this property:
RDATE:19970714T123000Z RDATE:19970714T123000Z
RDATE;TZID=America/New_York:19970714T083000
RDATE;TZID=US-EASTERN:19970714T083000
RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z, RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z,
19960404T010000Z/PT3H 19960404T010000Z/PT3H
RDATE;VALUE=DATE:19970101,19970120,19970217,19970421 RDATE;VALUE=DATE:19970101,19970120,19970217,19970421
19970526,19970704,19970901,19971014,19971128,19971129,19971225 19970526,19970704,19970901,19971014,19971128,19971129,19971225
3.8.5.3. Recurrence Rule 3.8.5.3. Recurrence Rule
Property Name: RRULE Property Name: RRULE
Purpose: This property defines a rule or repeating pattern for Purpose: This property defines a rule or repeating pattern for
recurring events, to-dos, journal entries or time zone recurring events, to-dos, journal entries or time zone
definitions. definitions.
Value Type: RECUR Value Type: RECUR
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: This property can be specified in recurring "VEVENT", Conformance: This property can be specified in recurring "VEVENT",
"VTODO" and "VJOURNAL" calendar components as well as in the "VTODO" and "VJOURNAL" calendar components as well as in the
"STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE" "STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE"
calendar component, but it SHOULD NOT be specified more than once. calendar component, but it SHOULD NOT be specified more than once.
The recurrence set generated with multiple "RRULE" properties is The recurrence set generated with multiple "RRULE" properties is
undefined. undefined.
Description: The recurrence rule, if specified, is used in computing Description: The recurrence rule, if specified, is used in computing
the recurrence set. The recurrence set is the complete set of the recurrence set. The recurrence set is the complete set of
recurrence instances for a calendar component. The recurrence set recurrence instances for a calendar component. The recurrence set
is generated by considering the initial "DTSTART" property along is generated by considering the initial "DTSTART" property along
with the "RRULE", "RDATE", and "EXDATE" properties contained with the "RRULE", "RDATE", and "EXDATE" properties contained
within the recurring component. The "DTSTART" property defines within the recurring component. The "DTSTART" property defines
the first instance in the recurrence set. The "DTSTART" property the first instance in the recurrence set. The "DTSTART" property
value SHOULD match the pattern of the recurrence rule, if value SHOULD be synchronized with the recurrence rule, if
specified. The recurrence set generated with a "DTSTART" property specified. The recurrence set generated with a "DTSTART" property
value that doesn't match the pattern of the rule is undefined. value not synchronized with the recurrence rule is undefined. The
The final recurrence set is generated by gathering all of the final recurrence set is generated by gathering all of the start
start date/times generated by any of the specified "RRULE" and date/times generated by any of the specified "RRULE" and "RDATE"
"RDATE" properties, and then excluding any start date/times properties, and then excluding any start date/times specified by
specified by "EXDATE" properties. This implies that start date/ "EXDATE" properties. This implies that start date/times specified
times specified by "EXDATE" properties take precedence over those by "EXDATE" properties take precedence over those specified by
specified by inclusion properties (i.e., "RDATE" and "RRULE"). inclusion properties (i.e., "RDATE" and "RRULE"). Where duplicate
Where duplicate instances are generated by the "RRULE" and "RDATE" instances are generated by the "RRULE" and "RDATE" properties,
properties, only one recurrence is considered. Duplicate only one recurrence is considered. Duplicate instances are
instances are ignored. ignored.
The "DTSTART" property specified within the iCalendar object The "DTSTART" property specified within the iCalendar object
defines the first instance of the recurrence. In most cases, a defines the first instance of the recurrence. In most cases, a
"DTSTART" property of DATE-TIME value type used with a recurrence "DTSTART" property of DATE-TIME value type used with a recurrence
rule, should be specified as a date with local time and time zone rule, should be specified as a date with local time and time zone
reference to make sure all the recurrence instances start at the reference to make sure all the recurrence instances start at the
same local time regardless of time zone changes. same local time regardless of time zone changes.
Any duration associated with the calendar component applies to all If the duration of the recurring component is specified with the
members of the generated recurrence set. The duration of a "DTEND" or "DUE" property, then the same exact duration will apply
specific recurrence may be modified in an exception component or to all the members of the generated recurrence set. Else, if the
simply by using an "RDATE" property of PERIOD value type. duration of the recurring component is specified with the
"DURATION" property, then the same nominal duration will apply to
all the members of the generated recurrence set and the exact
duration of each recurrence instance will depend on its specific
start time. For example, recurrence instances of a nominal
duration of one day will have an exact duration of more or less
than 24 hours on a day where a time zone shift occurs. The
duration of a specific recurrence may be modified in an exception
component or simply by using an "RDATE" property of PERIOD value
type.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
rrule = "RRULE" rrulparam ":" recur CRLF rrule = "RRULE" rrulparam ":" recur CRLF
rrulparam = *(";" xparam) rrulparam = *(";" other-param)
Example: All examples assume the Eastern United States time zone. Example: All examples assume the Eastern United States time zone.
Daily for 10 occurrences: Daily for 10 occurrences:
DTSTART;TZID=US-Eastern:19970902T090000 DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=DAILY;COUNT=10 RRULE:FREQ=DAILY;COUNT=10
==> (1997 9:00 AM EDT) September 2-11 ==> (1997 9:00 AM EDT) September 2-11
Daily until December 24, 1997: Daily until December 24, 1997:
DTSTART;TZID=US-Eastern:19970902T090000 DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=DAILY;UNTIL=19971224T000000Z RRULE:FREQ=DAILY;UNTIL=19971224T000000Z
==> (1997 9:00 AM EDT) September 2-30;October 1-25 ==> (1997 9:00 AM EDT) September 2-30;October 1-25
(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=America/New_York:19970902T090000
RRULE:FREQ=DAILY;INTERVAL=2 RRULE:FREQ=DAILY;INTERVAL=2
==> (1997 9:00 AM EDT) September 2,4,6,8...24,26,28,30; ==> (1997 9:00 AM EDT) September 2,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; (1997 9:00 AM EST) October 26,28,30;
November 1,3,5,7...25,27,29; November 1,3,5,7...25,27,29;
December 1,3,... December 1,3,...
Every 10 days, 5 occurrences: Every 10 days, 5 occurrences:
DTSTART;TZID=US-Eastern:19970902T090000 DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5 RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5
==> (1997 9:00 AM EDT) September 2,12,22; ==> (1997 9:00 AM EDT) September 2,12,22;
October 2,12 October 2,12
Everyday in January, for 3 years: Everyday in January, for 3 years:
DTSTART;TZID=US-Eastern:19980101T090000 DTSTART;TZID=America/New_York:19980101T090000
RRULE:FREQ=YEARLY;UNTIL=20000131T140000Z; 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=20000131T140000Z;BYMONTH=1 RRULE:FREQ=DAILY;UNTIL=20000131T140000Z;BYMONTH=1
==> (1998 9:00 AM EST)January 1-31 ==> (1998 9:00 AM EST)January 1-31
(1999 9:00 AM EST)January 1-31 (1999 9:00 AM EST)January 1-31
(2000 9:00 AM EST)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=America/New_York: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
DTSTART;TZID=US-Eastern:19970902T090000 DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=WEEKLY;UNTIL=19971224T000000Z RRULE:FREQ=WEEKLY;UNTIL=19971224T000000Z
==> (1997 9:00 AM EDT) September 2,9,16,23,30; ==> (1997 9:00 AM EDT) September 2,9,16,23,30;
October 7,14,21 October 7,14,21
(1997 9:00 AM EST) October 28; (1997 9:00 AM EST) October 28;
November 4,11,18,25; November 4,11,18,25;
December 2,9,16,23 December 2,9,16,23
Every other week - forever: Every other week - forever:
DTSTART;TZID=US-Eastern:19970902T090000 DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=SU RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=SU
==> (1997 9:00 AM EDT) September 2,16,30; ==> (1997 9:00 AM EDT) September 2,16,30;
October 14 October 14
(1997 9:00 AM EST) October 28; (1997 9:00 AM EST) October 28;
November 11,25; November 11,25;
December 9,23 December 9,23
(1998 9:00 AM EST) January 6,20; (1998 9:00 AM EST) January 6,20;
February 3, 17 February 3, 17
... ...
Weekly on Tuesday and Thursday for 5 weeks: Weekly on Tuesday and Thursday for 5 weeks:
DTSTART;TZID=US-Eastern:19970902T090000 DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH RRULE:FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH
or or
RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH
==> (1997 9:00 AM EDT) September 2,4,9,11,16,18,23,25,30; ==> (1997 9:00 AM EDT) September 2,4,9,11,16,18,23,25,30;
October 2 October 2
Every other week on Monday, Wednesday and Friday until December Every other week on Monday, Wednesday and Friday until December
24, 1997, but starting on Tuesday, September 2, 1997: 24, 1997, starting on Monday, September 1, 1997:
DTSTART;TZID=US-Eastern:19970902T090000 DTSTART;TZID=America/New_York:19970901T090000
RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU; RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;
BYDAY=MO,WE,FR BYDAY=MO,WE,FR
==> (1997 9:00 AM EDT) September 2,3,5,15,17,19,29; ==> (1997 9:00 AM EDT) September 1,3,5,15,17,19,29;
October 1,3,13,15,17 October 1,3,13,15,17
(1997 9:00 AM EST) October 27,29,31; (1997 9:00 AM EST) October 27,29,31;
November 10,12,14,24,26,28; November 10,12,14,24,26,28;
December 8,10,12,22 December 8,10,12,22
Every other week on Tuesday and Thursday, for 8 occurrences: Every other week on Tuesday and Thursday, for 8 occurrences:
DTSTART;TZID=US-Eastern:19970902T090000 DTSTART;TZID=America/New_York:19970902T090000
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; ==> (1997 9:00 AM EDT) September 2,4,16,18,30;
October 2,14,16 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=America/New_York: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;December 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=America/New_York: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
Every other month on the 1st and last Sunday of the month for 10 Every other month on the 1st and last Sunday of the month for 10
occurrences: occurrences:
DTSTART;TZID=US-Eastern:19970907T090000 DTSTART;TZID=America/New_York:19970907T090000
RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU
==> (1997 9:00 AM EDT) September 7,28 ==> (1997 9:00 AM EDT) September 7,28
(1997 9:00 AM EST) November 2,30 (1997 9:00 AM EST) November 2,30
(1998 9:00 AM EST) January 4,25;March 1,29 (1998 9:00 AM EST) January 4,25;March 1,29
(1998 9:00 AM EDT) May 3,31 (1998 9:00 AM EDT) May 3,31
Monthly on the second to last Monday of the month for 6 months: Monthly on the second to last Monday of the month for 6 months:
DTSTART;TZID=US-Eastern:19970922T090000 DTSTART;TZID=America/New_York:19970922T090000
RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO
==> (1997 9:00 AM EDT) September 22;October 20 ==> (1997 9:00 AM EDT) September 22;October 20
(1997 9:00 AM EST) November 17;December 22 (1997 9:00 AM EST) November 17;December 22
(1998 9:00 AM EST) January 19;February 16 (1998 9:00 AM EST) January 19;February 16
Monthly on the third to the last day of the month, forever: Monthly on the third to the last day of the month, forever:
DTSTART;TZID=US-Eastern:19970928T090000 DTSTART;TZID=America/New_York:19970928T090000
RRULE:FREQ=MONTHLY;BYMONTHDAY=-3 RRULE:FREQ=MONTHLY;BYMONTHDAY=-3
==> (1997 9:00 AM EDT) September 28 ==> (1997 9:00 AM EDT) September 28
(1997 9:00 AM EST) October 29;November 28;December 29 (1997 9:00 AM EST) October 29;November 28;December 29
(1998 9:00 AM EST) January 29;February 26 (1998 9:00 AM EST) January 29;February 26
... ...
Monthly on the 2nd and 15th of the month for 10 occurrences: Monthly on the 2nd and 15th of the month for 10 occurrences:
DTSTART;TZID=US-Eastern:19970902T090000 DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15 RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15
==> (1997 9:00 AM EDT) September 2,15;October 2,15 ==> (1997 9:00 AM EDT) September 2,15;October 2,15
(1997 9:00 AM EST) November 2,15;December 2,15 (1997 9:00 AM EST) November 2,15;December 2,15
(1998 9:00 AM EST) January 2,15 (1998 9:00 AM EST) January 2,15
Monthly on the first and last day of the month for 10 occurrences: Monthly on the first and last day of the month for 10 occurrences:
DTSTART;TZID=US-Eastern:19970930T090000 DTSTART;TZID=America/New_York:19970930T090000
RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1 RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1
==> (1997 9:00 AM EDT) September 30;October 1 ==> (1997 9:00 AM EDT) September 30;October 1
(1997 9:00 AM EST) October 31;November 1,30;December 1,31 (1997 9:00 AM EST) October 31;November 1,30;December 1,31
(1998 9:00 AM EST) January 1,31;February 1 (1998 9:00 AM EST) January 1,31;February 1
Every 18 months on the 10th thru 15th of the month for 10 Every 18 months on the 10th thru 15th of the month for 10
occurrences: occurrences:
DTSTART;TZID=US-Eastern:19970910T090000 DTSTART;TZID=America/New_York:19970910T090000
RRULE:FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12, RRULE:FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,
13,14,15 13,14,15
==> (1997 9:00 AM EDT) September 10,11,12,13,14,15 ==> (1997 9:00 AM EDT) September 10,11,12,13,14,15
(1999 9:00 AM EST) March 10,11,12,13 (1999 9:00 AM EST) March 10,11,12,13
Every Tuesday, every other month: Every Tuesday, every other month:
DTSTART;TZID=US-Eastern:19970902T090000 DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU
==> (1997 9:00 AM EDT) September 2,9,16,23,30 ==> (1997 9:00 AM EDT) September 2,9,16,23,30
(1997 9:00 AM EST) November 4,11,18,25 (1997 9:00 AM EST) November 4,11,18,25
(1998 9:00 AM EST) January 6,13,20,27;March 3,10,17,24,31 (1998 9:00 AM EST) January 6,13,20,27;March 3,10,17,24,31
... ...
Yearly in June and July for 10 occurrences: Yearly in June and July for 10 occurrences:
DTSTART;TZID=US-Eastern:19970610T090000 DTSTART;TZID=America/New_York:19970610T090000
RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7 RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7
==> (1997 9:00 AM EDT) June 10;July 10 ==> (1997 9:00 AM EDT) June 10;July 10
(1998 9:00 AM EDT) June 10;July 10 (1998 9:00 AM EDT) June 10;July 10
(1999 9:00 AM EDT) June 10;July 10 (1999 9:00 AM EDT) June 10;July 10
(2000 9:00 AM EDT) June 10;July 10 (2000 9:00 AM EDT) June 10;July 10
(2001 9:00 AM EDT) June 10;July 10 (2001 9:00 AM EDT) June 10;July 10
Note: Since none of the BYDAY, BYMONTHDAY or BYYEARDAY Note: Since none of the BYDAY, BYMONTHDAY or BYYEARDAY
components are specified, the day is gotten from "DTSTART" components are specified, the day is gotten from "DTSTART"
Every other year on January, February, and March for 10 Every other year on January, February, and March for 10
occurrences: occurrences:
DTSTART;TZID=US-Eastern:19970310T090000 DTSTART;TZID=America/New_York:19970310T090000
RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3 RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3
==> (1997 9:00 AM EST) March 10 ==> (1997 9:00 AM EST) March 10
(1999 9:00 AM EST) January 10;February 10;March 10 (1999 9:00 AM EST) January 10;February 10;March 10
(2001 9:00 AM EST) January 10;February 10;March 10 (2001 9:00 AM EST) January 10;February 10;March 10
(2003 9:00 AM EST) January 10;February 10;March 10 (2003 9:00 AM EST) January 10;February 10;March 10
Every 3rd year on the 1st, 100th and 200th day for 10 occurrences: Every 3rd year on the 1st, 100th and 200th day for 10 occurrences:
DTSTART;TZID=US-Eastern:19970101T090000 DTSTART;TZID=America/New_York:19970101T090000
RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200 RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200
==> (1997 9:00 AM EST) January 1 ==> (1997 9:00 AM EST) January 1
(1997 9:00 AM EDT) April 10;July 19 (1997 9:00 AM EDT) April 10;July 19
(2000 9:00 AM EST) January 1 (2000 9:00 AM EST) January 1
(2000 9:00 AM EDT) April 9;July 18 (2000 9:00 AM EDT) April 9;July 18
(2003 9:00 AM EST) January 1 (2003 9:00 AM EST) January 1
(2003 9:00 AM EDT) April 10;July 19 (2003 9:00 AM EDT) April 10;July 19
(2006 9:00 AM EST) January 1 (2006 9:00 AM EST) January 1
Every 20th Monday of the year, forever: Every 20th Monday of the year, forever:
DTSTART;TZID=US-Eastern:19970519T090000 DTSTART;TZID=America/New_York:19970519T090000
RRULE:FREQ=YEARLY;BYDAY=20MO RRULE:FREQ=YEARLY;BYDAY=20MO
==> (1997 9:00 AM EDT) May 19 ==> (1997 9:00 AM EDT) May 19
(1998 9:00 AM EDT) May 18 (1998 9:00 AM EDT) May 18
(1999 9:00 AM EDT) May 17 (1999 9:00 AM EDT) May 17
... ...
Monday of week number 20 (where the default start of the week is Monday of week number 20 (where the default start of the week is
Monday), forever: Monday), forever:
DTSTART;TZID=US-Eastern:19970512T090000 DTSTART;TZID=America/New_York:19970512T090000
RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO
==> (1997 9:00 AM EDT) May 12 ==> (1997 9:00 AM EDT) May 12
(1998 9:00 AM EDT) May 11 (1998 9:00 AM EDT) May 11
(1999 9:00 AM EDT) May 17 (1999 9:00 AM EDT) May 17
... ...
Every Thursday in March, forever: Every Thursday in March, forever:
DTSTART;TZID=US-Eastern:19970313T090000 DTSTART;TZID=America/New_York:19970313T090000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH
==> (1997 9:00 AM EST) March 13,20,27 ==> (1997 9:00 AM EST) March 13,20,27
(1998 9:00 AM EST) March 5,12,19,26 (1998 9:00 AM EST) March 5,12,19,26
(1999 9:00 AM EST) March 4,11,18,25 (1999 9:00 AM EST) March 4,11,18,25
... ...
Every Thursday, but only during June, July, and August, forever: Every Thursday, but only during June, July, and August, forever:
DTSTART;TZID=US-Eastern:19970605T090000 DTSTART;TZID=America/New_York:19970605T090000
RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8 RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8
==> (1997 9:00 AM EDT) June 5,12,19,26;July 3,10,17,24,31; ==> (1997 9:00 AM EDT) June 5,12,19,26;July 3,10,17,24,31;
August 7,14,21,28 August 7,14,21,28
(1998 9:00 AM EDT) June 4,11,18,25;July 2,9,16,23,30; (1998 9:00 AM EDT) June 4,11,18,25;July 2,9,16,23,30;
August 6,13,20,27 August 6,13,20,27
(1999 9:00 AM EDT) June 3,10,17,24;July 1,8,15,22,29; (1999 9:00 AM EDT) June 3,10,17,24;July 1,8,15,22,29;
August 5,12,19,26 August 5,12,19,26
... ...
Every Friday the 13th, forever: Every Friday the 13th, forever:
DTSTART;TZID=US-Eastern:19970902T090000 DTSTART;TZID=America/New_York:19970902T090000
EXDATE;TZID=US-Eastern:19970902T090000 EXDATE;TZID=America/New_York:19970902T090000
RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13 RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13
==> (1998 9:00 AM EST) February 13;March 13;November 13 ==> (1998 9:00 AM EST) February 13;March 13;November 13
(1999 9:00 AM EDT) August 13 (1999 9:00 AM EDT) August 13
(2000 9:00 AM EDT) October 13 (2000 9:00 AM EDT) October 13
... ...
The first Saturday that follows the first Sunday of the month, The first Saturday that follows the first Sunday of the month,
forever: forever:
DTSTART;TZID=US-Eastern:19970913T090000 DTSTART;TZID=America/New_York:19970913T090000
RRULE:FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13 RRULE:FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13
==> (1997 9:00 AM EDT) September 13;October 11 ==> (1997 9:00 AM EDT) September 13;October 11
(1997 9:00 AM EST) November 8;December 13 (1997 9:00 AM EST) November 8;December 13
(1998 9:00 AM EST) January 10;February 7;March 7 (1998 9:00 AM EST) January 10;February 7;March 7
(1998 9:00 AM EDT) April 11;May 9;June 13... (1998 9:00 AM EDT) April 11;May 9;June 13...
... ...
Every four years, the first Tuesday after a Monday in November, Every four years, the first Tuesday after a Monday in November,
forever (U.S. Presidential Election day): forever (U.S. Presidential Election day):
DTSTART;TZID=US-Eastern:19961105T090000 DTSTART;TZID=America/New_York:19961105T090000
RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU; RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;
BYMONTHDAY=2,3,4,5,6,7,8 BYMONTHDAY=2,3,4,5,6,7,8
==> (1996 9:00 AM EST) November 5 ==> (1996 9:00 AM EST) November 5
(2000 9:00 AM EST) November 7 (2000 9:00 AM EST) November 7
(2004 9:00 AM EST) November 2 (2004 9:00 AM EST) November 2
... ...
The 3rd instance into the month of one of Tuesday, Wednesday or The 3rd instance into the month of one of Tuesday, Wednesday or
Thursday, for the next 3 months: Thursday, for the next 3 months:
DTSTART;TZID=US-Eastern:19970904T090000 DTSTART;TZID=America/New_York:19970904T090000
RRULE:FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3 RRULE:FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3
==> (1997 9:00 AM EDT) September 4;October 7 ==> (1997 9:00 AM EDT) September 4;October 7
(1997 9:00 AM EST) November 6 (1997 9:00 AM EST) November 6
The 2nd to last weekday of the month: The 2nd to last weekday of the month:
DTSTART;TZID=US-Eastern:19970929T090000 DTSTART;TZID=America/New_York:19970929T090000
RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2 RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2
==> (1997 9:00 AM EDT) September 29 ==> (1997 9:00 AM EDT) September 29
(1997 9:00 AM EST) October 30;November 27;December 30 (1997 9:00 AM EST) October 30;November 27;December 30
(1998 9:00 AM EST) January 29;February 26;March 30 (1998 9:00 AM EST) January 29;February 26;March 30
... ...
Every 3 hours from 9:00 AM to 5:00 PM on a specific day: Every 3 hours from 9:00 AM to 5:00 PM on a specific day:
DTSTART;TZID=US-Eastern:19970902T090000 DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z
==> (September 2, 1997 EDT) 09:00,12:00,15:00 ==> (September 2, 1997 EDT) 09:00,12:00,15:00
Every 15 minutes for 6 occurrences: Every 15 minutes for 6 occurrences:
DTSTART;TZID=US-Eastern:19970902T090000 DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=MINUTELY;INTERVAL=15;COUNT=6 RRULE:FREQ=MINUTELY;INTERVAL=15;COUNT=6
==> (September 2, 1997 EDT) 09:00,09:15,09:30,09:45,10:00,10:15 ==> (September 2, 1997 EDT) 09:00,09:15,09:30,09:45,10:00,10:15
Every hour and a half for 4 occurrences: Every hour and a half for 4 occurrences:
DTSTART;TZID=US-Eastern:19970902T090000 DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=MINUTELY;INTERVAL=90;COUNT=4 RRULE:FREQ=MINUTELY;INTERVAL=90;COUNT=4
==> (September 2, 1997 EDT) 09:00,10:30;12:00;13:30 ==> (September 2, 1997 EDT) 09:00,10:30;12:00;13:30
Every 20 minutes from 9:00 AM to 4:40 PM every day: Every 20 minutes from 9:00 AM to 4:40 PM every day:
DTSTART;TZID=US-Eastern:19970902T090000 DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40 RRULE:FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40
or or
RRULE:FREQ=MINUTELY;INTERVAL=20;BYHOUR=9,10,11,12,13,14,15,16 RRULE:FREQ=MINUTELY;INTERVAL=20;BYHOUR=9,10,11,12,13,14,15,16
==> (September 2, 1997 EDT) 9:00,9:20,9:40,10:00,10:20, ==> (September 2, 1997 EDT) 9:00,9:20,9:40,10:00,10:20,
... 16:00,16:20,16:40 ... 16:00,16:20,16:40
(September 3, 1997 EDT) 9:00,9:20,9:40,10:00,10:20, (September 3, 1997 EDT) 9:00,9:20,9:40,10:00,10:20,
...16:00,16:20,16:40 ...16:00,16:20,16:40
... ...
An example where the days generated makes a difference because of An example where the days generated makes a difference because of
WKST: WKST:
DTSTART;TZID=US-Eastern:19970805T090000 DTSTART;TZID=America/New_York:19970805T090000
RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO
==> (1997 EDT) August 5,10,19,24 ==> (1997 EDT) August 5,10,19,24
changing only WKST from MO to SU, yields different results... changing only WKST from MO to SU, yields different results...
DTSTART;TZID=US-Eastern:19970805T090000 DTSTART;TZID=America/New_York:19970805T090000
RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU
==> (1997 EDT) August 5,17,19,31 ==> (1997 EDT) August 5,17,19,31
An example where an invalid date (i.e., February 30) is ignored. An example where an invalid date (i.e., February 30) is ignored.
DTSTART;TZID=America/New_York:20070115T090000 DTSTART;TZID=America/New_York:20070115T090000
RRULE:FREQ=MONTHLY;BYMONTHDAY=15,30;COUNT=5 RRULE:FREQ=MONTHLY;BYMONTHDAY=15,30;COUNT=5
==> (2007 EST) January 15,30 ==> (2007 EST) January 15,30
skipping to change at page 128, line 43 skipping to change at page 130, line 19
3.8.6.1. Action 3.8.6.1. Action
Property Name: ACTION Property Name: ACTION
Purpose: This property defines the action to be invoked when an Purpose: This property defines the action to be invoked when an
alarm is triggered. alarm is triggered.
Value Type: TEXT Value Type: TEXT
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: This property MUST be specified once in a "VALARM" Conformance: This property MUST be specified once in a "VALARM"
calendar component. calendar component.
Description: Each "VALARM" calendar component has a particular type Description: Each "VALARM" calendar component has a particular type
of action associated with it. This property specifies the type of of action associated with it. This property specifies the type of
action action.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
action = "ACTION" actionparam ":" actionvalue CRLF action = "ACTION" actionparam ":" actionvalue CRLF
actionparam = *(";" xparam) actionparam = *(";" other-param)
actionvalue = "AUDIO" / "DISPLAY" / "EMAIL" / "PROCEDURE" actionvalue = "AUDIO" / "DISPLAY" / "EMAIL"
/ iana-token / x-name / iana-token / x-name
Example: The following are examples of this property in a "VALARM" Example: The following are examples of this property in a "VALARM"
calendar component: calendar component:
ACTION:AUDIO ACTION:AUDIO
ACTION:DISPLAY ACTION:DISPLAY
ACTION:PROCEDURE
3.8.6.2. Repeat Count 3.8.6.2. Repeat Count
Property Name: REPEAT Property Name: REPEAT
Purpose: This property defines the number of time the alarm should Purpose: This property defines the number of time the alarm should
be repeated, after the initial trigger. be repeated, after the initial trigger.
Value Type: INTEGER Value Type: INTEGER
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: This property can be specified in a "VALARM" calendar Conformance: This property can be specified in a "VALARM" calendar
component. component.
Description: If the alarm triggers more than once, then this Description: If the alarm triggers more than once, then this
property MUST be specified along with the "DURATION" property. property MUST be specified along with the "DURATION" property.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
repeat = "REPEAT" repparam ":" integer CRLF repeat = "REPEAT" repparam ":" integer CRLF
;Default is "0", zero. ;Default is "0", zero.
repparam = *(";" xparam) repparam = *(";" other-param)
Example: The following is an example of this property for an alarm Example: The following is an example of this property for an alarm
that repeats 4 additional times with a 5 minute delay after the that repeats 4 additional times with a 5 minute delay after the
initial triggering of the alarm: initial triggering of the alarm:
REPEAT:4 REPEAT:4
DURATION:PT5M DURATION:PT5M
3.8.6.3. Trigger 3.8.6.3. Trigger
Property Name: TRIGGER Property Name: TRIGGER
Purpose: This property specifies when an alarm will trigger. Purpose: This property specifies when an alarm will trigger.
Value Type: The default value type is "DURATION". The value type Value Type: The default value type is DURATION. The value type can
can be set to a DATE-TIME value type, in which case the value MUST be set to a DATE-TIME value type, in which case the value MUST
specify a UTC formatted DATE-TIME value. specify a UTC formatted DATE-TIME value.
Property Parameters: Non-standard, value data type, time zone Property Parameters: IANA, non-standard, value data type, time zone
identifier or trigger relationship property parameters can be identifier or trigger relationship property parameters can be
specified on this property. The trigger relationship property specified on this property. The trigger relationship property
parameter MUST only be specified when the value type is parameter MUST only be specified when the value type is
"DURATION". "DURATION".
Conformance: This property MUST be specified in the "VALARM" Conformance: This property MUST be specified in the "VALARM"
calendar component. calendar component.
Description: Within the "VALARM" calendar component, this property Description: This property defines when an alarm will trigger. The
defines when the alarm will trigger. The default value type is default value type is DURATION, specifying a relative time for the
"DURATION", specifying a relative time for the trigger of the trigger of the alarm. The default duration is relative to the
alarm. The default duration is relative to the start of an event start of an event or to-do that the alarm is associated with. The
or to-do that the alarm is associated with. The duration can be duration can be explicitly set to trigger from either the end or
explicitly set to trigger from either the end or the start of the the start of the associated event or to-do with the "RELATED"
associated event or to-do with the "RELATED" parameter. A value parameter. A value of START will set the alarm to trigger off the
of START will set the alarm to trigger off the start of the start of the associated event or to-do. A value of END will set
associated event or to-do. A value of END will set the alarm to the alarm to trigger off the end of the associated event or to-do.
trigger off the end of the associated event or to-do.
Either a positive or negative duration may be specified for the Either a positive or negative duration may be specified for the
"TRIGGER" property. An alarm with a positive duration is "TRIGGER" property. An alarm with a positive duration is
triggered after the associated start or end of the event or to-do. triggered after the associated start or end of the event or to-do.
An alarm with a negative duration is triggered before the An alarm with a negative duration is triggered before the
associated start or end of the event or to-do. associated start or end of the event or to-do.
The "RELATED" property parameter is not valid if the value type of The "RELATED" property parameter is not valid if the value type of
the property is set to DATE-TIME (i.e., for an absolute date and the property is set to DATE-TIME (i.e., for an absolute date and
time alarm trigger). If a value type of DATE-TIME is specified, time alarm trigger). If a value type of DATE-TIME is specified,
skipping to change at page 131, line 18 skipping to change at page 132, line 43
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 "DTSTART" 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 the "DUE" property or the "DTSTART" and "DURATION " properties
MUST 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 of the
the specified date. For example, if "DTSTART" is a DATE value set user's configured time zone on the specified date, or relative to
to 19980205 then the duration trigger will be relative to 00:00:00 UTC on the specified date if no configured time zone can
19980205T000000Z. be found for the user. For example, if "DTSTART" is a DATE value
set to 19980205 then the duration trigger will be relative to
19980205T000000 America/New_York for a user configured with the
America/New_York time zone.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
trigger = "TRIGGER" (trigrel / trigabs) CRLF trigger = "TRIGGER" (trigrel / trigabs) CRLF
trigrel = *( trigrel = *(
; the following are OPTIONAL, ; the following are OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" "VALUE" "=" "DURATION") / (";" "VALUE" "=" "DURATION") /
(";" trigrelparam) / (";" trigrelparam) /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" other-param)
) ":" dur-value ) ":" dur-value
trigabs = *( trigabs = *(
; the following is REQUIRED, ; the following is REQUIRED,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" "VALUE" "=" "DATE-TIME") / (";" "VALUE" "=" "DATE-TIME") /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" other-param)
) ":" date-time ) ":" date-time
Example: A trigger set 15 minutes prior to the start of the event or Example: A trigger set 15 minutes prior to the start of the event or
to-do. to-do.
TRIGGER:-P15M TRIGGER:-PT15M
A trigger set 5 minutes after the end of the event or to-do. A trigger set 5 minutes after the end of an event or the due date
of a to-do.
TRIGGER;RELATED=END:P5M TRIGGER;RELATED=END:PT5M
A trigger set to an absolute date/time. A trigger set to an absolute date/time.
TRIGGER;VALUE=DATE-TIME:19980101T050000Z TRIGGER;VALUE=DATE-TIME:19980101T050000Z
3.8.7. Change Management Component Properties 3.8.7. Change Management Component Properties
The following properties specify change management information in The following properties specify change management information in
calendar components. calendar components.
skipping to change at page 133, line 18 skipping to change at page 134, line 23
Purpose: This property specifies the date and time that the calendar Purpose: This property specifies the date and time that the calendar
information was created by the calendar user agent in the calendar information was created by the calendar user agent in the calendar
store. store.
Note: This is analogous to the creation date and time for a Note: This is analogous to the creation date and time for a
file in the file system. file in the file system.
Value Type: DATE-TIME Value Type: DATE-TIME
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: The property can be specified once in "VEVENT", "VTODO" Conformance: The property can be specified once in "VEVENT", "VTODO"
or "VJOURNAL" calendar components. or "VJOURNAL" calendar components.
Description: The date and time is a UTC value. Description: The date and time is a UTC value.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
created = "CREATED" creaparam ":" date-time CRLF created = "CREATED" creaparam ":" date-time CRLF
creaparam = *(";" xparam) creaparam = *(";" other-param)
Example: The following is an example of this property: Example: The following is an example of this property:
CREATED:19960329T133000Z CREATED:19960329T133000Z
3.8.7.2. Date/Time Stamp 3.8.7.2. Date/Time Stamp
Property Name: DTSTAMP Property Name: DTSTAMP
Purpose: This property indicates the date/time that the instance of Purpose: This property indicates the date/time that the instance of
the iCalendar object was created. the iCalendar object was created.
Value Type: DATE-TIME Value Type: DATE-TIME
Property Parameters: IANA and non-standard property parameters can
Property Parameters: Non-standard property parameters can be be specified on this property.
specified on this property.
Conformance: This property MUST be included in the "VEVENT", Conformance: This property MUST be included in the "VEVENT",
"VTODO", "VJOURNAL" or "VFREEBUSY" calendar components. "VTODO", "VJOURNAL" or "VFREEBUSY" calendar components.
Description: The value MUST be specified in the UTC time format. Description: The value MUST be specified in the UTC time format.
This property is also useful to protocols such as This property is also useful to protocols such as
[I-D.ietf-calsify-rfc2447bis] that have inherent latency issues [I-D.ietf-calsify-rfc2447bis] that have inherent latency issues
with the delivery of content. This property will assist in the with the delivery of content. This property will assist in the
proper sequencing of messages containing iCalendar objects. proper sequencing of messages containing iCalendar objects.
skipping to change at page 134, line 24 skipping to change at page 135, line 29
particular calendar data in the calendar store was created and particular calendar data in the calendar store was created and
last modified. This is different than when the iCalendar object last modified. This is different than when the iCalendar object
representation of the calendar service information was created or representation of the calendar service information was created or
last modified. last modified.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
dtstamp = "DTSTAMP" stmparam ":" date-time CRLF dtstamp = "DTSTAMP" stmparam ":" date-time CRLF
stmparam = *(";" xparam) stmparam = *(";" other-param)
Example: Example:
DTSTAMP:19971210T080000Z DTSTAMP:19971210T080000Z
3.8.7.3. Last Modified 3.8.7.3. Last Modified
Property Name: LAST-MODIFIED Property Name: LAST-MODIFIED
Purpose: This property specifies the date and time that the Purpose: This property specifies the date and time that the
information associated with the calendar component was last information associated with the calendar component was last
revised in the calendar store. revised in the calendar store.
Note: This is analogous to the modification date and time for a Note: This is analogous to the modification date and time for a
file in the file system. file in the file system.
Value Type: DATE-TIME Value Type: DATE-TIME
Property Parameters: Non-standard property parameters can be Property Parameters: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: This property can be specified in the "VEVENT", Conformance: This property can be specified in the "VEVENT",
"VTODO", "VJOURNAL" or "VTIMEZONE" calendar components. "VTODO", "VJOURNAL" or "VTIMEZONE" calendar components.
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: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
last-mod = "LAST-MODIFIED" lstparam ":" date-time CRLF last-mod = "LAST-MODIFIED" lstparam ":" date-time CRLF
lstparam = *(";" xparam) lstparam = *(";" other-param)
Example: The following are examples of this property: Example: The following is an example 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: IANA and non-standard property parameters can
specified on this property. be specified on this property.
Conformance: The property can be specified in "VEVENT", "VTODO" or Conformance: The property can be specified in "VEVENT", "VTODO" or
"VJOURNAL" calendar component. "VJOURNAL" calendar component.
Description: When a calendar component is created, its sequence Description: When a calendar component is created, its sequence
number is zero (US-ASCII decimal 48). It is monotonically number is zero (US-ASCII decimal 48). It is monotonically
incremented by the "Organizer's" CUA each time the "Organizer" incremented by the "Organizer's" CUA each time the "Organizer"
makes a significant revision to the calendar component. When the makes a significant revision to the calendar component. 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:
skipping to change at page 136, line 36 skipping to change at page 137, line 42
"RSVP" parameter on the "ATTENDEE" property is used by the "RSVP" parameter on the "ATTENDEE" property is used by the
"Organizer" to indicate that a response from the "Attendees" is "Organizer" to indicate that a response from the "Attendees" is
requested. requested.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
seq = "SEQUENCE" seqparam ":" integer CRLF seq = "SEQUENCE" seqparam ":" integer CRLF
; Default is "0" ; Default is "0"
seqparam = *(";" xparam) seqparam = *(";" other-param)
Example: The following is an example of this property for a calendar Example: The following is an example of this property for a calendar
component that was just created by the "Organizer". component that was just created by the "Organizer":
SEQUENCE:0 SEQUENCE:0
The following is an example of this property for a calendar The following is an example of this property for a calendar
component that has been revised two different times by the component that has been revised two different times by the
"Organizer". "Organizer":
SEQUENCE:2 SEQUENCE:2
3.8.8. Miscellaneous Component Properties 3.8.8. Miscellaneous Component Properties
The following properties specify information about a number of The following properties specify information about a number of
miscellaneous features of calendar components. miscellaneous features of calendar components.
3.8.8.1. Non-standard Properties 3.8.8.1. IANA Properties
Property Name: An IANA registered property name
Value Type: The default value type is TEXT. The value type can be
set to any value type.
Property Parameters: Any parameter can be specified on this
property.
Description: This specification allows other properties registered
with IANA to be specified in any calendar components. Compliant
applications are expected to be able to parse these other IANA
registered properties but can ignore them.
Format Definition: This property is defined by the following
notation:
iana-prop = iana-token *(";" icalparameter) ":" value CRLF
Example: The following are examples of properties that might be
registered to IANA:
DRESSCODE:CASUAL
NON-SMOKING;VALUE=BOOLEAN:TRUE
3.8.8.2. Non-standard Properties
Property Name: Any property name with a "X-" prefix Property Name: Any property name with a "X-" prefix
Purpose: This class of property provides a framework for defining Purpose: This class of property provides a framework for defining
non-standard properties. non-standard properties.
Value Type: TEXT Value Type: The default value type is TEXT. The value type can be
set to any value type.
Property Parameters: Non-standard and language property parameters Property Parameters: IANA, non-standard and language property
can be specified on this property. parameters can be specified on this property.
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
skipping to change at page 137, line 48 skipping to change at page 139, line 31
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 value type for extension properties and property parameters. The value type for
this property is TEXT. Optionally, the value type can be any of this property is TEXT. Optionally, the value type can be any of
the other valid value types. the other valid value types.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
x-prop = x-name *(";" parameter) ":" text CRLF x-prop = x-name *(";" icalparameter) ":" value CRLF
; Lines longer than 75 octets should be folded
Example: The following might be the ABC vendor's extension for an Example: The following might be the ABC vendor's extension for an
audio-clip form of subject property: audio-clip form of subject property:
X-ABC-MMSUBJ;VALUE=URI;FMTTYPE=audio/basic:http://www.example. X-ABC-MMSUBJ;VALUE=URI;FMTTYPE=audio/basic:http://www.example.
org/mysubj.au org/mysubj.au
3.8.8.2. Request Status 3.8.8.3. Request Status
Property Name: REQUEST-STATUS Property Name: REQUEST-STATUS
Purpose: This property defines the status code returned for a Purpose: This property defines the status code returned for a
scheduling request. scheduling request.
Value Type: TEXT Value Type: TEXT
Property Parameters: Non-standard and language property parameters Property Parameters: IANA, non-standard and language property
can be specified on this property. parameters can be specified on this property.
Conformance: The property can be specified in "VEVENT", "VTODO", Conformance: The property can be specified in "VEVENT", "VTODO",
"VJOURNAL" or "VFREEBUSY" calendar component. "VJOURNAL" or "VFREEBUSY" calendar component.
Description: This property is used to return status code information Description: This property is used to return status code information
related to the processing of an associated iCalendar object. The related to the processing of an associated iCalendar object. The
value type for this property is TEXT. value type for this property is TEXT.
The value consists of a short return status component, a longer The value consists of a short return status component, a longer
return status description component, and optionally a status- return status description component, and optionally a status-
specific data component. The components of the value are specific data component. The components of the value are
separated by the SEMICOLON character (US-ASCII decimal 59). separated by the SEMICOLON character (US-ASCII decimal 59).
The short return status is a PERIOD character (US-ASCII decimal The short return status is a PERIOD character (US-ASCII decimal
46) separated 3-tuple of integers. For example, "3.1.1". The 46) separated pair or 3-tuple of integers. For example, "3.1" or
successive levels of integers provide for a successive level of "3.1.1". The successive levels of integers provide for a
status code granularity. successive level of status code granularity.
The following are initial classes for the return status code. The following are initial classes for the return status code.
Individual iCalendar object methods will define specific return Individual iCalendar object methods will define specific return
status codes for these classes. In addition, other classes for status codes for these classes. In addition, other classes for
the return status code may be defined using the registration the return status code may be defined using the registration
process defined later in this memo. process defined later in this memo.
|==============+===============================================| |==============+===============================================|
| Short Return | Longer Return Status Description | | Short Return | Longer Return Status Description |
| Status Code | | | Status Code | |
skipping to change at page 140, line 18 skipping to change at page 142, line 18
rstatparam = *( rstatparam = *(
; the following is OPTIONAL, ; the following is OPTIONAL,
; but MUST NOT occur more than once ; but MUST NOT occur more than once
(";" languageparam) / (";" languageparam) /
; the following is OPTIONAL, ; the following is OPTIONAL,
; and MAY occur more than once ; and MAY occur more than once
(";" xparam) (";" other-param)
) )
statcode = 1*DIGIT *("." 1*DIGIT) statcode = 1*DIGIT 1*2("." 1*DIGIT)
;Hierarchical, numeric return status code ;Hierarchical, numeric return status code
statdesc = text statdesc = text
;Textual status description ;Textual status description
extdata = text extdata = text
;Textual exception data. For example, the offending property ;Textual exception data. For example, the offending property
;name and value or complete property line. ;name and value or complete property line.
Example: The following are some possible examples of this property. Example: The following are some possible examples of this property.
skipping to change at page 141, line 11 skipping to change at page 143, line 11
REQUEST-STATUS:3.7;Invalid calendar user;ATTENDEE: REQUEST-STATUS:3.7;Invalid calendar user;ATTENDEE:
mailto:jsmith@example.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, 2:30 P.M. UTC, September 18, 1996 and end at 10:00 P.M. UTC,
1996. September 20, 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@example.com UID:uid1@example.com
ORGANIZER:mailto:jsmith@example.com ORGANIZER:mailto:jsmith@example.com
DTSTART:19960918T143000Z DTSTART:19960918T143000Z
DTEND:19960920T220000Z DTEND:19960920T220000Z
skipping to change at page 142, line 9 skipping to change at page 144, line 9
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
PRODID:-//RDU Software//NONSGML HandCal//EN PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0 VERSION:2.0
BEGIN:VTIMEZONE BEGIN:VTIMEZONE
TZID:US-Eastern TZID:America/New_York
BEGIN:STANDARD BEGIN:STANDARD
DTSTART:19981025T020000 DTSTART:19981025T020000
RDATE:19981025T020000 RDATE:19981025T020000
TZOFFSETFROM:-0400 TZOFFSETFROM:-0400
TZOFFSETTO:-0500 TZOFFSETTO:-0500
TZNAME:EST TZNAME:EST
END:STANDARD END:STANDARD
BEGIN:DAYLIGHT BEGIN:DAYLIGHT
DTSTART:19990404T020000 DTSTART:19990404T020000
RDATE:19990404T020000 RDATE:19990404T020000
skipping to change at page 142, line 36 skipping to change at page 144, line 36
DTSTAMP:19980309T231000Z DTSTAMP:19980309T231000Z
UID:guid-1.example.com UID:guid-1.example.com
ORGANIZER;ROLE=CHAIR:mailto:mrbig@example.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@example.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=America/New_York:19980312T083000
DTEND;TZID=US-Eastern:19980312T093000 DTEND;TZID=America/New_York: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@example.com TO:jsmith@example.com
FROM:jdoe@example.com FROM:jdoe@example.com
skipping to change at page 144, line 12 skipping to change at page 146, line 12
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@example.com UID:uid4@example.com
ORGANIZER:mailto:unclesam@us.gov ORGANIZER:mailto:unclesam@example.com
ATTENDEE;PARTSTAT=ACCEPTED:mailto:jqpublic@example.com ATTENDEE;PARTSTAT=ACCEPTED:mailto:jqpublic@example.com
DUE:19980415T235959 DUE:19980415T000000
STATUS:NEEDS-ACTION STATUS:NEEDS-ACTION
SUMMARY:Submit Income Taxes SUMMARY:Submit Income Taxes
BEGIN:VALARM BEGIN:VALARM
ACTION:AUDIO ACTION:AUDIO
TRIGGER:19980403T120000Z TRIGGER:19980403T120000Z
ATTACH;FMTTYPE=audio/basic:http://example.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
skipping to change at page 145, line 29 skipping to change at page 147, line 29
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.
2. A calendar entry with a "DTSTART" property but no "DTEND" 2. When the "DTSTART" and "DTEND" properties , for "VEVENT"and
property does not take up any time. It is intended to represent "VJOURNAL" calendar components, and "DTSTART" and "DUE"
an event that is associated with a given calendar date and time properties , for "VTODO" calendar components, have the same
of day, such as an anniversary. Since the event does not take value data type (e.g., DATE-TIME), they SHOULD specify values in
up any time, it MUST NOT be used to record busy time no matter the same time format (e.g., date with local time, date with UTC
what the value for the "TRANSP" property. time, or date with local time and time zone reference). In the
case of date with local time and time zone reference, a
3. When the "DTSTART" and "DTEND", for "VEVENT", "VJOURNAL" and different time zone MAY be used for each property.
"VFREEBUSY" calendar components, and "DTSTART" and "DUE", for
"VTODO" calendar components, have the same value data type
(e.g., DATE-TIME), they SHOULD specify values in the same time
format (e.g., UTC time format).
4. When the combination of the "RRULE" and "RDATE" properties on an 3. When the combination of the "RRULE" and "RDATE" properties in a
iCalendar object produces multiple instances having the same recurring component produces multiple instances having the same
start date/time, they should be collapsed to, and considered as, start DATE-TIME value, they should be collapsed to, and
a single instance. considered as, a single instance. If the "RDATE" property is
specified as a PERIOD value the duration of the recurrence
instance will be the one specified by the "RDATE" property, and
not the duration of the recurrence instance defined by the
"DTSTART" property.
5. When a calendar user receives multiple requests for the same 4. 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 5. An implementation can truncate a "SUMMARY" property value to 255
octets, but MUST NOT truncate the value in the middle of a UTF-8 octets, but MUST NOT truncate the value in the middle of a UTF-8
multi-octet sequence. multi-octet sequence.
7. If seconds of the minute are not supported by an implementation, 6. 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 7. 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 8. "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
problematic in the Internet. problematic in the Internet.
10. Some possible English values for "CATEGORIES" property include 9. Some possible English values for "CATEGORIES" property include
"ANNIVERSARY", "APPOINTMENT", "BUSINESS", "EDUCATION", "ANNIVERSARY", "APPOINTMENT", "BUSINESS", "EDUCATION",
"HOLIDAY", "MEETING", "MISCELLANEOUS", "NON-WORKING HOURS", "NOT "HOLIDAY", "MEETING", "MISCELLANEOUS", "NON-WORKING HOURS", "NOT
IN OFFICE", "PERSONAL", "PHONE CALL", "SICK DAY", "SPECIAL IN OFFICE", "PERSONAL", "PHONE CALL", "SICK DAY", "SPECIAL
OCCASION", "TRAVEL", "VACATION". Categories can be specified in OCCASION", "TRAVEL", "VACATION". Categories can be specified in
any registered language. any registered language.
11. Some possible English values for "RESOURCES" property include 10. Some possible English values for "RESOURCES" property include
"CATERING", "CHAIRS", "COMPUTER PROJECTOR", "EASEL", "OVERHEAD "CATERING", "CHAIRS", "COMPUTER PROJECTOR", "EASEL", "OVERHEAD
PROJECTOR", "SPEAKER PHONE", "TABLE", "TV", "VCR", "VIDEO PROJECTOR", "SPEAKER PHONE", "TABLE", "TV", "VCR", "VIDEO
PHONE", "VEHICLE". Resources can be specified in any registered PHONE", "VEHICLE". Resources can be specified in any registered
language. language.
6. Registration of Content Type Elements 6. Registration of Content Type Elements
This section provides the process for registration of MIME This section provides the process for registration of MIME
Calendaring and Scheduling Content Type iCalendar object methods and Calendaring and Scheduling Content Type iCalendar object methods and
new or modified properties. new or modified properties.
skipping to change at page 150, line 5 skipping to change at page 151, line 47
calendar component might be constructed by someone other than the calendar component might be constructed by someone other than the
"Organizer" and sent to the "Attendees". In addition in this "Organizer" and sent to the "Attendees". In addition in this
memo, other than the "Organizer", an "Attendee" of a "VEVENT", memo, other than the "Organizer", an "Attendee" of a "VEVENT",
"VTODO", "VJOURNAL" calendar component is the only other person "VTODO", "VJOURNAL" calendar component is the only other person
authorized to update any parameter associated with their authorized to update any parameter associated with their
"ATTENDEE" property and send it to the "Organizer". An iCalendar "ATTENDEE" property and send it to the "Organizer". An iCalendar
object that maliciously changes the "ATTENDEE" parameters can be object that maliciously changes the "ATTENDEE" parameters can be
constructed by someone other than the real "Attendee" and sent to constructed by someone other than the real "Attendee" and sent to
the "Organizer". the "Organizer".
PROCEDURAL ALARMS: An iCalendar object can be created that contains
a "VEVENT" and "VTODO" calendar component with "VALARM" calendar
components. The "VALARM" calendar component can be of type
PROCEDURE and can have an attachment containing some sort of
executable program. Implementations that incorporate these types
of alarms are subject to any virus or malicious attack that might
occur as a result of executing the attachment.
ATTACHMENTS: An iCalendar object can include references to Uniform ATTACHMENTS: An iCalendar object can include references to Uniform
Resource Locators that can be programmed resources. Resource Locators that can be programmed resources.
Implementers and users of this memo should be aware of the network Implementers and users of this memo should be aware of the network
security implications of accepting and parsing such information. security implications of accepting and parsing such information.
In addition, the security considerations observed by In addition, the security considerations observed by
implementations of electronic mail systems should be followed for implementations of electronic mail systems should be followed for
this memo. this memo.
9. IANA Consideration 9. IANA Considerations
9.1. Media Type Registration Information The IANA is requested to create and maintain a number of registries.
The table below describes each. Subsections below contain the
initial registrations and additional instructions for registrations.
+---------------+------------------------------------+--------------+
| Registry Name | Registration Requirements | Reference |
+---------------+------------------------------------+--------------+
| Components | RFC, Expert Review | Section 9.1 |
| Properties | RFC, Expert Review | Section 9.2 |
| Property | RFC, Expert Review | Section 9.3 |
| Parameters | | |
| Value Data | Standards Action Required for new | Section 9.4 |
| Type Values | values that modify existing | |
| | parameters | |
| Calendar User | RFC, Expert Review | Section 9.5 |
| Type Values | | |
| Free/Busy | RFC, Expert Review | Section 9.6 |
| Time Type | | |
| Values | | |
| Participation | Internet Standards Action for | Section 9.7 |
| Status Values | VEVENTs, otherwise Expert Review | |
| Relationship | RFC, Expert Review | Section 9.8 |
| Type Values | | |
| Participation | RFC, Expert Review | Section 9.9 |
| Role Values | | |
| Action Values | RFC, Expert Review | Section 9.10 |
| Method Values | RFC, Expert Review | Section 9.11 |
+---------------+------------------------------------+--------------+
Each of the above is described in separate sub-sections below.
9.1. Components Registry
The following table is to be used to initialize the components
registry.
+----------------+---------+------------------------+
| Component Name | Status | Reference |
+----------------+---------+------------------------+
| VCALENDAR | Current | RFCXXXX, Section 3.4 |
| VEVENT | Current | RFCXXXX, Section 3.6.1 |
| VTODO | Current | RFCXXXX, Section 3.6.2 |
| VJOURNAL | Current | RFCXXXX, Section 3.6.3 |
| VFREEBUSY | Current | RFCXXXX, Section 3.6.4 |
| VTIMEZONE | Current | RFCXXXX, Section 3.6.5 |
| VALARM | Current | RFCXXXX, Section 3.6.6 |
| STANDARD | Current | RFCXXXX, Section 3.6.5 |
| DAYLIGHT | Current | RFCXXXX, Section 3.6.5 |
+----------------+---------+------------------------+
9.2. Properties Registry
Properties that are registered with IANA are to be document via the
RFC process. It is not necessary for properties to be placed on the
standards track to be registered unless the usage of other standard
properties, parameters, or enumerations are changed. Components
specifically require standards action. However, each property MUST
specify what standard parameters, if any, are allowed, and in what
components the property is valid (e.g., "VEVENT", "VTODO", etc.).
The IANA is requested to maintain a table of such properties with
pointers to appropriate reference documents.
The following table is to be used to initialize the property
registry.
+------------------+------------+---------------------------+
| Property Name | Status | Reference |
+------------------+------------+---------------------------+
| CALSCALE | Current | RFCXXXX, Section 3.7.1 |
| METHOD | Current | RFCXXXX, Section 3.7.2 |
| PRODID | Current | RFCXXXX, Section 3.7.3 |
| VERSION | Current | RFCXXXX, Section 3.7.4 |
| ATTACH | Current | RFCXXXX, Section 3.8.1.1 |
| CATEGORIES | Current | RFCXXXX, Section 3.8.1.2 |
| CLASS | Current | RFCXXXX, Section 3.8.1.3 |
| COMMENT | Current | RFCXXXX, Section 3.8.1.4 |
| DESCRIPTION | Current | RFCXXXX, Section 3.8.1.5 |
| GEO | Current | RFCXXXX, Section 3.8.1.6 |
| LOCATION | Current | RFCXXXX, Section 3.8.1.7 |
| PERCENT-COMPLETE | Current | RFCXXXX, Section 3.8.1.8 |
| PRIORITY | Current | RFCXXXX, Section 3.8.1.9 |
| RESOURCES | Current | RFCXXXX, Section 3.8.1.10 |
| STATUS | Current | RFCXXXX, Section 3.8.1.11 |
| SUMMARY | Current | RFCXXXX, Section 3.8.1.12 |
| COMPLETED | Current | RFCXXXX, Section 3.8.2.1 |
| DTEND | Current | RFCXXXX, Section 3.8.2.2 |
| DUE | Current | RFCXXXX, Section 3.8.2.3 |
| DTSTART | Current | RFCXXXX, Section 3.8.2.4 |
| DURATION | Current | RFCXXXX, Section 3.8.2.5 |
| FREEBUSY | Current | RFCXXXX, Section 3.8.2.6 |
| TRANSP | Current | RFCXXXX, Section 3.8.2.7 |
| TZID | Current | RFCXXXX, Section 3.8.3.1 |
| TZNAME | Current | RFCXXXX, Section 3.8.3.2 |
| TZOFFSETFROM | Current | RFCXXXX, Section 3.8.3.3 |
| TZOFFSETTO | Current | RFCXXXX, Section 3.8.3.4 |
| TZURL | Current | RFCXXXX, Section 3.8.3.5 |
| ATTENDEE | Current | RFCXXXX, Section 3.8.4.1 |
| CONTACT | Current | RFCXXXX, Section 3.8.4.2 |
| ORGANIZER | Current | RFCXXXX, Section 3.8.4.3 |
| RECURRENCE-ID | Current | RFCXXXX, Section 3.8.4.4 |
| RELATED-TO | Current | RFCXXXX, Section 3.8.4.5 |
| URL | Current | RFCXXXX, Section 3.8.4.6 |
| UID | Current | RFCXXXX, Section 3.8.4.7 |
| EXDATE | Current | RFCXXXX, Section 3.8.5.1 |
| EXRULE | Deprecated | RFC2445, Section 4.8.5.2 |
| RDATE | Current | RFCXXXX, Section 3.8.5.2 |
| RRULE | Current | RFCXXXX, Section 3.8.5.3 |
| ACTION | Current | RFCXXXX, Section 3.8.6.1 |
| REPEAT | Current | RFCXXXX, Section 3.8.6.2 |
| TRIGGER | Current | RFCXXXX, Section 3.8.6.3 |
| CREATED | Current | RFCXXXX, Section 3.8.7.1 |
| DTSTAMP | Current | RFCXXXX, Section 3.8.7.2 |
| LAST-MODIFIED | Current | RFCXXXX, Section 3.8.7.3 |
| SEQUENCE | Current | RFCXXXX, Section 3.8.7.4 |
| REQUEST-STATUS | Current | RFCXXXX, Section 3.8.8.3 |
+------------------+------------+---------------------------+
9.3. Property Parameters Registry
The IANA is requested to establish and maintain a table of property
parameters for the iCalendar standard. Additional parameters may be