7Network Working Group B. Desruisseaux, Ed.
8Request for Comments: 5545 Oracle
9Obsoletes: 2445 September 2009
10Category: Standards Track
13 Internet Calendaring and Scheduling Core Object Specification
18This document defines the iCalendar data format for representing and
19exchanging calendaring and scheduling information such as events,
20to-dos, journal entries, and free/busy information, independent of any
21particular calendar service or protocol.
25 This document specifies an Internet standards track protocol for the
26 Internet community, and requests discussion and suggestions for
27 improvements. Please refer to the current edition of the "Internet
28 Official Protocol Standards" (STD 1) for the standardization state
29 and status of this protocol. Distribution of this memo is unlimited.
31Copyright and License Notice
33 Copyright (c) 2009 IETF Trust and the persons identified as the
34 document authors. All rights reserved.
36 This document is subject to BCP 78 and the IETF Trust's Legal
37 Provisions Relating to IETF Documents
38 (http://trustee.ietf.org/license-info) in effect on the date of
39 publication of this document. Please review these documents
40 carefully, as they describe your rights and restrictions with respect
41 to this document. Code Components extracted from this document must
42 include Simplified BSD License text as described in Section 4.e of
43 the Trust Legal Provisions and are provided without warranty as
44 described in the BSD License.
46 This document may contain material from IETF Documents or IETF
47 Contributions published or made publicly available before November
48 10, 2008. The person(s) controlling the copyright in some of this
49 material may not have granted the IETF Trust the right to allow
50 modifications of such material outside the IETF Standards Process.
51 Without obtaining an adequate license from the person(s) controlling
52 the copyright in such materials, this document may not be modified
53 outside the IETF Standards Process, and derivative works of it may
54 not be created outside the IETF Standards Process, except to format
58Desruisseaux Standards Track [Page 1]
60RFC 5545 iCalendar September 2009
63 it for publication as an RFC or to translate it into languages other
68 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5
69 2. Basic Grammar and Conventions . . . . . . . . . . . . . . . . 6
70 2.1. Formatting Conventions . . . . . . . . . . . . . . . . . 6
71 2.2. Related Memos . . . . . . . . . . . . . . . . . . . . . . 7
72 3. iCalendar Object Specification . . . . . . . . . . . . . . . 8
73 3.1. Content Lines . . . . . . . . . . . . . . . . . . . . . . 8
74 3.1.1. List and Field Separators . . . . . . . . . . . . . . 11
75 3.1.2. Multiple Values . . . . . . . . . . . . . . . . . . . 11
76 3.1.3. Binary Content . . . . . . . . . . . . . . . . . . . 11
77 3.1.4. Character Set . . . . . . . . . . . . . . . . . . . . 12
78 3.2. Property Parameters . . . . . . . . . . . . . . . . . . . 12
79 3.2.1. Alternate Text Representation . . . . . . . . . . . . 13
80 3.2.2. Common Name . . . . . . . . . . . . . . . . . . . . . 15
81 3.2.3. Calendar User Type . . . . . . . . . . . . . . . . . 15
82 3.2.4. Delegators . . . . . . . . . . . . . . . . . . . . . 16
83 3.2.5. Delegatees . . . . . . . . . . . . . . . . . . . . . 16
84 3.2.6. Directory Entry Reference . . . . . . . . . . . . . . 17
85 3.2.7. Inline Encoding . . . . . . . . . . . . . . . . . . . 17
86 3.2.8. Format Type . . . . . . . . . . . . . . . . . . . . . 18
87 3.2.9. Free/Busy Time Type . . . . . . . . . . . . . . . . . 19
88 3.2.10. Language . . . . . . . . . . . . . . . . . . . . . . 20
89 3.2.11. Group or List Membership . . . . . . . . . . . . . . 20
90 3.2.12. Participation Status . . . . . . . . . . . . . . . . 21
91 3.2.13. Recurrence Identifier Range . . . . . . . . . . . . . 22
92 3.2.14. Alarm Trigger Relationship . . . . . . . . . . . . . 23
93 3.2.15. Relationship Type . . . . . . . . . . . . . . . . . . 24
94 3.2.16. Participation Role . . . . . . . . . . . . . . . . . 25
95 3.2.17. RSVP Expectation . . . . . . . . . . . . . . . . . . 25
96 3.2.18. Sent By . . . . . . . . . . . . . . . . . . . . . . . 26
97 3.2.19. Time Zone Identifier . . . . . . . . . . . . . . . . 26
98 3.2.20. Value Data Types . . . . . . . . . . . . . . . . . . 28
99 3.3. Property Value Data Types . . . . . . . . . . . . . . . . 29
100 3.3.1. Binary . . . . . . . . . . . . . . . . . . . . . . . 29
101 3.3.2. Boolean . . . . . . . . . . . . . . . . . . . . . . . 30
102 3.3.3. Calendar User Address . . . . . . . . . . . . . . . . 30
103 3.3.4. Date . . . . . . . . . . . . . . . . . . . . . . . . 31
104 3.3.5. Date-Time . . . . . . . . . . . . . . . . . . . . . . 31
105 3.3.6. Duration . . . . . . . . . . . . . . . . . . . . . . 34
106 3.3.7. Float . . . . . . . . . . . . . . . . . . . . . . . . 35
107 3.3.8. Integer . . . . . . . . . . . . . . . . . . . . . . . 35
108 3.3.9. Period of Time . . . . . . . . . . . . . . . . . . . 36
109 3.3.10. Recurrence Rule . . . . . . . . . . . . . . . . . . . 37
110 3.3.11. Text . . . . . . . . . . . . . . . . . . . . . . . . 45
114Desruisseaux Standards Track [Page 2]
116RFC 5545 iCalendar September 2009
119 3.3.12. Time . . . . . . . . . . . . . . . . . . . . . . . . 46
120 3.3.13. URI . . . . . . . . . . . . . . . . . . . . . . . . . 48
121 3.3.14. UTC Offset . . . . . . . . . . . . . . . . . . . . . 49
122 3.4. iCalendar Object . . . . . . . . . . . . . . . . . . . . 49
123 3.5. Property . . . . . . . . . . . . . . . . . . . . . . . . 50
124 3.6. Calendar Components . . . . . . . . . . . . . . . . . . . 50
125 3.6.1. Event Component . . . . . . . . . . . . . . . . . . . 52
126 3.6.2. To-Do Component . . . . . . . . . . . . . . . . . . . 56
127 3.6.3. Journal Component . . . . . . . . . . . . . . . . . . 58
128 3.6.4. Free/Busy Component . . . . . . . . . . . . . . . . . 60
129 3.6.5. Time Zone Component . . . . . . . . . . . . . . . . . 63
130 3.6.6. Alarm Component . . . . . . . . . . . . . . . . . . . 72
131 3.7. Calendar Properties . . . . . . . . . . . . . . . . . . . 77
132 3.7.1. Calendar Scale . . . . . . . . . . . . . . . . . . . 77
133 3.7.2. Method . . . . . . . . . . . . . . . . . . . . . . . 78
134 3.7.3. Product Identifier . . . . . . . . . . . . . . . . . 79
135 3.7.4. Version . . . . . . . . . . . . . . . . . . . . . . . 80
136 3.8. Component Properties . . . . . . . . . . . . . . . . . . 81
137 3.8.1. Descriptive Component Properties . . . . . . . . . . 81
138 3.8.1.1. Attachment . . . . . . . . . . . . . . . . . . . 81
139 3.8.1.2. Categories . . . . . . . . . . . . . . . . . . . 82
140 3.8.1.3. Classification . . . . . . . . . . . . . . . . . 83
141 3.8.1.4. Comment . . . . . . . . . . . . . . . . . . . . . 84
142 3.8.1.5. Description . . . . . . . . . . . . . . . . . . . 85
143 3.8.1.6. Geographic Position . . . . . . . . . . . . . . . 87
144 3.8.1.7. Location . . . . . . . . . . . . . . . . . . . . 88
145 3.8.1.8. Percent Complete . . . . . . . . . . . . . . . . 89
146 3.8.1.9. Priority . . . . . . . . . . . . . . . . . . . . 90
147 3.8.1.10. Resources . . . . . . . . . . . . . . . . . . . . 92
148 3.8.1.11. Status . . . . . . . . . . . . . . . . . . . . . 93
149 3.8.1.12. Summary . . . . . . . . . . . . . . . . . . . . . 94
150 3.8.2. Date and Time Component Properties . . . . . . . . . 95
151 3.8.2.1. Date-Time Completed . . . . . . . . . . . . . . . 95
152 3.8.2.2. Date-Time End . . . . . . . . . . . . . . . . . . 96
153 3.8.2.3. Date-Time Due . . . . . . . . . . . . . . . . . . 97
154 3.8.2.4. Date-Time Start . . . . . . . . . . . . . . . . . 99
155 3.8.2.5. Duration . . . . . . . . . . . . . . . . . . . . 100
156 3.8.2.6. Free/Busy Time . . . . . . . . . . . . . . . . . 101
157 3.8.2.7. Time Transparency . . . . . . . . . . . . . . . . 102
158 3.8.3. Time Zone Component Properties . . . . . . . . . . . 103
159 3.8.3.1. Time Zone Identifier . . . . . . . . . . . . . . 103
160 3.8.3.2. Time Zone Name . . . . . . . . . . . . . . . . . 105
161 3.8.3.3. Time Zone Offset From . . . . . . . . . . . . . . 106
162 3.8.3.4. Time Zone Offset To . . . . . . . . . . . . . . . 106
163 3.8.3.5. Time Zone URL . . . . . . . . . . . . . . . . . . 107
164 3.8.4. Relationship Component Properties . . . . . . . . . . 108
165 3.8.4.1. Attendee . . . . . . . . . . . . . . . . . . . . 108
166 3.8.4.2. Contact . . . . . . . . . . . . . . . . . . . . . 111
170Desruisseaux Standards Track [Page 3]
172RFC 5545 iCalendar September 2009
175 3.8.4.3. Organizer . . . . . . . . . . . . . . . . . . . . 113
176 3.8.4.4. Recurrence ID . . . . . . . . . . . . . . . . . . 114
177 3.8.4.5. Related To . . . . . . . . . . . . . . . . . . . 117
178 3.8.4.6. Uniform Resource Locator . . . . . . . . . . . . 118
179 3.8.4.7. Unique Identifier . . . . . . . . . . . . . . . . 119
180 3.8.5. Recurrence Component Properties . . . . . . . . . . . 120
181 3.8.5.1. Exception Date-Times . . . . . . . . . . . . . . 120
182 3.8.5.2. Recurrence Date-Times . . . . . . . . . . . . . . 122
183 3.8.5.3. Recurrence Rule . . . . . . . . . . . . . . . . . 124
184 3.8.6. Alarm Component Properties . . . . . . . . . . . . . 134
185 3.8.6.1. Action . . . . . . . . . . . . . . . . . . . . . 134
186 3.8.6.2. Repeat Count . . . . . . . . . . . . . . . . . . 135
187 3.8.6.3. Trigger . . . . . . . . . . . . . . . . . . . . . 135
188 3.8.7. Change Management Component Properties . . . . . . . 138
189 3.8.7.1. Date-Time Created . . . . . . . . . . . . . . . . 138
190 3.8.7.2. Date-Time Stamp . . . . . . . . . . . . . . . . . 139
191 3.8.7.3. Last Modified . . . . . . . . . . . . . . . . . . 140
192 3.8.7.4. Sequence Number . . . . . . . . . . . . . . . . . 141
193 3.8.8. Miscellaneous Component Properties . . . . . . . . . 142
194 3.8.8.1. IANA Properties . . . . . . . . . . . . . . . . . 142
195 3.8.8.2. Non-Standard Properties . . . . . . . . . . . . . 142
196 3.8.8.3. Request Status . . . . . . . . . . . . . . . . . 144
197 4. iCalendar Object Examples . . . . . . . . . . . . . . . . . . 146
198 5. Recommended Practices . . . . . . . . . . . . . . . . . . . . 150
199 6. Internationalization Considerations . . . . . . . . . . . . . 151
200 7. Security Considerations . . . . . . . . . . . . . . . . . . . 151
201 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 151
202 8.1. iCalendar Media Type Registration . . . . . . . . . . . . 151
203 8.2. New iCalendar Elements Registration . . . . . . . . . . . 155
204 8.2.1. iCalendar Elements Registration Procedure . . . . . . 155
205 8.2.2. Registration Template for Components . . . . . . . . 155
206 8.2.3. Registration Template for Properties . . . . . . . . 156
207 8.2.4. Registration Template for Parameters . . . . . . . . 156
208 8.2.5. Registration Template for Value Data Types . . . . . 157
209 8.2.6. Registration Template for Values . . . . . . . . . . 157
210 8.3. Initial iCalendar Elements Registries . . . . . . . . . . 158
211 8.3.1. Components Registry . . . . . . . . . . . . . . . . . 158
212 8.3.2. Properties Registry . . . . . . . . . . . . . . . . . 158
213 8.3.3. Parameters Registry . . . . . . . . . . . . . . . . . 161
214 8.3.4. Value Data Types Registry . . . . . . . . . . . . . . 162
215 8.3.5. Calendar User Types Registry . . . . . . . . . . . . 162
216 8.3.6. Free/Busy Time Types Registry . . . . . . . . . . . . 163
217 8.3.7. Participation Statuses Registry . . . . . . . . . . . 163
218 8.3.8. Relationship Types Registry . . . . . . . . . . . . . 164
219 8.3.9. Participation Roles Registry . . . . . . . . . . . . 164
220 8.3.10. Actions Registry . . . . . . . . . . . . . . . . . . 165
221 8.3.11. Classifications Registry . . . . . . . . . . . . . . 165
222 8.3.12. Methods Registry . . . . . . . . . . . . . . . . . . 165
226Desruisseaux Standards Track [Page 4]
228RFC 5545 iCalendar September 2009
231 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 165
232 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 166
233 10.1. Normative References . . . . . . . . . . . . . . . . . . 166
234 10.2. Informative References . . . . . . . . . . . . . . . . . 167
235 Appendix A. Differences from RFC 2445 . . . . . . . . . . . . . 169
236 A.1. New Restrictions . . . . . . . . . . . . . . . . . . . . 169
237 A.2. Restrictions Removed . . . . . . . . . . . . . . . . . . 169
238 A.3. Deprecated Features . . . . . . . . . . . . . . . . . . . 169
242 The use of calendaring and scheduling has grown considerably in the
243 last decade. Enterprise and inter-enterprise business has become
244 dependent on rapid scheduling of events and actions using this
245 information technology. This memo is intended to progress the level
246 of interoperability possible between dissimilar calendaring and
247 scheduling applications. This memo defines a MIME content type for
248 exchanging electronic calendaring and scheduling information. The
249 Internet Calendaring and Scheduling Core Object Specification, or
250 iCalendar, allows for the capture and exchange of information
251 normally stored within a calendaring and scheduling application; such
252 as a Personal Information Manager (PIM) or a Group-Scheduling
255 The iCalendar format is suitable as an exchange format between
256 applications or systems. The format is defined in terms of a MIME
257 content type. This will enable the object to be exchanged using
258 several transports, including but not limited to SMTP, HTTP, a file
259 system, desktop interactive protocols such as the use of a memory-
260 based clipboard or drag/drop interactions, point-to-point
261 asynchronous communication, wired-network transport, or some form of
262 unwired transport such as infrared.
264 The memo also provides for the definition of iCalendar object methods
265 that will map this content type to a set of messages for supporting
266 calendaring and scheduling operations such as requesting, replying
267 to, modifying, and canceling meetings or appointments, to-dos, and
268 journal entries. The iCalendar object methods can be used to define
269 other calendaring and scheduling operations such as requesting for
270 and replying with free/busy time data. Such a scheduling protocol is
271 defined in the iCalendar Transport-independent Interoperability
272 Protocol (iTIP) defined in [2446bis].
274 The memo also includes a formal grammar for the content type based on
275 the Internet ABNF defined in [RFC5234]. This ABNF is required for
276 the implementation of parsers and to serve as the definitive
277 reference when ambiguities or questions arise in interpreting the
278 descriptive prose definition of the memo. Additional restrictions
282Desruisseaux Standards Track [Page 5]
284RFC 5545 iCalendar September 2009
287 that could not easily be expressed with the ABNF syntax are specified
288 as comments in the ABNF. Comments with normative statements should
2912. Basic Grammar and Conventions
293 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
294 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
295 document are to be interpreted as described in [RFC2119].
297 This memo makes use of both a descriptive prose and a more formal
298 notation for defining the calendaring and scheduling format.
300 The notation used in this memo is the ABNF notation of [RFC5234].
301 Readers intending on implementing the format defined in this memo
302 should be familiar with this notation in order to properly interpret
303 the specifications of this memo.
305 All numeric values used in this memo are given in decimal notation.
307 All names of properties, property parameters, enumerated property
308 values, and property parameter values are case-insensitive. However,
309 all other property values are case-sensitive, unless otherwise
312 Note: All indented editorial notes, such as this one, are intended
313 to provide the reader with additional information. The
314 information is not essential to the building of an implementation
315 conformant with this memo. The information is provided to
316 highlight a particular feature or characteristic of the memo.
318 The format for the iCalendar object is based on the syntax of the
319 text/directory media type [RFC2425]. While the iCalendar object is
320 not a profile of the text/directory media type [RFC2425], it does
321 reuse a number of the elements from the [RFC2425] specification.
3232.1. Formatting Conventions
325 The elements defined in this memo are defined in prose. Many of the
326 terms used to describe these have common usage that is different than
327 the standards usage of this memo. In order to reference, within this
328 memo, elements of the calendaring and scheduling model, core object
329 (this memo), or interoperability protocol [2446bis] some formatting
330 conventions have been used. Calendaring and scheduling roles are
331 referred to in quoted-strings of text with the first character of
332 each word in uppercase. For example, "Organizer" refers to a role of
333 a "Calendar User" within the scheduling protocol defined by
334 [2446bis]. Calendar components defined by this memo are referred to
338Desruisseaux Standards Track [Page 6]
340RFC 5545 iCalendar September 2009
343 with capitalized, quoted-strings of text. All calendar components
344 start with the letter "V". For example, "VEVENT" refers to the event
345 calendar component, "VTODO" refers to the to-do calendar component,
346 and "VJOURNAL" refers to the daily journal calendar component.
347 Scheduling methods defined by iTIP [2446bis] are referred to with
348 capitalized, quoted-strings of text. For example, "REQUEST" refers
349 to the method for requesting a scheduling calendar component be
350 created or modified, and "REPLY" refers to the method a recipient of
351 a request uses to update their status with the "Organizer" of the
354 The properties defined by this memo are referred to with capitalized,
355 quoted-strings of text, followed by the word "property". For
356 example, "ATTENDEE" property refers to the iCalendar property used to
357 convey the calendar address of a calendar user. Property parameters
358 defined by this memo are referred to with lowercase, quoted-strings
359 of text, followed by the word "parameter". For example, "value"
360 parameter refers to the iCalendar property parameter used to override
361 the default value type for a property value. Enumerated values
362 defined by this memo are referred to with capitalized text, either
363 alone or followed by the word "value". For example, the "MINUTELY"
364 value can be used with the "FREQ" component of the "RECUR" value type
365 to specify repeating components based on an interval of one minute or
368 The following table lists the different characters from the
369 [US-ASCII] character set that is referenced in this document. For
370 each character, the table specifies the character name used
371 throughout this document, along with its US-ASCII decimal codepoint.
394Desruisseaux Standards Track [Page 7]
396RFC 5545 iCalendar September 2009
399 +------------------------+-------------------+
400 | Character name | Decimal codepoint |
401 +------------------------+-------------------+
409 | HYPHEN-MINUS | 45 |
414 | LATIN CAPITAL LETTER N | 78 |
415 | LATIN CAPITAL LETTER T | 84 |
416 | LATIN CAPITAL LETTER X | 88 |
417 | LATIN CAPITAL LETTER Z | 90 |
419 | LATIN SMALL LETTER N | 110 |
420 +------------------------+-------------------+
424 Implementers will need to be familiar with several other memos that,
425 along with this memo, form a framework for Internet calendaring and
426 scheduling standards. This memo specifies a core specification of
427 objects, value types, properties, and property parameters.
429 o iTIP [2446bis] specifies an interoperability protocol for
430 scheduling between different implementations;
432 o iCalendar Message-Based Interoperability Protocol (iMIP) [2447bis]
433 specifies an Internet email binding for [2446bis].
435 This memo does not attempt to repeat the specification of concepts or
436 definitions from these other memos. Where possible, references are
437 made to the memo that provides for the specification of these
438 concepts or definitions.
4403. iCalendar Object Specification
442 The following sections define the details of a Calendaring and
443 Scheduling Core Object Specification. The Calendaring and Scheduling
444 Core Object is a collection of calendaring and scheduling
445 information. Typically, this information will consist of an
446 iCalendar stream with one or more iCalendar objects. The body of the
450Desruisseaux Standards Track [Page 8]
452RFC 5545 iCalendar September 2009
455 iCalendar object consists of a sequence of calendar properties and
456 one or more calendar components.
458 Section 3.1 defines the content line format; Section 3.2 defines the
459 property parameter format; Section 3.3 defines the data types for
460 property values; Section 3.4 defines the iCalendar object format;
461 Section 3.5 defines the iCalendar property format; Section 3.6
462 defines the calendar component format; Section 3.7 defines calendar
463 properties; and Section 3.8 defines calendar component properties.
465 This information is intended to be an integral part of the MIME
466 content type registration. In addition, this information can be used
467 independent of such content registration. In particular, this memo
468 has direct applicability for use as a calendaring and scheduling
469 exchange format in file-, memory-, or network-based transport
474 The iCalendar object is organized into individual lines of text,
475 called content lines. Content lines are delimited by a line break,
476 which is a CRLF sequence (CR character followed by LF character).
478 Lines of text SHOULD NOT be longer than 75 octets, excluding the line
479 break. Long content lines SHOULD be split into a multiple line
480 representations using a line "folding" technique. That is, a long
481 line can be split between any two characters by inserting a CRLF
482 immediately followed by a single linear white-space character (i.e.,
483 SPACE or HTAB). Any sequence of CRLF followed immediately by a
484 single linear white-space character is ignored (i.e., removed) when
485 processing the content type.
487 For example, the line:
489 DESCRIPTION:This is a long description that exists on a long line.
491 Can be represented as:
493 DESCRIPTION:This is a lo
495 that exists on a long line.
497 The process of moving from this folded multiple-line representation
498 to its single-line representation is called "unfolding". Unfolding
499 is accomplished by removing the CRLF and the linear white-space
500 character that immediately follows.
506Desruisseaux Standards Track [Page 9]
508RFC 5545 iCalendar September 2009
511 When parsing a content line, folded lines MUST first be unfolded
512 according to the unfolding procedure described above.
514 Note: It is possible for very simple implementations to generate
515 improperly folded lines in the middle of a UTF-8 multi-octet
516 sequence. For this reason, implementations need to unfold lines
517 in such a way to properly restore the original sequence.
519 The content information associated with an iCalendar object is
520 formatted using a syntax similar to that defined by [RFC2425]. That
521 is, the content information consists of CRLF-separated content lines.
523 The following notation defines the lines of content in an iCalendar
526 contentline = name *(";" param ) ":" value CRLF
527 ; This ABNF is just a general definition for an initial parsing
528 ; of the content line into its property name, parameter list,
531 ; When parsing a content line, folded lines MUST first
532 ; be unfolded according to the unfolding procedure
533 ; described above. When generating a content line, lines
534 ; longer than 75 octets SHOULD be folded according to
535 ; the folding procedure described above.
537 name = iana-token / x-name
539 iana-token = 1*(ALPHA / DIGIT / "-")
540 ; iCalendar identifier registered with IANA
542 x-name = "X-" [vendorid "-"] 1*(ALPHA / DIGIT / "-")
543 ; Reserved for experimental use.
545 vendorid = 3*(ALPHA / DIGIT)
546 ; Vendor identification
548 param = param-name "=" param-value *("," param-value)
549 ; Each property defines the specific ABNF for the parameters
550 ; allowed on the property. Refer to specific properties for
551 ; precise parameter ABNF.
553 param-name = iana-token / x-name
555 param-value = paramtext / quoted-string
557 paramtext = *SAFE-CHAR
562Desruisseaux Standards Track [Page 10]
564RFC 5545 iCalendar September 2009
569 quoted-string = DQUOTE *QSAFE-CHAR DQUOTE
571 QSAFE-CHAR = WSP / %x21 / %x23-7E / NON-US-ASCII
572 ; Any character except CONTROL and DQUOTE
574 SAFE-CHAR = WSP / %x21 / %x23-2B / %x2D-39 / %x3C-7E
576 ; Any character except CONTROL, DQUOTE, ";", ":", ","
578 VALUE-CHAR = WSP / %x21-7E / NON-US-ASCII
579 ; Any textual character
581 NON-US-ASCII = UTF8-2 / UTF8-3 / UTF8-4
582 ; UTF8-2, UTF8-3, and UTF8-4 are defined in [RFC3629]
584 CONTROL = %x00-08 / %x0A-1F / %x7F
585 ; All the controls except HTAB
587 The property value component of a content line has a format that is
588 property specific. Refer to the section describing each property for
589 a definition of this format.
591 All names of properties, property parameters, enumerated property
592 values and property parameter values are case-insensitive. However,
593 all other property values are case-sensitive, unless otherwise
5963.1.1. List and Field Separators
598 Some properties and parameters allow a list of values. Values in a
599 list of values MUST be separated by a COMMA character. There is no
600 significance to the order of values in a list. For those parameter
601 values (such as those that specify URI values) that are specified in
602 quoted-strings, the individual quoted-strings are separated by a
605 Some property values are defined in terms of multiple parts. These
606 structured property values MUST have their value parts separated by a
609 Some properties allow a list of parameters. Each property parameter
610 in a list of property parameters MUST be separated by a SEMICOLON
618Desruisseaux Standards Track [Page 11]
620RFC 5545 iCalendar September 2009
623 Property parameters with values containing a COLON character, a
624 SEMICOLON character or a COMMA character MUST be placed in quoted
627 For example, in the following properties, a SEMICOLON is used to
628 separate property parameters from each other and a COMMA character is
629 used to separate property values in a value list.
631 ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT:mailto:
634 RDATE;VALUE=DATE:19970304,19970504,19970704,19970904
6363.1.2. Multiple Values
638 Some properties defined in the iCalendar object can have multiple
639 values. The general rule for encoding multi-valued items is to
640 simply create a new content line for each value, including the
641 property name. However, it should be noted that some properties
642 support encoding multiple values in a single property by separating
643 the values with a COMMA character. Individual property definitions
644 should be consulted for determining whether a specific property
645 allows multiple values and in which of these two forms. Multi-valued
646 properties MUST NOT be used to specify multiple language variants of
647 the same value. Calendar applications SHOULD display all values.
651 Binary content information in an iCalendar object SHOULD be
652 referenced using a URI within a property value. That is, the binary
653 content information SHOULD be placed in an external MIME entity that
654 can be referenced by a URI from within the iCalendar object. In
655 applications where this is not feasible, binary content information
656 can be included within an iCalendar object, but only after first
657 encoding it into text using the "BASE64" encoding method defined in
658 [RFC4648]. Inline binary content SHOULD only be used in applications
659 whose special circumstances demand that an iCalendar object be
660 expressed as a single entity. A property containing inline binary
661 content information MUST specify the "ENCODING" property parameter.
662 Binary content information placed external to the iCalendar object
663 MUST be referenced by a uniform resource identifier (URI).
665 The following example specifies an "ATTACH" property that references
666 an attachment external to the iCalendar object with a URI reference:
668 ATTACH:http://example.com/public/quarterly-report.doc
674Desruisseaux Standards Track [Page 12]
676RFC 5545 iCalendar September 2009
679 The following example specifies an "ATTACH" property with inline
680 binary encoded content information:
682 ATTACH;FMTTYPE=text/plain;ENCODING=BASE64;VALUE=BINARY:VGhlIH
683 F1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4
687 There is not a property parameter to declare the charset used in a
688 property value. The default charset for an iCalendar stream is UTF-8
689 as defined in [RFC3629].
691 The "charset" Content-Type parameter MUST be used in MIME transports
692 to specify the charset being used.
6943.2. Property Parameters
696 A property can have attributes with which it is associated. These
697 "property parameters" contain meta-information about the property or
698 the property value. Property parameters are provided to specify such
699 information as the location of an alternate text representation for a
700 property value, the language of a text property value, the value type
701 of the property value, and other attributes.
703 Property parameter values that contain the COLON, SEMICOLON, or COMMA
704 character separators MUST be specified as quoted-string text values.
705 Property parameter values MUST NOT contain the DQUOTE character. The
706 DQUOTE character is used as a delimiter for parameter values that
707 contain restricted characters or URI text. For example:
709 DESCRIPTION;ALTREP="cid:part1.0001@example.org":The Fall'98 Wild
710 Wizards Conference - - Las Vegas\, NV\, USA
712 Property parameter values that are not in quoted-strings are case-
715 The general property parameters defined by this memo are defined by
716 the following notation:
730Desruisseaux Standards Track [Page 13]
732RFC 5545 iCalendar September 2009
735 icalparameter = altrepparam ; Alternate text representation
736 / cnparam ; Common name
737 / cutypeparam ; Calendar user type
738 / delfromparam ; Delegator
739 / deltoparam ; Delegatee
740 / dirparam ; Directory entry
741 / encodingparam ; Inline encoding
742 / fmttypeparam ; Format type
743 / fbtypeparam ; Free/busy time type
744 / languageparam ; Language for text
745 / memberparam ; Group or list membership
746 / partstatparam ; Participation status
747 / rangeparam ; Recurrence identifier range
748 / trigrelparam ; Alarm trigger relationship
749 / reltypeparam ; Relationship type
750 / roleparam ; Participation role
751 / rsvpparam ; RSVP expectation
752 / sentbyparam ; Sent by
753 / tzidparam ; Reference to time zone object
754 / valuetypeparam ; Property value data type
757 other-param = (iana-param / x-param)
759 iana-param = iana-token "=" param-value *("," param-value)
760 ; Some other IANA-registered iCalendar parameter.
762 x-param = x-name "=" param-value *("," param-value)
763 ; A non-standard, experimental parameter.
765 Applications MUST ignore x-param and iana-param values they don't
7683.2.1. Alternate Text Representation
770 Parameter Name: ALTREP
772 Purpose: To specify an alternate text representation for the
775 Format Definition: This property parameter is defined by the
778 altrepparam = "ALTREP" "=" DQUOTE uri DQUOTE
780 Description: This parameter specifies a URI that points to an
781 alternate representation for a textual property value. A property
782 specifying this parameter MUST also include a value that reflects
786Desruisseaux Standards Track [Page 14]
788RFC 5545 iCalendar September 2009
791 the default representation of the text value. The URI parameter
792 value MUST be specified in a quoted-string.
794 Note: While there is no restriction imposed on the URI schemes
795 allowed for this parameter, Content Identifier (CID) [RFC2392],
796 HTTP [RFC2616], and HTTPS [RFC2818] are the URI schemes most
797 commonly used by current implementations.
801 DESCRIPTION;ALTREP="CID:part3.msg.970415T083000@example.com":
802 Project XYZ Review Meeting will include the following agenda
803 items: (a) Market Overview\, (b) Finances\, (c) Project Man
806 The "ALTREP" property parameter value might point to a "text/html"
809 Content-Type:text/html
810 Content-Id:<part3.msg.970415T083000@example.com>
818 <b>Project XYZ Review Meeting</b> will include
819 the following agenda items:
821 <li>Market Overview</li>
823 <li>Project Management</li>
833 Purpose: To specify the common name to be associated with the
834 calendar user specified by the property.
836 Format Definition: This property parameter is defined by the
842Desruisseaux Standards Track [Page 15]
844RFC 5545 iCalendar September 2009
847 cnparam = "CN" "=" param-value
849 Description: This parameter can be specified on properties with a
850 CAL-ADDRESS value type. The parameter specifies the common name
851 to be associated with the calendar user specified by the property.
852 The parameter value is text. The parameter value can be used for
853 display text to be associated with the calendar address specified
858 ORGANIZER;CN="John Smith":mailto:jsmith@example.com
8603.2.3. Calendar User Type
862 Parameter Name: CUTYPE
864 Purpose: To identify the type of calendar user specified by the
867 Format Definition: This property parameter is defined by the
870 cutypeparam = "CUTYPE" "="
871 ("INDIVIDUAL" ; An individual
872 / "GROUP" ; A group of individuals
873 / "RESOURCE" ; A physical resource
874 / "ROOM" ; A room resource
875 / "UNKNOWN" ; Otherwise not known
876 / x-name ; Experimental type
877 / iana-token) ; Other IANA-registered
879 ; Default is INDIVIDUAL
881 Description: This parameter can be specified on properties with a
882 CAL-ADDRESS value type. The parameter identifies the type of
883 calendar user specified by the property. If not specified on a
884 property that allows this parameter, the default is INDIVIDUAL.
885 Applications MUST treat x-name and iana-token values they don't
886 recognize the same way as they would the UNKNOWN value.
890 ATTENDEE;CUTYPE=GROUP:mailto:ietf-calsch@example.org
898Desruisseaux Standards Track [Page 16]
900RFC 5545 iCalendar September 2009
905 Parameter Name: DELEGATED-FROM
907 Purpose: To specify the calendar users that have delegated their
908 participation to the calendar user specified by the property.
910 Format Definition: This property parameter is defined by the
913 delfromparam = "DELEGATED-FROM" "=" DQUOTE cal-address
914 DQUOTE *("," DQUOTE cal-address DQUOTE)
916 Description: This parameter can be specified on properties with a
917 CAL-ADDRESS value type. This parameter specifies those calendar
918 users that have delegated their participation in a group-scheduled
919 event or to-do to the calendar user specified by the property.
920 The individual calendar address parameter values MUST each be
921 specified in a quoted-string.
925 ATTENDEE;DELEGATED-FROM="mailto:jsmith@example.com":mailto:
930 Parameter Name: DELEGATED-TO
932 Purpose: To specify the calendar users to whom the calendar user
933 specified by the property has delegated participation.
935 Format Definition: This property parameter is defined by the
938 deltoparam = "DELEGATED-TO" "=" DQUOTE cal-address DQUOTE
939 *("," DQUOTE cal-address DQUOTE)
941 Description: This parameter can be specified on properties with a
942 CAL-ADDRESS value type. This parameter specifies those calendar
943 users whom have been delegated participation in a group-scheduled
944 event or to-do by the calendar user specified by the property.
945 The individual calendar address parameter values MUST each be
946 specified in a quoted-string.
954Desruisseaux Standards Track [Page 17]
956RFC 5545 iCalendar September 2009
961 ATTENDEE;DELEGATED-TO="mailto:jdoe@example.com","mailto:jqpublic
962 @example.com":mailto:jsmith@example.com
9643.2.6. Directory Entry Reference
968 Purpose: To specify reference to a directory entry associated with
969 the calendar user specified by the property.
971 Format Definition: This property parameter is defined by the
974 dirparam = "DIR" "=" DQUOTE uri DQUOTE
976 Description: This parameter can be specified on properties with a
977 CAL-ADDRESS value type. The parameter specifies a reference to
978 the directory entry associated with the calendar user specified by
979 the property. The parameter value is a URI. The URI parameter
980 value MUST be specified in a quoted-string.
982 Note: While there is no restriction imposed on the URI schemes
983 allowed for this parameter, CID [RFC2392], DATA [RFC2397], FILE
984 [RFC1738], FTP [RFC1738], HTTP [RFC2616], HTTPS [RFC2818], LDAP
985 [RFC4516], and MID [RFC2392] are the URI schemes most commonly
986 used by current implementations.
990 ORGANIZER;DIR="ldap://example.com:6666/o=ABC%20Industries,
991 c=US???(cn=Jim%20Dolittle)":mailto:jimdo@example.com
9933.2.7. Inline Encoding
995 Parameter Name: ENCODING
997 Purpose: To specify an alternate inline encoding for the property
1000 Format Definition: This property parameter is defined by the
1010Desruisseaux Standards Track [Page 18]
1012RFC 5545 iCalendar September 2009
1015 encodingparam = "ENCODING" "="
1017 ; "8bit" text encoding is defined in [RFC2045]
1019 ; "BASE64" binary encoding format is defined in [RFC4648]
1022 Description: This property parameter identifies the inline encoding
1023 used in a property value. The default encoding is "8BIT",
1024 corresponding to a property value consisting of text. The
1025 "BASE64" encoding type corresponds to a property value encoded
1026 using the "BASE64" encoding defined in [RFC2045].
1028 If the value type parameter is ";VALUE=BINARY", then the inline
1029 encoding parameter MUST be specified with the value
1034 ATTACH;FMTTYPE=text/plain;ENCODING=BASE64;VALUE=BINARY:TG9yZW
1035 0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW
1036 5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IG
1037 xhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbm
1038 ltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIG
1039 xhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdW
1040 F0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbi
1041 B2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdC
1042 BudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaW
1043 RhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYS
1044 BkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4=
1048 Parameter Name: FMTTYPE
1050 Purpose: To specify the content type of a referenced object.
1052 Format Definition: This property parameter is defined by the
1055 fmttypeparam = "FMTTYPE" "=" type-name "/" subtype-name
1056 ; Where "type-name" and "subtype-name" are
1057 ; defined in Section 4.2 of [RFC4288].
1059 Description: This parameter can be specified on properties that are
1060 used to reference an object. The parameter specifies the media
1061 type [RFC4288] of the referenced object. For example, on the
1062 "ATTACH" property, an FTP type URI value does not, by itself,
1066Desruisseaux Standards Track [Page 19]
1068RFC 5545 iCalendar September 2009
1071 necessarily convey the type of content associated with the
1072 resource. The parameter value MUST be the text for either an
1073 IANA-registered media type or a non-standard media type.
1077 ATTACH;FMTTYPE=application/msword:ftp://example.com/pub/docs/
10803.2.9. Free/Busy Time Type
1082 Parameter Name: FBTYPE
1084 Purpose: To specify the free or busy time type.
1086 Format Definition: This property parameter is defined by the
1089 fbtypeparam = "FBTYPE" "=" ("FREE" / "BUSY"
1090 / "BUSY-UNAVAILABLE" / "BUSY-TENTATIVE"
1092 ; Some experimental iCalendar free/busy type.
1094 ; Some other IANA-registered iCalendar free/busy type.
1096 Description: This parameter specifies the free or busy time type.
1097 The value FREE indicates that the time interval is free for
1098 scheduling. The value BUSY indicates that the time interval is
1099 busy because one or more events have been scheduled for that
1100 interval. The value BUSY-UNAVAILABLE indicates that the time
1101 interval is busy and that the interval can not be scheduled. The
1102 value BUSY-TENTATIVE indicates that the time interval is busy
1103 because one or more events have been tentatively scheduled for
1104 that interval. If not specified on a property that allows this
1105 parameter, the default is BUSY. Applications MUST treat x-name
1106 and iana-token values they don't recognize the same way as they
1107 would the BUSY value.
1109 Example: The following is an example of this parameter on a
1110 "FREEBUSY" property.
1112 FREEBUSY;FBTYPE=BUSY:19980415T133000Z/19980415T170000Z
1122Desruisseaux Standards Track [Page 20]
1124RFC 5545 iCalendar September 2009
1129 Parameter Name: LANGUAGE
1131 Purpose: To specify the language for text values in a property or
1134 Format Definition: This property parameter is defined by the
1137 languageparam = "LANGUAGE" "=" language
1139 language = Language-Tag
1140 ; As defined in [RFC5646].
1142 Description: This parameter identifies the language of the text in
1143 the property value and of all property parameter values of the
1144 property. The value of the "LANGUAGE" property parameter is that
1145 defined in [RFC5646].
1147 For transport in a MIME entity, the Content-Language header field
1148 can be used to set the default language for the entire body part.
1149 Otherwise, no default language is assumed.
1151 Example: The following are examples of this parameter on the
1152 "SUMMARY" and "LOCATION" properties:
1154 SUMMARY;LANGUAGE=en-US:Company Holiday Party
1156 LOCATION;LANGUAGE=en:Germany
1158 LOCATION;LANGUAGE=no:Tyskland
11603.2.11. Group or List Membership
1162 Parameter Name: MEMBER
1164 Purpose: To specify the group or list membership of the calendar
1165 user specified by the property.
1167 Format Definition: This property parameter is defined by the
1170 memberparam = "MEMBER" "=" DQUOTE cal-address DQUOTE
1171 *("," DQUOTE cal-address DQUOTE)
1178Desruisseaux Standards Track [Page 21]
1180RFC 5545 iCalendar September 2009
1183 Description: This parameter can be specified on properties with a
1184 CAL-ADDRESS value type. The parameter identifies the groups or
1185 list membership for the calendar user specified by the property.
1186 The parameter value is either a single calendar address in a
1187 quoted-string or a COMMA-separated list of calendar addresses,
1188 each in a quoted-string. The individual calendar address
1189 parameter values MUST each be specified in a quoted-string.
1193 ATTENDEE;MEMBER="mailto:ietf-calsch@example.org":mailto:
1196 ATTENDEE;MEMBER="mailto:projectA@example.com","mailto:pr
1197 ojectB@example.com":mailto:janedoe@example.com
11993.2.12. Participation Status
1201 Parameter Name: PARTSTAT
1203 Purpose: To specify the participation status for the calendar user
1204 specified by the property.
1206 Format Definition: This property parameter is defined by the
1209 partstatparam = "PARTSTAT" "="
1214 partstat-event = ("NEEDS-ACTION" ; Event needs action
1215 / "ACCEPTED" ; Event accepted
1216 / "DECLINED" ; Event declined
1217 / "TENTATIVE" ; Event tentatively
1219 / "DELEGATED" ; Event delegated
1220 / x-name ; Experimental status
1221 / iana-token) ; Other IANA-registered
1223 ; These are the participation statuses for a "VEVENT".
1224 ; Default is NEEDS-ACTION.
1226 partstat-todo = ("NEEDS-ACTION" ; To-do needs action
1227 / "ACCEPTED" ; To-do accepted
1228 / "DECLINED" ; To-do declined
1229 / "TENTATIVE" ; To-do tentatively
1234Desruisseaux Standards Track [Page 22]
1236RFC 5545 iCalendar September 2009
1239 / "DELEGATED" ; To-do delegated
1240 / "COMPLETED" ; To-do completed
1241 ; COMPLETED property has
1242 ; DATE-TIME completed
1243 / "IN-PROCESS" ; To-do in process of
1245 / x-name ; Experimental status
1246 / iana-token) ; Other IANA-registered
1248 ; These are the participation statuses for a "VTODO".
1249 ; Default is NEEDS-ACTION.
1253 partstat-jour = ("NEEDS-ACTION" ; Journal needs action
1254 / "ACCEPTED" ; Journal accepted
1255 / "DECLINED" ; Journal declined
1256 / x-name ; Experimental status
1257 / iana-token) ; Other IANA-registered
1259 ; These are the participation statuses for a "VJOURNAL".
1260 ; Default is NEEDS-ACTION.
1262 Description: This parameter can be specified on properties with a
1263 CAL-ADDRESS value type. The parameter identifies the
1264 participation status for the calendar user specified by the
1265 property value. The parameter values differ depending on whether
1266 they are associated with a group-scheduled "VEVENT", "VTODO", or
1267 "VJOURNAL". The values MUST match one of the values allowed for
1268 the given calendar component. If not specified on a property that
1269 allows this parameter, the default value is NEEDS-ACTION.
1270 Applications MUST treat x-name and iana-token values they don't
1271 recognize the same way as they would the NEEDS-ACTION value.
1275 ATTENDEE;PARTSTAT=DECLINED:mailto:jsmith@example.com
12773.2.13. Recurrence Identifier Range
1279 Parameter Name: RANGE
1281 Purpose: To specify the effective range of recurrence instances from
1282 the instance specified by the recurrence identifier specified by
1285 Format Definition: This property parameter is defined by the
1290Desruisseaux Standards Track [Page 23]
1292RFC 5545 iCalendar September 2009
1295 rangeparam = "RANGE" "=" "THISANDFUTURE"
1296 ; To specify the instance specified by the recurrence identifier
1297 ; and all subsequent recurrence instances.
1299 Description: This parameter can be specified on a property that
1300 specifies a recurrence identifier. The parameter specifies the
1301 effective range of recurrence instances that is specified by the
1302 property. The effective range is from the recurrence identifier
1303 specified by the property. If this parameter is not specified on
1304 an allowed property, then the default range is the single instance
1305 specified by the recurrence identifier value of the property. The
1306 parameter value can only be "THISANDFUTURE" to indicate a range
1307 defined by the recurrence identifier and all subsequent instances.
1308 The value "THISANDPRIOR" is deprecated by this revision of
1309 iCalendar and MUST NOT be generated by applications.
1313 RECURRENCE-ID;RANGE=THISANDFUTURE:19980401T133000Z
13153.2.14. Alarm Trigger Relationship
1317 Parameter Name: RELATED
1319 Purpose: To specify the relationship of the alarm trigger with
1320 respect to the start or end of the calendar component.
1322 Format Definition: This property parameter is defined by the
1325 trigrelparam = "RELATED" "="
1326 ("START" ; Trigger off of start
1327 / "END") ; Trigger off of end
1329 Description: This parameter can be specified on properties that
1330 specify an alarm trigger with a "DURATION" value type. The
1331 parameter specifies whether the alarm will trigger relative to the
1332 start or end of the calendar component. The parameter value START
1333 will set the alarm to trigger off the start of the calendar
1334 component; the parameter value END will set the alarm to trigger
1335 off the end of the calendar component. If the parameter is not
1336 specified on an allowable property, then the default is START.
1340 TRIGGER;RELATED=END:PT5M
1346Desruisseaux Standards Track [Page 24]
1348RFC 5545 iCalendar September 2009
13513.2.15. Relationship Type
1353 Parameter Name: RELTYPE
1355 Purpose: To specify the type of hierarchical relationship associated
1356 with the calendar component specified by the property.
1358 Format Definition: This property parameter is defined by the
1361 reltypeparam = "RELTYPE" "="
1362 ("PARENT" ; Parent relationship - Default
1363 / "CHILD" ; Child relationship
1364 / "SIBLING" ; Sibling relationship
1365 / iana-token ; Some other IANA-registered
1366 ; iCalendar relationship type
1367 / x-name) ; A non-standard, experimental
1370 Description: This parameter can be specified on a property that
1371 references another related calendar. The parameter specifies the
1372 hierarchical relationship type of the calendar component
1373 referenced by the property. The parameter value can be PARENT, to
1374 indicate that the referenced calendar component is a superior of
1375 calendar component; CHILD to indicate that the referenced calendar
1376 component is a subordinate of the calendar component; or SIBLING
1377 to indicate that the referenced calendar component is a peer of
1378 the calendar component. If this parameter is not specified on an
1379 allowable property, the default relationship type is PARENT.
1380 Applications MUST treat x-name and iana-token values they don't
1381 recognize the same way as they would the PARENT value.
1385 RELATED-TO;RELTYPE=SIBLING:19960401-080045-4000F192713@
13883.2.16. Participation Role
1390 Parameter Name: ROLE
1392 Purpose: To specify the participation role for the calendar user
1393 specified by the property.
1395 Format Definition: This property parameter is defined by the
1402Desruisseaux Standards Track [Page 25]
1404RFC 5545 iCalendar September 2009
1407 roleparam = "ROLE" "="
1408 ("CHAIR" ; Indicates chair of the
1410 / "REQ-PARTICIPANT" ; Indicates a participant whose
1411 ; participation is required
1412 / "OPT-PARTICIPANT" ; Indicates a participant whose
1413 ; participation is optional
1414 / "NON-PARTICIPANT" ; Indicates a participant who
1415 ; is copied for information
1417 / x-name ; Experimental role
1418 / iana-token) ; Other IANA role
1419 ; Default is REQ-PARTICIPANT
1421 Description: This parameter can be specified on properties with a
1422 CAL-ADDRESS value type. The parameter specifies the participation
1423 role for the calendar user specified by the property in the group
1424 schedule calendar component. If not specified on a property that
1425 allows this parameter, the default value is REQ-PARTICIPANT.
1426 Applications MUST treat x-name and iana-token values they don't
1427 recognize the same way as they would the REQ-PARTICIPANT value.
1431 ATTENDEE;ROLE=CHAIR:mailto:mrbig@example.com
14333.2.17. RSVP Expectation
1435 Parameter Name: RSVP
1437 Purpose: To specify whether there is an expectation of a favor of a
1438 reply from the calendar user specified by the property value.
1440 Format Definition: This property parameter is defined by the
1443 rsvpparam = "RSVP" "=" ("TRUE" / "FALSE")
1446 Description: This parameter can be specified on properties with a
1447 CAL-ADDRESS value type. The parameter identifies the expectation
1448 of a reply from the calendar user specified by the property value.
1449 This parameter is used by the "Organizer" to request a
1450 participation status reply from an "Attendee" of a group-scheduled
1451 event or to-do. If not specified on a property that allows this
1452 parameter, the default value is FALSE.
1458Desruisseaux Standards Track [Page 26]
1460RFC 5545 iCalendar September 2009
1465 ATTENDEE;RSVP=TRUE:mailto:jsmith@example.com
1469 Parameter Name: SENT-BY
1471 Purpose: To specify the calendar user that is acting on behalf of
1472 the calendar user specified by the property.
1474 Format Definition: This property parameter is defined by the
1477 sentbyparam = "SENT-BY" "=" DQUOTE cal-address DQUOTE
1479 Description: This parameter can be specified on properties with a
1480 CAL-ADDRESS value type. The parameter specifies the calendar user
1481 that is acting on behalf of the calendar user specified by the
1482 property. The parameter value MUST be a mailto URI as defined in
1483 [RFC2368]. The individual calendar address parameter values MUST
1484 each be specified in a quoted-string.
1488 ORGANIZER;SENT-BY="mailto:sray@example.com":mailto:
14913.2.19. Time Zone Identifier
1493 Parameter Name: TZID
1495 Purpose: To specify the identifier for the time zone definition for
1496 a time component in the property value.
1498 Format Definition: This property parameter is defined by the
1501 tzidparam = "TZID" "=" [tzidprefix] paramtext
1505 Description: This parameter MUST be specified on the "DTSTART",
1506 "DTEND", "DUE", "EXDATE", and "RDATE" properties when either a
1507 DATE-TIME or TIME value type is specified and when the value is
1508 neither a UTC or a "floating" time. Refer to the DATE-TIME or
1509 TIME value type definition for a description of UTC and "floating
1510 time" formats. This property parameter specifies a text value
1514Desruisseaux Standards Track [Page 27]
1516RFC 5545 iCalendar September 2009
1519 that uniquely identifies the "VTIMEZONE" calendar component to be
1520 used when evaluating the time portion of the property. The value
1521 of the "TZID" property parameter will be equal to the value of the
1522 "TZID" property for the matching time zone definition. An
1523 individual "VTIMEZONE" calendar component MUST be specified for
1524 each unique "TZID" parameter value specified in the iCalendar
1527 The parameter MUST be specified on properties with a DATE-TIME
1528 value if the DATE-TIME is not either a UTC or a "floating" time.
1529 Failure to include and follow VTIMEZONE definitions in iCalendar
1530 objects may lead to inconsistent understanding of the local time
1531 at any given location.
1533 The presence of the SOLIDUS character as a prefix, indicates that
1534 this "TZID" represents a unique ID in a globally defined time zone
1535 registry (when such registry is defined).
1537 Note: This document does not define a naming convention for
1538 time zone identifiers. Implementers may want to use the naming
1539 conventions defined in existing time zone specifications such
1540 as the public-domain TZ database [TZDB]. The specification of
1541 globally unique time zone identifiers is not addressed by this
1542 document and is left for future study.
1544 The following are examples of this property parameter:
1546 DTSTART;TZID=America/New_York:19980119T020000
1548 DTEND;TZID=America/New_York:19980119T030000
1550 The "TZID" property parameter MUST NOT be applied to DATE
1551 properties and DATE-TIME or TIME properties whose time values are
1554 The use of local time in a DATE-TIME or TIME value without the
1555 "TZID" property parameter is to be interpreted as floating time,
1556 regardless of the existence of "VTIMEZONE" calendar components in
1557 the iCalendar object.
1559 For more information, see the sections on the value types DATE-
1570Desruisseaux Standards Track [Page 28]
1572RFC 5545 iCalendar September 2009
15753.2.20. Value Data Types
1577 Parameter Name: VALUE
1579 Purpose: To explicitly specify the value type format for a property
1582 Format Definition: This property parameter is defined by the
1585 valuetypeparam = "VALUE" "=" valuetype
1587 valuetype = ("BINARY"
1602 ; Some experimental iCalendar value type.
1604 ; Some other IANA-registered iCalendar value type.
1606 Description: This parameter specifies the value type and format of
1607 the property value. The property values MUST be of a single value
1608 type. For example, a "RDATE" property cannot have a combination
1609 of DATE-TIME and TIME value types.
1611 If the property's value is the default value type, then this
1612 parameter need not be specified. However, if the property's
1613 default value type is overridden by some other allowable value
1614 type, then this parameter MUST be specified.
1616 Applications MUST preserve the value data for x-name and iana-
1617 token values that they don't recognize without attempting to
1618 interpret or parse the value data.
1626Desruisseaux Standards Track [Page 29]
1628RFC 5545 iCalendar September 2009
16313.3. Property Value Data Types
1633 The properties in an iCalendar object are strongly typed. The
1634 definition of each property restricts the value to be one of the
1635 value data types, or simply value types, defined in this section.
1636 The value type for a property will either be specified implicitly as
1637 the default value type or will be explicitly specified with the
1638 "VALUE" parameter. If the value type of a property is one of the
1639 alternate valid types, then it MUST be explicitly specified with the
1646 Purpose: This value type is used to identify properties that contain
1647 a character encoding of inline binary data. For example, an
1648 inline attachment of a document might be included in an iCalendar
1651 Format Definition: This value type is defined by the following
1654 binary = *(4b-char) [b-end]
1655 ; A "BASE64" encoded character string, as defined by [RFC4648].
1657 b-end = (2b-char "==") / (3b-char "=")
1659 b-char = ALPHA / DIGIT / "+" / "/"
1661 Description: Property values with this value type MUST also include
1662 the inline encoding parameter sequence of ";ENCODING=BASE64".
1663 That is, all inline binary data MUST first be character encoded
1664 using the "BASE64" encoding method defined in [RFC2045]. No
1665 additional content value encoding (i.e., BACKSLASH character
1666 encoding, see Section 3.3.11) is defined for this value type.
1682Desruisseaux Standards Track [Page 30]
1684RFC 5545 iCalendar September 2009
1687 Example: The following is an example of a "BASE64" encoded binary
1690 ATTACH;FMTTYPE=image/vnd.microsoft.icon;ENCODING=BASE64;VALUE
1691 =BINARY:AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAA
1692 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgIAAAICAgADAwMAA////AAAA
1693 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1694 AAAAAAAAAAAAAAAAAAAAAAMwAAAAAAABNEMQAAAAAAAkQgAAAAAAJEREQgAA
1695 ACECQ0QgEgAAQxQzM0E0AABERCRCREQAADRDJEJEQwAAAhA0QwEQAAAAAERE
1696 AAAAAAAAREQAAAAAAAAkQgAAAAAAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1697 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1704 Purpose: This value type is used to identify properties that contain
1705 either a "TRUE" or "FALSE" Boolean value.
1707 Format Definition: This value type is defined by the following
1710 boolean = "TRUE" / "FALSE"
1712 Description: These values are case-insensitive text. No additional
1713 content value encoding (i.e., BACKSLASH character encoding, see
1714 Section 3.3.11) is defined for this value type.
1716 Example: The following is an example of a hypothetical property that
1717 has a BOOLEAN value type:
17213.3.3. Calendar User Address
1723 Value Name: CAL-ADDRESS
1725 Purpose: This value type is used to identify properties that contain
1726 a calendar user address.
1728 Format Definition: This value type is defined by the following
1733 Description: The value is a URI as defined by [RFC3986] or any other
1734 IANA-registered form for a URI. When used to address an Internet
1738Desruisseaux Standards Track [Page 31]
1740RFC 5545 iCalendar September 2009
1743 email transport address for a calendar user, the value MUST be a
1744 mailto URI, as defined by [RFC2368]. No additional content value
1745 encoding (i.e., BACKSLASH character encoding, see Section 3.3.11)
1746 is defined for this value type.
1750 mailto:jane_doe@example.com
1756 Purpose: This value type is used to identify values that contain a
1759 Format Definition: This value type is defined by the following
1764 date-value = date-fullyear date-month date-mday
1765 date-fullyear = 4DIGIT
1766 date-month = 2DIGIT ;01-12
1767 date-mday = 2DIGIT ;01-28, 01-29, 01-30, 01-31
1768 ;based on month/year
1770 Description: If the property permits, multiple "date" values are
1771 specified as a COMMA-separated list of values. The format for the
1772 value type is based on the [ISO.8601.2004] complete
1773 representation, basic format for a calendar date. The textual
1774 format specifies a four-digit year, two-digit month, and two-digit
1775 day of the month. There are no separator characters between the
1776 year, month, and day component text.
1778 No additional content value encoding (i.e., BACKSLASH character
1779 encoding, see Section 3.3.11) is defined for this value type.
1781 Example: The following represents July 14, 1997:
1787 Value Name: DATE-TIME
1789 Purpose: This value type is used to identify values that specify a
1790 precise calendar date and time of day.
1794Desruisseaux Standards Track [Page 32]
1796RFC 5545 iCalendar September 2009
1799 Format Definition: This value type is defined by the following
1802 date-time = date "T" time ;As specified in the DATE and TIME
1805 Description: If the property permits, multiple "DATE-TIME" values
1806 are specified as a COMMA-separated list of values. No additional
1807 content value encoding (i.e., BACKSLASH character encoding, see
1808 Section 3.3.11) is defined for this value type.
1810 The "DATE-TIME" value type is used to identify values that contain
1811 a precise calendar date and time of day. The format is based on
1812 the [ISO.8601.2004] complete representation, basic format for a
1813 calendar date and time of day. The text format is a concatenation
1814 of the "date", followed by the LATIN CAPITAL LETTER T character,
1815 the time designator, followed by the "time" format.
1817 The "DATE-TIME" value type expresses time values in three forms:
1819 The form of date and time with UTC offset MUST NOT be used. For
1820 example, the following is not valid for a DATE-TIME value:
1822 19980119T230000-0800 ;Invalid time format
1824 FORM #1: DATE WITH LOCAL TIME
1826 The date with local time form is simply a DATE-TIME value that
1827 does not contain the UTC designator nor does it reference a time
1828 zone. For example, the following represents January 18, 1998, at
1833 DATE-TIME values of this type are said to be "floating" and are
1834 not bound to any time zone in particular. They are used to
1835 represent the same hour, minute, and second value regardless of
1836 which time zone is currently being observed. For example, an
1837 event can be defined that indicates that an individual will be
1838 busy from 11:00 AM to 1:00 PM every day, no matter which time zone
1839 the person is in. In these cases, a local time can be specified.
1840 The recipient of an iCalendar object with a property value
1841 consisting of a local time, without any relative time zone
1842 information, SHOULD interpret the value as being fixed to whatever
1843 time zone the "ATTENDEE" is in at any given moment. This means
1844 that two "Attendees", in different time zones, receiving the same
1845 event definition as a floating time, may be participating in the
1850Desruisseaux Standards Track [Page 33]
1852RFC 5545 iCalendar September 2009
1855 event at different actual times. Floating time SHOULD only be
1856 used where that is the reasonable behavior.
1858 In most cases, a fixed time is desired. To properly communicate a
1859 fixed time in a property value, either UTC time or local time with
1860 time zone reference MUST be specified.
1862 The use of local time in a DATE-TIME value without the "TZID"
1863 property parameter is to be interpreted as floating time,
1864 regardless of the existence of "VTIMEZONE" calendar components in
1865 the iCalendar object.
1867 FORM #2: DATE WITH UTC TIME
1869 The date with UTC time, or absolute time, is identified by a LATIN
1870 CAPITAL LETTER Z suffix character, the UTC designator, appended to
1871 the time value. For example, the following represents January 19,
1876 The "TZID" property parameter MUST NOT be applied to DATE-TIME
1877 properties whose time values are specified in UTC.
1879 FORM #3: DATE WITH LOCAL TIME AND TIME ZONE REFERENCE
1881 The date and local time with reference to time zone information is
1882 identified by the use the "TZID" property parameter to reference
1883 the appropriate time zone definition. "TZID" is discussed in
1884 detail in Section 3.2.19. For example, the following represents
1885 2:00 A.M. in New York on January 19, 1998:
1887 TZID=America/New_York:19980119T020000
1889 If, based on the definition of the referenced time zone, the local
1890 time described occurs more than once (when changing from daylight
1891 to standard time), the DATE-TIME value refers to the first
1892 occurrence of the referenced time. Thus, TZID=America/
1893 New_York:20071104T013000 indicates November 4, 2007 at 1:30 A.M.
1894 EDT (UTC-04:00). If the local time described does not occur (when
1895 changing from standard to daylight time), the DATE-TIME value is
1896 interpreted using the UTC offset before the gap in local times.
1897 Thus, TZID=America/New_York:20070311T023000 indicates March 11,
1898 2007 at 3:30 A.M. EDT (UTC-04:00), one hour after 1:30 A.M. EST
1906Desruisseaux Standards Track [Page 34]
1908RFC 5545 iCalendar September 2009
1911 A time value MUST only specify the second 60 when specifying a
1912 positive leap second. For example:
1916 Implementations that do not support leap seconds SHOULD interpret
1917 the second 60 as equivalent to the second 59.
1919 Example: The following represents July 14, 1997, at 1:30 PM in New
1920 York City in each of the three time formats, using the "DTSTART"
1923 DTSTART:19970714T133000 ; Local time
1924 DTSTART:19970714T173000Z ; UTC time
1925 DTSTART;TZID=America/New_York:19970714T133000
1926 ; Local time and time
1931 Value Name: DURATION
1933 Purpose: This value type is used to identify properties that contain
1936 Format Definition: This value type is defined by the following
1939 dur-value = (["+"] / "-") "P" (dur-date / dur-time / dur-week)
1941 dur-date = dur-day [dur-time]
1942 dur-time = "T" (dur-hour / dur-minute / dur-second)
1943 dur-week = 1*DIGIT "W"
1944 dur-hour = 1*DIGIT "H" [dur-minute]
1945 dur-minute = 1*DIGIT "M" [dur-second]
1946 dur-second = 1*DIGIT "S"
1947 dur-day = 1*DIGIT "D"
1949 Description: If the property permits, multiple "duration" values are
1950 specified by a COMMA-separated list of values. The format is
1951 based on the [ISO.8601.2004] complete representation basic format
1952 with designators for the duration of time. The format can
1953 represent nominal durations (weeks and days) and accurate
1954 durations (hours, minutes, and seconds). Note that unlike
1955 [ISO.8601.2004], this value type doesn't support the "Y" and "M"
1956 designators to specify durations in terms of years and months.
1962Desruisseaux Standards Track [Page 35]
1964RFC 5545 iCalendar September 2009
1967 The duration of a week or a day depends on its position in the
1968 calendar. In the case of discontinuities in the time scale, such
1969 as the change from standard time to daylight time and back, the
1970 computation of the exact duration requires the subtraction or
1971 addition of the change of duration of the discontinuity. Leap
1972 seconds MUST NOT be considered when computing an exact duration.
1973 When computing an exact duration, the greatest order time
1974 components MUST be added first, that is, the number of days MUST
1975 be added first, followed by the number of hours, number of
1976 minutes, and number of seconds.
1978 Negative durations are typically used to schedule an alarm to
1979 trigger before an associated time (see Section 3.8.6.3).
1981 No additional content value encoding (i.e., BACKSLASH character
1982 encoding, see Section 3.3.11) are defined for this value type.
1984 Example: A duration of 15 days, 5 hours, and 20 seconds would be:
1988 A duration of 7 weeks would be:
1996 Purpose: This value type is used to identify properties that contain
1997 a real-number value.
1999 Format Definition: This value type is defined by the following
2002 float = (["+"] / "-") 1*DIGIT ["." 1*DIGIT]
2004 Description: If the property permits, multiple "float" values are
2005 specified by a COMMA-separated list of values.
2007 No additional content value encoding (i.e., BACKSLASH character
2008 encoding, see Section 3.3.11) is defined for this value type.
2018Desruisseaux Standards Track [Page 36]
2020RFC 5545 iCalendar September 2009
2027 Purpose: This value type is used to identify properties that contain
2028 a signed integer value.
2030 Format Definition: This value type is defined by the following
2033 integer = (["+"] / "-") 1*DIGIT
2035 Description: If the property permits, multiple "integer" values are
2036 specified by a COMMA-separated list of values. The valid range
2037 for "integer" is -2147483648 to 2147483647. If the sign is not
2038 specified, then the value is assumed to be positive.
2040 No additional content value encoding (i.e., BACKSLASH character
2041 encoding, see Section 3.3.11) is defined for this value type.
20503.3.9. Period of Time
2054 Purpose: This value type is used to identify values that contain a
2055 precise period of time.
2057 Format Definition: This value type is defined by the following
2060 period = period-explicit / period-start
2062 period-explicit = date-time "/" date-time
2063 ; [ISO.8601.2004] complete representation basic format for a
2064 ; period of time consisting of a start and end. The start MUST
2065 ; be before the end.
2067 period-start = date-time "/" dur-value
2068 ; [ISO.8601.2004] complete representation basic format for a
2069 ; period of time consisting of a start and positive duration
2074Desruisseaux Standards Track [Page 37]
2076RFC 5545 iCalendar September 2009
2079 Description: If the property permits, multiple "period" values are
2080 specified by a COMMA-separated list of values. There are two
2081 forms of a period of time. First, a period of time is identified
2082 by its start and its end. This format is based on the
2083 [ISO.8601.2004] complete representation, basic format for "DATE-
2084 TIME" start of the period, followed by a SOLIDUS character
2085 followed by the "DATE-TIME" of the end of the period. The start
2086 of the period MUST be before the end of the period. Second, a
2087 period of time can also be defined by a start and a positive
2088 duration of time. The format is based on the [ISO.8601.2004]
2089 complete representation, basic format for the "DATE-TIME" start of
2090 the period, followed by a SOLIDUS character, followed by the
2091 [ISO.8601.2004] basic format for "DURATION" of the period.
2093 Example: The period starting at 18:00:00 UTC, on January 1, 1997 and
2094 ending at 07:00:00 UTC on January 2, 1997 would be:
2096 19970101T180000Z/19970102T070000Z
2098 The period start at 18:00:00 on January 1, 1997 and lasting 5
2099 hours and 30 minutes would be:
2101 19970101T180000Z/PT5H30M
2103 No additional content value encoding (i.e., BACKSLASH character
2104 encoding, see Section 3.3.11) is defined for this value type.
21063.3.10. Recurrence Rule
2110 Purpose: This value type is used to identify properties that contain
2111 a recurrence rule specification.
2113 Format Definition: This value type is defined by the following
2116 recur = recur-rule-part *( ";" recur-rule-part )
2118 ; The rule parts are not ordered in any
2119 ; particular sequence.
2121 ; The FREQ rule part is REQUIRED,
2122 ; but MUST NOT occur more than once.
2124 ; The UNTIL or COUNT rule parts are OPTIONAL,
2125 ; but they MUST NOT occur in the same 'recur'.
2130Desruisseaux Standards Track [Page 38]
2132RFC 5545 iCalendar September 2009
2135 ; The other rule parts are OPTIONAL,
2136 ; but MUST NOT occur more than once.
2138 recur-rule-part = ( "FREQ" "=" freq )
2139 / ( "UNTIL" "=" enddate )
2140 / ( "COUNT" "=" 1*DIGIT )
2141 / ( "INTERVAL" "=" 1*DIGIT )
2142 / ( "BYSECOND" "=" byseclist )
2143 / ( "BYMINUTE" "=" byminlist )
2144 / ( "BYHOUR" "=" byhrlist )
2145 / ( "BYDAY" "=" bywdaylist )
2146 / ( "BYMONTHDAY" "=" bymodaylist )
2147 / ( "BYYEARDAY" "=" byyrdaylist )
2148 / ( "BYWEEKNO" "=" bywknolist )
2149 / ( "BYMONTH" "=" bymolist )
2150 / ( "BYSETPOS" "=" bysplist )
2151 / ( "WKST" "=" weekday )
2153 freq = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY"
2154 / "WEEKLY" / "MONTHLY" / "YEARLY"
2156 enddate = date / date-time
2158 byseclist = ( seconds *("," seconds) )
2160 seconds = 1*2DIGIT ;0 to 60
2162 byminlist = ( minutes *("," minutes) )
2164 minutes = 1*2DIGIT ;0 to 59
2166 byhrlist = ( hour *("," hour) )
2168 hour = 1*2DIGIT ;0 to 23
2170 bywdaylist = ( weekdaynum *("," weekdaynum) )
2172 weekdaynum = [[plus / minus] ordwk] weekday
2178 ordwk = 1*2DIGIT ;1 to 53
2180 weekday = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA"
2181 ;Corresponding to SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY,
2182 ;FRIDAY, and SATURDAY days of the week.
2186Desruisseaux Standards Track [Page 39]
2188RFC 5545 iCalendar September 2009
2191 bymodaylist = ( monthdaynum *("," monthdaynum) )
2193 monthdaynum = [plus / minus] ordmoday
2195 ordmoday = 1*2DIGIT ;1 to 31
2197 byyrdaylist = ( yeardaynum *("," yeardaynum) )
2199 yeardaynum = [plus / minus] ordyrday
2201 ordyrday = 1*3DIGIT ;1 to 366
2203 bywknolist = ( weeknum *("," weeknum) )
2205 weeknum = [plus / minus] ordwk
2207 bymolist = ( monthnum *("," monthnum) )
2209 monthnum = 1*2DIGIT ;1 to 12
2211 bysplist = ( setposday *("," setposday) )
2213 setposday = yeardaynum
2215 Description: This value type is a structured value consisting of a
2216 list of one or more recurrence grammar parts. Each rule part is
2217 defined by a NAME=VALUE pair. The rule parts are separated from
2218 each other by the SEMICOLON character. The rule parts are not
2219 ordered in any particular sequence. Individual rule parts MUST
2220 only be specified once. Compliant applications MUST accept rule
2221 parts ordered in any sequence, but to ensure backward
2222 compatibility with applications that pre-date this revision of
2223 iCalendar the FREQ rule part MUST be the first rule part specified
2226 The FREQ rule part identifies the type of recurrence rule. This
2227 rule part MUST be specified in the recurrence rule. Valid values
2228 include SECONDLY, to specify repeating events based on an interval
2229 of a second or more; MINUTELY, to specify repeating events based
2230 on an interval of a minute or more; HOURLY, to specify repeating
2231 events based on an interval of an hour or more; DAILY, to specify
2232 repeating events based on an interval of a day or more; WEEKLY, to
2233 specify repeating events based on an interval of a week or more;
2234 MONTHLY, to specify repeating events based on an interval of a
2235 month or more; and YEARLY, to specify repeating events based on an
2236 interval of a year or more.
2242Desruisseaux Standards Track [Page 40]
2244RFC 5545 iCalendar September 2009
2247 The INTERVAL rule part contains a positive integer representing at
2248 which intervals the recurrence rule repeats. The default value is
2249 "1", meaning every second for a SECONDLY rule, every minute for a
2250 MINUTELY rule, every hour for an HOURLY rule, every day for a
2251 DAILY rule, every week for a WEEKLY rule, every month for a
2252 MONTHLY rule, and every year for a YEARLY rule. For example,
2253 within a DAILY rule, a value of "8" means every eight days.
2255 The UNTIL rule part defines a DATE or DATE-TIME value that bounds
2256 the recurrence rule in an inclusive manner. If the value
2257 specified by UNTIL is synchronized with the specified recurrence,
2258 this DATE or DATE-TIME becomes the last instance of the
2259 recurrence. The value of the UNTIL rule part MUST have the same
2260 value type as the "DTSTART" property. Furthermore, if the
2261 "DTSTART" property is specified as a date with local time, then
2262 the UNTIL rule part MUST also be specified as a date with local
2263 time. If the "DTSTART" property is specified as a date with UTC
2264 time or a date with local time and time zone reference, then the
2265 UNTIL rule part MUST be specified as a date with UTC time. In the
2266 case of the "STANDARD" and "DAYLIGHT" sub-components the UNTIL
2267 rule part MUST always be specified as a date with UTC time. If
2268 specified as a DATE-TIME value, then it MUST be specified in a UTC
2269 time format. If not present, and the COUNT rule part is also not
2270 present, the "RRULE" is considered to repeat forever.
2272 The COUNT rule part defines the number of occurrences at which to
2273 range-bound the recurrence. The "DTSTART" property value always
2274 counts as the first occurrence.
2276 The BYSECOND rule part specifies a COMMA-separated list of seconds
2277 within a minute. Valid values are 0 to 60. The BYMINUTE rule
2278 part specifies a COMMA-separated list of minutes within an hour.
2279 Valid values are 0 to 59. The BYHOUR rule part specifies a COMMA-
2280 separated list of hours of the day. Valid values are 0 to 23.
2281 The BYSECOND, BYMINUTE and BYHOUR rule parts MUST NOT be specified
2282 when the associated "DTSTART" property has a DATE value type.
2283 These rule parts MUST be ignored in RECUR value that violate the
2284 above requirement (e.g., generated by applications that pre-date
2285 this revision of iCalendar).
2287 The BYDAY rule part specifies a COMMA-separated list of days of
2288 the week; SU indicates Sunday; MO indicates Monday; TU indicates
2289 Tuesday; WE indicates Wednesday; TH indicates Thursday; FR
2290 indicates Friday; and SA indicates Saturday.
2292 Each BYDAY value can also be preceded by a positive (+n) or
2293 negative (-n) integer. If present, this indicates the nth
2294 occurrence of a specific day within the MONTHLY or YEARLY "RRULE".
2298Desruisseaux Standards Track [Page 41]
2300RFC 5545 iCalendar September 2009
2303 For example, within a MONTHLY rule, +1MO (or simply 1MO)
2304 represents the first Monday within the month, whereas -1MO
2305 represents the last Monday of the month. The numeric value in a
2306 BYDAY rule part with the FREQ rule part set to YEARLY corresponds
2307 to an offset within the month when the BYMONTH rule part is
2308 present, and corresponds to an offset within the year when the
2309 BYWEEKNO or BYMONTH rule parts are present. If an integer
2310 modifier is not present, it means all days of this type within the
2311 specified frequency. For example, within a MONTHLY rule, MO
2312 represents all Mondays within the month. The BYDAY rule part MUST
2313 NOT be specified with a numeric value when the FREQ rule part is
2314 not set to MONTHLY or YEARLY. Furthermore, the BYDAY rule part
2315 MUST NOT be specified with a numeric value with the FREQ rule part
2316 set to YEARLY when the BYWEEKNO rule part is specified.
2318 The BYMONTHDAY rule part specifies a COMMA-separated list of days
2319 of the month. Valid values are 1 to 31 or -31 to -1. For
2320 example, -10 represents the tenth to the last day of the month.
2321 The BYMONTHDAY rule part MUST NOT be specified when the FREQ rule
2322 part is set to WEEKLY.
2324 The BYYEARDAY rule part specifies a COMMA-separated list of days
2325 of the year. Valid values are 1 to 366 or -366 to -1. For
2326 example, -1 represents the last day of the year (December 31st)
2327 and -306 represents the 306th to the last day of the year (March
2328 1st). The BYYEARDAY rule part MUST NOT be specified when the FREQ
2329 rule part is set to DAILY, WEEKLY, or MONTHLY.
2331 The BYWEEKNO rule part specifies a COMMA-separated list of
2332 ordinals specifying weeks of the year. Valid values are 1 to 53
2333 or -53 to -1. This corresponds to weeks according to week
2334 numbering as defined in [ISO.8601.2004]. A week is defined as a
2335 seven day period, starting on the day of the week defined to be
2336 the week start (see WKST). Week number one of the calendar year
2337 is the first week that contains at least four (4) days in that
2338 calendar year. This rule part MUST NOT be used when the FREQ rule
2339 part is set to anything other than YEARLY. For example, 3
2340 represents the third week of the year.
2342 Note: Assuming a Monday week start, week 53 can only occur when
2343 Thursday is January 1 or if it is a leap year and Wednesday is
2346 The BYMONTH rule part specifies a COMMA-separated list of months
2347 of the year. Valid values are 1 to 12.
2349 The WKST rule part specifies the day on which the workweek starts.
2350 Valid values are MO, TU, WE, TH, FR, SA, and SU. This is
2354Desruisseaux Standards Track [Page 42]
2356RFC 5545 iCalendar September 2009
2359 significant when a WEEKLY "RRULE" has an interval greater than 1,
2360 and a BYDAY rule part is specified. This is also significant when
2361 in a YEARLY "RRULE" when a BYWEEKNO rule part is specified. The
2362 default value is MO.
2364 The BYSETPOS rule part specifies a COMMA-separated list of values
2365 that corresponds to the nth occurrence within the set of
2366 recurrence instances specified by the rule. BYSETPOS operates on
2367 a set of recurrence instances in one interval of the recurrence
2368 rule. For example, in a WEEKLY rule, the interval would be one
2369 week A set of recurrence instances starts at the beginning of the
2370 interval defined by the FREQ rule part. Valid values are 1 to 366
2371 or -366 to -1. It MUST only be used in conjunction with another
2372 BYxxx rule part. For example "the last work day of the month"
2373 could be represented as:
2375 FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
2377 Each BYSETPOS value can include a positive (+n) or negative (-n)
2378 integer. If present, this indicates the nth occurrence of the
2379 specific occurrence within the set of occurrences specified by the
2382 Recurrence rules may generate recurrence instances with an invalid
2383 date (e.g., February 30) or nonexistent local time (e.g., 1:30 AM
2384 on a day where the local time is moved forward by an hour at 1:00
2385 AM). Such recurrence instances MUST be ignored and MUST NOT be
2386 counted as part of the recurrence set.
2388 Information, not contained in the rule, necessary to determine the
2389 various recurrence instance start time and dates are derived from
2390 the Start Time ("DTSTART") component attribute. For example,
2391 "FREQ=YEARLY;BYMONTH=1" doesn't specify a specific day within the
2392 month or a time. This information would be the same as what is
2393 specified for "DTSTART".
2395 BYxxx rule parts modify the recurrence in some manner. BYxxx rule
2396 parts for a period of time that is the same or greater than the
2397 frequency generally reduce or limit the number of occurrences of
2398 the recurrence generated. For example, "FREQ=DAILY;BYMONTH=1"
2399 reduces the number of recurrence instances from all days (if
2400 BYMONTH rule part is not present) to all days in January. BYxxx
2401 rule parts for a period of time less than the frequency generally
2402 increase or expand the number of occurrences of the recurrence.
2403 For example, "FREQ=YEARLY;BYMONTH=1,2" increases the number of
2404 days within the yearly recurrence set from 1 (if BYMONTH rule part
2405 is not present) to 2.
2410Desruisseaux Standards Track [Page 43]
2412RFC 5545 iCalendar September 2009
2415 If multiple BYxxx rule parts are specified, then after evaluating
2416 the specified FREQ and INTERVAL rule parts, the BYxxx rule parts
2417 are applied to the current set of evaluated occurrences in the
2418 following order: BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY,
2419 BYHOUR, BYMINUTE, BYSECOND and BYSETPOS; then COUNT and UNTIL are
2422 The table below summarizes the dependency of BYxxx rule part
2423 expand or limit behavior on the FREQ rule part value.
2425 The term "N/A" means that the corresponding BYxxx rule part MUST
2426 NOT be used with the corresponding FREQ value.
2428 BYDAY has some special behavior depending on the FREQ value and
2429 this is described in separate notes below the table.
2431 +----------+--------+--------+-------+-------+------+-------+------+
2432 | |SECONDLY|MINUTELY|HOURLY |DAILY |WEEKLY|MONTHLY|YEARLY|
2433 +----------+--------+--------+-------+-------+------+-------+------+
2434 |BYMONTH |Limit |Limit |Limit |Limit |Limit |Limit |Expand|
2435 +----------+--------+--------+-------+-------+------+-------+------+
2436 |BYWEEKNO |N/A |N/A |N/A |N/A |N/A |N/A |Expand|
2437 +----------+--------+--------+-------+-------+------+-------+------+
2438 |BYYEARDAY |Limit |Limit |Limit |N/A |N/A |N/A |Expand|
2439 +----------+--------+--------+-------+-------+------+-------+------+
2440 |BYMONTHDAY|Limit |Limit |Limit |Limit |N/A |Expand |Expand|
2441 +----------+--------+--------+-------+-------+------+-------+------+
2442 |BYDAY |Limit |Limit |Limit |Limit |Expand|Note 1 |Note 2|
2443 +----------+--------+--------+-------+-------+------+-------+------+
2444 |BYHOUR |Limit |Limit |Limit |Expand |Expand|Expand |Expand|
2445 +----------+--------+--------+-------+-------+------+-------+------+
2446 |BYMINUTE |Limit |Limit |Expand |Expand |Expand|Expand |Expand|
2447 +----------+--------+--------+-------+-------+------+-------+------+
2448 |BYSECOND |Limit |Expand |Expand |Expand |Expand|Expand |Expand|
2449 +----------+--------+--------+-------+-------+------+-------+------+
2450 |BYSETPOS |Limit |Limit |Limit |Limit |Limit |Limit |Limit |
2451 +----------+--------+--------+-------+-------+------+-------+------+
2453 Note 1: Limit if BYMONTHDAY is present; otherwise, special expand
2456 Note 2: Limit if BYYEARDAY or BYMONTHDAY is present; otherwise,
2457 special expand for WEEKLY if BYWEEKNO present; otherwise,
2458 special expand for MONTHLY if BYMONTH present; otherwise,
2459 special expand for YEARLY.
2466Desruisseaux Standards Track [Page 44]
2468RFC 5545 iCalendar September 2009
2471 Here is an example of evaluating multiple BYxxx rule parts.
2473 DTSTART;TZID=America/New_York:19970105T083000
2474 RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;
2477 First, the "INTERVAL=2" would be applied to "FREQ=YEARLY" to
2478 arrive at "every other year". Then, "BYMONTH=1" would be applied
2479 to arrive at "every January, every other year". Then, "BYDAY=SU"
2480 would be applied to arrive at "every Sunday in January, every
2481 other year". Then, "BYHOUR=8,9" would be applied to arrive at
2482 "every Sunday in January at 8 AM and 9 AM, every other year".
2483 Then, "BYMINUTE=30" would be applied to arrive at "every Sunday in
2484 January at 8:30 AM and 9:30 AM, every other year". Then, lacking
2485 information from "RRULE", the second is derived from "DTSTART", to
2486 end up in "every Sunday in January at 8:30:00 AM and 9:30:00 AM,
2487 every other year". Similarly, if the BYMINUTE, BYHOUR, BYDAY,
2488 BYMONTHDAY, or BYMONTH rule part were missing, the appropriate
2489 minute, hour, day, or month would have been retrieved from the
2492 If the computed local start time of a recurrence instance does not
2493 exist, or occurs more than once, for the specified time zone, the
2494 time of the recurrence instance is interpreted in the same manner
2495 as an explicit DATE-TIME value describing that date and time, as
2496 specified in Section 3.3.5.
2498 No additional content value encoding (i.e., BACKSLASH character
2499 encoding, see Section 3.3.11) is defined for this value type.
2501 Example: The following is a rule that specifies 10 occurrences that
2502 occur every other day:
2504 FREQ=DAILY;COUNT=10;INTERVAL=2
2506 There are other examples specified in Section 3.8.5.3.
2512 Purpose: This value type is used to identify values that contain
2513 human-readable text.
2515 Format Definition: This value type is defined by the following
2522Desruisseaux Standards Track [Page 45]
2524RFC 5545 iCalendar September 2009
2527 text = *(TSAFE-CHAR / ":" / DQUOTE / ESCAPED-CHAR)
2528 ; Folded according to description above
2530 ESCAPED-CHAR = ("\\" / "\;" / "\," / "\N" / "\n")
2531 ; \\ encodes \, \N or \n encodes newline
2532 ; \; encodes ;, \, encodes ,
2534 TSAFE-CHAR = WSP / %x21 / %x23-2B / %x2D-39 / %x3C-5B /
2535 %x5D-7E / NON-US-ASCII
2536 ; Any character except CONTROLs not needed by the current
2537 ; character set, DQUOTE, ";", ":", "\", ","
2539 Description: If the property permits, multiple TEXT values are
2540 specified by a COMMA-separated list of values.
2542 The language in which the text is represented can be controlled by
2543 the "LANGUAGE" property parameter.
2545 An intentional formatted text line break MUST only be included in
2546 a "TEXT" property value by representing the line break with the
2547 character sequence of BACKSLASH, followed by a LATIN SMALL LETTER
2548 N or a LATIN CAPITAL LETTER N, that is "\n" or "\N".
2550 The "TEXT" property values may also contain special characters
2551 that are used to signify delimiters, such as a COMMA character for
2552 lists of values or a SEMICOLON character for structured values.
2553 In order to support the inclusion of these special characters in
2554 "TEXT" property values, they MUST be escaped with a BACKSLASH
2555 character. A BACKSLASH character in a "TEXT" property value MUST
2556 be escaped with another BACKSLASH character. A COMMA character in
2557 a "TEXT" property value MUST be escaped with a BACKSLASH
2558 character. A SEMICOLON character in a "TEXT" property value MUST
2559 be escaped with a BACKSLASH character. However, a COLON character
2560 in a "TEXT" property value SHALL NOT be escaped with a BACKSLASH
2563 Example: A multiple line value of:
2565 Project XYZ Final Review
2566 Conference Room - 3B
2569 would be represented as:
2571 Project XYZ Final Review\nConference Room - 3B\nCome Prepared.
2578Desruisseaux Standards Track [Page 46]
2580RFC 5545 iCalendar September 2009
2587 Purpose: This value type is used to identify values that contain a
2590 Format Definition: This value type is defined by the following
2593 time = time-hour time-minute time-second [time-utc]
2595 time-hour = 2DIGIT ;00-23
2596 time-minute = 2DIGIT ;00-59
2597 time-second = 2DIGIT ;00-60
2598 ;The "60" value is used to account for positive "leap" seconds.
2602 Description: If the property permits, multiple "time" values are
2603 specified by a COMMA-separated list of values. No additional
2604 content value encoding (i.e., BACKSLASH character encoding, see
2605 Section 3.3.11) is defined for this value type.
2607 The "TIME" value type is used to identify values that contain a
2608 time of day. The format is based on the [ISO.8601.2004] complete
2609 representation, basic format for a time of day. The text format
2610 consists of a two-digit, 24-hour of the day (i.e., values 00-23),
2611 two-digit minute in the hour (i.e., values 00-59), and two-digit
2612 seconds in the minute (i.e., values 00-60). The seconds value of
2613 60 MUST only be used to account for positive "leap" seconds.
2614 Fractions of a second are not supported by this format.
2616 In parallel to the "DATE-TIME" definition above, the "TIME" value
2617 type expresses time values in three forms:
2619 The form of time with UTC offset MUST NOT be used. For example,
2620 the following is not valid for a time value:
2622 230000-0800 ;Invalid time format
2626 The local time form is simply a time value that does not contain
2627 the UTC designator nor does it reference a time zone. For
2634Desruisseaux Standards Track [Page 47]
2636RFC 5545 iCalendar September 2009
2639 Time values of this type are said to be "floating" and are not
2640 bound to any time zone in particular. They are used to represent
2641 the same hour, minute, and second value regardless of which time
2642 zone is currently being observed. For example, an event can be
2643 defined that indicates that an individual will be busy from 11:00
2644 AM to 1:00 PM every day, no matter which time zone the person is
2645 in. In these cases, a local time can be specified. The recipient
2646 of an iCalendar object with a property value consisting of a local
2647 time, without any relative time zone information, SHOULD interpret
2648 the value as being fixed to whatever time zone the "ATTENDEE" is
2649 in at any given moment. This means that two "Attendees", may
2650 participate in the same event at different UTC times; floating
2651 time SHOULD only be used where that is reasonable behavior.
2653 In most cases, a fixed time is desired. To properly communicate a
2654 fixed time in a property value, either UTC time or local time with
2655 time zone reference MUST be specified.
2657 The use of local time in a TIME value without the "TZID" property
2658 parameter is to be interpreted as floating time, regardless of the
2659 existence of "VTIMEZONE" calendar components in the iCalendar
2664 UTC time, or absolute time, is identified by a LATIN CAPITAL
2665 LETTER Z suffix character, the UTC designator, appended to the
2666 time value. For example, the following represents 07:00 AM UTC:
2670 The "TZID" property parameter MUST NOT be applied to TIME
2671 properties whose time values are specified in UTC.
2673 FORM #3: LOCAL TIME AND TIME ZONE REFERENCE
2675 The local time with reference to time zone information form is
2676 identified by the use the "TZID" property parameter to reference
2677 the appropriate time zone definition. "TZID" is discussed in
2678 detail in Section 3.2.19.
2680 Example: The following represents 8:30 AM in New York in winter,
2681 five hours behind UTC, in each of the three formats:
2685 TZID=America/New_York:083000
2690Desruisseaux Standards Track [Page 48]
2692RFC 5545 iCalendar September 2009
2699 Purpose: This value type is used to identify values that contain a
2700 uniform resource identifier (URI) type of reference to the
2703 Format Definition: This value type is defined by the following
2706 uri = <As defined in Section 3 of [RFC3986]>
2708 Description: This value type might be used to reference binary
2709 information, for values that are large, or otherwise undesirable
2710 to include directly in the iCalendar object.
2712 Property values with this value type MUST follow the generic URI
2713 syntax defined in [RFC3986].
2715 When a property parameter value is a URI value type, the URI MUST
2716 be specified as a quoted-string value.
2718 No additional content value encoding (i.e., BACKSLASH character
2719 encoding, see Section 3.3.11) is defined for this value type.
2721 Example: The following is a URI for a network file:
2723 http://example.com/my-report.txt
2727 Value Name: UTC-OFFSET
2729 Purpose: This value type is used to identify properties that contain
2730 an offset from UTC to local time.
2732 Format Definition: This value type is defined by the following
2735 utc-offset = time-numzone
2737 time-numzone = ("+" / "-") time-hour time-minute [time-second]
2739 Description: The PLUS SIGN character MUST be specified for positive
2740 UTC offsets (i.e., ahead of UTC). The HYPHEN-MINUS character MUST
2741 be specified for negative UTC offsets (i.e., behind of UTC). The
2746Desruisseaux Standards Track [Page 49]
2748RFC 5545 iCalendar September 2009
2751 value of "-0000" and "-000000" are not allowed. The time-second,
2752 if present, MUST NOT be 60; if absent, it defaults to zero.
2754 No additional content value encoding (i.e., BACKSLASH character
2755 encoding, see Section 3.3.11) is defined for this value type.
2757 Example: The following UTC offsets are given for standard time for
2758 New York (five hours behind UTC) and Geneva (one hour ahead of
27653.4. iCalendar Object
2767 The Calendaring and Scheduling Core Object is a collection of
2768 calendaring and scheduling information. Typically, this information
2769 will consist of an iCalendar stream with a single iCalendar object.
2770 However, multiple iCalendar objects can be sequentially grouped
2771 together in an iCalendar stream. The first line and last line of the
2772 iCalendar object MUST contain a pair of iCalendar object delimiter
2773 strings. The syntax for an iCalendar stream is as follows:
2775 icalstream = 1*icalobject
2777 icalobject = "BEGIN" ":" "VCALENDAR" CRLF
2779 "END" ":" "VCALENDAR" CRLF
2781 The following is a simple example of an iCalendar object:
2785 PRODID:-//hacksw/handcal//NONSGML v1.0//EN
2787 UID:19970610T172345Z-AF23B2@example.com
2788 DTSTAMP:19970610T172345Z
2789 DTSTART:19970714T170000Z
2790 DTEND:19970715T040000Z
2791 SUMMARY:Bastille Day Party
2802Desruisseaux Standards Track [Page 50]
2804RFC 5545 iCalendar September 2009
2809 A property is the definition of an individual attribute describing a
2810 calendar object or a calendar component. A property takes the form
2811 defined by the "contentline" notation defined in Section 3.1.
2813 The following is an example of a property:
2815 DTSTART:19960415T133000Z
2817 This memo imposes no ordering of properties within an iCalendar
2820 Property names, parameter names, and enumerated parameter values are
2821 case-insensitive. For example, the property name "DUE" is the same
2822 as "due" and "Due", DTSTART;TZID=America/New_York:19980714T120000 is
2823 the same as DtStart;TzID=America/New_York:19980714T120000.
28253.6. Calendar Components
2827 The body of the iCalendar object consists of a sequence of calendar
2828 properties and one or more calendar components. The calendar
2829 properties are attributes that apply to the calendar object as a
2830 whole. The calendar components are collections of properties that
2831 express a particular calendar semantic. For example, the calendar
2832 component can specify an event, a to-do, a journal entry, time zone
2833 information, free/busy time information, or an alarm.
2835 The body of the iCalendar object is defined by the following
2838 icalbody = calprops component
2842 ; The following are REQUIRED,
2843 ; but MUST NOT occur more than once.
2847 ; The following are OPTIONAL,
2848 ; but MUST NOT occur more than once.
2852 ; The following are OPTIONAL,
2853 ; and MAY occur more than once.
2858Desruisseaux Standards Track [Page 51]
2860RFC 5545 iCalendar September 2009
2867 component = 1*(eventc / todoc / journalc / freebusyc /
2868 timezonec / iana-comp / x-comp)
2870 iana-comp = "BEGIN" ":" iana-token CRLF
2872 "END" ":" iana-token CRLF
2874 x-comp = "BEGIN" ":" x-name CRLF
2876 "END" ":" x-name CRLF
2878 An iCalendar object MUST include the "PRODID" and "VERSION" calendar
2879 properties. In addition, it MUST include at least one calendar
2880 component. Special forms of iCalendar objects are possible to
2881 publish just busy time (i.e., only a "VFREEBUSY" calendar component)
2882 or time zone (i.e., only a "VTIMEZONE" calendar component)
2883 information. In addition, a complex iCalendar object that is used to
2884 capture a complete snapshot of the contents of a calendar is possible
2885 (e.g., composite of many different calendar components). More
2886 commonly, an iCalendar object will consist of just a single "VEVENT",
2887 "VTODO", or "VJOURNAL" calendar component. Applications MUST ignore
2888 x-comp and iana-comp values they don't recognize. Applications that
2889 support importing iCalendar objects SHOULD support all of the
2890 component types defined in this document, and SHOULD NOT silently
2891 drop any components as that can lead to user data loss.
28933.6.1. Event Component
2895 Component Name: VEVENT
2897 Purpose: Provide a grouping of component properties that describe an
2900 Format Definition: A "VEVENT" calendar component is defined by the
2903 eventc = "BEGIN" ":" "VEVENT" CRLF
2905 "END" ":" "VEVENT" CRLF
2909 ; The following are REQUIRED,
2910 ; but MUST NOT occur more than once.
2914Desruisseaux Standards Track [Page 52]
2916RFC 5545 iCalendar September 2009
2922 ; The following is REQUIRED if the component
2923 ; appears in an iCalendar object that doesn't
2924 ; specify the "METHOD" property; otherwise, it
2925 ; is OPTIONAL; in any case, it MUST NOT occur
2930 ; The following are OPTIONAL,
2931 ; but MUST NOT occur more than once.
2933 class / created / description / geo /
2934 last-mod / location / organizer / priority /
2935 seq / status / summary / transp /
2938 ; The following is OPTIONAL,
2939 ; but SHOULD NOT occur more than once.
2943 ; Either 'dtend' or 'duration' MAY appear in
2944 ; a 'eventprop', but 'dtend' and 'duration'
2945 ; MUST NOT occur in the same 'eventprop'.
2949 ; The following are OPTIONAL,
2950 ; and MAY occur more than once.
2952 attach / attendee / categories / comment /
2953 contact / exdate / rstatus / related /
2954 resources / rdate / x-prop / iana-prop
2958 Description: A "VEVENT" calendar component is a grouping of
2959 component properties, possibly including "VALARM" calendar
2960 components, that represents a scheduled amount of time on a
2961 calendar. For example, it can be an activity; such as a one-hour
2962 long, department meeting from 8:00 AM to 9:00 AM, tomorrow.
2963 Generally, an event will take up time on an individual calendar.
2964 Hence, the event will appear as an opaque interval in a search for
2965 busy time. Alternately, the event can have its Time Transparency
2970Desruisseaux Standards Track [Page 53]
2972RFC 5545 iCalendar September 2009
2975 set to "TRANSPARENT" in order to prevent blocking of the event in
2976 searches for busy time.
2978 The "VEVENT" is also the calendar component used to specify an
2979 anniversary or daily reminder within a calendar. These events
2980 have a DATE value type for the "DTSTART" property instead of the
2981 default value type of DATE-TIME. If such a "VEVENT" has a "DTEND"
2982 property, it MUST be specified as a DATE value also. The
2983 anniversary type of "VEVENT" can span more than one date (i.e.,
2984 "DTEND" property value is set to a calendar date after the
2985 "DTSTART" property value). If such a "VEVENT" has a "DURATION"
2986 property, it MUST be specified as a "dur-day" or "dur-week" value.
2988 The "DTSTART" property for a "VEVENT" specifies the inclusive
2989 start of the event. For recurring events, it also specifies the
2990 very first instance in the recurrence set. The "DTEND" property
2991 for a "VEVENT" calendar component specifies the non-inclusive end
2992 of the event. For cases where a "VEVENT" calendar component
2993 specifies a "DTSTART" property with a DATE value type but no
2994 "DTEND" nor "DURATION" property, the event's duration is taken to
2995 be one day. For cases where a "VEVENT" calendar component
2996 specifies a "DTSTART" property with a DATE-TIME value type but no
2997 "DTEND" property, the event ends on the same calendar date and
2998 time of day specified by the "DTSTART" property.
3000 The "VEVENT" calendar component cannot be nested within another
3001 calendar component. However, "VEVENT" calendar components can be
3002 related to each other or to a "VTODO" or to a "VJOURNAL" calendar
3003 component with the "RELATED-TO" property.
3005 Example: The following is an example of the "VEVENT" calendar
3006 component used to represent a meeting that will also be opaque to
3007 searches for busy time:
3010 UID:19970901T130000Z-123401@example.com
3011 DTSTAMP:19970901T130000Z
3012 DTSTART:19970903T163000Z
3013 DTEND:19970903T190000Z
3014 SUMMARY:Annual Employee Review
3016 CATEGORIES:BUSINESS,HUMAN RESOURCES
3019 The following is an example of the "VEVENT" calendar component
3020 used to represent a reminder that will not be opaque, but rather
3021 transparent, to searches for busy time:
3026Desruisseaux Standards Track [Page 54]
3028RFC 5545 iCalendar September 2009
3032 UID:19970901T130000Z-123402@example.com
3033 DTSTAMP:19970901T130000Z
3034 DTSTART:19970401T163000Z
3035 DTEND:19970402T010000Z
3036 SUMMARY:Laurel is in sensitivity awareness class.
3038 CATEGORIES:BUSINESS,HUMAN RESOURCES
3042 The following is an example of the "VEVENT" calendar component
3043 used to represent an anniversary that will occur annually:
3046 UID:19970901T130000Z-123403@example.com
3047 DTSTAMP:19970901T130000Z
3048 DTSTART;VALUE=DATE:19971102
3049 SUMMARY:Our Blissful Anniversary
3052 CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION
3056 The following is an example of the "VEVENT" calendar component
3057 used to represent a multi-day event scheduled from June 28th, 2007
3058 to July 8th, 2007 inclusively. Note that the "DTEND" property is
3059 set to July 9th, 2007, since the "DTEND" property specifies the
3060 non-inclusive end of the event.
3063 UID:20070423T123432Z-541111@example.com
3064 DTSTAMP:20070423T123432Z
3065 DTSTART;VALUE=DATE:20070628
3066 DTEND;VALUE=DATE:20070709
3067 SUMMARY:Festival International de Jazz de Montreal
30713.6.2. To-Do Component
3073 Component Name: VTODO
3075 Purpose: Provide a grouping of calendar properties that describe a
3082Desruisseaux Standards Track [Page 55]
3084RFC 5545 iCalendar September 2009
3087 Format Definition: A "VTODO" calendar component is defined by the
3090 todoc = "BEGIN" ":" "VTODO" CRLF
3092 "END" ":" "VTODO" CRLF
3096 ; The following are REQUIRED,
3097 ; but MUST NOT occur more than once.
3101 ; The following are OPTIONAL,
3102 ; but MUST NOT occur more than once.
3104 class / completed / created / description /
3105 dtstart / geo / last-mod / location / organizer /
3106 percent / priority / recurid / seq / status /
3109 ; The following is OPTIONAL,
3110 ; but SHOULD NOT occur more than once.
3114 ; Either 'due' or 'duration' MAY appear in
3115 ; a 'todoprop', but 'due' and 'duration'
3116 ; MUST NOT occur in the same 'todoprop'.
3117 ; If 'duration' appear in a 'todoprop',
3118 ; then 'dtstart' MUST also appear in
3119 ; the same 'todoprop'.
3123 ; The following are OPTIONAL,
3124 ; and MAY occur more than once.
3126 attach / attendee / categories / comment / contact /
3127 exdate / rstatus / related / resources /
3128 rdate / x-prop / iana-prop
3132 Description: A "VTODO" calendar component is a grouping of component
3133 properties and possibly "VALARM" calendar components that
3134 represent an action-item or assignment. For example, it can be
3138Desruisseaux Standards Track [Page 56]
3140RFC 5545 iCalendar September 2009
3143 used to represent an item of work assigned to an individual; such
3144 as "turn in travel expense today".
3146 The "VTODO" calendar component cannot be nested within another
3147 calendar component. However, "VTODO" calendar components can be
3148 related to each other or to a "VEVENT" or to a "VJOURNAL" calendar
3149 component with the "RELATED-TO" property.
3151 A "VTODO" calendar component without the "DTSTART" and "DUE" (or
3152 "DURATION") properties specifies a to-do that will be associated
3153 with each successive calendar date, until it is completed.
3155 Examples: The following is an example of a "VTODO" calendar
3156 component that needs to be completed before May 1st, 2007. On
3157 midnight May 1st, 2007 this to-do would be considered overdue.
3160 UID:20070313T123432Z-456553@example.com
3161 DTSTAMP:20070313T123432Z
3162 DUE;VALUE=DATE:20070501
3163 SUMMARY:Submit Quebec Income Tax Return for 2006
3165 CATEGORIES:FAMILY,FINANCE
3169 The following is an example of a "VTODO" calendar component that
3170 was due before 1:00 P.M. UTC on July 9th, 2007 and was completed
3171 on July 7th, 2007 at 10:00 A.M. UTC.
3174 UID:20070514T103211Z-123404@example.com
3175 DTSTAMP:20070514T103211Z
3176 DTSTART:20070514T110000Z
3177 DUE:20070709T130000Z
3178 COMPLETED:20070707T100000Z
3179 SUMMARY:Submit Revised Internet-Draft
31843.6.3. Journal Component
3186 Component Name: VJOURNAL
3188 Purpose: Provide a grouping of component properties that describe a
3194Desruisseaux Standards Track [Page 57]
3196RFC 5545 iCalendar September 2009
3199 Format Definition: A "VJOURNAL" calendar component is defined by the
3202 journalc = "BEGIN" ":" "VJOURNAL" CRLF
3204 "END" ":" "VJOURNAL" CRLF
3208 ; The following are REQUIRED,
3209 ; but MUST NOT occur more than once.
3213 ; The following are OPTIONAL,
3214 ; but MUST NOT occur more than once.
3216 class / created / dtstart /
3217 last-mod / organizer / recurid / seq /
3218 status / summary / url /
3220 ; The following is OPTIONAL,
3221 ; but SHOULD NOT occur more than once.
3225 ; The following are OPTIONAL,
3226 ; and MAY occur more than once.
3228 attach / attendee / categories / comment /
3229 contact / description / exdate / related / rdate /
3230 rstatus / x-prop / iana-prop
3234 Description: A "VJOURNAL" calendar component is a grouping of
3235 component properties that represent one or more descriptive text
3236 notes associated with a particular calendar date. The "DTSTART"
3237 property is used to specify the calendar date with which the
3238 journal entry is associated. Generally, it will have a DATE value
3239 data type, but it can also be used to specify a DATE-TIME value
3240 data type. Examples of a journal entry include a daily record of
3241 a legislative body or a journal entry of individual telephone
3242 contacts for the day or an ordered list of accomplishments for the
3243 day. The "VJOURNAL" calendar component can also be used to
3244 associate a document with a calendar date.
3250Desruisseaux Standards Track [Page 58]
3252RFC 5545 iCalendar September 2009
3255 The "VJOURNAL" calendar component does not take up time on a
3256 calendar. Hence, it does not play a role in free or busy time
3257 searches -- it is as though it has a time transparency value of
3258 TRANSPARENT. It is transparent to any such searches.
3260 The "VJOURNAL" calendar component cannot be nested within another
3261 calendar component. However, "VJOURNAL" calendar components can
3262 be related to each other or to a "VEVENT" or to a "VTODO" calendar
3263 component, with the "RELATED-TO" property.
3265 Example: The following is an example of the "VJOURNAL" calendar
3269 UID:19970901T130000Z-123405@example.com
3270 DTSTAMP:19970901T130000Z
3271 DTSTART;VALUE=DATE:19970317
3272 SUMMARY:Staff meeting minutes
3273 DESCRIPTION:1. Staff meeting: Participants include Joe\,
3274 Lisa\, and Bob. Aurora project plans were reviewed.
3275 There is currently no budget reserves for this project.
3276 Lisa will escalate to management. Next meeting on Tuesday.\n
3277 2. Telephone Conference: ABC Corp. sales representative
3278 called to discuss new printer. Promised to get us a demo by
3279 Friday.\n3. Henry Miller (Handsoff Insurance): Car was
3280 totaled by tree. Is looking into a loaner car. 555-2323
32843.6.4. Free/Busy Component
3286 Component Name: VFREEBUSY
3288 Purpose: Provide a grouping of component properties that describe
3289 either a request for free/busy time, describe a response to a
3290 request for free/busy time, or describe a published set of busy
3293 Format Definition: A "VFREEBUSY" calendar component is defined by
3294 the following notation:
3296 freebusyc = "BEGIN" ":" "VFREEBUSY" CRLF
3298 "END" ":" "VFREEBUSY" CRLF
3302 ; The following are REQUIRED,
3306Desruisseaux Standards Track [Page 59]
3308RFC 5545 iCalendar September 2009
3311 ; but MUST NOT occur more than once.
3315 ; The following are OPTIONAL,
3316 ; but MUST NOT occur more than once.
3318 contact / dtstart / dtend /
3321 ; The following are OPTIONAL,
3322 ; and MAY occur more than once.
3324 attendee / comment / freebusy / rstatus / x-prop /
3329 Description: A "VFREEBUSY" calendar component is a grouping of
3330 component properties that represents either a request for free or
3331 busy time information, a reply to a request for free or busy time
3332 information, or a published set of busy time information.
3334 When used to request free/busy time information, the "ATTENDEE"
3335 property specifies the calendar users whose free/busy time is
3336 being requested; the "ORGANIZER" property specifies the calendar
3337 user who is requesting the free/busy time; the "DTSTART" and
3338 "DTEND" properties specify the window of time for which the free/
3339 busy time is being requested; the "UID" and "DTSTAMP" properties
3340 are specified to assist in proper sequencing of multiple free/busy
3343 When used to reply to a request for free/busy time, the "ATTENDEE"
3344 property specifies the calendar user responding to the free/busy
3345 time request; the "ORGANIZER" property specifies the calendar user
3346 that originally requested the free/busy time; the "FREEBUSY"
3347 property specifies the free/busy time information (if it exists);
3348 and the "UID" and "DTSTAMP" properties are specified to assist in
3349 proper sequencing of multiple free/busy time replies.
3351 When used to publish busy time, the "ORGANIZER" property specifies
3352 the calendar user associated with the published busy time; the
3353 "DTSTART" and "DTEND" properties specify an inclusive time window
3354 that surrounds the busy time information; the "FREEBUSY" property
3355 specifies the published busy time information; and the "DTSTAMP"
3356 property specifies the DATE-TIME that iCalendar object was
3362Desruisseaux Standards Track [Page 60]
3364RFC 5545 iCalendar September 2009
3367 The "VFREEBUSY" calendar component cannot be nested within another
3368 calendar component. Multiple "VFREEBUSY" calendar components can
3369 be specified within an iCalendar object. This permits the
3370 grouping of free/busy information into logical collections, such
3371 as monthly groups of busy time information.
3373 The "VFREEBUSY" calendar component is intended for use in
3374 iCalendar object methods involving requests for free time,
3375 requests for busy time, requests for both free and busy, and the
3378 Free/Busy information is represented with the "FREEBUSY" property.
3379 This property provides a terse representation of time periods.
3380 One or more "FREEBUSY" properties can be specified in the
3381 "VFREEBUSY" calendar component.
3383 When present in a "VFREEBUSY" calendar component, the "DTSTART"
3384 and "DTEND" properties SHOULD be specified prior to any "FREEBUSY"
3387 The recurrence properties ("RRULE", "RDATE", "EXDATE") are not
3388 permitted within a "VFREEBUSY" calendar component. Any recurring
3389 events are resolved into their individual busy time periods using
3390 the "FREEBUSY" property.
3392 Example: The following is an example of a "VFREEBUSY" calendar
3393 component used to request free or busy time information:
3396 UID:19970901T082949Z-FA43EF@example.com
3397 ORGANIZER:mailto:jane_doe@example.com
3398 ATTENDEE:mailto:john_public@example.com
3399 DTSTART:19971015T050000Z
3400 DTEND:19971016T050000Z
3401 DTSTAMP:19970901T083000Z
3418Desruisseaux Standards Track [Page 61]
3420RFC 5545 iCalendar September 2009
3423 The following is an example of a "VFREEBUSY" calendar component
3424 used to reply to the request with busy time information:
3427 UID:19970901T095957Z-76A912@example.com
3428 ORGANIZER:mailto:jane_doe@example.com
3429 ATTENDEE:mailto:john_public@example.com
3430 DTSTAMP:19970901T100000Z
3431 FREEBUSY:19971015T050000Z/PT8H30M,
3432 19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M
3433 URL:http://example.com/pub/busy/jpublic-01.ifb
3434 COMMENT:This iCalendar file contains busy time information for
3435 the next three months.
3438 The following is an example of a "VFREEBUSY" calendar component
3439 used to publish busy time information:
3442 UID:19970901T115957Z-76A912@example.com
3443 DTSTAMP:19970901T120000Z
3444 ORGANIZER:jsmith@example.com
3445 DTSTART:19980313T141711Z
3446 DTEND:19980410T141711Z
3447 FREEBUSY:19980314T233000Z/19980315T003000Z
3448 FREEBUSY:19980316T153000Z/19980316T163000Z
3449 FREEBUSY:19980318T030000Z/19980318T040000Z
3450 URL:http://www.example.com/calendar/busytime/jsmith.ifb
34533.6.5. Time Zone Component
3455 Component Name: VTIMEZONE
3457 Purpose: Provide a grouping of component properties that defines a
3460 Format Definition: A "VTIMEZONE" calendar component is defined by
3461 the following notation:
3463 timezonec = "BEGIN" ":" "VTIMEZONE" CRLF
3466 ; 'tzid' is REQUIRED, but MUST NOT occur more
3474Desruisseaux Standards Track [Page 62]
3476RFC 5545 iCalendar September 2009
3479 ; 'last-mod' and 'tzurl' are OPTIONAL,
3480 ; but MUST NOT occur more than once.
3484 ; One of 'standardc' or 'daylightc' MUST occur
3485 ; and each MAY occur more than once.
3487 standardc / daylightc /
3489 ; The following are OPTIONAL,
3490 ; and MAY occur more than once.
3495 "END" ":" "VTIMEZONE" CRLF
3497 standardc = "BEGIN" ":" "STANDARD" CRLF
3499 "END" ":" "STANDARD" CRLF
3501 daylightc = "BEGIN" ":" "DAYLIGHT" CRLF
3503 "END" ":" "DAYLIGHT" CRLF
3507 ; The following are REQUIRED,
3508 ; but MUST NOT occur more than once.
3510 dtstart / tzoffsetto / tzoffsetfrom /
3512 ; The following is OPTIONAL,
3513 ; but SHOULD NOT occur more than once.
3517 ; The following are OPTIONAL,
3518 ; and MAY occur more than once.
3520 comment / rdate / tzname / x-prop / iana-prop
3524 Description: A time zone is unambiguously defined by the set of time
3525 measurement rules determined by the governing body for a given
3526 geographic area. These rules describe, at a minimum, the base
3530Desruisseaux Standards Track [Page 63]
3532RFC 5545 iCalendar September 2009
3535 offset from UTC for the time zone, often referred to as the
3536 Standard Time offset. Many locations adjust their Standard Time
3537 forward or backward by one hour, in order to accommodate seasonal
3538 changes in number of daylight hours, often referred to as Daylight
3539 Saving Time. Some locations adjust their time by a fraction of an
3540 hour. Standard Time is also known as Winter Time. Daylight
3541 Saving Time is also known as Advanced Time, Summer Time, or Legal
3542 Time in certain countries. The following table shows the changes
3543 in time zone rules in effect for New York City starting from 1967.
3544 Each line represents a description or rule for a particular
3547 Effective Observance Rule
3549 +-----------+--------------------------+--------+--------------+
3550 | Date | (Date-Time) | Offset | Abbreviation |
3551 +-----------+--------------------------+--------+--------------+
3552 | 1967-1973 | last Sun in Apr, 02:00 | -0400 | EDT |
3554 | 1967-2006 | last Sun in Oct, 02:00 | -0500 | EST |
3556 | 1974-1974 | Jan 6, 02:00 | -0400 | EDT |
3558 | 1975-1975 | Feb 23, 02:00 | -0400 | EDT |
3560 | 1976-1986 | last Sun in Apr, 02:00 | -0400 | EDT |
3562 | 1987-2006 | first Sun in Apr, 02:00 | -0400 | EDT |
3564 | 2007-* | second Sun in Mar, 02:00 | -0400 | EDT |
3566 | 2007-* | first Sun in Nov, 02:00 | -0500 | EST |
3567 +-----------+--------------------------+--------+--------------+
3569 Note: The specification of a global time zone registry is not
3570 addressed by this document and is left for future study.
3571 However, implementers may find the TZ database [TZDB] a useful
3572 reference. It is an informal, public-domain collection of time
3573 zone information, which is currently being maintained by
3574 volunteer Internet participants, and is used in several
3575 operating systems. This database contains current and
3576 historical time zone information for a wide variety of
3577 locations around the globe; it provides a time zone identifier
3578 for every unique time zone rule set in actual use since 1970,
3579 with historical data going back to the introduction of standard
3586Desruisseaux Standards Track [Page 64]
3588RFC 5545 iCalendar September 2009
3591 Interoperability between two calendaring and scheduling
3592 applications, especially for recurring events, to-dos or journal
3593 entries, is dependent on the ability to capture and convey date
3594 and time information in an unambiguous format. The specification
3595 of current time zone information is integral to this behavior.
3597 If present, the "VTIMEZONE" calendar component defines the set of
3598 Standard Time and Daylight Saving Time observances (or rules) for
3599 a particular time zone for a given interval of time. The
3600 "VTIMEZONE" calendar component cannot be nested within other
3601 calendar components. Multiple "VTIMEZONE" calendar components can
3602 exist in an iCalendar object. In this situation, each "VTIMEZONE"
3603 MUST represent a unique time zone definition. This is necessary
3604 for some classes of events, such as airline flights, that start in
3605 one time zone and end in another.
3607 The "VTIMEZONE" calendar component MUST include the "TZID"
3608 property and at least one definition of a "STANDARD" or "DAYLIGHT"
3609 sub-component. The "STANDARD" or "DAYLIGHT" sub-component MUST
3610 include the "DTSTART", "TZOFFSETFROM", and "TZOFFSETTO"
3613 An individual "VTIMEZONE" calendar component MUST be specified for
3614 each unique "TZID" parameter value specified in the iCalendar
3615 object. In addition, a "VTIMEZONE" calendar component, referred
3616 to by a recurring calendar component, MUST provide valid time zone
3617 information for all recurrence instances.
3619 Each "VTIMEZONE" calendar component consists of a collection of
3620 one or more sub-components that describe the rule for a particular
3621 observance (either a Standard Time or a Daylight Saving Time
3622 observance). The "STANDARD" sub-component consists of a
3623 collection of properties that describe Standard Time. The
3624 "DAYLIGHT" sub-component consists of a collection of properties
3625 that describe Daylight Saving Time. In general, this collection
3626 of properties consists of:
3628 * the first onset DATE-TIME for the observance;
3630 * the last onset DATE-TIME for the observance, if a last onset is
3633 * the offset to be applied for the observance;
3635 * a rule that describes the day and time when the observance
3638 * an optional name for the observance.
3642Desruisseaux Standards Track [Page 65]
3644RFC 5545 iCalendar September 2009
3647 For a given time zone, there may be multiple unique definitions of
3648 the observances over a period of time. Each observance is
3649 described using either a "STANDARD" or "DAYLIGHT" sub-component.
3650 The collection of these sub-components is used to describe the
3651 time zone for a given period of time. The offset to apply at any
3652 given time is found by locating the observance that has the last
3653 onset date and time before the time in question, and using the
3654 offset value from that observance.
3656 The top-level properties in a "VTIMEZONE" calendar component are:
3658 The mandatory "TZID" property is a text value that uniquely
3659 identifies the "VTIMEZONE" calendar component within the scope of
3660 an iCalendar object.
3662 The optional "LAST-MODIFIED" property is a UTC value that
3663 specifies the date and time that this time zone definition was
3666 The optional "TZURL" property is a url value that points to a
3667 published "VTIMEZONE" definition. "TZURL" SHOULD refer to a
3668 resource that is accessible by anyone who might need to interpret
3669 the object. This SHOULD NOT normally be a "file" URL or other URL
3670 that is not widely accessible.
3672 The collection of properties that are used to define the
3673 "STANDARD" and "DAYLIGHT" sub-components include:
3675 The mandatory "DTSTART" property gives the effective onset date
3676 and local time for the time zone sub-component definition.
3677 "DTSTART" in this usage MUST be specified as a date with a local
3680 The mandatory "TZOFFSETFROM" property gives the UTC offset that is
3681 in use when the onset of this time zone observance begins.
3682 "TZOFFSETFROM" is combined with "DTSTART" to define the effective
3683 onset for the time zone sub-component definition. For example,
3684 the following represents the time at which the observance of
3685 Standard Time took effect in Fall 1967 for New York City:
3687 DTSTART:19671029T020000
3691 The mandatory "TZOFFSETTO" property gives the UTC offset for the
3692 time zone sub-component (Standard Time or Daylight Saving Time)
3693 when this observance is in use.
3698Desruisseaux Standards Track [Page 66]
3700RFC 5545 iCalendar September 2009
3703 The optional "TZNAME" property is the customary name for the time
3704 zone. This could be used for displaying dates.
3706 The onset DATE-TIME values for the observance defined by the time
3707 zone sub-component is defined by the "DTSTART", "RRULE", and
3710 The "RRULE" property defines the recurrence rule for the onset of
3711 the observance defined by this time zone sub-component. Some
3712 specific requirements for the usage of "RRULE" for this purpose
3715 * If observance is known to have an effective end date, the
3716 "UNTIL" recurrence rule parameter MUST be used to specify the
3717 last valid onset of this observance (i.e., the UNTIL DATE-TIME
3718 will be equal to the last instance generated by the recurrence
3719 pattern). It MUST be specified in UTC time.
3721 * The "DTSTART" and the "TZOFFSETFROM" properties MUST be used
3722 when generating the onset DATE-TIME values (instances) from the
3725 The "RDATE" property can also be used to define the onset of the
3726 observance by giving the individual onset date and times. "RDATE"
3727 in this usage MUST be specified as a date with local time value,
3728 relative to the UTC offset specified in the "TZOFFSETFROM"
3731 The optional "COMMENT" property is also allowed for descriptive
3734 Example: The following are examples of the "VTIMEZONE" calendar
3737 This is an example showing all the time zone rules for New York
3738 City since April 30, 1967 at 03:00:00 EDT.
3741 TZID:America/New_York
3742 LAST-MODIFIED:20050809T050000Z
3744 DTSTART:19670430T020000
3745 RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1SU;UNTIL=19730429T070000Z
3754Desruisseaux Standards Track [Page 67]
3756RFC 5545 iCalendar September 2009
3759 DTSTART:19671029T020000
3760 RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU;UNTIL=20061029T060000Z
3766 DTSTART:19740106T020000
3767 RDATE:19750223T020000
3773 DTSTART:19760425T020000
3774 RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1SU;UNTIL=19860427T070000Z
3780 DTSTART:19870405T020000
3781 RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU;UNTIL=20060402T070000Z
3787 DTSTART:20070311T020000
3788 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
3794 DTSTART:20071104T020000
3795 RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
3802 This is an example showing time zone information for New York City
3803 using only the "DTSTART" property. Note that this is only
3804 suitable for a recurring event that starts on or later than March
3805 11, 2007 at 03:00:00 EDT (i.e., the earliest effective transition
3806 date and time) and ends no later than March 9, 2008 at 01:59:59
3810Desruisseaux Standards Track [Page 68]
3812RFC 5545 iCalendar September 2009
3815 EST (i.e., latest valid date and time for EST in this scenario).
3816 For example, this can be used for a recurring event that occurs
3817 every Friday, 8:00 A.M.-9:00 A.M., starting June 1, 2007, ending
3821 TZID:America/New_York
3822 LAST-MODIFIED:20050809T050000Z
3824 DTSTART:20071104T020000
3830 DTSTART:20070311T020000
3837 This is a simple example showing the current time zone rules for
3838 New York City using a "RRULE" recurrence pattern. Note that there
3839 is no effective end date to either of the Standard Time or
3840 Daylight Time rules. This information would be valid for a
3841 recurring event starting today and continuing indefinitely.
3844 TZID:America/New_York
3845 LAST-MODIFIED:20050809T050000Z
3846 TZURL:http://zones.example.com/tz/America-New_York.ics
3848 DTSTART:20071104T020000
3849 RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
3855 DTSTART:20070311T020000
3856 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
3866Desruisseaux Standards Track [Page 69]
3868RFC 5545 iCalendar September 2009
3871 This is an example showing a set of rules for a fictitious time
3872 zone where the Daylight Time rule has an effective end date (i.e.,
3873 after that date, Daylight Time is no longer observed).
3877 LAST-MODIFIED:19870101T000000Z
3879 DTSTART:19671029T020000
3880 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
3886 DTSTART:19870405T020000
3887 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z
3922Desruisseaux Standards Track [Page 70]
3924RFC 5545 iCalendar September 2009
3927 This is an example showing a set of rules for a fictitious time
3928 zone where the first Daylight Time rule has an effective end date.
3929 There is a second Daylight Time rule that picks up where the other
3934 LAST-MODIFIED:19870101T000000Z
3936 DTSTART:19671029T020000
3937 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
3943 DTSTART:19870405T020000
3944 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z
3950 DTSTART:19990424T020000
3951 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=4
39583.6.6. Alarm Component
3960 Component Name: VALARM
3962 Purpose: Provide a grouping of component properties that define an
3965 Format Definition: A "VALARM" calendar component is defined by the
3968 alarmc = "BEGIN" ":" "VALARM" CRLF
3969 (audioprop / dispprop / emailprop)
3970 "END" ":" "VALARM" CRLF
3974 ; 'action' and 'trigger' are both REQUIRED,
3978Desruisseaux Standards Track [Page 71]
3980RFC 5545 iCalendar September 2009
3983 ; but MUST NOT occur more than once.
3987 ; 'duration' and 'repeat' are both OPTIONAL,
3988 ; and MUST NOT occur more than once each;
3989 ; but if one occurs, so MUST the other.
3993 ; The following is OPTIONAL,
3994 ; but MUST NOT occur more than once.
3998 ; The following is OPTIONAL,
3999 ; and MAY occur more than once.
4007 ; The following are REQUIRED,
4008 ; but MUST NOT occur more than once.
4010 action / description / trigger /
4012 ; 'duration' and 'repeat' are both OPTIONAL,
4013 ; and MUST NOT occur more than once each;
4014 ; but if one occurs, so MUST the other.
4018 ; The following is OPTIONAL,
4019 ; and MAY occur more than once.
4027 ; The following are all REQUIRED,
4028 ; but MUST NOT occur more than once.
4030 action / description / trigger / summary /
4034Desruisseaux Standards Track [Page 72]
4036RFC 5545 iCalendar September 2009
4040 ; The following is REQUIRED,
4041 ; and MAY occur more than once.
4045 ; 'duration' and 'repeat' are both OPTIONAL,
4046 ; and MUST NOT occur more than once each;
4047 ; but if one occurs, so MUST the other.
4051 ; The following are OPTIONAL,
4052 ; and MAY occur more than once.
4054 attach / x-prop / iana-prop
4058 Description: A "VALARM" calendar component is a grouping of
4059 component properties that is a reminder or alarm for an event or a
4060 to-do. For example, it may be used to define a reminder for a
4061 pending event or an overdue to-do.
4063 The "VALARM" calendar component MUST include the "ACTION" and
4064 "TRIGGER" properties. The "ACTION" property further constrains
4065 the "VALARM" calendar component in the following ways:
4067 When the action is "AUDIO", the alarm can also include one and
4068 only one "ATTACH" property, which MUST point to a sound resource,
4069 which is rendered when the alarm is triggered.
4071 When the action is "DISPLAY", the alarm MUST also include a
4072 "DESCRIPTION" property, which contains the text to be displayed
4073 when the alarm is triggered.
4075 When the action is "EMAIL", the alarm MUST include a "DESCRIPTION"
4076 property, which contains the text to be used as the message body,
4077 a "SUMMARY" property, which contains the text to be used as the
4078 message subject, and one or more "ATTENDEE" properties, which
4079 contain the email address of attendees to receive the message. It
4080 can also include one or more "ATTACH" properties, which are
4081 intended to be sent as message attachments. When the alarm is
4082 triggered, the email message is sent.
4084 The "VALARM" calendar component MUST only appear within either a
4085 "VEVENT" or "VTODO" calendar component. "VALARM" calendar
4086 components cannot be nested. Multiple mutually independent
4090Desruisseaux Standards Track [Page 73]
4092RFC 5545 iCalendar September 2009
4095 "VALARM" calendar components can be specified for a single
4096 "VEVENT" or "VTODO" calendar component.
4098 The "TRIGGER" property specifies when the alarm will be triggered.
4099 The "TRIGGER" property specifies a duration prior to the start of
4100 an event or a to-do. The "TRIGGER" edge may be explicitly set to
4101 be relative to the "START" or "END" of the event or to-do with the
4102 "RELATED" parameter of the "TRIGGER" property. The "TRIGGER"
4103 property value type can alternatively be set to an absolute
4104 calendar date with UTC time.
4106 In an alarm set to trigger on the "START" of an event or to-do,
4107 the "DTSTART" property MUST be present in the associated event or
4108 to-do. In an alarm in a "VEVENT" calendar component set to
4109 trigger on the "END" of the event, either the "DTEND" property
4110 MUST be present, or the "DTSTART" and "DURATION" properties MUST
4111 both be present. In an alarm in a "VTODO" calendar component set
4112 to trigger on the "END" of the to-do, either the "DUE" property
4113 MUST be present, or the "DTSTART" and "DURATION" properties MUST
4116 The alarm can be defined such that it triggers repeatedly. A
4117 definition of an alarm with a repeating trigger MUST include both
4118 the "DURATION" and "REPEAT" properties. The "DURATION" property
4119 specifies the delay period, after which the alarm will repeat.
4120 The "REPEAT" property specifies the number of additional
4121 repetitions that the alarm will be triggered. This repetition
4122 count is in addition to the initial triggering of the alarm. Both
4123 of these properties MUST be present in order to specify a
4124 repeating alarm. If one of these two properties is absent, then
4125 the alarm will not repeat beyond the initial trigger.
4127 The "ACTION" property is used within the "VALARM" calendar
4128 component to specify the type of action invoked when the alarm is
4129 triggered. The "VALARM" properties provide enough information for
4130 a specific action to be invoked. It is typically the
4131 responsibility of a "Calendar User Agent" (CUA) to deliver the
4132 alarm in the specified fashion. An "ACTION" property value of
4133 AUDIO specifies an alarm that causes a sound to be played to alert
4134 the user; DISPLAY specifies an alarm that causes a text message to
4135 be displayed to the user; and EMAIL specifies an alarm that causes
4136 an electronic email message to be delivered to one or more email
4139 In an AUDIO alarm, if the optional "ATTACH" property is included,
4140 it MUST specify an audio sound resource. The intention is that
4141 the sound will be played as the alarm effect. If an "ATTACH"
4142 property is specified that does not refer to a sound resource, or
4146Desruisseaux Standards Track [Page 74]
4148RFC 5545 iCalendar September 2009
4151 if the specified sound resource cannot be rendered (because its
4152 format is unsupported, or because it cannot be retrieved), then
4153 the CUA or other entity responsible for playing the sound may
4154 choose a fallback action, such as playing a built-in default
4155 sound, or playing no sound at all.
4157 In a DISPLAY alarm, the intended alarm effect is for the text
4158 value of the "DESCRIPTION" property to be displayed to the user.
4160 In an EMAIL alarm, the intended alarm effect is for an email
4161 message to be composed and delivered to all the addresses
4162 specified by the "ATTENDEE" properties in the "VALARM" calendar
4163 component. The "DESCRIPTION" property of the "VALARM" calendar
4164 component MUST be used as the body text of the message, and the
4165 "SUMMARY" property MUST be used as the subject text. Any "ATTACH"
4166 properties in the "VALARM" calendar component SHOULD be sent as
4167 attachments to the message.
4169 Note: Implementations should carefully consider whether they
4170 accept alarm components from untrusted sources, e.g., when
4171 importing calendar objects from external sources. One
4172 reasonable policy is to always ignore alarm components that the
4173 calendar user has not set herself, or at least ask for
4174 confirmation in such a case.
4176 Example: The following example is for a "VALARM" calendar component
4177 that specifies an audio alarm that will sound at a precise time
4178 and repeat 4 more times at 15-minute intervals:
4181 TRIGGER;VALUE=DATE-TIME:19970317T133000Z
4185 ATTACH;FMTTYPE=audio/basic:ftp://example.com/pub/
4189 The following example is for a "VALARM" calendar component that
4190 specifies a display alarm that will trigger 30 minutes before the
4191 scheduled start of the event or of the to-do it is associated with
4192 and will repeat 2 more times at 15-minute intervals:
4202Desruisseaux Standards Track [Page 75]
4204RFC 5545 iCalendar September 2009
4212 DESCRIPTION:Breakfast meeting with executive\n
4213 team at 8:30 AM EST.
4216 The following example is for a "VALARM" calendar component that
4217 specifies an email alarm that will trigger 2 days before the
4218 scheduled due DATE-TIME of a to-do with which it is associated.
4219 It does not repeat. The email has a subject, body, and attachment
4223 TRIGGER;RELATED=END:-P2D
4225 ATTENDEE:mailto:john_doe@example.com
4226 SUMMARY:*** REMINDER: SEND AGENDA FOR WEEKLY STAFF MEETING ***
4227 DESCRIPTION:A draft agenda needs to be sent out to the attendees
4228 to the weekly managers meeting (MGR-LIST). Attached is a
4229 pointer the document template for the agenda file.
4230 ATTACH;FMTTYPE=application/msword:http://example.com/
4231 templates/agenda.doc
42343.7. Calendar Properties
4236 The Calendar Properties are attributes that apply to the iCalendar
4237 object, as a whole. These properties do not appear within a calendar
4238 component. They SHOULD be specified after the "BEGIN:VCALENDAR"
4239 delimiter string and prior to any calendar component.
42413.7.1. Calendar Scale
4243 Property Name: CALSCALE
4245 Purpose: This property defines the calendar scale used for the
4246 calendar information specified in the iCalendar object.
4250 Property Parameters: IANA and non-standard property parameters can
4251 be specified on this property.
4253 Conformance: This property can be specified once in an iCalendar
4254 object. The default value is "GREGORIAN".
4258Desruisseaux Standards Track [Page 76]
4260RFC 5545 iCalendar September 2009
4263 Description: This memo is based on the Gregorian calendar scale.
4264 The Gregorian calendar scale is assumed if this property is not
4265 specified in the iCalendar object. It is expected that other
4266 calendar scales will be defined in other specifications or by
4267 future versions of this memo.
4269 Format Definition: This property is defined by the following
4272 calscale = "CALSCALE" calparam ":" calvalue CRLF
4274 calparam = *(";" other-param)
4276 calvalue = "GREGORIAN"
4278 Example: The following is an example of this property:
4284 Property Name: METHOD
4286 Purpose: This property defines the iCalendar object method
4287 associated with the calendar object.
4291 Property Parameters: IANA and non-standard property parameters can
4292 be specified on this property.
4294 Conformance: This property can be specified once in an iCalendar
4297 Description: When used in a MIME message entity, the value of this
4298 property MUST be the same as the Content-Type "method" parameter
4299 value. If either the "METHOD" property or the Content-Type
4300 "method" parameter is specified, then the other MUST also be
4303 No methods are defined by this specification. This is the subject
4304 of other specifications, such as the iCalendar Transport-
4305 independent Interoperability Protocol (iTIP) defined by [2446bis].
4307 If this property is not present in the iCalendar object, then a
4308 scheduling transaction MUST NOT be assumed. In such cases, the
4309 iCalendar object is merely being used to transport a snapshot of
4314Desruisseaux Standards Track [Page 77]
4316RFC 5545 iCalendar September 2009
4319 some calendar information; without the intention of conveying a
4320 scheduling semantic.
4322 Format Definition: This property is defined by the following
4325 method = "METHOD" metparam ":" metvalue CRLF
4327 metparam = *(";" other-param)
4329 metvalue = iana-token
4331 Example: The following is a hypothetical example of this property to
4332 convey that the iCalendar object is a scheduling request:
43363.7.3. Product Identifier
4338 Property Name: PRODID
4340 Purpose: This property specifies the identifier for the product that
4341 created the iCalendar object.
4345 Property Parameters: IANA and non-standard property parameters can
4346 be specified on this property.
4348 Conformance: The property MUST be specified once in an iCalendar
4351 Description: The vendor of the implementation SHOULD assure that
4352 this is a globally unique identifier; using some technique such as
4353 an FPI value, as defined in [ISO.9070.1991].
4355 This property SHOULD NOT be used to alter the interpretation of an
4356 iCalendar object beyond the semantics specified in this memo. For
4357 example, it is not to be used to further the understanding of non-
4358 standard properties.
4360 Format Definition: This property is defined by the following
4363 prodid = "PRODID" pidparam ":" pidvalue CRLF
4365 pidparam = *(";" other-param)
4370Desruisseaux Standards Track [Page 78]
4372RFC 5545 iCalendar September 2009
4376 ;Any text that describes the product and version
4377 ;and that is generally assured of being unique.
4379 Example: The following is an example of this property. It does not
4380 imply that English is the default language.
4382 PRODID:-//ABC Corporation//NONSGML My Product//EN
4386 Property Name: VERSION
4388 Purpose: This property specifies the identifier corresponding to the
4389 highest version number or the minimum and maximum range of the
4390 iCalendar specification that is required in order to interpret the
4395 Property Parameters: IANA and non-standard property parameters can
4396 be specified on this property.
4398 Conformance: This property MUST be specified once in an iCalendar
4401 Description: A value of "2.0" corresponds to this memo.
4403 Format Definition: This property is defined by the following
4406 version = "VERSION" verparam ":" vervalue CRLF
4408 verparam = *(";" other-param)
4410 vervalue = "2.0" ;This memo
4412 / (minver ";" maxver)
4414 minver = <A IANA-registered iCalendar version identifier>
4415 ;Minimum iCalendar version needed to parse the iCalendar object.
4417 maxver = <A IANA-registered iCalendar version identifier>
4418 ;Maximum iCalendar version needed to parse the iCalendar object.
4426Desruisseaux Standards Track [Page 79]
4428RFC 5545 iCalendar September 2009
4431 Example: The following is an example of this property:
44353.8. Component Properties
4437 The following properties can appear within calendar components, as
4438 specified by each component property definition.
44403.8.1. Descriptive Component Properties
4442 The following properties specify descriptive information about
4443 calendar components.
4447 Property Name: ATTACH
4449 Purpose: This property provides the capability to associate a
4450 document object with a calendar component.
4452 Value Type: The default value type for this property is URI. The
4453 value type can also be set to BINARY to indicate inline binary
4454 encoded content information.
4456 Property Parameters: IANA, non-standard, inline encoding, and value
4457 data type property parameters can be specified on this property.
4458 The format type parameter can be specified on this property and is
4459 RECOMMENDED for inline binary encoded content information.
4461 Conformance: This property can be specified multiple times in a
4462 "VEVENT", "VTODO", "VJOURNAL", or "VALARM" calendar component with
4463 the exception of AUDIO alarm that only allows this property to
4466 Description: This property is used in "VEVENT", "VTODO", and
4467 "VJOURNAL" calendar components to associate a resource (e.g.,
4468 document) with the calendar component. This property is used in
4469 "VALARM" calendar components to specify an audio sound resource or
4470 an email message attachment. This property can be specified as a
4471 URI pointing to a resource or as inline binary encoded content.
4473 When this property is specified as inline binary encoded content,
4474 calendar applications MAY attempt to guess the media type of the
4475 resource via inspection of its content if and only if the media
4476 type of the resource is not given by the "FMTTYPE" parameter. If
4477 the media type remains unknown, calendar applications SHOULD treat
4478 it as type "application/octet-stream".
4482Desruisseaux Standards Track [Page 80]
4484RFC 5545 iCalendar September 2009
4487 Format Definition: This property is defined by the following
4490 attach = "ATTACH" attachparam ( ":" uri ) /
4492 ";" "ENCODING" "=" "BASE64"
4493 ";" "VALUE" "=" "BINARY"
4500 ; The following is OPTIONAL for a URI value,
4501 ; RECOMMENDED for a BINARY value,
4502 ; and MUST NOT occur more than once.
4504 (";" fmttypeparam) /
4506 ; The following is OPTIONAL,
4507 ; and MAY occur more than once.
4513 Example: The following are examples of this property:
4515 ATTACH:CID:jsmith.part3.960817T083000.xyzMail@example.com
4517 ATTACH;FMTTYPE=application/postscript:ftp://example.com/pub/
4522 Property Name: CATEGORIES
4524 Purpose: This property defines the categories for a calendar
4529 Property Parameters: IANA, non-standard, and language property
4530 parameters can be specified on this property.
4532 Conformance: The property can be specified within "VEVENT", "VTODO",
4533 or "VJOURNAL" calendar components.
4538Desruisseaux Standards Track [Page 81]
4540RFC 5545 iCalendar September 2009
4543 Description: This property is used to specify categories or subtypes
4544 of the calendar component. The categories are useful in searching
4545 for a calendar component of a particular type and category.
4546 Within the "VEVENT", "VTODO", or "VJOURNAL" calendar components,
4547 more than one category can be specified as a COMMA-separated list
4550 Format Definition: This property is defined by the following
4553 categories = "CATEGORIES" catparam ":" text *("," text)
4558 ; The following is OPTIONAL,
4559 ; but MUST NOT occur more than once.
4561 (";" languageparam ) /
4563 ; The following is OPTIONAL,
4564 ; and MAY occur more than once.
4570 Example: The following are examples of this property:
4572 CATEGORIES:APPOINTMENT,EDUCATION
45763.8.1.3. Classification
4578 Property Name: CLASS
4580 Purpose: This property defines the access classification for a
4585 Property Parameters: IANA and non-standard property parameters can
4586 be specified on this property.
4588 Conformance: The property can be specified once in a "VEVENT",
4589 "VTODO", or "VJOURNAL" calendar components.
4594Desruisseaux Standards Track [Page 82]
4596RFC 5545 iCalendar September 2009
4599 Description: An access classification is only one component of the
4600 general security system within a calendar application. It
4601 provides a method of capturing the scope of the access the
4602 calendar owner intends for information within an individual
4603 calendar entry. The access classification of an individual
4604 iCalendar component is useful when measured along with the other
4605 security components of a calendar system (e.g., calendar user
4606 authentication, authorization, access rights, access role, etc.).
4607 Hence, the semantics of the individual access classifications
4608 cannot be completely defined by this memo alone. Additionally,
4609 due to the "blind" nature of most exchange processes using this
4610 memo, these access classifications cannot serve as an enforcement
4611 statement for a system receiving an iCalendar object. Rather,
4612 they provide a method for capturing the intention of the calendar
4613 owner for the access to the calendar component. If not specified
4614 in a component that allows this property, the default value is
4615 PUBLIC. Applications MUST treat x-name and iana-token values they
4616 don't recognize the same way as they would the PRIVATE value.
4618 Format Definition: This property is defined by the following
4621 class = "CLASS" classparam ":" classvalue CRLF
4623 classparam = *(";" other-param)
4625 classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token
4629 Example: The following is an example of this property:
4635 Property Name: COMMENT
4637 Purpose: This property specifies non-processing information intended
4638 to provide a comment to the calendar user.
4642 Property Parameters: IANA, non-standard, alternate text
4643 representation, and language property parameters can be specified
4650Desruisseaux Standards Track [Page 83]
4652RFC 5545 iCalendar September 2009
4655 Conformance: This property can be specified multiple times in
4656 "VEVENT", "VTODO", "VJOURNAL", and "VFREEBUSY" calendar components
4657 as well as in the "STANDARD" and "DAYLIGHT" sub-components.
4659 Description: This property is used to specify a comment to the
4662 Format Definition: This property is defined by the following
4665 comment = "COMMENT" commparam ":" text CRLF
4669 ; The following are OPTIONAL,
4670 ; but MUST NOT occur more than once.
4672 (";" altrepparam) / (";" languageparam) /
4674 ; The following is OPTIONAL,
4675 ; and MAY occur more than once.
4681 Example: The following is an example of this property:
4683 COMMENT:The meeting really needs to include both ourselves
4684 and the customer. We can't hold this meeting without them.
4685 As a matter of fact\, the venue for the meeting ought to be at
4686 their site. - - John
4690 Property Name: DESCRIPTION
4692 Purpose: This property provides a more complete description of the
4693 calendar component than that provided by the "SUMMARY" property.
4697 Property Parameters: IANA, non-standard, alternate text
4698 representation, and language property parameters can be specified
4706Desruisseaux Standards Track [Page 84]
4708RFC 5545 iCalendar September 2009
4711 Conformance: The property can be specified in the "VEVENT", "VTODO",
4712 "VJOURNAL", or "VALARM" calendar components. The property can be
4713 specified multiple times only within a "VJOURNAL" calendar
4716 Description: This property is used in the "VEVENT" and "VTODO" to
4717 capture lengthy textual descriptions associated with the activity.
4719 This property is used in the "VJOURNAL" calendar component to
4720 capture one or more textual journal entries.
4722 This property is used in the "VALARM" calendar component to
4723 capture the display text for a DISPLAY category of alarm, and to
4724 capture the body text for an EMAIL category of alarm.
4726 Format Definition: This property is defined by the following
4729 description = "DESCRIPTION" descparam ":" text CRLF
4733 ; The following are OPTIONAL,
4734 ; but MUST NOT occur more than once.
4736 (";" altrepparam) / (";" languageparam) /
4738 ; The following is OPTIONAL,
4739 ; and MAY occur more than once.
4745 Example: The following is an example of this property with formatted
4746 line breaks in the property value:
4748 DESCRIPTION:Meeting to provide technical review for "Phoenix"
4749 design.\nHappy Face Conference Room. Phoenix design team
4750 MUST attend this meeting.\nRSVP to team leader.
47523.8.1.6. Geographic Position
4756 Purpose: This property specifies information related to the global
4757 position for the activity specified by a calendar component.
4762Desruisseaux Standards Track [Page 85]
4764RFC 5545 iCalendar September 2009
4767 Value Type: FLOAT. The value MUST be two SEMICOLON-separated FLOAT
4770 Property Parameters: IANA and non-standard property parameters can
4771 be specified on this property.
4773 Conformance: This property can be specified in "VEVENT" or "VTODO"
4774 calendar components.
4776 Description: This property value specifies latitude and longitude,
4777 in that order (i.e., "LAT LON" ordering). The longitude
4778 represents the location east or west of the prime meridian as a
4779 positive or negative real number, respectively. The longitude and
4780 latitude values MAY be specified up to six decimal places, which
4781 will allow for accuracy to within one meter of geographical
4782 position. Receiving applications MUST accept values of this
4783 precision and MAY truncate values of greater precision.
4785 Values for latitude and longitude shall be expressed as decimal
4786 fractions of degrees. Whole degrees of latitude shall be
4787 represented by a two-digit decimal number ranging from 0 through
4788 90. Whole degrees of longitude shall be represented by a decimal
4789 number ranging from 0 through 180. When a decimal fraction of a
4790 degree is specified, it shall be separated from the whole number
4791 of degrees by a decimal point.
4793 Latitudes north of the equator shall be specified by a plus sign
4794 (+), or by the absence of a minus sign (-), preceding the digits
4795 designating degrees. Latitudes south of the Equator shall be
4796 designated by a minus sign (-) preceding the digits designating
4797 degrees. A point on the Equator shall be assigned to the Northern
4800 Longitudes east of the prime meridian shall be specified by a plus
4801 sign (+), or by the absence of a minus sign (-), preceding the
4802 digits designating degrees. Longitudes west of the meridian shall
4803 be designated by minus sign (-) preceding the digits designating
4804 degrees. A point on the prime meridian shall be assigned to the
4805 Eastern Hemisphere. A point on the 180th meridian shall be
4806 assigned to the Western Hemisphere. One exception to this last
4807 convention is permitted. For the special condition of describing
4808 a band of latitude around the earth, the East Bounding Coordinate
4809 data element shall be assigned the value +180 (180) degrees.
4811 Any spatial address with a latitude of +90 (90) or -90 degrees
4812 will specify the position at the North or South Pole,
4813 respectively. The component for longitude may have any legal
4818Desruisseaux Standards Track [Page 86]
4820RFC 5545 iCalendar September 2009
4823 With the exception of the special condition described above, this
4824 form is specified in [ANSI INCITS 61-1986].
4826 The simple formula for converting degrees-minutes-seconds into
4829 decimal = degrees + minutes/60 + seconds/3600.
4831 Format Definition: This property is defined by the following
4834 geo = "GEO" geoparam ":" geovalue CRLF
4836 geoparam = *(";" other-param)
4838 geovalue = float ";" float
4839 ;Latitude and Longitude components
4841 Example: The following is an example of this property:
4843 GEO:37.386013;-122.082932
4847 Property Name: LOCATION
4849 Purpose: This property defines the intended venue for the activity
4850 defined by a calendar component.
4854 Property Parameters: IANA, non-standard, alternate text
4855 representation, and language property parameters can be specified
4858 Conformance: This property can be specified in "VEVENT" or "VTODO"
4861 Description: Specific venues such as conference or meeting rooms may
4862 be explicitly specified using this property. An alternate
4863 representation may be specified that is a URI that points to
4864 directory information with more structured specification of the
4865 location. For example, the alternate representation may specify
4866 either an LDAP URL [RFC4516] pointing to an LDAP server entry or a
4867 CID URL [RFC2392] pointing to a MIME body part containing a
4868 Virtual-Information Card (vCard) [RFC2426] for the location.
4874Desruisseaux Standards Track [Page 87]
4876RFC 5545 iCalendar September 2009
4879 Format Definition: This property is defined by the following
4882 location = "LOCATION" locparam ":" text CRLF
4886 ; The following are OPTIONAL,
4887 ; but MUST NOT occur more than once.
4889 (";" altrepparam) / (";" languageparam) /
4891 ; The following is OPTIONAL,
4892 ; and MAY occur more than once.
4898 Example: The following are some examples of this property:
4900 LOCATION:Conference Room - F123\, Bldg. 002
4902 LOCATION;ALTREP="http://xyzcorp.com/conf-rooms/f123.vcf":
4903 Conference Room - F123\, Bldg. 002
49053.8.1.8. Percent Complete
4907 Property Name: PERCENT-COMPLETE
4909 Purpose: This property is used by an assignee or delegatee of a
4910 to-do to convey the percent completion of a to-do to the
4915 Property Parameters: IANA and non-standard property parameters can
4916 be specified on this property.
4918 Conformance: This property can be specified once in a "VTODO"
4921 Description: The property value is a positive integer between 0 and
4922 100. A value of "0" indicates the to-do has not yet been started.
4923 A value of "100" indicates that the to-do has been completed.
4924 Integer values in between indicate the percent partially complete.
4930Desruisseaux Standards Track [Page 88]
4932RFC 5545 iCalendar September 2009
4935 When a to-do is assigned to multiple individuals, the property
4936 value indicates the percent complete for that portion of the to-do
4937 assigned to the assignee or delegatee. For example, if a to-do is
4938 assigned to both individuals "A" and "B". A reply from "A" with a
4939 percent complete of "70" indicates that "A" has completed 70% of
4940 the to-do assigned to them. A reply from "B" with a percent
4941 complete of "50" indicates "B" has completed 50% of the to-do
4944 Format Definition: This property is defined by the following
4947 percent = "PERCENT-COMPLETE" pctparam ":" integer CRLF
4949 pctparam = *(";" other-param)
4951 Example: The following is an example of this property to show 39%
4958 Property Name: PRIORITY
4960 Purpose: This property defines the relative priority for a calendar
4965 Property Parameters: IANA and non-standard property parameters can
4966 be specified on this property.
4968 Conformance: This property can be specified in "VEVENT" and "VTODO"
4969 calendar components.
4971 Description: This priority is specified as an integer in the range 0
4972 to 9. A value of 0 specifies an undefined priority. A value of 1
4973 is the highest priority. A value of 2 is the second highest
4974 priority. Subsequent numbers specify a decreasing ordinal
4975 priority. A value of 9 is the lowest priority.
4977 A CUA with a three-level priority scheme of "HIGH", "MEDIUM", and
4978 "LOW" is mapped into this property such that a property value in
4979 the range of 1 to 4 specifies "HIGH" priority. A value of 5 is
4980 the normal or "MEDIUM" priority. A value in the range of 6 to 9
4986Desruisseaux Standards Track [Page 89]
4988RFC 5545 iCalendar September 2009
4991 A CUA with a priority schema of "A1", "A2", "A3", "B1", "B2", ...,
4992 "C3" is mapped into this property such that a property value of 1
4993 specifies "A1", a property value of 2 specifies "A2", a property
4994 value of 3 specifies "A3", and so forth up to a property value of
4997 Other integer values are reserved for future use.
4999 Within a "VEVENT" calendar component, this property specifies a
5000 priority for the event. This property may be useful when more
5001 than one event is scheduled for a given time period.
5003 Within a "VTODO" calendar component, this property specified a
5004 priority for the to-do. This property is useful in prioritizing
5005 multiple action items for a given time period.
5007 Format Definition: This property is defined by the following
5010 priority = "PRIORITY" prioparam ":" priovalue CRLF
5011 ;Default is zero (i.e., undefined).
5013 prioparam = *(";" other-param)
5015 priovalue = integer ;Must be in the range [0..9]
5016 ; All other values are reserved for future use.
5018 Example: The following is an example of a property with the highest
5023 The following is an example of a property with a next highest
5028 The following is an example of a property with no priority. This
5029 is equivalent to not specifying the "PRIORITY" property:
5042Desruisseaux Standards Track [Page 90]
5044RFC 5545 iCalendar September 2009
5049 Property Name: RESOURCES
5051 Purpose: This property defines the equipment or resources
5052 anticipated for an activity specified by a calendar component.
5056 Property Parameters: IANA, non-standard, alternate text
5057 representation, and language property parameters can be specified
5060 Conformance: This property can be specified once in "VEVENT" or
5061 "VTODO" calendar component.
5063 Description: The property value is an arbitrary text. More than one
5064 resource can be specified as a COMMA-separated list of resources.
5066 Format Definition: This property is defined by the following
5069 resources = "RESOURCES" resrcparam ":" text *("," text) CRLF
5073 ; The following are OPTIONAL,
5074 ; but MUST NOT occur more than once.
5076 (";" altrepparam) / (";" languageparam) /
5078 ; The following is OPTIONAL,
5079 ; and MAY occur more than once.
5085 Example: The following is an example of this property:
5087 RESOURCES:EASEL,PROJECTOR,VCR
5089 RESOURCES;LANGUAGE=fr:Nettoyeur haute pression
5098Desruisseaux Standards Track [Page 91]
5100RFC 5545 iCalendar September 2009
5105 Property Name: STATUS
5107 Purpose: This property defines the overall status or confirmation
5108 for the calendar component.
5112 Property Parameters: IANA and non-standard property parameters can
5113 be specified on this property.
5115 Conformance: This property can be specified once in "VEVENT",
5116 "VTODO", or "VJOURNAL" calendar components.
5118 Description: In a group-scheduled calendar component, the property
5119 is used by the "Organizer" to provide a confirmation of the event
5120 to the "Attendees". For example in a "VEVENT" calendar component,
5121 the "Organizer" can indicate that a meeting is tentative,
5122 confirmed, or cancelled. In a "VTODO" calendar component, the
5123 "Organizer" can indicate that an action item needs action, is
5124 completed, is in process or being worked on, or has been
5125 cancelled. In a "VJOURNAL" calendar component, the "Organizer"
5126 can indicate that a journal entry is draft, final, or has been
5127 cancelled or removed.
5129 Format Definition: This property is defined by the following
5132 status = "STATUS" statparam ":" statvalue CRLF
5134 statparam = *(";" other-param)
5136 statvalue = (statvalue-event
5140 statvalue-event = "TENTATIVE" ;Indicates event is tentative.
5141 / "CONFIRMED" ;Indicates event is definite.
5142 / "CANCELLED" ;Indicates event was cancelled.
5143 ;Status values for a "VEVENT"
5145 statvalue-todo = "NEEDS-ACTION" ;Indicates to-do needs action.
5146 / "COMPLETED" ;Indicates to-do completed.
5147 / "IN-PROCESS" ;Indicates to-do in process of.
5148 / "CANCELLED" ;Indicates to-do was cancelled.
5149 ;Status values for "VTODO".
5154Desruisseaux Standards Track [Page 92]
5156RFC 5545 iCalendar September 2009
5159 statvalue-jour = "DRAFT" ;Indicates journal is draft.
5160 / "FINAL" ;Indicates journal is final.
5161 / "CANCELLED" ;Indicates journal is removed.
5162 ;Status values for "VJOURNAL".
5164 Example: The following is an example of this property for a "VEVENT"
5169 The following is an example of this property for a "VTODO"
5174 The following is an example of this property for a "VJOURNAL"
5181 Property Name: SUMMARY
5183 Purpose: This property defines a short summary or subject for the
5188 Property Parameters: IANA, non-standard, alternate text
5189 representation, and language property parameters can be specified
5192 Conformance: The property can be specified in "VEVENT", "VTODO",
5193 "VJOURNAL", or "VALARM" calendar components.
5195 Description: This property is used in the "VEVENT", "VTODO", and
5196 "VJOURNAL" calendar components to capture a short, one-line
5197 summary about the activity or journal entry.
5199 This property is used in the "VALARM" calendar component to
5200 capture the subject of an EMAIL category of alarm.
5202 Format Definition: This property is defined by the following
5210Desruisseaux Standards Track [Page 93]
5212RFC 5545 iCalendar September 2009
5215 summary = "SUMMARY" summparam ":" text CRLF
5219 ; The following are OPTIONAL,
5220 ; but MUST NOT occur more than once.
5222 (";" altrepparam) / (";" languageparam) /
5224 ; The following is OPTIONAL,
5225 ; and MAY occur more than once.
5231 Example: The following is an example of this property:
5233 SUMMARY:Department Party
52353.8.2. Date and Time Component Properties
5237 The following properties specify date and time related information in
5238 calendar components.
52403.8.2.1. Date-Time Completed
5242 Property Name: COMPLETED
5244 Purpose: This property defines the date and time that a to-do was
5247 Value Type: DATE-TIME
5249 Property Parameters: IANA and non-standard property parameters can
5250 be specified on this property.
5252 Conformance: The property can be specified in a "VTODO" calendar
5253 component. The value MUST be specified as a date with UTC time.
5255 Description: This property defines the date and time that a to-do
5256 was actually completed.
5258 Format Definition: This property is defined by the following
5266Desruisseaux Standards Track [Page 94]
5268RFC 5545 iCalendar September 2009
5271 completed = "COMPLETED" compparam ":" date-time CRLF
5273 compparam = *(";" other-param)
5275 Example: The following is an example of this property:
5277 COMPLETED:19960401T150000Z
52793.8.2.2. Date-Time End
5281 Property Name: DTEND
5283 Purpose: This property specifies the date and time that a calendar
5286 Value Type: The default value type is DATE-TIME. The value type can
5287 be set to a DATE value type.
5289 Property Parameters: IANA, non-standard, value data type, and time
5290 zone identifier property parameters can be specified on this
5293 Conformance: This property can be specified in "VEVENT" or
5294 "VFREEBUSY" calendar components.
5296 Description: Within the "VEVENT" calendar component, this property
5297 defines the date and time by which the event ends. The value type
5298 of this property MUST be the same as the "DTSTART" property, and
5299 its value MUST be later in time than the value of the "DTSTART"
5300 property. Furthermore, this property MUST be specified as a date
5301 with local time if and only if the "DTSTART" property is also
5302 specified as a date with local time.
5304 Within the "VFREEBUSY" calendar component, this property defines
5305 the end date and time for the free or busy time information. The
5306 time MUST be specified in the UTC time format. The value MUST be
5307 later in time than the value of the "DTSTART" property.
5309 Format Definition: This property is defined by the following
5322Desruisseaux Standards Track [Page 95]
5324RFC 5545 iCalendar September 2009
5327 dtend = "DTEND" dtendparam ":" dtendval CRLF
5331 ; The following are OPTIONAL,
5332 ; but MUST NOT occur more than once.
5334 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
5337 ; The following is OPTIONAL,
5338 ; and MAY occur more than once.
5344 dtendval = date-time / date
5345 ;Value MUST match value type
5347 Example: The following is an example of this property:
5349 DTEND:19960401T150000Z
5351 DTEND;VALUE=DATE:19980704
53533.8.2.3. Date-Time Due
5357 Purpose: This property defines the date and time that a to-do is
5358 expected to be completed.
5360 Value Type: The default value type is DATE-TIME. The value type can
5361 be set to a DATE value type.
5363 Property Parameters: IANA, non-standard, value data type, and time
5364 zone identifier property parameters can be specified on this
5367 Conformance: The property can be specified once in a "VTODO"
5370 Description: This property defines the date and time before which a
5371 to-do is expected to be completed. For cases where this property
5372 is specified in a "VTODO" calendar component that also specifies a
5373 "DTSTART" property, the value type of this property MUST be the
5374 same as the "DTSTART" property, and the value of this property
5378Desruisseaux Standards Track [Page 96]
5380RFC 5545 iCalendar September 2009
5383 MUST be later in time than the value of the "DTSTART" property.
5384 Furthermore, this property MUST be specified as a date with local
5385 time if and only if the "DTSTART" property is also specified as a
5386 date with local time.
5388 Format Definition: This property is defined by the following
5391 due = "DUE" dueparam ":" dueval CRLF
5395 ; The following are OPTIONAL,
5396 ; but MUST NOT occur more than once.
5398 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
5401 ; The following is OPTIONAL,
5402 ; and MAY occur more than once.
5408 dueval = date-time / date
5409 ;Value MUST match value type
5411 Example: The following is an example of this property:
5413 DUE:19980430T000000Z
54153.8.2.4. Date-Time Start
5417 Property Name: DTSTART
5419 Purpose: This property specifies when the calendar component begins.
5421 Value Type: The default value type is DATE-TIME. The time value
5422 MUST be one of the forms defined for the DATE-TIME value type.
5423 The value type can be set to a DATE value type.
5425 Property Parameters: IANA, non-standard, value data type, and time
5426 zone identifier property parameters can be specified on this
5429 Conformance: This property can be specified once in the "VEVENT",
5430 "VTODO", or "VFREEBUSY" calendar components as well as in the
5434Desruisseaux Standards Track [Page 97]
5436RFC 5545 iCalendar September 2009
5439 "STANDARD" and "DAYLIGHT" sub-components. This property is
5440 REQUIRED in all types of recurring calendar components that
5441 specify the "RRULE" property. This property is also REQUIRED in
5442 "VEVENT" calendar components contained in iCalendar objects that
5443 don't specify the "METHOD" property.
5445 Description: Within the "VEVENT" calendar component, this property
5446 defines the start date and time for the event.
5448 Within the "VFREEBUSY" calendar component, this property defines
5449 the start date and time for the free or busy time information.
5450 The time MUST be specified in UTC time.
5452 Within the "STANDARD" and "DAYLIGHT" sub-components, this property
5453 defines the effective start date and time for a time zone
5454 specification. This property is REQUIRED within each "STANDARD"
5455 and "DAYLIGHT" sub-components included in "VTIMEZONE" calendar
5456 components and MUST be specified as a date with local time without
5457 the "TZID" property parameter.
5459 Format Definition: This property is defined by the following
5462 dtstart = "DTSTART" dtstparam ":" dtstval CRLF
5466 ; The following are OPTIONAL,
5467 ; but MUST NOT occur more than once.
5469 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
5472 ; The following is OPTIONAL,
5473 ; and MAY occur more than once.
5479 dtstval = date-time / date
5480 ;Value MUST match value type
5482 Example: The following is an example of this property:
5484 DTSTART:19980118T073000Z
5490Desruisseaux Standards Track [Page 98]
5492RFC 5545 iCalendar September 2009
5497 Property Name: DURATION
5499 Purpose: This property specifies a positive duration of time.
5501 Value Type: DURATION
5503 Property Parameters: IANA and non-standard property parameters can
5504 be specified on this property.
5506 Conformance: This property can be specified in "VEVENT", "VTODO", or
5507 "VALARM" calendar components.
5509 Description: In a "VEVENT" calendar component the property may be
5510 used to specify a duration of the event, instead of an explicit
5511 end DATE-TIME. In a "VTODO" calendar component the property may
5512 be used to specify a duration for the to-do, instead of an
5513 explicit due DATE-TIME. In a "VALARM" calendar component the
5514 property may be used to specify the delay period prior to
5515 repeating an alarm. When the "DURATION" property relates to a
5516 "DTSTART" property that is specified as a DATE value, then the
5517 "DURATION" property MUST be specified as a "dur-day" or "dur-week"
5520 Format Definition: This property is defined by the following
5523 duration = "DURATION" durparam ":" dur-value CRLF
5524 ;consisting of a positive duration of time.
5526 durparam = *(";" other-param)
5528 Example: The following is an example of this property that specifies
5529 an interval of time of one hour and zero minutes and zero seconds:
5533 The following is an example of this property that specifies an
5534 interval of time of 15 minutes.
5546Desruisseaux Standards Track [Page 99]
5548RFC 5545 iCalendar September 2009
55513.8.2.6. Free/Busy Time
5553 Property Name: FREEBUSY
5555 Purpose: This property defines one or more free or busy time
5560 Property Parameters: IANA, non-standard, and free/busy time type
5561 property parameters can be specified on this property.
5563 Conformance: The property can be specified in a "VFREEBUSY" calendar
5566 Description: These time periods can be specified as either a start
5567 and end DATE-TIME or a start DATE-TIME and DURATION. The date and
5568 time MUST be a UTC time format.
5570 "FREEBUSY" properties within the "VFREEBUSY" calendar component
5571 SHOULD be sorted in ascending order, based on start time and then
5572 end time, with the earliest periods first.
5574 The "FREEBUSY" property can specify more than one value, separated
5575 by the COMMA character. In such cases, the "FREEBUSY" property
5576 values MUST all be of the same "FBTYPE" property parameter type
5577 (e.g., all values of a particular "FBTYPE" listed together in a
5580 Format Definition: This property is defined by the following
5583 freebusy = "FREEBUSY" fbparam ":" fbvalue CRLF
5587 ; The following is OPTIONAL,
5588 ; but MUST NOT occur more than once.
5592 ; The following is OPTIONAL,
5593 ; and MAY occur more than once.
5602Desruisseaux Standards Track [Page 100]
5604RFC 5545 iCalendar September 2009
5607 fbvalue = period *("," period)
5608 ;Time value MUST be in the UTC time format.
5610 Example: The following are some examples of this property:
5612 FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M
5614 FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H
5616 FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H
5617 ,19970308T230000Z/19970309T000000Z
56193.8.2.7. Time Transparency
5621 Property Name: TRANSP
5623 Purpose: This property defines whether or not an event is
5624 transparent to busy time searches.
5628 Property Parameters: IANA and non-standard property parameters can
5629 be specified on this property.
5631 Conformance: This property can be specified once in a "VEVENT"
5634 Description: Time Transparency is the characteristic of an event
5635 that determines whether it appears to consume time on a calendar.
5636 Events that consume actual time for the individual or resource
5637 associated with the calendar SHOULD be recorded as OPAQUE,
5638 allowing them to be detected by free/busy time searches. Other
5639 events, which do not take up the individual's (or resource's) time
5640 SHOULD be recorded as TRANSPARENT, making them invisible to free/
5643 Format Definition: This property is defined by the following
5646 transp = "TRANSP" transparam ":" transvalue CRLF
5648 transparam = *(";" other-param)
5650 transvalue = "OPAQUE"
5651 ;Blocks or opaque on busy time searches.
5653 ;Transparent on busy time searches.
5654 ;Default value is OPAQUE
5658Desruisseaux Standards Track [Page 101]
5660RFC 5545 iCalendar September 2009
5663 Example: The following is an example of this property for an event
5664 that is transparent or does not block on free/busy time searches:
5668 The following is an example of this property for an event that is
5669 opaque or blocks on free/busy time searches:
56733.8.3. Time Zone Component Properties
5675 The following properties specify time zone information in calendar
56783.8.3.1. Time Zone Identifier
5682 Purpose: This property specifies the text value that uniquely
5683 identifies the "VTIMEZONE" calendar component in the scope of an
5688 Property Parameters: IANA and non-standard property parameters can
5689 be specified on this property.
5691 Conformance: This property MUST be specified in a "VTIMEZONE"
5694 Description: This is the label by which a time zone calendar
5695 component is referenced by any iCalendar properties whose value
5696 type is either DATE-TIME or TIME and not intended to specify a UTC
5697 or a "floating" time. The presence of the SOLIDUS character as a
5698 prefix, indicates that this "TZID" represents an unique ID in a
5699 globally defined time zone registry (when such registry is
5702 Note: This document does not define a naming convention for
5703 time zone identifiers. Implementers may want to use the naming
5704 conventions defined in existing time zone specifications such
5705 as the public-domain TZ database [TZDB]. The specification of
5706 globally unique time zone identifiers is not addressed by this
5707 document and is left for future study.
5714Desruisseaux Standards Track [Page 102]
5716RFC 5545 iCalendar September 2009
5719 Format Definition: This property is defined by the following
5722 tzid = "TZID" tzidpropparam ":" [tzidprefix] text CRLF
5724 tzidpropparam = *(";" other-param)
5727 ; Defined previously. Just listed here for reader convenience.
5729 Example: The following are examples of non-globally unique time zone
5732 TZID:America/New_York
5734 TZID:America/Los_Angeles
5736 The following is an example of a fictitious globally unique time
5739 TZID:/example.org/America/New_York
57413.8.3.2. Time Zone Name
5743 Property Name: TZNAME
5745 Purpose: This property specifies the customary designation for a
5746 time zone description.
5750 Property Parameters: IANA, non-standard, and language property
5751 parameters can be specified on this property.
5753 Conformance: This property can be specified in "STANDARD" and
5754 "DAYLIGHT" sub-components.
5756 Description: This property specifies a customary name that can be
5757 used when displaying dates that occur during the observance
5758 defined by the time zone sub-component.
5760 Format Definition: This property is defined by the following
5770Desruisseaux Standards Track [Page 103]
5772RFC 5545 iCalendar September 2009
5775 tzname = "TZNAME" tznparam ":" text CRLF
5779 ; The following is OPTIONAL,
5780 ; but MUST NOT occur more than once.
5782 (";" languageparam) /
5784 ; The following is OPTIONAL,
5785 ; and MAY occur more than once.
5791 Example: The following are examples of this property:
5795 TZNAME;LANGUAGE=fr-CA:HNE
57973.8.3.3. Time Zone Offset From
5799 Property Name: TZOFFSETFROM
5801 Purpose: This property specifies the offset that is in use prior to
5802 this time zone observance.
5804 Value Type: UTC-OFFSET
5806 Property Parameters: IANA and non-standard property parameters can
5807 be specified on this property.
5809 Conformance: This property MUST be specified in "STANDARD" and
5810 "DAYLIGHT" sub-components.
5812 Description: This property specifies the offset that is in use prior
5813 to this time observance. It is used to calculate the absolute
5814 time at which the transition to a given observance takes place.
5815 This property MUST only be specified in a "VTIMEZONE" calendar
5816 component. A "VTIMEZONE" calendar component MUST include this
5817 property. The property value is a signed numeric indicating the
5818 number of hours and possibly minutes from UTC. Positive numbers
5819 represent time zones east of the prime meridian, or ahead of UTC.
5820 Negative numbers represent time zones west of the prime meridian,
5826Desruisseaux Standards Track [Page 104]
5828RFC 5545 iCalendar September 2009
5831 Format Definition: This property is defined by the following
5834 tzoffsetfrom = "TZOFFSETFROM" frmparam ":" utc-offset
5837 frmparam = *(";" other-param)
5839 Example: The following are examples of this property:
58453.8.3.4. Time Zone Offset To
5847 Property Name: TZOFFSETTO
5849 Purpose: This property specifies the offset that is in use in this
5850 time zone observance.
5852 Value Type: UTC-OFFSET
5854 Property Parameters: IANA and non-standard property parameters can
5855 be specified on this property.
5857 Conformance: This property MUST be specified in "STANDARD" and
5858 "DAYLIGHT" sub-components.
5860 Description: This property specifies the offset that is in use in
5861 this time zone observance. It is used to calculate the absolute
5862 time for the new observance. The property value is a signed
5863 numeric indicating the number of hours and possibly minutes from
5864 UTC. Positive numbers represent time zones east of the prime
5865 meridian, or ahead of UTC. Negative numbers represent time zones
5866 west of the prime meridian, or behind UTC.
5868 Format Definition: This property is defined by the following
5871 tzoffsetto = "TZOFFSETTO" toparam ":" utc-offset CRLF
5873 toparam = *(";" other-param)
5882Desruisseaux Standards Track [Page 105]
5884RFC 5545 iCalendar September 2009
5887 Example: The following are examples of this property:
58933.8.3.5. Time Zone URL
5895 Property Name: TZURL
5897 Purpose: This property provides a means for a "VTIMEZONE" component
5898 to point to a network location that can be used to retrieve an up-
5899 to-date version of itself.
5903 Property Parameters: IANA and non-standard property parameters can
5904 be specified on this property.
5906 Conformance: This property can be specified in a "VTIMEZONE"
5909 Description: This property provides a means for a "VTIMEZONE"
5910 component to point to a network location that can be used to
5911 retrieve an up-to-date version of itself. This provides a hook to
5912 handle changes government bodies impose upon time zone
5913 definitions. Retrieval of this resource results in an iCalendar
5914 object containing a single "VTIMEZONE" component and a "METHOD"
5915 property set to PUBLISH.
5917 Format Definition: This property is defined by the following
5920 tzurl = "TZURL" tzurlparam ":" uri CRLF
5922 tzurlparam = *(";" other-param)
5924 Example: The following is an example of this property:
5926 TZURL:http://timezones.example.org/tz/America-Los_Angeles.ics
59283.8.4. Relationship Component Properties
5930 The following properties specify relationship information in calendar
5938Desruisseaux Standards Track [Page 106]
5940RFC 5545 iCalendar September 2009
5945 Property Name: ATTENDEE
5947 Purpose: This property defines an "Attendee" within a calendar
5950 Value Type: CAL-ADDRESS
5952 Property Parameters: IANA, non-standard, language, calendar user
5953 type, group or list membership, participation role, participation
5954 status, RSVP expectation, delegatee, delegator, sent by, common
5955 name, or directory entry reference property parameters can be
5956 specified on this property.
5958 Conformance: This property MUST be specified in an iCalendar object
5959 that specifies a group-scheduled calendar entity. This property
5960 MUST NOT be specified in an iCalendar object when publishing the
5961 calendar information (e.g., NOT in an iCalendar object that
5962 specifies the publication of a calendar user's busy time, event,
5963 to-do, or journal). This property is not specified in an
5964 iCalendar object that specifies only a time zone definition or
5965 that defines calendar components that are not group-scheduled
5966 components, but are components only on a single user's calendar.
5968 Description: This property MUST only be specified within calendar
5969 components to specify participants, non-participants, and the
5970 chair of a group-scheduled calendar entity. The property is
5971 specified within an "EMAIL" category of the "VALARM" calendar
5972 component to specify an email address that is to receive the email
5973 type of iCalendar alarm.
5975 The property parameter "CN" is for the common or displayable name
5976 associated with the calendar address; "ROLE", for the intended
5977 role that the attendee will have in the calendar component;
5978 "PARTSTAT", for the status of the attendee's participation;
5979 "RSVP", for indicating whether the favor of a reply is requested;
5980 "CUTYPE", to indicate the type of calendar user; "MEMBER", to
5981 indicate the groups that the attendee belongs to; "DELEGATED-TO",
5982 to indicate the calendar users that the original request was
5983 delegated to; and "DELEGATED-FROM", to indicate whom the request
5984 was delegated from; "SENT-BY", to indicate whom is acting on
5985 behalf of the "ATTENDEE"; and "DIR", to indicate the URI that
5986 points to the directory information corresponding to the attendee.
5987 These property parameters can be specified on an "ATTENDEE"
5988 property in either a "VEVENT", "VTODO", or "VJOURNAL" calendar
5989 component. They MUST NOT be specified in an "ATTENDEE" property
5990 in a "VFREEBUSY" or "VALARM" calendar component. If the
5994Desruisseaux Standards Track [Page 107]
5996RFC 5545 iCalendar September 2009
5999 "LANGUAGE" property parameter is specified, the identified
6000 language applies to the "CN" parameter.
6002 A recipient delegated a request MUST inherit the "RSVP" and "ROLE"
6003 values from the attendee that delegated the request to them.
6005 Multiple attendees can be specified by including multiple
6006 "ATTENDEE" properties within the calendar component.
6008 Format Definition: This property is defined by the following
6011 attendee = "ATTENDEE" attparam ":" cal-address CRLF
6015 ; The following are OPTIONAL,
6016 ; but MUST NOT occur more than once.
6018 (";" cutypeparam) / (";" memberparam) /
6019 (";" roleparam) / (";" partstatparam) /
6020 (";" rsvpparam) / (";" deltoparam) /
6021 (";" delfromparam) / (";" sentbyparam) /
6022 (";" cnparam) / (";" dirparam) /
6023 (";" languageparam) /
6025 ; The following is OPTIONAL,
6026 ; and MAY occur more than once.
6032 Example: The following are examples of this property's use for a
6035 ATTENDEE;MEMBER="mailto:DEV-GROUP@example.com":
6036 mailto:joecool@example.com
6037 ATTENDEE;DELEGATED-FROM="mailto:immud@example.com":
6038 mailto:ildoit@example.com
6050Desruisseaux Standards Track [Page 108]
6052RFC 5545 iCalendar September 2009
6055 The following is an example of this property used for specifying
6056 multiple attendees to an event:
6058 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Henry
6059 Cabot:mailto:hcabot@example.com
6060 ATTENDEE;ROLE=REQ-PARTICIPANT;DELEGATED-FROM="mailto:bob@
6061 example.com";PARTSTAT=ACCEPTED;CN=Jane Doe:mailto:jdoe@
6064 The following is an example of this property with a URI to the
6065 directory information associated with the attendee:
6067 ATTENDEE;CN=John Smith;DIR="ldap://example.com:6666/o=ABC%
6068 20Industries,c=US???(cn=Jim%20Dolittle)":mailto:jimdo@
6071 The following is an example of this property with "delegatee" and
6072 "delegator" information for an event:
6074 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;DELEGATED-FROM=
6075 "mailto:iamboss@example.com";CN=Henry Cabot:mailto:hcabot@
6077 ATTENDEE;ROLE=NON-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO=
6078 "mailto:hcabot@example.com";CN=The Big Cheese:mailto:iamboss
6080 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Jane Doe
6081 :mailto:jdoe@example.com
6083 Example: The following is an example of this property's use when
6084 another calendar user is acting on behalf of the "Attendee":
6086 ATTENDEE;SENT-BY=mailto:jan_doe@example.com;CN=John Smith:
6087 mailto:jsmith@example.com
6091 Property Name: CONTACT
6093 Purpose: This property is used to represent contact information or
6094 alternately a reference to contact information associated with the
6099 Property Parameters: IANA, non-standard, alternate text
6100 representation, and language property parameters can be specified
6106Desruisseaux Standards Track [Page 109]
6108RFC 5545 iCalendar September 2009
6111 Conformance: This property can be specified in a "VEVENT", "VTODO",
6112 "VJOURNAL", or "VFREEBUSY" calendar component.
6114 Description: The property value consists of textual contact
6115 information. An alternative representation for the property value
6116 can also be specified that refers to a URI pointing to an
6117 alternate form, such as a vCard [RFC2426], for the contact
6120 Format Definition: This property is defined by the following
6123 contact = "CONTACT" contparam ":" text CRLF
6127 ; The following are OPTIONAL,
6128 ; but MUST NOT occur more than once.
6130 (";" altrepparam) / (";" languageparam) /
6132 ; The following is OPTIONAL,
6133 ; and MAY occur more than once.
6139 Example: The following is an example of this property referencing
6140 textual contact information:
6142 CONTACT:Jim Dolittle\, ABC Industries\, +1-919-555-1234
6144 The following is an example of this property with an alternate
6145 representation of an LDAP URI to a directory entry containing the
6146 contact information:
6148 CONTACT;ALTREP="ldap://example.com:6666/o=ABC%20Industries\,
6149 c=US???(cn=Jim%20Dolittle)":Jim Dolittle\, ABC Industries\,
6152 The following is an example of this property with an alternate
6153 representation of a MIME body part containing the contact
6154 information, such as a vCard [RFC2426] embedded in a text/
6155 directory media type [RFC2425]:
6157 CONTACT;ALTREP="CID:part3.msg970930T083000SILVER@example.com":
6158 Jim Dolittle\, ABC Industries\, +1-919-555-1234
6162Desruisseaux Standards Track [Page 110]
6164RFC 5545 iCalendar September 2009
6167 The following is an example of this property referencing a network
6168 resource, such as a vCard [RFC2426] object containing the contact
6171 CONTACT;ALTREP="http://example.com/pdi/jdoe.vcf":Jim
6172 Dolittle\, ABC Industries\, +1-919-555-1234
6176 Property Name: ORGANIZER
6178 Purpose: This property defines the organizer for a calendar
6181 Value Type: CAL-ADDRESS
6183 Property Parameters: IANA, non-standard, language, common name,
6184 directory entry reference, and sent-by property parameters can be
6185 specified on this property.
6187 Conformance: This property MUST be specified in an iCalendar object
6188 that specifies a group-scheduled calendar entity. This property
6189 MUST be specified in an iCalendar object that specifies the
6190 publication of a calendar user's busy time. This property MUST
6191 NOT be specified in an iCalendar object that specifies only a time
6192 zone definition or that defines calendar components that are not
6193 group-scheduled components, but are components only on a single
6196 Description: This property is specified within the "VEVENT",
6197 "VTODO", and "VJOURNAL" calendar components to specify the
6198 organizer of a group-scheduled calendar entity. The property is
6199 specified within the "VFREEBUSY" calendar component to specify the
6200 calendar user requesting the free or busy time. When publishing a
6201 "VFREEBUSY" calendar component, the property is used to specify
6202 the calendar that the published busy time came from.
6204 The property has the property parameters "CN", for specifying the
6205 common or display name associated with the "Organizer", "DIR", for
6206 specifying a pointer to the directory information associated with
6207 the "Organizer", "SENT-BY", for specifying another calendar user
6208 that is acting on behalf of the "Organizer". The non-standard
6209 parameters may also be specified on this property. If the
6210 "LANGUAGE" property parameter is specified, the identified
6211 language applies to the "CN" parameter value.
6218Desruisseaux Standards Track [Page 111]
6220RFC 5545 iCalendar September 2009
6223 Format Definition: This property is defined by the following
6226 organizer = "ORGANIZER" orgparam ":"
6231 ; The following are OPTIONAL,
6232 ; but MUST NOT occur more than once.
6234 (";" cnparam) / (";" dirparam) / (";" sentbyparam) /
6235 (";" languageparam) /
6237 ; The following is OPTIONAL,
6238 ; and MAY occur more than once.
6244 Example: The following is an example of this property:
6246 ORGANIZER;CN=John Smith:mailto:jsmith@example.com
6248 The following is an example of this property with a pointer to the
6249 directory information associated with the organizer:
6251 ORGANIZER;CN=JohnSmith;DIR="ldap://example.com:6666/o=DC%20Ass
6252 ociates,c=US???(cn=John%20Smith)":mailto:jsmith@example.com
6254 The following is an example of this property used by another
6255 calendar user who is acting on behalf of the organizer, with
6256 responses intended to be sent back to the organizer, not the other
6259 ORGANIZER;SENT-BY="mailto:jane_doe@example.com":
6260 mailto:jsmith@example.com
62623.8.4.4. Recurrence ID
6264 Property Name: RECURRENCE-ID
6266 Purpose: This property is used in conjunction with the "UID" and
6267 "SEQUENCE" properties to identify a specific instance of a
6268 recurring "VEVENT", "VTODO", or "VJOURNAL" calendar component.
6269 The property value is the original value of the "DTSTART" property
6270 of the recurrence instance.
6274Desruisseaux Standards Track [Page 112]
6276RFC 5545 iCalendar September 2009
6279 Value Type: The default value type is DATE-TIME. The value type can
6280 be set to a DATE value type. This property MUST have the same
6281 value type as the "DTSTART" property contained within the
6282 recurring component. Furthermore, this property MUST be specified
6283 as a date with local time if and only if the "DTSTART" property
6284 contained within the recurring component is specified as a date
6287 Property Parameters: IANA, non-standard, value data type, time zone
6288 identifier, and recurrence identifier range parameters can be
6289 specified on this property.
6291 Conformance: This property can be specified in an iCalendar object
6292 containing a recurring calendar component.
6294 Description: The full range of calendar components specified by a
6295 recurrence set is referenced by referring to just the "UID"
6296 property value corresponding to the calendar component. The
6297 "RECURRENCE-ID" property allows the reference to an individual
6298 instance within the recurrence set.
6300 If the value of the "DTSTART" property is a DATE type value, then
6301 the value MUST be the calendar date for the recurrence instance.
6303 The DATE-TIME value is set to the time when the original
6304 recurrence instance would occur; meaning that if the intent is to
6305 change a Friday meeting to Thursday, the DATE-TIME is still set to
6306 the original Friday meeting.
6308 The "RECURRENCE-ID" property is used in conjunction with the "UID"
6309 and "SEQUENCE" properties to identify a particular instance of a
6310 recurring event, to-do, or journal. For a given pair of "UID" and
6311 "SEQUENCE" property values, the "RECURRENCE-ID" value for a
6312 recurrence instance is fixed.
6314 The "RANGE" parameter is used to specify the effective range of
6315 recurrence instances from the instance specified by the
6316 "RECURRENCE-ID" property value. The value for the range parameter
6317 can only be "THISANDFUTURE" to indicate a range defined by the
6318 given recurrence instance and all subsequent instances.
6319 Subsequent instances are determined by their "RECURRENCE-ID" value
6320 and not their current scheduled start time. Subsequent instances
6321 defined in separate components are not impacted by the given
6322 recurrence instance. When the given recurrence instance is
6323 rescheduled, all subsequent instances are also rescheduled by the
6324 same time difference. For instance, if the given recurrence
6325 instance is rescheduled to start 2 hours later, then all
6326 subsequent instances are also rescheduled 2 hours later.
6330Desruisseaux Standards Track [Page 113]
6332RFC 5545 iCalendar September 2009
6335 Similarly, if the duration of the given recurrence instance is
6336 modified, then all subsequence instances are also modified to have
6339 Note: The "RANGE" parameter may not be appropriate to
6340 reschedule specific subsequent instances of complex recurring
6341 calendar component. Assuming an unbounded recurring calendar
6342 component scheduled to occur on Mondays and Wednesdays, the
6343 "RANGE" parameter could not be used to reschedule only the
6344 future Monday instances to occur on Tuesday instead. In such
6345 cases, the calendar application could simply truncate the
6346 unbounded recurring calendar component (i.e., with the "COUNT"
6347 or "UNTIL" rule parts), and create two new unbounded recurring
6348 calendar components for the future instances.
6350 Format Definition: This property is defined by the following
6353 recurid = "RECURRENCE-ID" ridparam ":" ridval CRLF
6357 ; The following are OPTIONAL,
6358 ; but MUST NOT occur more than once.
6360 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
6361 (";" tzidparam) / (";" rangeparam) /
6363 ; The following is OPTIONAL,
6364 ; and MAY occur more than once.
6370 ridval = date-time / date
6371 ;Value MUST match value type
6373 Example: The following are examples of this property:
6375 RECURRENCE-ID;VALUE=DATE:19960401
6377 RECURRENCE-ID;RANGE=THISANDFUTURE:19960120T120000Z
6386Desruisseaux Standards Track [Page 114]
6388RFC 5545 iCalendar September 2009
6393 Property Name: RELATED-TO
6395 Purpose: This property is used to represent a relationship or
6396 reference between one calendar component and another.
6400 Property Parameters: IANA, non-standard, and relationship type
6401 property parameters can be specified on this property.
6403 Conformance: This property can be specified in the "VEVENT",
6404 "VTODO", and "VJOURNAL" calendar components.
6406 Description: The property value consists of the persistent, globally
6407 unique identifier of another calendar component. This value would
6408 be represented in a calendar component by the "UID" property.
6410 By default, the property value points to another calendar
6411 component that has a PARENT relationship to the referencing
6412 object. The "RELTYPE" property parameter is used to either
6413 explicitly state the default PARENT relationship type to the
6414 referenced calendar component or to override the default PARENT
6415 relationship type and specify either a CHILD or SIBLING
6416 relationship. The PARENT relationship indicates that the calendar
6417 component is a subordinate of the referenced calendar component.
6418 The CHILD relationship indicates that the calendar component is a
6419 superior of the referenced calendar component. The SIBLING
6420 relationship indicates that the calendar component is a peer of
6421 the referenced calendar component.
6423 Changes to a calendar component referenced by this property can
6424 have an implicit impact on the related calendar component. For
6425 example, if a group event changes its start or end date or time,
6426 then the related, dependent events will need to have their start
6427 and end dates changed in a corresponding way. Similarly, if a
6428 PARENT calendar component is cancelled or deleted, then there is
6429 an implied impact to the related CHILD calendar components. This
6430 property is intended only to provide information on the
6431 relationship of calendar components. It is up to the target
6432 calendar system to maintain any property implications of this
6442Desruisseaux Standards Track [Page 115]
6444RFC 5545 iCalendar September 2009
6447 Format Definition: This property is defined by the following
6450 related = "RELATED-TO" relparam ":" text CRLF
6454 ; The following is OPTIONAL,
6455 ; but MUST NOT occur more than once.
6457 (";" reltypeparam) /
6459 ; The following is OPTIONAL,
6460 ; and MAY occur more than once.
6466 The following is an example of this property:
6468 RELATED-TO:jsmith.part7.19960817T083000.xyzMail@example.com
6470 RELATED-TO:19960401-080045-4000F192713-0052@example.com
64723.8.4.6. Uniform Resource Locator
6476 Purpose: This property defines a Uniform Resource Locator (URL)
6477 associated with the iCalendar object.
6481 Property Parameters: IANA and non-standard property parameters can
6482 be specified on this property.
6484 Conformance: This property can be specified once in the "VEVENT",
6485 "VTODO", "VJOURNAL", or "VFREEBUSY" calendar components.
6487 Description: This property may be used in a calendar component to
6488 convey a location where a more dynamic rendition of the calendar
6489 information associated with the calendar component can be found.
6490 This memo does not attempt to standardize the form of the URI, nor
6491 the format of the resource pointed to by the property value. If
6492 the URL property and Content-Location MIME header are both
6493 specified, they MUST point to the same resource.
6498Desruisseaux Standards Track [Page 116]
6500RFC 5545 iCalendar September 2009
6503 Format Definition: This property is defined by the following
6506 url = "URL" urlparam ":" uri CRLF
6508 urlparam = *(";" other-param)
6510 Example: The following is an example of this property:
6512 URL:http://example.com/pub/calendars/jsmith/mytime.ics
65143.8.4.7. Unique Identifier
6518 Purpose: This property defines the persistent, globally unique
6519 identifier for the calendar component.
6523 Property Parameters: IANA and non-standard property parameters can
6524 be specified on this property.
6526 Conformance: The property MUST be specified in the "VEVENT",
6527 "VTODO", "VJOURNAL", or "VFREEBUSY" calendar components.
6529 Description: The "UID" itself MUST be a globally unique identifier.
6530 The generator of the identifier MUST guarantee that the identifier
6531 is unique. There are several algorithms that can be used to
6532 accomplish this. A good method to assure uniqueness is to put the
6533 domain name or a domain literal IP address of the host on which
6534 the identifier was created on the right-hand side of an "@", and
6535 on the left-hand side, put a combination of the current calendar
6536 date and time of day (i.e., formatted in as a DATE-TIME value)
6537 along with some other currently unique (perhaps sequential)
6538 identifier available on the system (for example, a process id
6539 number). Using a DATE-TIME value on the left-hand side and a
6540 domain name or domain literal on the right-hand side makes it
6541 possible to guarantee uniqueness since no two hosts should be
6542 using the same domain name or IP address at the same time. Though
6543 other algorithms will work, it is RECOMMENDED that the right-hand
6544 side contain some domain identifier (either of the host itself or
6545 otherwise) such that the generator of the message identifier can
6546 guarantee the uniqueness of the left-hand side within the scope of
6549 This is the method for correlating scheduling messages with the
6550 referenced "VEVENT", "VTODO", or "VJOURNAL" calendar component.
6554Desruisseaux Standards Track [Page 117]
6556RFC 5545 iCalendar September 2009
6559 The full range of calendar components specified by a recurrence
6560 set is referenced by referring to just the "UID" property value
6561 corresponding to the calendar component. The "RECURRENCE-ID"
6562 property allows the reference to an individual instance within the
6565 This property is an important method for group-scheduling
6566 applications to match requests with later replies, modifications,
6567 or deletion requests. Calendaring and scheduling applications
6568 MUST generate this property in "VEVENT", "VTODO", and "VJOURNAL"
6569 calendar components to assure interoperability with other group-
6570 scheduling applications. This identifier is created by the
6571 calendar system that generates an iCalendar object.
6573 Implementations MUST be able to receive and persist values of at
6574 least 255 octets for this property, but they MUST NOT truncate
6575 values in the middle of a UTF-8 multi-octet sequence.
6577 Format Definition: This property is defined by the following
6580 uid = "UID" uidparam ":" text CRLF
6582 uidparam = *(";" other-param)
6584 Example: The following is an example of this property:
6586 UID:19960401T080045Z-4000F192713-0052@example.com
65883.8.5. Recurrence Component Properties
6590 The following properties specify recurrence information in calendar
65933.8.5.1. Exception Date-Times
6595 Property Name: EXDATE
6597 Purpose: This property defines the list of DATE-TIME exceptions for
6598 recurring events, to-dos, journal entries, or time zone
6601 Value Type: The default value type for this property is DATE-TIME.
6602 The value type can be set to DATE.
6604 Property Parameters: IANA, non-standard, value data type, and time
6605 zone identifier property parameters can be specified on this
6610Desruisseaux Standards Track [Page 118]
6612RFC 5545 iCalendar September 2009
6615 Conformance: This property can be specified in recurring "VEVENT",
6616 "VTODO", and "VJOURNAL" calendar components as well as in the
6617 "STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE"
6620 Description: The exception dates, if specified, are used in
6621 computing the recurrence set. The recurrence set is the complete
6622 set of recurrence instances for a calendar component. The
6623 recurrence set is generated by considering the initial "DTSTART"
6624 property along with the "RRULE", "RDATE", and "EXDATE" properties
6625 contained within the recurring component. The "DTSTART" property
6626 defines the first instance in the recurrence set. The "DTSTART"
6627 property value SHOULD match the pattern of the recurrence rule, if
6628 specified. The recurrence set generated with a "DTSTART" property
6629 value that doesn't match the pattern of the rule is undefined.
6630 The final recurrence set is generated by gathering all of the
6631 start DATE-TIME values generated by any of the specified "RRULE"
6632 and "RDATE" properties, and then excluding any start DATE-TIME
6633 values specified by "EXDATE" properties. This implies that start
6634 DATE-TIME values specified by "EXDATE" properties take precedence
6635 over those specified by inclusion properties (i.e., "RDATE" and
6636 "RRULE"). When duplicate instances are generated by the "RRULE"
6637 and "RDATE" properties, only one recurrence is considered.
6638 Duplicate instances are ignored.
6640 The "EXDATE" property can be used to exclude the value specified
6641 in "DTSTART". However, in such cases, the original "DTSTART" date
6642 MUST still be maintained by the calendaring and scheduling system
6643 because the original "DTSTART" value has inherent usage
6644 dependencies by other properties such as the "RECURRENCE-ID".
6646 Format Definition: This property is defined by the following
6666Desruisseaux Standards Track [Page 119]
6668RFC 5545 iCalendar September 2009
6671 exdate = "EXDATE" exdtparam ":" exdtval *("," exdtval) CRLF
6675 ; The following are OPTIONAL,
6676 ; but MUST NOT occur more than once.
6678 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
6682 ; The following is OPTIONAL,
6683 ; and MAY occur more than once.
6689 exdtval = date-time / date
6690 ;Value MUST match value type
6692 Example: The following is an example of this property:
6694 EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z
66963.8.5.2. Recurrence Date-Times
6698 Property Name: RDATE
6700 Purpose: This property defines the list of DATE-TIME values for
6701 recurring events, to-dos, journal entries, or time zone
6704 Value Type: The default value type for this property is DATE-TIME.
6705 The value type can be set to DATE or PERIOD.
6707 Property Parameters: IANA, non-standard, value data type, and time
6708 zone identifier property parameters can be specified on this
6711 Conformance: This property can be specified in recurring "VEVENT",
6712 "VTODO", and "VJOURNAL" calendar components as well as in the
6713 "STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE"
6716 Description: This property can appear along with the "RRULE"
6717 property to define an aggregate set of repeating occurrences.
6718 When they both appear in a recurring component, the recurrence
6722Desruisseaux Standards Track [Page 120]
6724RFC 5545 iCalendar September 2009
6727 instances are defined by the union of occurrences defined by both
6728 the "RDATE" and "RRULE".
6730 The recurrence dates, if specified, are used in computing the
6731 recurrence set. The recurrence set is the complete set of
6732 recurrence instances for a calendar component. The recurrence set
6733 is generated by considering the initial "DTSTART" property along
6734 with the "RRULE", "RDATE", and "EXDATE" properties contained
6735 within the recurring component. The "DTSTART" property defines
6736 the first instance in the recurrence set. The "DTSTART" property
6737 value SHOULD match the pattern of the recurrence rule, if
6738 specified. The recurrence set generated with a "DTSTART" property
6739 value that doesn't match the pattern of the rule is undefined.
6740 The final recurrence set is generated by gathering all of the
6741 start DATE-TIME values generated by any of the specified "RRULE"
6742 and "RDATE" properties, and then excluding any start DATE-TIME
6743 values specified by "EXDATE" properties. This implies that start
6744 DATE-TIME values specified by "EXDATE" properties take precedence
6745 over those specified by inclusion properties (i.e., "RDATE" and
6746 "RRULE"). Where duplicate instances are generated by the "RRULE"
6747 and "RDATE" properties, only one recurrence is considered.
6748 Duplicate instances are ignored.
6750 Format Definition: This property is defined by the following
6753 rdate = "RDATE" rdtparam ":" rdtval *("," rdtval) CRLF
6757 ; The following are OPTIONAL,
6758 ; but MUST NOT occur more than once.
6760 (";" "VALUE" "=" ("DATE-TIME" / "DATE" / "PERIOD")) /
6763 ; The following is OPTIONAL,
6764 ; and MAY occur more than once.
6770 rdtval = date-time / date / period
6771 ;Value MUST match value type
6778Desruisseaux Standards Track [Page 121]
6780RFC 5545 iCalendar September 2009
6783 Example: The following are examples of this property:
6785 RDATE:19970714T123000Z
6786 RDATE;TZID=America/New_York:19970714T083000
6788 RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z,
6789 19960404T010000Z/PT3H
6791 RDATE;VALUE=DATE:19970101,19970120,19970217,19970421
6792 19970526,19970704,19970901,19971014,19971128,19971129,19971225
67943.8.5.3. Recurrence Rule
6796 Property Name: RRULE
6798 Purpose: This property defines a rule or repeating pattern for
6799 recurring events, to-dos, journal entries, or time zone
6804 Property Parameters: IANA and non-standard property parameters can
6805 be specified on this property.
6807 Conformance: This property can be specified in recurring "VEVENT",
6808 "VTODO", and "VJOURNAL" calendar components as well as in the
6809 "STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE"
6810 calendar component, but it SHOULD NOT be specified more than once.
6811 The recurrence set generated with multiple "RRULE" properties is
6814 Description: The recurrence rule, if specified, is used in computing
6815 the recurrence set. The recurrence set is the complete set of
6816 recurrence instances for a calendar component. The recurrence set
6817 is generated by considering the initial "DTSTART" property along
6818 with the "RRULE", "RDATE", and "EXDATE" properties contained
6819 within the recurring component. The "DTSTART" property defines
6820 the first instance in the recurrence set. The "DTSTART" property
6821 value SHOULD be synchronized with the recurrence rule, if
6822 specified. The recurrence set generated with a "DTSTART" property
6823 value not synchronized with the recurrence rule is undefined. The
6824 final recurrence set is generated by gathering all of the start
6825 DATE-TIME values generated by any of the specified "RRULE" and
6826 "RDATE" properties, and then excluding any start DATE-TIME values
6827 specified by "EXDATE" properties. This implies that start DATE-
6828 TIME values specified by "EXDATE" properties take precedence over
6829 those specified by inclusion properties (i.e., "RDATE" and
6830 "RRULE"). Where duplicate instances are generated by the "RRULE"
6834Desruisseaux Standards Track [Page 122]
6836RFC 5545 iCalendar September 2009
6839 and "RDATE" properties, only one recurrence is considered.
6840 Duplicate instances are ignored.
6842 The "DTSTART" property specified within the iCalendar object
6843 defines the first instance of the recurrence. In most cases, a
6844 "DTSTART" property of DATE-TIME value type used with a recurrence
6845 rule, should be specified as a date with local time and time zone
6846 reference to make sure all the recurrence instances start at the
6847 same local time regardless of time zone changes.
6849 If the duration of the recurring component is specified with the
6850 "DTEND" or "DUE" property, then the same exact duration will apply
6851 to all the members of the generated recurrence set. Else, if the
6852 duration of the recurring component is specified with the
6853 "DURATION" property, then the same nominal duration will apply to
6854 all the members of the generated recurrence set and the exact
6855 duration of each recurrence instance will depend on its specific
6856 start time. For example, recurrence instances of a nominal
6857 duration of one day will have an exact duration of more or less
6858 than 24 hours on a day where a time zone shift occurs. The
6859 duration of a specific recurrence may be modified in an exception
6860 component or simply by using an "RDATE" property of PERIOD value
6863 Format Definition: This property is defined by the following
6866 rrule = "RRULE" rrulparam ":" recur CRLF
6868 rrulparam = *(";" other-param)
6870 Example: All examples assume the Eastern United States time zone.
6872 Daily for 10 occurrences:
6874 DTSTART;TZID=America/New_York:19970902T090000
6875 RRULE:FREQ=DAILY;COUNT=10
6877 ==> (1997 9:00 AM EDT) September 2-11
6879 Daily until December 24, 1997:
6881 DTSTART;TZID=America/New_York:19970902T090000
6882 RRULE:FREQ=DAILY;UNTIL=19971224T000000Z
6884 ==> (1997 9:00 AM EDT) September 2-30;October 1-25
6885 (1997 9:00 AM EST) October 26-31;November 1-30;December 1-23
6890Desruisseaux Standards Track [Page 123]
6892RFC 5545 iCalendar September 2009
6895 Every other day - forever:
6897 DTSTART;TZID=America/New_York:19970902T090000
6898 RRULE:FREQ=DAILY;INTERVAL=2
6900 ==> (1997 9:00 AM EDT) September 2,4,6,8...24,26,28,30;
6901 October 2,4,6...20,22,24
6902 (1997 9:00 AM EST) October 26,28,30;
6903 November 1,3,5,7...25,27,29;
6906 Every 10 days, 5 occurrences:
6908 DTSTART;TZID=America/New_York:19970902T090000
6909 RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5
6911 ==> (1997 9:00 AM EDT) September 2,12,22;
6914 Every day in January, for 3 years:
6916 DTSTART;TZID=America/New_York:19980101T090000
6918 RRULE:FREQ=YEARLY;UNTIL=20000131T140000Z;
6919 BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA
6921 RRULE:FREQ=DAILY;UNTIL=20000131T140000Z;BYMONTH=1
6923 ==> (1998 9:00 AM EST)January 1-31
6924 (1999 9:00 AM EST)January 1-31
6925 (2000 9:00 AM EST)January 1-31
6927 Weekly for 10 occurrences:
6929 DTSTART;TZID=America/New_York:19970902T090000
6930 RRULE:FREQ=WEEKLY;COUNT=10
6932 ==> (1997 9:00 AM EDT) September 2,9,16,23,30;October 7,14,21
6933 (1997 9:00 AM EST) October 28;November 4
6946Desruisseaux Standards Track [Page 124]
6948RFC 5545 iCalendar September 2009
6951 Weekly until December 24, 1997:
6953 DTSTART;TZID=America/New_York:19970902T090000
6954 RRULE:FREQ=WEEKLY;UNTIL=19971224T000000Z
6956 ==> (1997 9:00 AM EDT) September 2,9,16,23,30;
6958 (1997 9:00 AM EST) October 28;
6959 November 4,11,18,25;
6962 Every other week - forever:
6964 DTSTART;TZID=America/New_York:19970902T090000
6965 RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=SU
6967 ==> (1997 9:00 AM EDT) September 2,16,30;
6969 (1997 9:00 AM EST) October 28;
6972 (1998 9:00 AM EST) January 6,20;
6976 Weekly on Tuesday and Thursday for five weeks:
6978 DTSTART;TZID=America/New_York:19970902T090000
6979 RRULE:FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH
6983 RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH
6985 ==> (1997 9:00 AM EDT) September 2,4,9,11,16,18,23,25,30;
6988 Every other week on Monday, Wednesday, and Friday until December
6989 24, 1997, starting on Monday, September 1, 1997:
6991 DTSTART;TZID=America/New_York:19970901T090000
6992 RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;
6995 ==> (1997 9:00 AM EDT) September 1,3,5,15,17,19,29;
6996 October 1,3,13,15,17
6997 (1997 9:00 AM EST) October 27,29,31;
6998 November 10,12,14,24,26,28;
7002Desruisseaux Standards Track [Page 125]
7004RFC 5545 iCalendar September 2009
7009 Every other week on Tuesday and Thursday, for 8 occurrences:
7011 DTSTART;TZID=America/New_York:19970902T090000
7012 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH
7014 ==> (1997 9:00 AM EDT) September 2,4,16,18,30;
7017 Monthly on the first Friday for 10 occurrences:
7019 DTSTART;TZID=America/New_York:19970905T090000
7020 RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR
7022 ==> (1997 9:00 AM EDT) September 5;October 3
7023 (1997 9:00 AM EST) November 7;December 5
7024 (1998 9:00 AM EST) January 2;February 6;March 6;April 3
7025 (1998 9:00 AM EDT) May 1;June 5
7027 Monthly on the first Friday until December 24, 1997:
7029 DTSTART;TZID=America/New_York:19970905T090000
7030 RRULE:FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR
7032 ==> (1997 9:00 AM EDT) September 5; October 3
7033 (1997 9:00 AM EST) November 7; December 5
7035 Every other month on the first and last Sunday of the month for 10
7038 DTSTART;TZID=America/New_York:19970907T090000
7039 RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU
7041 ==> (1997 9:00 AM EDT) September 7,28
7042 (1997 9:00 AM EST) November 2,30
7043 (1998 9:00 AM EST) January 4,25;March 1,29
7044 (1998 9:00 AM EDT) May 3,31
7046 Monthly on the second-to-last Monday of the month for 6 months:
7048 DTSTART;TZID=America/New_York:19970922T090000
7049 RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO
7051 ==> (1997 9:00 AM EDT) September 22;October 20
7052 (1997 9:00 AM EST) November 17;December 22
7053 (1998 9:00 AM EST) January 19;February 16
7058Desruisseaux Standards Track [Page 126]
7060RFC 5545 iCalendar September 2009
7063 Monthly on the third-to-the-last day of the month, forever:
7065 DTSTART;TZID=America/New_York:19970928T090000
7066 RRULE:FREQ=MONTHLY;BYMONTHDAY=-3
7068 ==> (1997 9:00 AM EDT) September 28
7069 (1997 9:00 AM EST) October 29;November 28;December 29
7070 (1998 9:00 AM EST) January 29;February 26
7073 Monthly on the 2nd and 15th of the month for 10 occurrences:
7075 DTSTART;TZID=America/New_York:19970902T090000
7076 RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15
7078 ==> (1997 9:00 AM EDT) September 2,15;October 2,15
7079 (1997 9:00 AM EST) November 2,15;December 2,15
7080 (1998 9:00 AM EST) January 2,15
7082 Monthly on the first and last day of the month for 10 occurrences:
7084 DTSTART;TZID=America/New_York:19970930T090000
7085 RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1
7087 ==> (1997 9:00 AM EDT) September 30;October 1
7088 (1997 9:00 AM EST) October 31;November 1,30;December 1,31
7089 (1998 9:00 AM EST) January 1,31;February 1
7091 Every 18 months on the 10th thru 15th of the month for 10
7094 DTSTART;TZID=America/New_York:19970910T090000
7095 RRULE:FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,
7098 ==> (1997 9:00 AM EDT) September 10,11,12,13,14,15
7099 (1999 9:00 AM EST) March 10,11,12,13
7101 Every Tuesday, every other month:
7103 DTSTART;TZID=America/New_York:19970902T090000
7104 RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU
7106 ==> (1997 9:00 AM EDT) September 2,9,16,23,30
7107 (1997 9:00 AM EST) November 4,11,18,25
7108 (1998 9:00 AM EST) January 6,13,20,27;March 3,10,17,24,31
7114Desruisseaux Standards Track [Page 127]
7116RFC 5545 iCalendar September 2009
7119 Yearly in June and July for 10 occurrences:
7121 DTSTART;TZID=America/New_York:19970610T090000
7122 RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7
7124 ==> (1997 9:00 AM EDT) June 10;July 10
7125 (1998 9:00 AM EDT) June 10;July 10
7126 (1999 9:00 AM EDT) June 10;July 10
7127 (2000 9:00 AM EDT) June 10;July 10
7128 (2001 9:00 AM EDT) June 10;July 10
7130 Note: Since none of the BYDAY, BYMONTHDAY, or BYYEARDAY
7131 components are specified, the day is gotten from "DTSTART".
7133 Every other year on January, February, and March for 10
7136 DTSTART;TZID=America/New_York:19970310T090000
7137 RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3
7139 ==> (1997 9:00 AM EST) March 10
7140 (1999 9:00 AM EST) January 10;February 10;March 10
7141 (2001 9:00 AM EST) January 10;February 10;March 10
7142 (2003 9:00 AM EST) January 10;February 10;March 10
7144 Every third year on the 1st, 100th, and 200th day for 10
7147 DTSTART;TZID=America/New_York:19970101T090000
7148 RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200
7150 ==> (1997 9:00 AM EST) January 1
7151 (1997 9:00 AM EDT) April 10;July 19
7152 (2000 9:00 AM EST) January 1
7153 (2000 9:00 AM EDT) April 9;July 18
7154 (2003 9:00 AM EST) January 1
7155 (2003 9:00 AM EDT) April 10;July 19
7156 (2006 9:00 AM EST) January 1
7158 Every 20th Monday of the year, forever:
7160 DTSTART;TZID=America/New_York:19970519T090000
7161 RRULE:FREQ=YEARLY;BYDAY=20MO
7163 ==> (1997 9:00 AM EDT) May 19
7164 (1998 9:00 AM EDT) May 18
7165 (1999 9:00 AM EDT) May 17
7170Desruisseaux Standards Track [Page 128]
7172RFC 5545 iCalendar September 2009
7175 Monday of week number 20 (where the default start of the week is
7178 DTSTART;TZID=America/New_York:19970512T090000
7179 RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO
7181 ==> (1997 9:00 AM EDT) May 12
7182 (1998 9:00 AM EDT) May 11
7183 (1999 9:00 AM EDT) May 17
7186 Every Thursday in March, forever:
7188 DTSTART;TZID=America/New_York:19970313T090000
7189 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH
7191 ==> (1997 9:00 AM EST) March 13,20,27
7192 (1998 9:00 AM EST) March 5,12,19,26
7193 (1999 9:00 AM EST) March 4,11,18,25
7196 Every Thursday, but only during June, July, and August, forever:
7198 DTSTART;TZID=America/New_York:19970605T090000
7199 RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8
7201 ==> (1997 9:00 AM EDT) June 5,12,19,26;July 3,10,17,24,31;
7203 (1998 9:00 AM EDT) June 4,11,18,25;July 2,9,16,23,30;
7205 (1999 9:00 AM EDT) June 3,10,17,24;July 1,8,15,22,29;
7209 Every Friday the 13th, forever:
7211 DTSTART;TZID=America/New_York:19970902T090000
7212 EXDATE;TZID=America/New_York:19970902T090000
7213 RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13
7215 ==> (1998 9:00 AM EST) February 13;March 13;November 13
7216 (1999 9:00 AM EDT) August 13
7217 (2000 9:00 AM EDT) October 13
7226Desruisseaux Standards Track [Page 129]
7228RFC 5545 iCalendar September 2009
7231 The first Saturday that follows the first Sunday of the month,
7234 DTSTART;TZID=America/New_York:19970913T090000
7235 RRULE:FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13
7237 ==> (1997 9:00 AM EDT) September 13;October 11
7238 (1997 9:00 AM EST) November 8;December 13
7239 (1998 9:00 AM EST) January 10;February 7;March 7
7240 (1998 9:00 AM EDT) April 11;May 9;June 13...
7243 Every 4 years, the first Tuesday after a Monday in November,
7244 forever (U.S. Presidential Election day):
7246 DTSTART;TZID=America/New_York:19961105T090000
7247 RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;
7248 BYMONTHDAY=2,3,4,5,6,7,8
7250 ==> (1996 9:00 AM EST) November 5
7251 (2000 9:00 AM EST) November 7
7252 (2004 9:00 AM EST) November 2
7255 The third instance into the month of one of Tuesday, Wednesday, or
7256 Thursday, for the next 3 months:
7258 DTSTART;TZID=America/New_York:19970904T090000
7259 RRULE:FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3
7261 ==> (1997 9:00 AM EDT) September 4;October 7
7262 (1997 9:00 AM EST) November 6
7264 The second-to-last weekday of the month:
7266 DTSTART;TZID=America/New_York:19970929T090000
7267 RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2
7269 ==> (1997 9:00 AM EDT) September 29
7270 (1997 9:00 AM EST) October 30;November 27;December 30
7271 (1998 9:00 AM EST) January 29;February 26;March 30
7282Desruisseaux Standards Track [Page 130]
7284RFC 5545 iCalendar September 2009
7287 Every 3 hours from 9:00 AM to 5:00 PM on a specific day:
7289 DTSTART;TZID=America/New_York:19970902T090000
7290 RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z
7292 ==> (September 2, 1997 EDT) 09:00,12:00,15:00
7294 Every 15 minutes for 6 occurrences:
7296 DTSTART;TZID=America/New_York:19970902T090000
7297 RRULE:FREQ=MINUTELY;INTERVAL=15;COUNT=6
7299 ==> (September 2, 1997 EDT) 09:00,09:15,09:30,09:45,10:00,10:15
7301 Every hour and a half for 4 occurrences:
7303 DTSTART;TZID=America/New_York:19970902T090000
7304 RRULE:FREQ=MINUTELY;INTERVAL=90;COUNT=4
7306 ==> (September 2, 1997 EDT) 09:00,10:30;12:00;13:30
7308 Every 20 minutes from 9:00 AM to 4:40 PM every day:
7310 DTSTART;TZID=America/New_York:19970902T090000
7311 RRULE:FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40
7313 RRULE:FREQ=MINUTELY;INTERVAL=20;BYHOUR=9,10,11,12,13,14,15,16
7315 ==> (September 2, 1997 EDT) 9:00,9:20,9:40,10:00,10:20,
7316 ... 16:00,16:20,16:40
7317 (September 3, 1997 EDT) 9:00,9:20,9:40,10:00,10:20,
7318 ...16:00,16:20,16:40
7321 An example where the days generated makes a difference because of
7324 DTSTART;TZID=America/New_York:19970805T090000
7325 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO
7327 ==> (1997 EDT) August 5,10,19,24
7329 changing only WKST from MO to SU, yields different results...
7331 DTSTART;TZID=America/New_York:19970805T090000
7332 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU
7334 ==> (1997 EDT) August 5,17,19,31
7338Desruisseaux Standards Track [Page 131]
7340RFC 5545 iCalendar September 2009
7343 An example where an invalid date (i.e., February 30) is ignored.
7345 DTSTART;TZID=America/New_York:20070115T090000
7346 RRULE:FREQ=MONTHLY;BYMONTHDAY=15,30;COUNT=5
7348 ==> (2007 EST) January 15,30
7349 (2007 EST) February 15
7350 (2007 EDT) March 15,30
73523.8.6. Alarm Component Properties
7354 The following properties specify alarm information in calendar
7359 Property Name: ACTION
7361 Purpose: This property defines the action to be invoked when an
7366 Property Parameters: IANA and non-standard property parameters can
7367 be specified on this property.
7369 Conformance: This property MUST be specified once in a "VALARM"
7372 Description: Each "VALARM" calendar component has a particular type
7373 of action with which it is associated. This property specifies
7374 the type of action. Applications MUST ignore alarms with x-name
7375 and iana-token values they don't recognize.
7377 Format Definition: This property is defined by the following
7380 action = "ACTION" actionparam ":" actionvalue CRLF
7382 actionparam = *(";" other-param)
7385 actionvalue = "AUDIO" / "DISPLAY" / "EMAIL"
7386 / iana-token / x-name
7388 Example: The following are examples of this property in a "VALARM"
7394Desruisseaux Standards Track [Page 132]
7396RFC 5545 iCalendar September 2009
74033.8.6.2. Repeat Count
7405 Property Name: REPEAT
7407 Purpose: This property defines the number of times the alarm should
7408 be repeated, after the initial trigger.
7412 Property Parameters: IANA and non-standard property parameters can
7413 be specified on this property.
7415 Conformance: This property can be specified in a "VALARM" calendar
7418 Description: This property defines the number of times an alarm
7419 should be repeated after its initial trigger. If the alarm
7420 triggers more than once, then this property MUST be specified
7421 along with the "DURATION" property.
7423 Format Definition: This property is defined by the following
7426 repeat = "REPEAT" repparam ":" integer CRLF
7427 ;Default is "0", zero.
7429 repparam = *(";" other-param)
7431 Example: The following is an example of this property for an alarm
7432 that repeats 4 additional times with a 5-minute delay after the
7433 initial triggering of the alarm:
7440 Property Name: TRIGGER
7442 Purpose: This property specifies when an alarm will trigger.
7444 Value Type: The default value type is DURATION. The value type can
7445 be set to a DATE-TIME value type, in which case the value MUST
7446 specify a UTC-formatted DATE-TIME value.
7450Desruisseaux Standards Track [Page 133]
7452RFC 5545 iCalendar September 2009
7455 Property Parameters: IANA, non-standard, value data type, time zone
7456 identifier, or trigger relationship property parameters can be
7457 specified on this property. The trigger relationship property
7458 parameter MUST only be specified when the value type is
7461 Conformance: This property MUST be specified in the "VALARM"
7464 Description: This property defines when an alarm will trigger. The
7465 default value type is DURATION, specifying a relative time for the
7466 trigger of the alarm. The default duration is relative to the
7467 start of an event or to-do with which the alarm is associated.
7468 The duration can be explicitly set to trigger from either the end
7469 or the start of the associated event or to-do with the "RELATED"
7470 parameter. A value of START will set the alarm to trigger off the
7471 start of the associated event or to-do. A value of END will set
7472 the alarm to trigger off the end of the associated event or to-do.
7474 Either a positive or negative duration may be specified for the
7475 "TRIGGER" property. An alarm with a positive duration is
7476 triggered after the associated start or end of the event or to-do.
7477 An alarm with a negative duration is triggered before the
7478 associated start or end of the event or to-do.
7480 The "RELATED" property parameter is not valid if the value type of
7481 the property is set to DATE-TIME (i.e., for an absolute date and
7482 time alarm trigger). If a value type of DATE-TIME is specified,
7483 then the property value MUST be specified in the UTC time format.
7484 If an absolute trigger is specified on an alarm for a recurring
7485 event or to-do, then the alarm will only trigger for the specified
7486 absolute DATE-TIME, along with any specified repeating instances.
7488 If the trigger is set relative to START, then the "DTSTART"
7489 property MUST be present in the associated "VEVENT" or "VTODO"
7490 calendar component. If an alarm is specified for an event with
7491 the trigger set relative to the END, then the "DTEND" property or
7492 the "DTSTART" and "DURATION " properties MUST be present in the
7493 associated "VEVENT" calendar component. If the alarm is specified
7494 for a to-do with a trigger set relative to the END, then either
7495 the "DUE" property or the "DTSTART" and "DURATION " properties
7496 MUST be present in the associated "VTODO" calendar component.
7498 Alarms specified in an event or to-do that is defined in terms of
7499 a DATE value type will be triggered relative to 00:00:00 of the
7500 user's configured time zone on the specified date, or relative to
7501 00:00:00 UTC on the specified date if no configured time zone can
7502 be found for the user. For example, if "DTSTART" is a DATE value
7506Desruisseaux Standards Track [Page 134]
7508RFC 5545 iCalendar September 2009
7511 set to 19980205 then the duration trigger will be relative to
7512 19980205T000000 America/New_York for a user configured with the
7513 America/New_York time zone.
7515 Format Definition: This property is defined by the following
7518 trigger = "TRIGGER" (trigrel / trigabs) CRLF
7522 ; The following are OPTIONAL,
7523 ; but MUST NOT occur more than once.
7525 (";" "VALUE" "=" "DURATION") /
7526 (";" trigrelparam) /
7528 ; The following is OPTIONAL,
7529 ; and MAY occur more than once.
7537 ; The following is REQUIRED,
7538 ; but MUST NOT occur more than once.
7540 (";" "VALUE" "=" "DATE-TIME") /
7542 ; The following is OPTIONAL,
7543 ; and MAY occur more than once.
7549 Example: A trigger set 15 minutes prior to the start of the event or
7554 A trigger set five minutes after the end of an event or the due
7557 TRIGGER;RELATED=END:PT5M
7562Desruisseaux Standards Track [Page 135]
7564RFC 5545 iCalendar September 2009
7567 A trigger set to an absolute DATE-TIME.
7569 TRIGGER;VALUE=DATE-TIME:19980101T050000Z
75713.8.7. Change Management Component Properties
7573 The following properties specify change management information in
7574 calendar components.
75763.8.7.1. Date-Time Created
7578 Property Name: CREATED
7580 Purpose: This property specifies the date and time that the calendar
7581 information was created by the calendar user agent in the calendar
7584 Note: This is analogous to the creation date and time for a
7585 file in the file system.
7587 Value Type: DATE-TIME
7589 Property Parameters: IANA and non-standard property parameters can
7590 be specified on this property.
7592 Conformance: The property can be specified once in "VEVENT",
7593 "VTODO", or "VJOURNAL" calendar components. The value MUST be
7594 specified as a date with UTC time.
7596 Description: This property specifies the date and time that the
7597 calendar information was created by the calendar user agent in the
7600 Format Definition: This property is defined by the following
7603 created = "CREATED" creaparam ":" date-time CRLF
7605 creaparam = *(";" other-param)
7607 Example: The following is an example of this property:
7609 CREATED:19960329T133000Z
7618Desruisseaux Standards Track [Page 136]
7620RFC 5545 iCalendar September 2009
76233.8.7.2. Date-Time Stamp
7625 Property Name: DTSTAMP
7627 Purpose: In the case of an iCalendar object that specifies a
7628 "METHOD" property, this property specifies the date and time that
7629 the instance of the iCalendar object was created. In the case of
7630 an iCalendar object that doesn't specify a "METHOD" property, this
7631 property specifies the date and time that the information
7632 associated with the calendar component was last revised in the
7635 Value Type: DATE-TIME
7637 Property Parameters: IANA and non-standard property parameters can
7638 be specified on this property.
7640 Conformance: This property MUST be included in the "VEVENT",
7641 "VTODO", "VJOURNAL", or "VFREEBUSY" calendar components.
7643 Description: The value MUST be specified in the UTC time format.
7645 This property is also useful to protocols such as [2447bis] that
7646 have inherent latency issues with the delivery of content. This
7647 property will assist in the proper sequencing of messages
7648 containing iCalendar objects.
7650 In the case of an iCalendar object that specifies a "METHOD"
7651 property, this property differs from the "CREATED" and "LAST-
7652 MODIFIED" properties. These two properties are used to specify
7653 when the particular calendar data in the calendar store was
7654 created and last modified. This is different than when the
7655 iCalendar object representation of the calendar service
7656 information was created or last modified.
7658 In the case of an iCalendar object that doesn't specify a "METHOD"
7659 property, this property is equivalent to the "LAST-MODIFIED"
7662 Format Definition: This property is defined by the following
7665 dtstamp = "DTSTAMP" stmparam ":" date-time CRLF
7667 stmparam = *(";" other-param)
7674Desruisseaux Standards Track [Page 137]
7676RFC 5545 iCalendar September 2009
7681 DTSTAMP:19971210T080000Z
76833.8.7.3. Last Modified
7685 Property Name: LAST-MODIFIED
7687 Purpose: This property specifies the date and time that the
7688 information associated with the calendar component was last
7689 revised in the calendar store.
7691 Note: This is analogous to the modification date and time for a
7692 file in the file system.
7694 Value Type: DATE-TIME
7696 Property Parameters: IANA and non-standard property parameters can
7697 be specified on this property.
7699 Conformance: This property can be specified in the "VEVENT",
7700 "VTODO", "VJOURNAL", or "VTIMEZONE" calendar components.
7702 Description: The property value MUST be specified in the UTC time
7705 Format Definition: This property is defined by the following
7708 last-mod = "LAST-MODIFIED" lstparam ":" date-time CRLF
7710 lstparam = *(";" other-param)
7712 Example: The following is an example of this property:
7714 LAST-MODIFIED:19960817T133000Z
77163.8.7.4. Sequence Number
7718 Property Name: SEQUENCE
7720 Purpose: This property defines the revision sequence number of the
7721 calendar component within a sequence of revisions.
7725 Property Parameters: IANA and non-standard property parameters can
7726 be specified on this property.
7730Desruisseaux Standards Track [Page 138]
7732RFC 5545 iCalendar September 2009
7735 Conformance: The property can be specified in "VEVENT", "VTODO", or
7736 "VJOURNAL" calendar component.
7738 Description: When a calendar component is created, its sequence
7739 number is 0. It is monotonically incremented by the "Organizer's"
7740 CUA each time the "Organizer" makes a significant revision to the
7743 The "Organizer" includes this property in an iCalendar object that
7744 it sends to an "Attendee" to specify the current version of the
7747 The "Attendee" includes this property in an iCalendar object that
7748 it sends to the "Organizer" to specify the version of the calendar
7749 component to which the "Attendee" is referring.
7751 A change to the sequence number is not the mechanism that an
7752 "Organizer" uses to request a response from the "Attendees". The
7753 "RSVP" parameter on the "ATTENDEE" property is used by the
7754 "Organizer" to indicate that a response from the "Attendees" is
7757 Recurrence instances of a recurring component MAY have different
7760 Format Definition: This property is defined by the following
7763 seq = "SEQUENCE" seqparam ":" integer CRLF
7766 seqparam = *(";" other-param)
7768 Example: The following is an example of this property for a calendar
7769 component that was just created by the "Organizer":
7773 The following is an example of this property for a calendar
7774 component that has been revised two different times by the
77793.8.8. Miscellaneous Component Properties
7781 The following properties specify information about a number of
7782 miscellaneous features of calendar components.
7786Desruisseaux Standards Track [Page 139]
7788RFC 5545 iCalendar September 2009
77913.8.8.1. IANA Properties
7793 Property Name: An IANA-registered property name
7795 Value Type: The default value type is TEXT. The value type can be
7796 set to any value type.
7798 Property Parameters: Any parameter can be specified on this
7801 Description: This specification allows other properties registered
7802 with IANA to be specified in any calendar components. Compliant
7803 applications are expected to be able to parse these other IANA-
7804 registered properties but can ignore them.
7806 Format Definition: This property is defined by the following
7809 iana-prop = iana-token *(";" icalparameter) ":" value CRLF
7811 Example: The following are examples of properties that might be
7816 NON-SMOKING;VALUE=BOOLEAN:TRUE
78183.8.8.2. Non-Standard Properties
7820 Property Name: Any property name with a "X-" prefix
7822 Purpose: This class of property provides a framework for defining
7823 non-standard properties.
7825 Value Type: The default value type is TEXT. The value type can be
7826 set to any value type.
7828 Property Parameters: IANA, non-standard, and language property
7829 parameters can be specified on this property.
7831 Conformance: This property can be specified in any calendar
7834 Description: The MIME Calendaring and Scheduling Content Type
7835 provides a "standard mechanism for doing non-standard things".
7836 This extension support is provided for implementers to "push the
7837 envelope" on the existing version of the memo. Extension
7838 properties are specified by property and/or property parameter
7842Desruisseaux Standards Track [Page 140]
7844RFC 5545 iCalendar September 2009
7847 names that have the prefix text of "X-" (the two-character
7848 sequence: LATIN CAPITAL LETTER X character followed by the HYPHEN-
7849 MINUS character). It is recommended that vendors concatenate onto
7850 this sentinel another short prefix text to identify the vendor.
7851 This will facilitate readability of the extensions and minimize
7852 possible collision of names between different vendors. User
7853 agents that support this content type are expected to be able to
7854 parse the extension properties and property parameters but can
7857 At present, there is no registration authority for names of
7858 extension properties and property parameters. The value type for
7859 this property is TEXT. Optionally, the value type can be any of
7860 the other valid value types.
7862 Format Definition: This property is defined by the following
7865 x-prop = x-name *(";" icalparameter) ":" value CRLF
7867 Example: The following might be the ABC vendor's extension for an
7868 audio-clip form of subject property:
7870 X-ABC-MMSUBJ;VALUE=URI;FMTTYPE=audio/basic:http://www.example.
78733.8.8.3. Request Status
7875 Property Name: REQUEST-STATUS
7877 Purpose: This property defines the status code returned for a
7882 Property Parameters: IANA, non-standard, and language property
7883 parameters can be specified on this property.
7885 Conformance: The property can be specified in the "VEVENT", "VTODO",
7886 "VJOURNAL", or "VFREEBUSY" calendar component.
7888 Description: This property is used to return status code information
7889 related to the processing of an associated iCalendar object. The
7890 value type for this property is TEXT.
7898Desruisseaux Standards Track [Page 141]
7900RFC 5545 iCalendar September 2009
7903 The value consists of a short return status component, a longer
7904 return status description component, and optionally a status-
7905 specific data component. The components of the value are
7906 separated by the SEMICOLON character.
7908 The short return status is a PERIOD character separated pair or
7909 3-tuple of integers. For example, "3.1" or "3.1.1". The
7910 successive levels of integers provide for a successive level of
7911 status code granularity.
7913 The following are initial classes for the return status code.
7914 Individual iCalendar object methods will define specific return
7915 status codes for these classes. In addition, other classes for
7916 the return status code may be defined using the registration
7917 process defined later in this memo.
7919 +--------+----------------------------------------------------------+
7920 | Short | Longer Return Status Description |
7924 +--------+----------------------------------------------------------+
7925 | 1.xx | Preliminary success. This class of status code |
7926 | | indicates that the request has been initially processed |
7927 | | but that completion is pending. |
7929 | 2.xx | Successful. This class of status code indicates that |
7930 | | the request was completed successfully. However, the |
7931 | | exact status code can indicate that a fallback has been |
7934 | 3.xx | Client Error. This class of status code indicates that |
7935 | | the request was not successful. The error is the result |
7936 | | of either a syntax or a semantic error in the client- |
7937 | | formatted request. Request should not be retried until |
7938 | | the condition in the request is corrected. |
7940 | 4.xx | Scheduling Error. This class of status code indicates |
7941 | | that the request was not successful. Some sort of error |
7942 | | occurred within the calendaring and scheduling service, |
7943 | | not directly related to the request itself. |
7944 +--------+----------------------------------------------------------+
7954Desruisseaux Standards Track [Page 142]
7956RFC 5545 iCalendar September 2009
7959 Format Definition: This property is defined by the following
7962 rstatus = "REQUEST-STATUS" rstatparam ":"
7963 statcode ";" statdesc [";" extdata]
7967 ; The following is OPTIONAL,
7968 ; but MUST NOT occur more than once.
7970 (";" languageparam) /
7972 ; The following is OPTIONAL,
7973 ; and MAY occur more than once.
7979 statcode = 1*DIGIT 1*2("." 1*DIGIT)
7980 ;Hierarchical, numeric return status code
7983 ;Textual status description
7986 ;Textual exception data. For example, the offending property
7987 ;name and value or complete property line.
7989 Example: The following are some possible examples of this property.
7991 The COMMA and SEMICOLON separator characters in the property value
7992 are BACKSLASH character escaped because they appear in a text
7995 REQUEST-STATUS:2.0;Success
7997 REQUEST-STATUS:3.1;Invalid property value;DTSTART:96-Apr-01
7999 REQUEST-STATUS:2.8; Success\, repeating event ignored. Scheduled
8000 as a single event.;RRULE:FREQ=WEEKLY\;INTERVAL=2
8002 REQUEST-STATUS:4.1;Event conflict. Date-time is busy.
8004 REQUEST-STATUS:3.7;Invalid calendar user;ATTENDEE:
8005 mailto:jsmith@example.com
8010Desruisseaux Standards Track [Page 143]
8012RFC 5545 iCalendar September 2009
80154. iCalendar Object Examples
8017 The following examples are provided as an informational source of
8018 illustrative iCalendar objects consistent with this content type.
8020 The following example specifies a three-day conference that begins at
8021 2:30 P.M. UTC, September 18, 1996 and ends at 10:00 P.M. UTC,
8025 PRODID:-//xyz Corp//NONSGML PDA Calendar Version 1.0//EN
8028 DTSTAMP:19960704T120000Z
8029 UID:uid1@example.com
8030 ORGANIZER:mailto:jsmith@example.com
8031 DTSTART:19960918T143000Z
8032 DTEND:19960920T220000Z
8034 CATEGORIES:CONFERENCE
8035 SUMMARY:Networld+Interop Conference
8036 DESCRIPTION:Networld+Interop Conference
8037 and Exhibit\nAtlanta World Congress Center\n
8042 The following example specifies a group-scheduled meeting that begins
8043 at 8:30 AM EST on March 12, 1998 and ends at 9:30 AM EST on March 12,
8044 1998. The "Organizer" has scheduled the meeting with one or more
8045 calendar users in a group. A time zone specification for Eastern
8046 United States has been specified.
8049 PRODID:-//RDU Software//NONSGML HandCal//EN
8052 TZID:America/New_York
8054 DTSTART:19981025T020000
8060 DTSTART:19990404T020000
8066Desruisseaux Standards Track [Page 144]
8068RFC 5545 iCalendar September 2009
8075 DTSTAMP:19980309T231000Z
8076 UID:guid-1.example.com
8077 ORGANIZER:mailto:mrbig@example.com
8078 ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP:
8079 mailto:employee-A@example.com
8080 DESCRIPTION:Project XYZ Review Meeting
8083 CREATED:19980309T130000Z
8084 SUMMARY:XYZ Project Review
8085 DTSTART;TZID=America/New_York:19980312T083000
8086 DTEND;TZID=America/New_York:19980312T093000
8087 LOCATION:1CP Conference Room 4350
8091 The following is an example of an iCalendar object passed in a MIME
8092 message with a single body part consisting of a "text/calendar"
8095 TO:jsmith@example.com
8096 FROM:jdoe@example.com
8098 MESSAGE-ID:<id3@example.com>
8099 CONTENT-TYPE:text/calendar; method="xyz"; component="VEVENT"
8104 PRODID:-//ABC Corporation//NONSGML My Product//EN
8106 DTSTAMP:19970324T120000Z
8108 UID:uid3@example.com
8109 ORGANIZER:mailto:jdoe@example.com
8110 ATTENDEE;RSVP=TRUE:mailto:jsmith@example.com
8111 DTSTART:19970324T123000Z
8112 DTEND:19970324T210000Z
8113 CATEGORIES:MEETING,PROJECT
8115 SUMMARY:Calendaring Interoperability Planning Meeting
8116 DESCRIPTION:Discuss how we can test c&s interoperability\n
8117 using iCalendar and other IETF standards.
8122Desruisseaux Standards Track [Page 145]
8124RFC 5545 iCalendar September 2009
8127 ATTACH;FMTTYPE=application/postscript:ftp://example.com/pub/
8132 The following is an example of a to-do due on April 15, 1998. An
8133 audio alarm has been specified to remind the calendar user at noon,
8134 the day before the to-do is expected to be completed and repeat
8135 hourly, four additional times. The to-do definition has been
8136 modified twice since it was initially created.
8140 PRODID:-//ABC Corporation//NONSGML My Product//EN
8142 DTSTAMP:19980130T134500Z
8144 UID:uid4@example.com
8145 ORGANIZER:mailto:unclesam@example.com
8146 ATTENDEE;PARTSTAT=ACCEPTED:mailto:jqpublic@example.com
8149 SUMMARY:Submit Income Taxes
8152 TRIGGER:19980403T120000Z
8153 ATTACH;FMTTYPE=audio/basic:http://example.com/pub/audio-
8161 The following is an example of a journal entry:
8165 PRODID:-//ABC Corporation//NONSGML My Product//EN
8167 DTSTAMP:19970324T120000Z
8168 UID:uid5@example.com
8169 ORGANIZER:mailto:jsmith@example.com
8172 CATEGORIES:Project Report,XYZ,Weekly Meeting
8173 DESCRIPTION:Project xyz Review Meeting Minutes\n
8174 Agenda\n1. Review of project version 1.0 requirements.\n2.
8178Desruisseaux Standards Track [Page 146]
8180RFC 5545 iCalendar September 2009
8184 of project processes.\n3. Review of project schedule.\n
8185 Participants: John Smith\, Jane Doe\, Jim Dandy\n-It was
8186 decided that the requirements need to be signed off by
8187 product marketing.\n-Project processes were accepted.\n
8188 -Project schedule needs to account for scheduled holidays
8189 and employee vacation time. Check with HR for specific
8190 dates.\n-New schedule will be distributed by Friday.\n-
8191 Next weeks meeting is cancelled. No meeting until 3/23.
8195 The following is an example of published busy time information. The
8196 iCalendar object might be placed in the network resource
8197 http://www.example.com/calendar/busytime/jsmith.ifb.
8201 PRODID:-//RDU Software//NONSGML HandCal//EN
8203 ORGANIZER:mailto:jsmith@example.com
8204 DTSTART:19980313T141711Z
8205 DTEND:19980410T141711Z
8206 FREEBUSY:19980314T233000Z/19980315T003000Z
8207 FREEBUSY:19980316T153000Z/19980316T163000Z
8208 FREEBUSY:19980318T030000Z/19980318T040000Z
8209 URL:http://www.example.com/calendar/busytime/jsmith.ifb
82135. Recommended Practices
8215 These recommended practices should be followed in order to assure
8216 consistent handling of the following cases for an iCalendar object.
8218 1. Content lines longer than 75 octets SHOULD be folded.
8220 2. When the combination of the "RRULE" and "RDATE" properties in a
8221 recurring component produces multiple instances having the same
8222 start DATE-TIME value, they should be collapsed to, and
8223 considered as, a single instance. If the "RDATE" property is
8224 specified as a PERIOD value the duration of the recurrence
8225 instance will be the one specified by the "RDATE" property, and
8226 not the duration of the recurrence instance defined by the
8229 3. When a calendar user receives multiple requests for the same
8230 calendar component (e.g., REQUEST for a "VEVENT" calendar
8234Desruisseaux Standards Track [Page 147]
8236RFC 5545 iCalendar September 2009
8239 component) as a result of being on multiple mailing lists
8240 specified by "ATTENDEE" properties in the request, they SHOULD
8241 respond to only one of the requests. The calendar user SHOULD
8242 also specify (using the "MEMBER" parameter of the "ATTENDEE"
8243 property) of which mailing list they are a member.
8245 4. An implementation can truncate a "SUMMARY" property value to 255
8246 octets, but it MUST NOT truncate the value in the middle of a
8247 UTF-8 multi-octet sequence.
8249 5. If seconds of the minute are not supported by an implementation,
8250 then a value of "00" SHOULD be specified for the seconds
8251 component in a time value.
8253 6. "TZURL" values SHOULD NOT be specified as a file URI type. This
8254 URI form can be useful within an organization, but is problematic
8257 7. Some possible English values for "CATEGORIES" property include:
8258 "ANNIVERSARY", "APPOINTMENT", "BUSINESS", "EDUCATION", "HOLIDAY",
8259 "MEETING", "MISCELLANEOUS", "NON-WORKING HOURS", "NOT IN OFFICE",
8260 "PERSONAL", "PHONE CALL", "SICK DAY", "SPECIAL OCCASION",
8261 "TRAVEL", "VACATION". Categories can be specified in any
8262 registered language.
8264 8. Some possible English values for the "RESOURCES" property
8265 include: "CATERING", "CHAIRS", "COMPUTER PROJECTOR", "EASEL",
8266 "OVERHEAD PROJECTOR", "SPEAKER PHONE", "TABLE", "TV", "VCR",
8267 "VIDEO PHONE", "VEHICLE". Resources can be specified in any
8268 registered language.
82706. Internationalization Considerations
8272 Applications MUST generate iCalendar streams in the UTF-8 charset and
8273 MUST accept an iCalendar stream in the UTF-8 or US-ASCII charset.
82757. Security Considerations
8277 Because calendaring and scheduling information is very privacy-
8278 sensitive, the protocol used for the transmission of calendaring and
8279 scheduling information should have capabilities to protect the
8280 information from possible threats, such as eavesdropping, replay,
8281 message insertion, deletion, modification, and man-in-the-middle
8284 As this document only defines the data format and media type of text/
8285 calendar that is independent of any calendar service or protocol, it
8286 is up to the actual protocol specifications such as iTIP [2446bis],
8290Desruisseaux Standards Track [Page 148]
8292RFC 5545 iCalendar September 2009
8295 iMIP [2447bis], and "Calendaring Extensions to WebDAV (CalDAV)"
8296 [RFC4791] to describe the threats that the above attacks present, as
8297 well as ways in which to mitigate them.
82998. IANA Considerations
83018.1. iCalendar Media Type Registration
8303 The Calendaring and Scheduling Core Object Specification is intended
8304 for use as a MIME content type.
8306 To: ietf-types@iana.org
8308 Subject: Registration of media type text/calendar
8312 Subtype name: calendar
8314 Required parameters: none
8316 Optional parameters: charset, method, component, and optinfo
8318 The "charset" parameter is defined in [RFC2046] for subtypes of
8319 the "text" media type. It is used to indicate the charset used in
8320 the body part. The charset supported by this revision of
8321 iCalendar is UTF-8. The use of any other charset is deprecated by
8322 this revision of iCalendar; however, note that this revision
8323 requires that compliant applications MUST accept iCalendar streams
8324 using either the UTF-8 or US-ASCII charset.
8326 The "method" parameter is used to convey the iCalendar object
8327 method or transaction semantics for the calendaring and scheduling
8328 information. It also is an identifier for the restricted set of
8329 properties and values of which the iCalendar object consists. The
8330 parameter is to be used as a guide for applications interpreting
8331 the information contained within the body part. It SHOULD NOT be
8332 used to exclude or require particular pieces of information unless
8333 the identified method definition specifically calls for this
8334 behavior. Unless specifically forbidden by a particular method
8335 definition, a text/calendar content type can contain any set of
8336 properties permitted by the Calendaring and Scheduling Core Object
8337 Specification. The "method" parameter MUST be specified and MUST
8338 be set to the same value as the "METHOD" component property of the
8339 iCalendar objects of the iCalendar stream if and only if the
8340 iCalendar objects in the iCalendar stream all have a "METHOD"
8341 component property set to the same value.
8346Desruisseaux Standards Track [Page 149]
8348RFC 5545 iCalendar September 2009
8351 The value for the "method" parameter is defined as follows:
8353 method = 1*(ALPHA / DIGIT / "-")
8354 ; IANA-registered iCalendar object method
8356 The "component" parameter conveys the type of iCalendar calendar
8357 component within the body part. If the iCalendar object contains
8358 more than one calendar component type, then multiple component
8359 parameters MUST be specified.
8361 The value for the "component" parameter is defined as follows:
8363 component = "VEVENT"
8371 The "optinfo" parameter conveys optional information about the
8372 iCalendar object within the body part. This parameter can only
8373 specify semantics already specified by the iCalendar object and
8374 that can be otherwise determined by parsing the body part. In
8375 addition, the optional information specified by this parameter
8376 MUST be consistent with that information specified by the
8377 iCalendar object. For example, it can be used to convey the
8378 "Attendee" response status to a meeting request. The parameter
8379 value consists of a string value.
8381 The parameter can be specified multiple times.
8383 The value for the "optinfo" parameter is defined as follows:
8385 optinfo = infovalue / qinfovalue
8387 infovalue = iana-token / x-name
8389 qinfovalue = DQUOTE (infovalue) DQUOTE
8391 Encoding considerations: This media type can contain 8bit
8392 characters, so the use of quoted-printable or base64 MIME Content-
8393 Transfer-Encodings might be necessary when iCalendar objects are
8394 transferred across protocols restricted to the 7bit repertoire.
8395 Note that a text valued property in the content entity can also
8396 have content encoding of special characters using a BACKSLASH
8397 character escapement technique. This means that content values
8398 can end up being encoded twice.
8402Desruisseaux Standards Track [Page 150]
8404RFC 5545 iCalendar September 2009
8407 Security considerations: See Section 7.
8409 Interoperability considerations: This media type is intended to
8410 define a common format for conveying calendaring and scheduling
8411 information between different systems. It is heavily based on the
8412 earlier [VCAL] industry specification.
8414 Published specification: This specification.
8416 Applications that use this media type: This media type is designed
8417 for widespread use by Internet calendaring and scheduling
8418 applications. In addition, applications in the workflow and
8419 document management area might find this content-type applicable.
8420 The iTIP [2446bis], iMIP [2447bis], and CalDAV [RFC4791] Internet
8421 protocols directly use this media type also.
8423 Additional information:
8425 Magic number(s): None.
8427 File extension(s): The file extension of "ics" is to be used to
8428 designate a file containing (an arbitrary set of) calendaring
8429 and scheduling information consistent with this MIME content
8432 The file extension of "ifb" is to be used to designate a file
8433 containing free or busy time information consistent with this
8436 Macintosh file type code(s): The file type code of "iCal" is to
8437 be used in Apple MacIntosh operating system environments to
8438 designate a file containing calendaring and scheduling
8439 information consistent with this MIME media type.
8441 The file type code of "iFBf" is to be used in Apple MacIntosh
8442 operating system environments to designate a file containing
8443 free or busy time information consistent with this MIME media
8446 Person & email address to contact for further information: See the
8447 "Author's Address" section of this document.
8449 Intended usage: COMMON
8451 Restrictions on usage: There are no restrictions on where this media
8454 Author: See the "Author's Address" section of this document.
8458Desruisseaux Standards Track [Page 151]
8460RFC 5545 iCalendar September 2009
8463 Change controller: IETF
84658.2. New iCalendar Elements Registration
8467 This section defines the process to register new or modified
8468 iCalendar elements, that is, components, properties, parameters,
8469 value data types, and values, with IANA.
84718.2.1. iCalendar Elements Registration Procedure
8473 The IETF will create a mailing list, icalendar@ietf.org, which can be
8474 used for public discussion of iCalendar elements proposals prior to
8475 registration. Use of the mailing list is strongly encouraged. The
8476 IESG will appoint a designated expert who will monitor the
8477 icalendar@ietf.org mailing list and review registrations.
8479 Registration of new iCalendar elements MUST be reviewed by the
8480 designated expert and published in an RFC. A Standards Track RFC is
8481 REQUIRED for the registration of new value data types that modify
8482 existing properties, as well as for the registration of participation
8483 status values to be used in "VEVENT" calendar components. A
8484 Standards Track RFC is also REQUIRED for registration of iCalendar
8485 elements that modify iCalendar elements previously documented in a
8486 Standards Track RFC.
8488 The registration procedure begins when a completed registration
8489 template, defined in the sections below, is sent to
8490 icalendar@ietf.org and iana@iana.org. The designated expert is
8491 expected to tell IANA and the submitter of the registration within
8492 two weeks whether the registration is approved, approved with minor
8493 changes, or rejected with cause. When a registration is rejected
8494 with cause, it can be re-submitted if the concerns listed in the
8495 cause are addressed. Decisions made by the designated expert can be
8496 appealed to the IESG Applications Area Director, then to the IESG.
8497 They follow the normal appeals procedure for IESG decisions.
84998.2.2. Registration Template for Components
8501 A component is defined by completing the following template.
8503 Component name: The name of the component.
8505 Purpose: The purpose of the component. Give a short but clear
8508 Format definition: The ABNF for the component definition needs to be
8514Desruisseaux Standards Track [Page 152]
8516RFC 5545 iCalendar September 2009
8519 Description: Any special notes about the component, how it is to be
8522 Example(s): One or more examples of instances of the component need
85258.2.3. Registration Template for Properties
8527 A property is defined by completing the following template.
8529 Property name: The name of the property.
8531 Purpose: The purpose of the property. Give a short but clear
8534 Value type: Any of the valid value types for the property value need
8535 to be specified. The default value type also needs to be
8538 Property parameters: Any of the valid property parameters for the
8539 property MUST be specified.
8541 Conformance: The calendar components in which the property can
8542 appear MUST be specified.
8544 Description: Any special notes about the property, how it is to be
8547 Format definition: The ABNF for the property definition needs to be
8550 Example(s): One or more examples of instances of the property need
85538.2.4. Registration Template for Parameters
8555 A parameter is defined by completing the following template.
8557 Parameter name: The name of the parameter.
8559 Purpose: The purpose of the parameter. Give a short but clear
8562 Format definition: The ABNF for the parameter definition needs to be
8565 Description: Any special notes about the parameter, how it is to be
8570Desruisseaux Standards Track [Page 153]
8572RFC 5545 iCalendar September 2009
8575 Example(s): One or more examples of instances of the parameter need
85788.2.5. Registration Template for Value Data Types
8580 A value data type is defined by completing the following template.
8582 Value name: The name of the value type.
8584 Purpose: The purpose of the value type. Give a short but clear
8587 Format definition: The ABNF for the value type definition needs to
8590 Description: Any special notes about the value type, how it is to be
8593 Example(s): One or more examples of instances of the value type need
85968.2.6. Registration Template for Values
8598 A value is defined by completing the following template.
8600 Value: The value literal.
8602 Purpose: The purpose of the value. Give a short but clear
8605 Conformance: The calendar properties and/or parameters that can take
8606 this value need to be specified.
8608 Example(s): One or more examples of instances of the value need to
8611 The following is a fictitious example of a registration of an
8616 Purpose: This value is used to specify the access classification of
8617 top-secret calendar components.
8619 Conformance: This value can be used with the "CLASS" property.
8626Desruisseaux Standards Track [Page 154]
8628RFC 5545 iCalendar September 2009
8631 Example(s): The following is an example of this value used with the
86368.3. Initial iCalendar Elements Registries
8638 The IANA created and maintains the following registries for iCalendar
8639 elements with pointers to appropriate reference documents.
86418.3.1. Components Registry
8643 The following table has been used to initialize the components
8646 +-----------+---------+-------------------------+
8647 | Component | Status | Reference |
8648 +-----------+---------+-------------------------+
8649 | VCALENDAR | Current | RFC 5545, Section 3.4 |
8651 | VEVENT | Current | RFC 5545, Section 3.6.1 |
8653 | VTODO | Current | RFC 5545, Section 3.6.2 |
8655 | VJOURNAL | Current | RFC 5545, Section 3.6.3 |
8657 | VFREEBUSY | Current | RFC 5545, Section 3.6.4 |
8659 | VTIMEZONE | Current | RFC 5545, Section 3.6.5 |
8661 | VALARM | Current | RFC 5545, Section 3.6.6 |
8663 | STANDARD | Current | RFC 5545, Section 3.6.5 |
8665 | DAYLIGHT | Current | RFC 5545, Section 3.6.5 |
8666 +-----------+---------+-------------------------+
8682Desruisseaux Standards Track [Page 155]
8684RFC 5545 iCalendar September 2009
86878.3.2. Properties Registry
8689 The following table is has been used to initialize the properties
8692 +------------------+------------+----------------------------+
8693 | Property | Status | Reference |
8694 +------------------+------------+----------------------------+
8695 | CALSCALE | Current | RFC 5545, Section 3.7.1 |
8696 | METHOD | Current | RFC 5545, Section 3.7.2 |
8698 | PRODID | Current | RFC 5545, Section 3.7.3 |
8700 | VERSION | Current | RFC 5545, Section 3.7.4 |
8702 | ATTACH | Current | RFC 5545, Section 3.8.1.1 |
8704 | CATEGORIES | Current | RFC 5545, Section 3.8.1.2 |
8706 | CLASS | Current | RFC 5545, Section 3.8.1.3 |
8708 | COMMENT | Current | RFC 5545, Section 3.8.1.4 |
8710 | DESCRIPTION | Current | RFC 5545, Section 3.8.1.5 |
8712 | GEO | Current | RFC 5545, Section 3.8.1.6 |
8714 | LOCATION | Current | RFC 5545, Section 3.8.1.7 |
8716 | PERCENT-COMPLETE | Current | RFC 5545, Section 3.8.1.8 |
8718 | PRIORITY | Current | RFC 5545, Section 3.8.1.9 |
8720 | RESOURCES | Current | RFC 5545, Section 3.8.1.10 |
8722 | STATUS | Current | RFC 5545, Section 3.8.1.11 |
8724 | SUMMARY | Current | RFC 5545, Section 3.8.1.12 |
8726 | COMPLETED | Current | RFC 5545, Section 3.8.2.1 |
8728 | DTEND | Current | RFC 5545, Section 3.8.2.2 |
8730 | DUE | Current | RFC 5545, Section 3.8.2.3 |
8732 | DTSTART | Current | RFC 5545, Section 3.8.2.4 |
8734 | DURATION | Current | RFC 5545, Section 3.8.2.5 |
8738Desruisseaux Standards Track [Page 156]
8740RFC 5545 iCalendar September 2009
8744 | FREEBUSY | Current | RFC 5545, Section 3.8.2.6 |
8746 | TRANSP | Current | RFC 5545, Section 3.8.2.7 |
8748 | TZID | Current | RFC 5545, Section 3.8.3.1 |
8750 | TZNAME | Current | RFC 5545, Section 3.8.3.2 |
8752 | TZOFFSETFROM | Current | RFC 5545, Section 3.8.3.3 |
8754 | TZOFFSETTO | Current | RFC 5545, Section 3.8.3.4 |
8756 | TZURL | Current | RFC 5545, Section 3.8.3.5 |
8758 | ATTENDEE | Current | RFC 5545, Section 3.8.4.1 |
8760 | CONTACT | Current | RFC 5545, Section 3.8.4.2 |
8762 | ORGANIZER | Current | RFC 5545, Section 3.8.4.3 |
8764 | RECURRENCE-ID | Current | RFC 5545, Section 3.8.4.4 |
8766 | RELATED-TO | Current | RFC 5545, Section 3.8.4.5 |
8768 | URL | Current | RFC 5545, Section 3.8.4.6 |
8770 | UID | Current | RFC 5545, Section 3.8.4.7 |
8772 | EXDATE | Current | RFC 5545, Section 3.8.5.1 |
8774 | EXRULE | Deprecated | [RFC2445], Section 4.8.5.2 |
8776 | RDATE | Current | RFC 5545, Section 3.8.5.2 |
8778 | RRULE | Current | RFC 5545, Section 3.8.5.3 |
8780 | ACTION | Current | RFC 5545, Section 3.8.6.1 |
8782 | REPEAT | Current | RFC 5545, Section 3.8.6.2 |
8784 | TRIGGER | Current | RFC 5545, Section 3.8.6.3 |
8786 | CREATED | Current | RFC 5545, Section 3.8.7.1 |
8788 | DTSTAMP | Current | RFC 5545, Section 3.8.7.2 |
8790 | LAST-MODIFIED | Current | RFC 5545, Section 3.8.7.3 |
8794Desruisseaux Standards Track [Page 157]
8796RFC 5545 iCalendar September 2009
8800 | SEQUENCE | Current | RFC 5545, Section 3.8.7.4 |
8802 | REQUEST-STATUS | Current | RFC 5545, Section 3.8.8.3 |
8803 +------------------+------------+----------------------------+
88058.3.3. Parameters Registry
8807 The following table has been used to initialize the parameters
8810 +----------------+---------+--------------------------+
8811 | Parameter | Status | Reference |
8812 +----------------+---------+--------------------------+
8813 | ALTREP | Current | RFC 5545, Section 3.2.1 |
8815 | CN | Current | RFC 5545, Section 3.2.2 |
8817 | CUTYPE | Current | RFC 5545, Section 3.2.3 |
8819 | DELEGATED-FROM | Current | RFC 5545, Section 3.2.4 |
8821 | DELEGATED-TO | Current | RFC 5545, Section 3.2.5 |
8823 | DIR | Current | RFC 5545, Section 3.2.6 |
8825 | ENCODING | Current | RFC 5545, Section 3.2.7 |
8827 | FMTTYPE | Current | RFC 5545, Section 3.2.8 |
8829 | FBTYPE | Current | RFC 5545, Section 3.2.9 |
8831 | LANGUAGE | Current | RFC 5545, Section 3.2.10 |
8833 | MEMBER | Current | RFC 5545, Section 3.2.11 |
8835 | PARTSTAT | Current | RFC 5545, Section 3.2.12 |
8837 | RANGE | Current | RFC 5545, Section 3.2.13 |
8839 | RELATED | Current | RFC 5545, Section 3.2.14 |
8841 | RELTYPE | Current | RFC 5545, Section 3.2.15 |
8843 | ROLE | Current | RFC 5545, Section 3.2.16 |
8845 | RSVP | Current | RFC 5545, Section 3.2.17 |
8850Desruisseaux Standards Track [Page 158]
8852RFC 5545 iCalendar September 2009
8855 | SENT-BY | Current | RFC 5545, Section 3.2.18 |
8857 | TZID | Current | RFC 5545, Section 3.2.19 |
8859 | VALUE | Current | RFC 5545, Section 3.2.20 |
8860 +----------------+---------+--------------------------+
88628.3.4. Value Data Types Registry
8864 The following table has been used to initialize the value data types
8867 +-----------------+---------+--------------------------+
8868 | Value Data Type | Status | Reference |
8869 +-----------------+---------+--------------------------+
8870 | BINARY | Current | RFC 5545, Section 3.3.1 |
8872 | BOOLEAN | Current | RFC 5545, Section 3.3.2 |
8874 | CAL-ADDRESS | Current | RFC 5545, Section 3.3.3 |
8876 | DATE | Current | RFC 5545, Section 3.3.4 |
8878 | DATE-TIME | Current | RFC 5545, Section 3.3.5 |
8880 | DURATION | Current | RFC 5545, Section 3.3.6 |
8882 | FLOAT | Current | RFC 5545, Section 3.3.7 |
8884 | INTEGER | Current | RFC 5545, Section 3.3.8 |
8886 | PERIOD | Current | RFC 5545, Section 3.3.9 |
8888 | RECUR | Current | RFC 5545, Section 3.3.10 |
8890 | TEXT | Current | RFC 5545, Section 3.3.11 |
8892 | TIME | Current | RFC 5545, Section 3.3.12 |
8894 | URI | Current | RFC 5545, Section 3.3.13 |
8896 | UTC-OFFSET | Current | RFC 5545, Section 3.3.14 |
8897 +-----------------+---------+--------------------------+
8906Desruisseaux Standards Track [Page 159]
8908RFC 5545 iCalendar September 2009
89118.3.5. Calendar User Types Registry
8913 The following table has been used to initialize the calendar user
8916 +--------------------+---------+-------------------------+
8917 | Calendar User Type | Status | Reference |
8918 +--------------------+---------+-------------------------+
8919 | INDIVIDUAL | Current | RFC 5545, Section 3.2.3 |
8921 | GROUP | Current | RFC 5545, Section 3.2.3 |
8923 | RESOURCE | Current | RFC 5545, Section 3.2.3 |
8925 | ROOM | Current | RFC 5545, Section 3.2.3 |
8927 | UNKNOWN | Current | RFC 5545, Section 3.2.3 |
8928 +--------------------+---------+-------------------------+
89308.3.6. Free/Busy Time Types Registry
8932 The following table has been used to initialize the free/busy time
8935 +---------------------+---------+-------------------------+
8936 | Free/Busy Time Type | Status | Reference |
8937 +---------------------+---------+-------------------------+
8938 | FREE | Current | RFC 5545, Section 3.2.9 |
8940 | BUSY | Current | RFC 5545, Section 3.2.9 |
8942 | BUSY-UNAVAILABLE | Current | RFC 5545, Section 3.2.9 |
8944 | BUSY-TENTATIVE | Current | RFC 5545, Section 3.2.9 |
8945 +---------------------+---------+-------------------------+
8962Desruisseaux Standards Track [Page 160]
8964RFC 5545 iCalendar September 2009
89678.3.7. Participation Statuses Registry
8969 The following table has been used to initialize the participation
8972 +--------------------+---------+--------------------------+
8973 | Participant Status | Status | Reference |
8974 +--------------------+---------+--------------------------+
8975 | NEEDS-ACTION | Current | RFC 5545, Section 3.2.12 |
8977 | ACCEPTED | Current | RFC 5545, Section 3.2.12 |
8979 | DECLINED | Current | RFC 5545, Section 3.2.12 |
8981 | TENTATIVE | Current | RFC 5545, Section 3.2.12 |
8983 | DELEGATED | Current | RFC 5545, Section 3.2.12 |
8985 | COMPLETED | Current | RFC 5545, Section 3.2.12 |
8987 | IN-PROCESS | Current | RFC 5545, Section 3.2.12 |
8988 +--------------------+---------+--------------------------+
89908.3.8. Relationship Types Registry
8992 The following table has been used to initialize the relationship
8995 +-------------------+---------+--------------------------+
8996 | Relationship Type | Status | Reference |
8997 +-------------------+---------+--------------------------+
8998 | CHILD | Current | RFC 5545, Section 3.2.15 |
9000 | PARENT | Current | RFC 5545, Section 3.2.15 |
9002 | SIBLING | Current | RFC 5545, Section 3.2.15 |
9003 +-------------------+---------+--------------------------+
9018Desruisseaux Standards Track [Page 161]
9020RFC 5545 iCalendar September 2009
90238.3.9. Participation Roles Registry
9025 The following table has been used to initialize the participation
9028 +-----------------+---------+--------------------------+
9029 | Role Type | Status | Reference |
9030 +-----------------+---------+--------------------------+
9031 | CHAIR | Current | RFC 5545, Section 3.2.16 |
9033 | REQ-PARTICIPANT | Current | RFC 5545, Section 3.2.16 |
9035 | OPT-PARTICIPANT | Current | RFC 5545, Section 3.2.16 |
9037 | NON-PARTICIPANT | Current | RFC 5545, Section 3.2.16 |
9038 +-----------------+---------+--------------------------+
90408.3.10. Actions Registry
9042 The following table has been used to initialize the actions registry.
9044 +-----------+------------+----------------------------+
9045 | Action | Status | Reference |
9046 +-----------+------------+----------------------------+
9047 | AUDIO | Current | RFC 5545, Section 3.8.6.1 |
9049 | DISPLAY | Current | RFC 5545, Section 3.8.6.1 |
9051 | EMAIL | Current | RFC 5545, Section 3.8.6.1 |
9053 | PROCEDURE | Deprecated | [RFC2445], Section 4.8.6.1 |
9054 +-----------+------------+----------------------------+
90568.3.11. Classifications Registry
9058 The following table has been used to initialize the classifications
9061 +----------------+---------+---------------------------+
9062 | Classification | Status | Reference |
9063 +----------------+---------+---------------------------+
9064 | PUBLIC | Current | RFC 5545, Section 3.8.1.3 |
9066 | PRIVATE | Current | RFC 5545, Section 3.8.1.3 |
9068 | CONFIDENTIAL | Current | RFC 5545, Section 3.8.1.3 |
9069 +----------------+---------+---------------------------+
9074Desruisseaux Standards Track [Page 162]
9076RFC 5545 iCalendar September 2009
90798.3.12. Methods Registry
9081 No values are defined in this document for the "METHOD" property.
9085 The editor of this document wishes to thank Frank Dawson and Derik
9086 Stenerson, the original authors of RFC 2445, as well as the following
9087 individuals who have participated in the drafting, review, and
9088 discussion of this memo:
9090 Joe Abley, Hervey Allen, Steve Allen, Jay Batson, Oliver Block,
9091 Stephane Bortzmeyer, Chris Bryant, Tantek Celik, Mark Crispin, Cyrus
9092 Daboo, Mike Douglass, Andrew N. Dowden, Lisa Dusseault, Lars Eggert,
9093 Gren Eliot, Pasi Eronen, Ben Fortuna, Ned Freed, Neal Gafter, Ted
9094 Hardie, Tim Hare, Jeffrey Harris, Helge Hess, Paul B. Hill, Thomas
9095 Hnetila, Russ Housley, Leif Johansson, Ciny Joy, Bruce Kahn, Reinhold
9096 Kainhofer, Martin Kiff, Patrice Lapierre, Michiel van Leeuwen,
9097 Jonathan Lennox, Jeff McCullough, Bill McQuillan, Alexey Melnikov,
9098 John W. Noerenberg II, Chuck Norris, Mark Paterson, Simon Pilette,
9099 Arnaud Quillaud, Robert Ransdell, Julian F. Reschke, Caleb
9100 Richardson, Sam Roberts, Dan Romascanu, Mike Samuel, George Sexton,
9101 Nigel Swinson, Clint Talbert, Simon Vaillancourt, Magnus Westerlund,
9104 A special thanks to the working group chairs Aki Niemi and Eliot Lear
9105 for their support and guidance.
9107 The editor would also like to thank the Calendaring and Scheduling
9108 Consortium for advice with this specification, and for organizing
9109 interoperability testing events to help refine it.
9130Desruisseaux Standards Track [Page 163]
9132RFC 5545 iCalendar September 2009
913710.1. Normative References
9139 [ISO.8601.2004] International Organization for
9140 Standardization, "Data elements and
9141 interchange formats -- Information interchange
9142 -- Representation of dates and times", 2004.
9144 [ISO.9070.1991] International Organization for
9145 Standardization, "Information Technology_SGML
9146 Support Facilities -- Registration Procedures
9147 for Public Text Owner Identifiers, Second
9148 Edition", April 1991.
9150 [RFC2045] Freed, N. and N. Borenstein, "Multipurpose
9151 Internet Mail Extensions (MIME) Part One:
9152 Format of Internet Message Bodies", RFC 2045,
9155 [RFC2046] Freed, N. and N. Borenstein, "Multipurpose
9156 Internet Mail Extensions (MIME) Part Two:
9157 Media Types", RFC 2046, November 1996.
9159 [RFC2119] Bradner, S., "Key words for use in RFCs to
9160 Indicate Requirement Levels", BCP 14,
9161 RFC 2119, March 1997.
9163 [RFC2368] Hoffman, P., Masinter, L., and J. Zawinski,
9164 "The mailto URL scheme", RFC 2368, July 1998.
9166 [RFC3629] Yergeau, F., "UTF-8, a transformation format
9167 of ISO 10646", STD 63, RFC 3629,
9170 [RFC3986] Berners-Lee, T., Fielding, R., and L.
9171 Masinter, "Uniform Resource Identifier (URI):
9172 Generic Syntax", STD 66, RFC 3986,
9175 [RFC4288] Freed, N. and J. Klensin, "Media Type
9176 Specifications and Registration Procedures",
9177 BCP 13, RFC 4288, December 2005.
9179 [RFC4648] Josefsson, S., "The Base16, Base32, and Base64
9180 Data Encodings", RFC 4648, October 2006.
9186Desruisseaux Standards Track [Page 164]
9188RFC 5545 iCalendar September 2009
9191 [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for
9192 Syntax Specifications: ABNF", STD 68,
9193 RFC 5234, January 2008.
9195 [RFC5646] Phillips, A., Ed., and M. Davis, Ed., "Tags
9196 for Identifying Languages", BCP 47, RFC 5646,
9199 [US-ASCII] American National Standards Institute, "Coded
9200 Character Set - 7-bit American Standard Code
9201 for Information Interchange", ANSI X3.4, 1986.
920310.2. Informative References
9205 [2446bis] Daboo, C., "iCalendar Transport-Independent
9206 Interoperability Protocol (iTIP)", Work
9207 in Progress, April 2009.
9209 [2447bis] Melnikov, A., "iCalendar Message-Based
9210 Interoperability Protocol (iMIP)", Work
9211 in Progress, June 2008.
9213 [ANSI INCITS 61-1986] International Committee for Information
9214 Technology, "Representation of Geographic
9215 Point Locations for Information Interchange
9216 (formerly ANSI X3.61-1986 (R1997))", ANSI
9217 INCITS 61-1986 (R2007), 2007.
9219 [RFC1738] Berners-Lee, T., Masinter, L., and M.
9220 McCahill, "Uniform Resource Locators (URL)",
9221 RFC 1738, December 1994.
9223 [RFC2392] Levinson, E., "Content-ID and Message-ID
9224 Uniform Resource Locators", RFC 2392,
9227 [RFC2397] Masinter, L., "The "data" URL scheme",
9228 RFC 2397, August 1998.
9230 [RFC2425] Howes, T., Smith, M., and F. Dawson, "A MIME
9231 Content-Type for Directory Information",
9232 RFC 2425, September 1998.
9234 [RFC2426] Dawson, F. and T. Howes, "vCard MIME Directory
9235 Profile", RFC 2426, September 1998.
9242Desruisseaux Standards Track [Page 165]
9244RFC 5545 iCalendar September 2009
9247 [RFC2445] Dawson, F. and Stenerson, D., "Internet
9248 Calendaring and Scheduling Core Object
9249 Specification (iCalendar)", RFC 2445,
9252 [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk,
9253 H., Masinter, L., Leach, P., and T. Berners-
9254 Lee, "Hypertext Transfer Protocol --
9255 HTTP/1.1", RFC 2616, June 1999.
9257 [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818,
9260 [RFC4516] Smith, M. and T. Howes, "Lightweight Directory
9261 Access Protocol (LDAP): Uniform Resource
9262 Locator", RFC 4516, June 2006.
9264 [RFC4791] Daboo, C., Desruisseaux, B., and L. Dusseault,
9265 "Calendaring Extensions to WebDAV (CalDAV)",
9266 RFC 4791, March 2007.
9268 [TZDB] Eggert, P. and A.D. Olson, "Sources for Time
9269 Zone and Daylight Saving Time Data",
9271 <http://www.twinsun.com/tz/tz-link.htm>.
9273 [VCAL] Internet Mail Consortium, "vCalendar: The
9274 Electronic Calendaring and Scheduling Exchange
9275 Format", September 1996,
9276 <http://www.imc.org/pdi/vcal-10.txt>.
9298Desruisseaux Standards Track [Page 166]
9300RFC 5545 iCalendar September 2009
9303Appendix A. Differences from RFC 2445
9305 This appendix contains a list of changes that have been made in the
9306 Internet Calendaring and Scheduling Core Object Specification from
9309A.1. New Restrictions
9311 1. The "DTSTART" property SHOULD be synchronized with the recurrence
9314 2. The "RRULE" property SHOULD NOT occur more than once in a
9317 3. The BYHOUR, BYMINUTE, and BYSECOND rule parts MUST NOT be
9318 specified in the "RRULE" property when the "DTSTART" property is
9319 specified as a DATE value.
9321 4. The value type of the "DTEND" or "DUE" properties MUST match the
9322 value type of "DTSTART" property.
9324 5. The "DURATION" property can no longer appear in "VFREEBUSY"
9327A.2. Restrictions Removed
9329 1. The "DTSTART" and "DTEND" properties are no longer required to be
9330 specified as date with local time and time zone reference when
9331 used with a recurrence rule.
9333A.3. Deprecated Features
9335 1. The "EXRULE" property can no longer be specified in a component.
9337 2. The "THISANDPRIOR" value can no longer be used with the "RANGE"
9340 3. The "PROCEDURE" value can no longer be used with the "ACTION"
9343 4. The value type RECUR no longer allows multiple values to be
9344 specified by a COMMA-separated list of values.
9346 5. x-name rule parts can no longer be specified in properties of
9347 RECUR value type (e.g., "RRULE"). x-param can be used on RECUR
9348 value type properties instead.
9354Desruisseaux Standards Track [Page 167]
9356RFC 5545 iCalendar September 2009
9361 Bernard Desruisseaux (editor)
9363 600 blvd. de Maisonneuve West
9365 Montreal, QC H3A 3J2
9368 EMail: bernard.desruisseaux@oracle.com
9369 URI: http://www.oracle.com/
9410Desruisseaux Standards Track [Page 168]