1
2
3
4
5
6
7Network Working Group B. Desruisseaux, Ed.
8Request for Comments: 5545 Oracle
9Obsoletes: 2445 September 2009
10Category: Standards Track
11
12
13 Internet Calendaring and Scheduling Core Object Specification
14 (iCalendar)
15
16Abstract
17
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.
22
23Status of This Memo
24
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.
30
31Copyright and License Notice
32
33 Copyright (c) 2009 IETF Trust and the persons identified as the
34 document authors. All rights reserved.
35
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.
45
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
55
56
57
58Desruisseaux Standards Track [Page 1]
59
60RFC 5545 iCalendar September 2009
61
62
63 it for publication as an RFC or to translate it into languages other
64 than English.
65
66Table of Contents
67
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
111
112
113
114Desruisseaux Standards Track [Page 2]
115
116RFC 5545 iCalendar September 2009
117
118
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
167
168
169
170Desruisseaux Standards Track [Page 3]
171
172RFC 5545 iCalendar September 2009
173
174
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
223
224
225
226Desruisseaux Standards Track [Page 4]
227
228RFC 5545 iCalendar September 2009
229
230
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
239
2401. Introduction
241
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
253 product.
254
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.
263
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].
273
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
279
280
281
282Desruisseaux Standards Track [Page 5]
283
284RFC 5545 iCalendar September 2009
285
286
287 that could not easily be expressed with the ABNF syntax are specified
288 as comments in the ABNF. Comments with normative statements should
289 be treated as such.
290
2912. Basic Grammar and Conventions
292
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].
296
297 This memo makes use of both a descriptive prose and a more formal
298 notation for defining the calendaring and scheduling format.
299
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.
304
305 All numeric values used in this memo are given in decimal notation.
306
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
310 stated.
311
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.
317
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.
322
3232.1. Formatting Conventions
324
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
335
336
337
338Desruisseaux Standards Track [Page 6]
339
340RFC 5545 iCalendar September 2009
341
342
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
352 calendar component.
353
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
366 more.
367
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.
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394Desruisseaux Standards Track [Page 7]
395
396RFC 5545 iCalendar September 2009
397
398
399 +------------------------+-------------------+
400 | Character name | Decimal codepoint |
401 +------------------------+-------------------+
402 | HTAB | 9 |
403 | LF | 10 |
404 | CR | 13 |
405 | DQUOTE | 22 |
406 | SPACE | 32 |
407 | PLUS SIGN | 43 |
408 | COMMA | 44 |
409 | HYPHEN-MINUS | 45 |
410 | PERIOD | 46 |
411 | SOLIDUS | 47 |
412 | COLON | 58 |
413 | SEMICOLON | 59 |
414 | LATIN CAPITAL LETTER N | 78 |
415 | LATIN CAPITAL LETTER T | 84 |
416 | LATIN CAPITAL LETTER X | 88 |
417 | LATIN CAPITAL LETTER Z | 90 |
418 | BACKSLASH | 92 |
419 | LATIN SMALL LETTER N | 110 |
420 +------------------------+-------------------+
421
4222.2. Related Memos
423
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.
428
429 o iTIP [2446bis] specifies an interoperability protocol for
430 scheduling between different implementations;
431
432 o iCalendar Message-Based Interoperability Protocol (iMIP) [2447bis]
433 specifies an Internet email binding for [2446bis].
434
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.
439
4403. iCalendar Object Specification
441
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
447
448
449
450Desruisseaux Standards Track [Page 8]
451
452RFC 5545 iCalendar September 2009
453
454
455 iCalendar object consists of a sequence of calendar properties and
456 one or more calendar components.
457
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.
464
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
470 mechanisms.
471
4723.1. Content Lines
473
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).
477
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.
486
487 For example, the line:
488
489 DESCRIPTION:This is a long description that exists on a long line.
490
491 Can be represented as:
492
493 DESCRIPTION:This is a lo
494 ng description
495 that exists on a long line.
496
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.
501
502
503
504
505
506Desruisseaux Standards Track [Page 9]
507
508RFC 5545 iCalendar September 2009
509
510
511 When parsing a content line, folded lines MUST first be unfolded
512 according to the unfolding procedure described above.
513
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.
518
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.
522
523 The following notation defines the lines of content in an iCalendar
524 object:
525
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,
529 ; and value string
530
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.
536
537 name = iana-token / x-name
538
539 iana-token = 1*(ALPHA / DIGIT / "-")
540 ; iCalendar identifier registered with IANA
541
542 x-name = "X-" [vendorid "-"] 1*(ALPHA / DIGIT / "-")
543 ; Reserved for experimental use.
544
545 vendorid = 3*(ALPHA / DIGIT)
546 ; Vendor identification
547
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.
552
553 param-name = iana-token / x-name
554
555 param-value = paramtext / quoted-string
556
557 paramtext = *SAFE-CHAR
558
559
560
561
562Desruisseaux Standards Track [Page 10]
563
564RFC 5545 iCalendar September 2009
565
566
567 value = *VALUE-CHAR
568
569 quoted-string = DQUOTE *QSAFE-CHAR DQUOTE
570
571 QSAFE-CHAR = WSP / %x21 / %x23-7E / NON-US-ASCII
572 ; Any character except CONTROL and DQUOTE
573
574 SAFE-CHAR = WSP / %x21 / %x23-2B / %x2D-39 / %x3C-7E
575 / NON-US-ASCII
576 ; Any character except CONTROL, DQUOTE, ";", ":", ","
577
578 VALUE-CHAR = WSP / %x21-7E / NON-US-ASCII
579 ; Any textual character
580
581 NON-US-ASCII = UTF8-2 / UTF8-3 / UTF8-4
582 ; UTF8-2, UTF8-3, and UTF8-4 are defined in [RFC3629]
583
584 CONTROL = %x00-08 / %x0A-1F / %x7F
585 ; All the controls except HTAB
586
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.
590
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
594 stated.
595
5963.1.1. List and Field Separators
597
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
603 COMMA character.
604
605 Some property values are defined in terms of multiple parts. These
606 structured property values MUST have their value parts separated by a
607 SEMICOLON character.
608
609 Some properties allow a list of parameters. Each property parameter
610 in a list of property parameters MUST be separated by a SEMICOLON
611 character.
612
613
614
615
616
617
618Desruisseaux Standards Track [Page 11]
619
620RFC 5545 iCalendar September 2009
621
622
623 Property parameters with values containing a COLON character, a
624 SEMICOLON character or a COMMA character MUST be placed in quoted
625 text.
626
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.
630
631 ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT:mailto:
632 jsmith@example.com
633
634 RDATE;VALUE=DATE:19970304,19970504,19970704,19970904
635
6363.1.2. Multiple Values
637
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.
648
6493.1.3. Binary Content
650
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).
664
665 The following example specifies an "ATTACH" property that references
666 an attachment external to the iCalendar object with a URI reference:
667
668 ATTACH:http://example.com/public/quarterly-report.doc
669
670
671
672
673
674Desruisseaux Standards Track [Page 12]
675
676RFC 5545 iCalendar September 2009
677
678
679 The following example specifies an "ATTACH" property with inline
680 binary encoded content information:
681
682 ATTACH;FMTTYPE=text/plain;ENCODING=BASE64;VALUE=BINARY:VGhlIH
683 F1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4
684
6853.1.4. Character Set
686
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].
690
691 The "charset" Content-Type parameter MUST be used in MIME transports
692 to specify the charset being used.
693
6943.2. Property Parameters
695
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.
702
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:
708
709 DESCRIPTION;ALTREP="cid:part1.0001@example.org":The Fall'98 Wild
710 Wizards Conference - - Las Vegas\, NV\, USA
711
712 Property parameter values that are not in quoted-strings are case-
713 insensitive.
714
715 The general property parameters defined by this memo are defined by
716 the following notation:
717
718
719
720
721
722
723
724
725
726
727
728
729
730Desruisseaux Standards Track [Page 13]
731
732RFC 5545 iCalendar September 2009
733
734
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
755 / other-param
756
757 other-param = (iana-param / x-param)
758
759 iana-param = iana-token "=" param-value *("," param-value)
760 ; Some other IANA-registered iCalendar parameter.
761
762 x-param = x-name "=" param-value *("," param-value)
763 ; A non-standard, experimental parameter.
764
765 Applications MUST ignore x-param and iana-param values they don't
766 recognize.
767
7683.2.1. Alternate Text Representation
769
770 Parameter Name: ALTREP
771
772 Purpose: To specify an alternate text representation for the
773 property value.
774
775 Format Definition: This property parameter is defined by the
776 following notation:
777
778 altrepparam = "ALTREP" "=" DQUOTE uri DQUOTE
779
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
783
784
785
786Desruisseaux Standards Track [Page 14]
787
788RFC 5545 iCalendar September 2009
789
790
791 the default representation of the text value. The URI parameter
792 value MUST be specified in a quoted-string.
793
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.
798
799 Example:
800
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
804 agement
805
806 The "ALTREP" property parameter value might point to a "text/html"
807 content portion.
808
809 Content-Type:text/html
810 Content-Id:<part3.msg.970415T083000@example.com>
811
812 <html>
813 <head>
814 <title></title>
815 </head>
816 <body>
817 <p>
818 <b>Project XYZ Review Meeting</b> will include
819 the following agenda items:
820 <ol>
821 <li>Market Overview</li>
822 <li>Finances</li>
823 <li>Project Management</li>
824 </ol>
825 </p>
826 </body>
827 </html>
828
8293.2.2. Common Name
830
831 Parameter Name: CN
832
833 Purpose: To specify the common name to be associated with the
834 calendar user specified by the property.
835
836 Format Definition: This property parameter is defined by the
837 following notation:
838
839
840
841
842Desruisseaux Standards Track [Page 15]
843
844RFC 5545 iCalendar September 2009
845
846
847 cnparam = "CN" "=" param-value
848
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
854 by the property.
855
856 Example:
857
858 ORGANIZER;CN="John Smith":mailto:jsmith@example.com
859
8603.2.3. Calendar User Type
861
862 Parameter Name: CUTYPE
863
864 Purpose: To identify the type of calendar user specified by the
865 property.
866
867 Format Definition: This property parameter is defined by the
868 following notation:
869
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
878 ; type
879 ; Default is INDIVIDUAL
880
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.
887
888 Example:
889
890 ATTENDEE;CUTYPE=GROUP:mailto:ietf-calsch@example.org
891
892
893
894
895
896
897
898Desruisseaux Standards Track [Page 16]
899
900RFC 5545 iCalendar September 2009
901
902
9033.2.4. Delegators
904
905 Parameter Name: DELEGATED-FROM
906
907 Purpose: To specify the calendar users that have delegated their
908 participation to the calendar user specified by the property.
909
910 Format Definition: This property parameter is defined by the
911 following notation:
912
913 delfromparam = "DELEGATED-FROM" "=" DQUOTE cal-address
914 DQUOTE *("," DQUOTE cal-address DQUOTE)
915
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.
922
923 Example:
924
925 ATTENDEE;DELEGATED-FROM="mailto:jsmith@example.com":mailto:
926 jdoe@example.com
927
9283.2.5. Delegatees
929
930 Parameter Name: DELEGATED-TO
931
932 Purpose: To specify the calendar users to whom the calendar user
933 specified by the property has delegated participation.
934
935 Format Definition: This property parameter is defined by the
936 following notation:
937
938 deltoparam = "DELEGATED-TO" "=" DQUOTE cal-address DQUOTE
939 *("," DQUOTE cal-address DQUOTE)
940
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.
947
948
949
950
951
952
953
954Desruisseaux Standards Track [Page 17]
955
956RFC 5545 iCalendar September 2009
957
958
959 Example:
960
961 ATTENDEE;DELEGATED-TO="mailto:jdoe@example.com","mailto:jqpublic
962 @example.com":mailto:jsmith@example.com
963
9643.2.6. Directory Entry Reference
965
966 Parameter Name: DIR
967
968 Purpose: To specify reference to a directory entry associated with
969 the calendar user specified by the property.
970
971 Format Definition: This property parameter is defined by the
972 following notation:
973
974 dirparam = "DIR" "=" DQUOTE uri DQUOTE
975
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.
981
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.
987
988 Example:
989
990 ORGANIZER;DIR="ldap://example.com:6666/o=ABC%20Industries,
991 c=US???(cn=Jim%20Dolittle)":mailto:jimdo@example.com
992
9933.2.7. Inline Encoding
994
995 Parameter Name: ENCODING
996
997 Purpose: To specify an alternate inline encoding for the property
998 value.
999
1000 Format Definition: This property parameter is defined by the
1001 following notation:
1002
1003
1004
1005
1006
1007
1008
1009
1010Desruisseaux Standards Track [Page 18]
1011
1012RFC 5545 iCalendar September 2009
1013
1014
1015 encodingparam = "ENCODING" "="
1016 ( "8BIT"
1017 ; "8bit" text encoding is defined in [RFC2045]
1018 / "BASE64"
1019 ; "BASE64" binary encoding format is defined in [RFC4648]
1020 )
1021
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].
1027
1028 If the value type parameter is ";VALUE=BINARY", then the inline
1029 encoding parameter MUST be specified with the value
1030 ";ENCODING=BASE64".
1031
1032 Example:
1033
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=
1045
10463.2.8. Format Type
1047
1048 Parameter Name: FMTTYPE
1049
1050 Purpose: To specify the content type of a referenced object.
1051
1052 Format Definition: This property parameter is defined by the
1053 following notation:
1054
1055 fmttypeparam = "FMTTYPE" "=" type-name "/" subtype-name
1056 ; Where "type-name" and "subtype-name" are
1057 ; defined in Section 4.2 of [RFC4288].
1058
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,
1063
1064
1065
1066Desruisseaux Standards Track [Page 19]
1067
1068RFC 5545 iCalendar September 2009
1069
1070
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.
1074
1075 Example:
1076
1077 ATTACH;FMTTYPE=application/msword:ftp://example.com/pub/docs/
1078 agenda.doc
1079
10803.2.9. Free/Busy Time Type
1081
1082 Parameter Name: FBTYPE
1083
1084 Purpose: To specify the free or busy time type.
1085
1086 Format Definition: This property parameter is defined by the
1087 following notation:
1088
1089 fbtypeparam = "FBTYPE" "=" ("FREE" / "BUSY"
1090 / "BUSY-UNAVAILABLE" / "BUSY-TENTATIVE"
1091 / x-name
1092 ; Some experimental iCalendar free/busy type.
1093 / iana-token)
1094 ; Some other IANA-registered iCalendar free/busy type.
1095
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.
1108
1109 Example: The following is an example of this parameter on a
1110 "FREEBUSY" property.
1111
1112 FREEBUSY;FBTYPE=BUSY:19980415T133000Z/19980415T170000Z
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122Desruisseaux Standards Track [Page 20]
1123
1124RFC 5545 iCalendar September 2009
1125
1126
11273.2.10. Language
1128
1129 Parameter Name: LANGUAGE
1130
1131 Purpose: To specify the language for text values in a property or
1132 property parameter.
1133
1134 Format Definition: This property parameter is defined by the
1135 following notation:
1136
1137 languageparam = "LANGUAGE" "=" language
1138
1139 language = Language-Tag
1140 ; As defined in [RFC5646].
1141
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].
1146
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.
1150
1151 Example: The following are examples of this parameter on the
1152 "SUMMARY" and "LOCATION" properties:
1153
1154 SUMMARY;LANGUAGE=en-US:Company Holiday Party
1155
1156 LOCATION;LANGUAGE=en:Germany
1157
1158 LOCATION;LANGUAGE=no:Tyskland
1159
11603.2.11. Group or List Membership
1161
1162 Parameter Name: MEMBER
1163
1164 Purpose: To specify the group or list membership of the calendar
1165 user specified by the property.
1166
1167 Format Definition: This property parameter is defined by the
1168 following notation:
1169
1170 memberparam = "MEMBER" "=" DQUOTE cal-address DQUOTE
1171 *("," DQUOTE cal-address DQUOTE)
1172
1173
1174
1175
1176
1177
1178Desruisseaux Standards Track [Page 21]
1179
1180RFC 5545 iCalendar September 2009
1181
1182
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.
1190
1191 Example:
1192
1193 ATTENDEE;MEMBER="mailto:ietf-calsch@example.org":mailto:
1194 jsmith@example.com
1195
1196 ATTENDEE;MEMBER="mailto:projectA@example.com","mailto:pr
1197 ojectB@example.com":mailto:janedoe@example.com
1198
11993.2.12. Participation Status
1200
1201 Parameter Name: PARTSTAT
1202
1203 Purpose: To specify the participation status for the calendar user
1204 specified by the property.
1205
1206 Format Definition: This property parameter is defined by the
1207 following notation:
1208
1209 partstatparam = "PARTSTAT" "="
1210 (partstat-event
1211 / partstat-todo
1212 / partstat-jour)
1213
1214 partstat-event = ("NEEDS-ACTION" ; Event needs action
1215 / "ACCEPTED" ; Event accepted
1216 / "DECLINED" ; Event declined
1217 / "TENTATIVE" ; Event tentatively
1218 ; accepted
1219 / "DELEGATED" ; Event delegated
1220 / x-name ; Experimental status
1221 / iana-token) ; Other IANA-registered
1222 ; status
1223 ; These are the participation statuses for a "VEVENT".
1224 ; Default is NEEDS-ACTION.
1225
1226 partstat-todo = ("NEEDS-ACTION" ; To-do needs action
1227 / "ACCEPTED" ; To-do accepted
1228 / "DECLINED" ; To-do declined
1229 / "TENTATIVE" ; To-do tentatively
1230 ; accepted
1231
1232
1233
1234Desruisseaux Standards Track [Page 22]
1235
1236RFC 5545 iCalendar September 2009
1237
1238
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
1244 ; being completed
1245 / x-name ; Experimental status
1246 / iana-token) ; Other IANA-registered
1247 ; status
1248 ; These are the participation statuses for a "VTODO".
1249 ; Default is NEEDS-ACTION.
1250
1251
1252
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
1258 ; status
1259 ; These are the participation statuses for a "VJOURNAL".
1260 ; Default is NEEDS-ACTION.
1261
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.
1272
1273 Example:
1274
1275 ATTENDEE;PARTSTAT=DECLINED:mailto:jsmith@example.com
1276
12773.2.13. Recurrence Identifier Range
1278
1279 Parameter Name: RANGE
1280
1281 Purpose: To specify the effective range of recurrence instances from
1282 the instance specified by the recurrence identifier specified by
1283 the property.
1284
1285 Format Definition: This property parameter is defined by the
1286 following notation:
1287
1288
1289
1290Desruisseaux Standards Track [Page 23]
1291
1292RFC 5545 iCalendar September 2009
1293
1294
1295 rangeparam = "RANGE" "=" "THISANDFUTURE"
1296 ; To specify the instance specified by the recurrence identifier
1297 ; and all subsequent recurrence instances.
1298
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.
1310
1311 Example:
1312
1313 RECURRENCE-ID;RANGE=THISANDFUTURE:19980401T133000Z
1314
13153.2.14. Alarm Trigger Relationship
1316
1317 Parameter Name: RELATED
1318
1319 Purpose: To specify the relationship of the alarm trigger with
1320 respect to the start or end of the calendar component.
1321
1322 Format Definition: This property parameter is defined by the
1323 following notation:
1324
1325 trigrelparam = "RELATED" "="
1326 ("START" ; Trigger off of start
1327 / "END") ; Trigger off of end
1328
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.
1337
1338 Example:
1339
1340 TRIGGER;RELATED=END:PT5M
1341
1342
1343
1344
1345
1346Desruisseaux Standards Track [Page 24]
1347
1348RFC 5545 iCalendar September 2009
1349
1350
13513.2.15. Relationship Type
1352
1353 Parameter Name: RELTYPE
1354
1355 Purpose: To specify the type of hierarchical relationship associated
1356 with the calendar component specified by the property.
1357
1358 Format Definition: This property parameter is defined by the
1359 following notation:
1360
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
1368 ; relationship type
1369
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.
1382
1383 Example:
1384
1385 RELATED-TO;RELTYPE=SIBLING:19960401-080045-4000F192713@
1386 example.com
1387
13883.2.16. Participation Role
1389
1390 Parameter Name: ROLE
1391
1392 Purpose: To specify the participation role for the calendar user
1393 specified by the property.
1394
1395 Format Definition: This property parameter is defined by the
1396 following notation:
1397
1398
1399
1400
1401
1402Desruisseaux Standards Track [Page 25]
1403
1404RFC 5545 iCalendar September 2009
1405
1406
1407 roleparam = "ROLE" "="
1408 ("CHAIR" ; Indicates chair of the
1409 ; calendar entity
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
1416 ; purposes only
1417 / x-name ; Experimental role
1418 / iana-token) ; Other IANA role
1419 ; Default is REQ-PARTICIPANT
1420
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.
1428
1429 Example:
1430
1431 ATTENDEE;ROLE=CHAIR:mailto:mrbig@example.com
1432
14333.2.17. RSVP Expectation
1434
1435 Parameter Name: RSVP
1436
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.
1439
1440 Format Definition: This property parameter is defined by the
1441 following notation:
1442
1443 rsvpparam = "RSVP" "=" ("TRUE" / "FALSE")
1444 ; Default is FALSE
1445
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.
1453
1454
1455
1456
1457
1458Desruisseaux Standards Track [Page 26]
1459
1460RFC 5545 iCalendar September 2009
1461
1462
1463 Example:
1464
1465 ATTENDEE;RSVP=TRUE:mailto:jsmith@example.com
1466
14673.2.18. Sent By
1468
1469 Parameter Name: SENT-BY
1470
1471 Purpose: To specify the calendar user that is acting on behalf of
1472 the calendar user specified by the property.
1473
1474 Format Definition: This property parameter is defined by the
1475 following notation:
1476
1477 sentbyparam = "SENT-BY" "=" DQUOTE cal-address DQUOTE
1478
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.
1485
1486 Example:
1487
1488 ORGANIZER;SENT-BY="mailto:sray@example.com":mailto:
1489 jsmith@example.com
1490
14913.2.19. Time Zone Identifier
1492
1493 Parameter Name: TZID
1494
1495 Purpose: To specify the identifier for the time zone definition for
1496 a time component in the property value.
1497
1498 Format Definition: This property parameter is defined by the
1499 following notation:
1500
1501 tzidparam = "TZID" "=" [tzidprefix] paramtext
1502
1503 tzidprefix = "/"
1504
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
1511
1512
1513
1514Desruisseaux Standards Track [Page 27]
1515
1516RFC 5545 iCalendar September 2009
1517
1518
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
1525 object.
1526
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.
1532
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).
1536
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.
1543
1544 The following are examples of this property parameter:
1545
1546 DTSTART;TZID=America/New_York:19980119T020000
1547
1548 DTEND;TZID=America/New_York:19980119T030000
1549
1550 The "TZID" property parameter MUST NOT be applied to DATE
1551 properties and DATE-TIME or TIME properties whose time values are
1552 specified in UTC.
1553
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.
1558
1559 For more information, see the sections on the value types DATE-
1560 TIME and TIME.
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570Desruisseaux Standards Track [Page 28]
1571
1572RFC 5545 iCalendar September 2009
1573
1574
15753.2.20. Value Data Types
1576
1577 Parameter Name: VALUE
1578
1579 Purpose: To explicitly specify the value type format for a property
1580 value.
1581
1582 Format Definition: This property parameter is defined by the
1583 following notation:
1584
1585 valuetypeparam = "VALUE" "=" valuetype
1586
1587 valuetype = ("BINARY"
1588 / "BOOLEAN"
1589 / "CAL-ADDRESS"
1590 / "DATE"
1591 / "DATE-TIME"
1592 / "DURATION"
1593 / "FLOAT"
1594 / "INTEGER"
1595 / "PERIOD"
1596 / "RECUR"
1597 / "TEXT"
1598 / "TIME"
1599 / "URI"
1600 / "UTC-OFFSET"
1601 / x-name
1602 ; Some experimental iCalendar value type.
1603 / iana-token)
1604 ; Some other IANA-registered iCalendar value type.
1605
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.
1610
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.
1615
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.
1619
1620
1621
1622
1623
1624
1625
1626Desruisseaux Standards Track [Page 29]
1627
1628RFC 5545 iCalendar September 2009
1629
1630
16313.3. Property Value Data Types
1632
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
1640 "VALUE" parameter.
1641
16423.3.1. Binary
1643
1644 Value Name: BINARY
1645
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
1649 object.
1650
1651 Format Definition: This value type is defined by the following
1652 notation:
1653
1654 binary = *(4b-char) [b-end]
1655 ; A "BASE64" encoded character string, as defined by [RFC4648].
1656
1657 b-end = (2b-char "==") / (3b-char "=")
1658
1659 b-char = ALPHA / DIGIT / "+" / "/"
1660
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.
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682Desruisseaux Standards Track [Page 30]
1683
1684RFC 5545 iCalendar September 2009
1685
1686
1687 Example: The following is an example of a "BASE64" encoded binary
1688 value data:
1689
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
1698 AAAAAAAAAAAA
1699
17003.3.2. Boolean
1701
1702 Value Name: BOOLEAN
1703
1704 Purpose: This value type is used to identify properties that contain
1705 either a "TRUE" or "FALSE" Boolean value.
1706
1707 Format Definition: This value type is defined by the following
1708 notation:
1709
1710 boolean = "TRUE" / "FALSE"
1711
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.
1715
1716 Example: The following is an example of a hypothetical property that
1717 has a BOOLEAN value type:
1718
1719 TRUE
1720
17213.3.3. Calendar User Address
1722
1723 Value Name: CAL-ADDRESS
1724
1725 Purpose: This value type is used to identify properties that contain
1726 a calendar user address.
1727
1728 Format Definition: This value type is defined by the following
1729 notation:
1730
1731 cal-address = uri
1732
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
1735
1736
1737
1738Desruisseaux Standards Track [Page 31]
1739
1740RFC 5545 iCalendar September 2009
1741
1742
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.
1747
1748 Example:
1749
1750 mailto:jane_doe@example.com
1751
17523.3.4. Date
1753
1754 Value Name: DATE
1755
1756 Purpose: This value type is used to identify values that contain a
1757 calendar date.
1758
1759 Format Definition: This value type is defined by the following
1760 notation:
1761
1762 date = date-value
1763
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
1769
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.
1777
1778 No additional content value encoding (i.e., BACKSLASH character
1779 encoding, see Section 3.3.11) is defined for this value type.
1780
1781 Example: The following represents July 14, 1997:
1782
1783 19970714
1784
17853.3.5. Date-Time
1786
1787 Value Name: DATE-TIME
1788
1789 Purpose: This value type is used to identify values that specify a
1790 precise calendar date and time of day.
1791
1792
1793
1794Desruisseaux Standards Track [Page 32]
1795
1796RFC 5545 iCalendar September 2009
1797
1798
1799 Format Definition: This value type is defined by the following
1800 notation:
1801
1802 date-time = date "T" time ;As specified in the DATE and TIME
1803 ;value definitions
1804
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.
1809
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.
1816
1817 The "DATE-TIME" value type expresses time values in three forms:
1818
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:
1821
1822 19980119T230000-0800 ;Invalid time format
1823
1824 FORM #1: DATE WITH LOCAL TIME
1825
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
1829 11 PM:
1830
1831 19980118T230000
1832
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
1846
1847
1848
1849
1850Desruisseaux Standards Track [Page 33]
1851
1852RFC 5545 iCalendar September 2009
1853
1854
1855 event at different actual times. Floating time SHOULD only be
1856 used where that is the reasonable behavior.
1857
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.
1861
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.
1866
1867 FORM #2: DATE WITH UTC TIME
1868
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,
1872 1998, at 0700 UTC:
1873
1874 19980119T070000Z
1875
1876 The "TZID" property parameter MUST NOT be applied to DATE-TIME
1877 properties whose time values are specified in UTC.
1878
1879 FORM #3: DATE WITH LOCAL TIME AND TIME ZONE REFERENCE
1880
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:
1886
1887 TZID=America/New_York:19980119T020000
1888
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
1899 (UTC-05:00).
1900
1901
1902
1903
1904
1905
1906Desruisseaux Standards Track [Page 34]
1907
1908RFC 5545 iCalendar September 2009
1909
1910
1911 A time value MUST only specify the second 60 when specifying a
1912 positive leap second. For example:
1913
1914 19970630T235960Z
1915
1916 Implementations that do not support leap seconds SHOULD interpret
1917 the second 60 as equivalent to the second 59.
1918
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"
1921 property.
1922
1923 DTSTART:19970714T133000 ; Local time
1924 DTSTART:19970714T173000Z ; UTC time
1925 DTSTART;TZID=America/New_York:19970714T133000
1926 ; Local time and time
1927 ; zone reference
1928
19293.3.6. Duration
1930
1931 Value Name: DURATION
1932
1933 Purpose: This value type is used to identify properties that contain
1934 a duration of time.
1935
1936 Format Definition: This value type is defined by the following
1937 notation:
1938
1939 dur-value = (["+"] / "-") "P" (dur-date / dur-time / dur-week)
1940
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"
1948
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.
1957
1958
1959
1960
1961
1962Desruisseaux Standards Track [Page 35]
1963
1964RFC 5545 iCalendar September 2009
1965
1966
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.
1977
1978 Negative durations are typically used to schedule an alarm to
1979 trigger before an associated time (see Section 3.8.6.3).
1980
1981 No additional content value encoding (i.e., BACKSLASH character
1982 encoding, see Section 3.3.11) are defined for this value type.
1983
1984 Example: A duration of 15 days, 5 hours, and 20 seconds would be:
1985
1986 P15DT5H0M20S
1987
1988 A duration of 7 weeks would be:
1989
1990 P7W
1991
19923.3.7. Float
1993
1994 Value Name: FLOAT
1995
1996 Purpose: This value type is used to identify properties that contain
1997 a real-number value.
1998
1999 Format Definition: This value type is defined by the following
2000 notation:
2001
2002 float = (["+"] / "-") 1*DIGIT ["." 1*DIGIT]
2003
2004 Description: If the property permits, multiple "float" values are
2005 specified by a COMMA-separated list of values.
2006
2007 No additional content value encoding (i.e., BACKSLASH character
2008 encoding, see Section 3.3.11) is defined for this value type.
2009
2010 Example:
2011
2012 1000000.0000001
2013 1.333
2014 -3.14
2015
2016
2017
2018Desruisseaux Standards Track [Page 36]
2019
2020RFC 5545 iCalendar September 2009
2021
2022
20233.3.8. Integer
2024
2025 Value Name: INTEGER
2026
2027 Purpose: This value type is used to identify properties that contain
2028 a signed integer value.
2029
2030 Format Definition: This value type is defined by the following
2031 notation:
2032
2033 integer = (["+"] / "-") 1*DIGIT
2034
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.
2039
2040 No additional content value encoding (i.e., BACKSLASH character
2041 encoding, see Section 3.3.11) is defined for this value type.
2042
2043 Example:
2044
2045 1234567890
2046 -1234567890
2047 +1234567890
2048 432109876
2049
20503.3.9. Period of Time
2051
2052 Value Name: PERIOD
2053
2054 Purpose: This value type is used to identify values that contain a
2055 precise period of time.
2056
2057 Format Definition: This value type is defined by the following
2058 notation:
2059
2060 period = period-explicit / period-start
2061
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.
2066
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
2070 ; of time.
2071
2072
2073
2074Desruisseaux Standards Track [Page 37]
2075
2076RFC 5545 iCalendar September 2009
2077
2078
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.
2092
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:
2095
2096 19970101T180000Z/19970102T070000Z
2097
2098 The period start at 18:00:00 on January 1, 1997 and lasting 5
2099 hours and 30 minutes would be:
2100
2101 19970101T180000Z/PT5H30M
2102
2103 No additional content value encoding (i.e., BACKSLASH character
2104 encoding, see Section 3.3.11) is defined for this value type.
2105
21063.3.10. Recurrence Rule
2107
2108 Value Name: RECUR
2109
2110 Purpose: This value type is used to identify properties that contain
2111 a recurrence rule specification.
2112
2113 Format Definition: This value type is defined by the following
2114 notation:
2115
2116 recur = recur-rule-part *( ";" recur-rule-part )
2117 ;
2118 ; The rule parts are not ordered in any
2119 ; particular sequence.
2120 ;
2121 ; The FREQ rule part is REQUIRED,
2122 ; but MUST NOT occur more than once.
2123 ;
2124 ; The UNTIL or COUNT rule parts are OPTIONAL,
2125 ; but they MUST NOT occur in the same 'recur'.
2126 ;
2127
2128
2129
2130Desruisseaux Standards Track [Page 38]
2131
2132RFC 5545 iCalendar September 2009
2133
2134
2135 ; The other rule parts are OPTIONAL,
2136 ; but MUST NOT occur more than once.
2137
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 )
2152
2153 freq = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY"
2154 / "WEEKLY" / "MONTHLY" / "YEARLY"
2155
2156 enddate = date / date-time
2157
2158 byseclist = ( seconds *("," seconds) )
2159
2160 seconds = 1*2DIGIT ;0 to 60
2161
2162 byminlist = ( minutes *("," minutes) )
2163
2164 minutes = 1*2DIGIT ;0 to 59
2165
2166 byhrlist = ( hour *("," hour) )
2167
2168 hour = 1*2DIGIT ;0 to 23
2169
2170 bywdaylist = ( weekdaynum *("," weekdaynum) )
2171
2172 weekdaynum = [[plus / minus] ordwk] weekday
2173
2174 plus = "+"
2175
2176 minus = "-"
2177
2178 ordwk = 1*2DIGIT ;1 to 53
2179
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.
2183
2184
2185
2186Desruisseaux Standards Track [Page 39]
2187
2188RFC 5545 iCalendar September 2009
2189
2190
2191 bymodaylist = ( monthdaynum *("," monthdaynum) )
2192
2193 monthdaynum = [plus / minus] ordmoday
2194
2195 ordmoday = 1*2DIGIT ;1 to 31
2196
2197 byyrdaylist = ( yeardaynum *("," yeardaynum) )
2198
2199 yeardaynum = [plus / minus] ordyrday
2200
2201 ordyrday = 1*3DIGIT ;1 to 366
2202
2203 bywknolist = ( weeknum *("," weeknum) )
2204
2205 weeknum = [plus / minus] ordwk
2206
2207 bymolist = ( monthnum *("," monthnum) )
2208
2209 monthnum = 1*2DIGIT ;1 to 12
2210
2211 bysplist = ( setposday *("," setposday) )
2212
2213 setposday = yeardaynum
2214
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
2224 in a RECUR value.
2225
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.
2237
2238
2239
2240
2241
2242Desruisseaux Standards Track [Page 40]
2243
2244RFC 5545 iCalendar September 2009
2245
2246
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.
2254
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.
2271
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.
2275
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).
2286
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.
2291
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".
2295
2296
2297
2298Desruisseaux Standards Track [Page 41]
2299
2300RFC 5545 iCalendar September 2009
2301
2302
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.
2317
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.
2323
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.
2330
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.
2341
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
2344 January 1.
2345
2346 The BYMONTH rule part specifies a COMMA-separated list of months
2347 of the year. Valid values are 1 to 12.
2348
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
2351
2352
2353
2354Desruisseaux Standards Track [Page 42]
2355
2356RFC 5545 iCalendar September 2009
2357
2358
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.
2363
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:
2374
2375 FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
2376
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
2380 rule.
2381
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.
2387
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".
2394
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.
2406
2407
2408
2409
2410Desruisseaux Standards Track [Page 43]
2411
2412RFC 5545 iCalendar September 2009
2413
2414
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
2420 evaluated.
2421
2422 The table below summarizes the dependency of BYxxx rule part
2423 expand or limit behavior on the FREQ rule part value.
2424
2425 The term "N/A" means that the corresponding BYxxx rule part MUST
2426 NOT be used with the corresponding FREQ value.
2427
2428 BYDAY has some special behavior depending on the FREQ value and
2429 this is described in separate notes below the table.
2430
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 +----------+--------+--------+-------+-------+------+-------+------+
2452
2453 Note 1: Limit if BYMONTHDAY is present; otherwise, special expand
2454 for MONTHLY.
2455
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.
2460
2461
2462
2463
2464
2465
2466Desruisseaux Standards Track [Page 44]
2467
2468RFC 5545 iCalendar September 2009
2469
2470
2471 Here is an example of evaluating multiple BYxxx rule parts.
2472
2473 DTSTART;TZID=America/New_York:19970105T083000
2474 RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;
2475 BYMINUTE=30
2476
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
2490 "DTSTART" property.
2491
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.
2497
2498 No additional content value encoding (i.e., BACKSLASH character
2499 encoding, see Section 3.3.11) is defined for this value type.
2500
2501 Example: The following is a rule that specifies 10 occurrences that
2502 occur every other day:
2503
2504 FREQ=DAILY;COUNT=10;INTERVAL=2
2505
2506 There are other examples specified in Section 3.8.5.3.
2507
25083.3.11. Text
2509
2510 Value Name: TEXT
2511
2512 Purpose: This value type is used to identify values that contain
2513 human-readable text.
2514
2515 Format Definition: This value type is defined by the following
2516 notation:
2517
2518
2519
2520
2521
2522Desruisseaux Standards Track [Page 45]
2523
2524RFC 5545 iCalendar September 2009
2525
2526
2527 text = *(TSAFE-CHAR / ":" / DQUOTE / ESCAPED-CHAR)
2528 ; Folded according to description above
2529
2530 ESCAPED-CHAR = ("\\" / "\;" / "\," / "\N" / "\n")
2531 ; \\ encodes \, \N or \n encodes newline
2532 ; \; encodes ;, \, encodes ,
2533
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, ";", ":", "\", ","
2538
2539 Description: If the property permits, multiple TEXT values are
2540 specified by a COMMA-separated list of values.
2541
2542 The language in which the text is represented can be controlled by
2543 the "LANGUAGE" property parameter.
2544
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".
2549
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
2561 character.
2562
2563 Example: A multiple line value of:
2564
2565 Project XYZ Final Review
2566 Conference Room - 3B
2567 Come Prepared.
2568
2569 would be represented as:
2570
2571 Project XYZ Final Review\nConference Room - 3B\nCome Prepared.
2572
2573
2574
2575
2576
2577
2578Desruisseaux Standards Track [Page 46]
2579
2580RFC 5545 iCalendar September 2009
2581
2582
25833.3.12. Time
2584
2585 Value Name: TIME
2586
2587 Purpose: This value type is used to identify values that contain a
2588 time of day.
2589
2590 Format Definition: This value type is defined by the following
2591 notation:
2592
2593 time = time-hour time-minute time-second [time-utc]
2594
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.
2599
2600 time-utc = "Z"
2601
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.
2606
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.
2615
2616 In parallel to the "DATE-TIME" definition above, the "TIME" value
2617 type expresses time values in three forms:
2618
2619 The form of time with UTC offset MUST NOT be used. For example,
2620 the following is not valid for a time value:
2621
2622 230000-0800 ;Invalid time format
2623
2624 FORM #1 LOCAL TIME
2625
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
2628 example, 11:00 PM:
2629
2630 230000
2631
2632
2633
2634Desruisseaux Standards Track [Page 47]
2635
2636RFC 5545 iCalendar September 2009
2637
2638
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.
2652
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.
2656
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
2660 object.
2661
2662 FORM #2: UTC TIME
2663
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:
2667
2668 070000Z
2669
2670 The "TZID" property parameter MUST NOT be applied to TIME
2671 properties whose time values are specified in UTC.
2672
2673 FORM #3: LOCAL TIME AND TIME ZONE REFERENCE
2674
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.
2679
2680 Example: The following represents 8:30 AM in New York in winter,
2681 five hours behind UTC, in each of the three formats:
2682
2683 083000
2684 133000Z
2685 TZID=America/New_York:083000
2686
2687
2688
2689
2690Desruisseaux Standards Track [Page 48]
2691
2692RFC 5545 iCalendar September 2009
2693
2694
26953.3.13. URI
2696
2697 Value Name: URI
2698
2699 Purpose: This value type is used to identify values that contain a
2700 uniform resource identifier (URI) type of reference to the
2701 property value.
2702
2703 Format Definition: This value type is defined by the following
2704 notation:
2705
2706 uri = <As defined in Section 3 of [RFC3986]>
2707
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.
2711
2712 Property values with this value type MUST follow the generic URI
2713 syntax defined in [RFC3986].
2714
2715 When a property parameter value is a URI value type, the URI MUST
2716 be specified as a quoted-string value.
2717
2718 No additional content value encoding (i.e., BACKSLASH character
2719 encoding, see Section 3.3.11) is defined for this value type.
2720
2721 Example: The following is a URI for a network file:
2722
2723 http://example.com/my-report.txt
2724
27253.3.14. UTC Offset
2726
2727 Value Name: UTC-OFFSET
2728
2729 Purpose: This value type is used to identify properties that contain
2730 an offset from UTC to local time.
2731
2732 Format Definition: This value type is defined by the following
2733 notation:
2734
2735 utc-offset = time-numzone
2736
2737 time-numzone = ("+" / "-") time-hour time-minute [time-second]
2738
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
2742
2743
2744
2745
2746Desruisseaux Standards Track [Page 49]
2747
2748RFC 5545 iCalendar September 2009
2749
2750
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.
2753
2754 No additional content value encoding (i.e., BACKSLASH character
2755 encoding, see Section 3.3.11) is defined for this value type.
2756
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
2759 UTC):
2760
2761 -0500
2762
2763 +0100
2764
27653.4. iCalendar Object
2766
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:
2774
2775 icalstream = 1*icalobject
2776
2777 icalobject = "BEGIN" ":" "VCALENDAR" CRLF
2778 icalbody
2779 "END" ":" "VCALENDAR" CRLF
2780
2781 The following is a simple example of an iCalendar object:
2782
2783 BEGIN:VCALENDAR
2784 VERSION:2.0
2785 PRODID:-//hacksw/handcal//NONSGML v1.0//EN
2786 BEGIN:VEVENT
2787 UID:19970610T172345Z-AF23B2@example.com
2788 DTSTAMP:19970610T172345Z
2789 DTSTART:19970714T170000Z
2790 DTEND:19970715T040000Z
2791 SUMMARY:Bastille Day Party
2792 END:VEVENT
2793 END:VCALENDAR
2794
2795
2796
2797
2798
2799
2800
2801
2802Desruisseaux Standards Track [Page 50]
2803
2804RFC 5545 iCalendar September 2009
2805
2806
28073.5. Property
2808
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.
2812
2813 The following is an example of a property:
2814
2815 DTSTART:19960415T133000Z
2816
2817 This memo imposes no ordering of properties within an iCalendar
2818 object.
2819
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.
2824
28253.6. Calendar Components
2826
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.
2834
2835 The body of the iCalendar object is defined by the following
2836 notation:
2837
2838 icalbody = calprops component
2839
2840 calprops = *(
2841 ;
2842 ; The following are REQUIRED,
2843 ; but MUST NOT occur more than once.
2844 ;
2845 prodid / version /
2846 ;
2847 ; The following are OPTIONAL,
2848 ; but MUST NOT occur more than once.
2849 ;
2850 calscale / method /
2851 ;
2852 ; The following are OPTIONAL,
2853 ; and MAY occur more than once.
2854 ;
2855
2856
2857
2858Desruisseaux Standards Track [Page 51]
2859
2860RFC 5545 iCalendar September 2009
2861
2862
2863 x-prop / iana-prop
2864 ;
2865 )
2866
2867 component = 1*(eventc / todoc / journalc / freebusyc /
2868 timezonec / iana-comp / x-comp)
2869
2870 iana-comp = "BEGIN" ":" iana-token CRLF
2871 1*contentline
2872 "END" ":" iana-token CRLF
2873
2874 x-comp = "BEGIN" ":" x-name CRLF
2875 1*contentline
2876 "END" ":" x-name CRLF
2877
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.
2892
28933.6.1. Event Component
2894
2895 Component Name: VEVENT
2896
2897 Purpose: Provide a grouping of component properties that describe an
2898 event.
2899
2900 Format Definition: A "VEVENT" calendar component is defined by the
2901 following notation:
2902
2903 eventc = "BEGIN" ":" "VEVENT" CRLF
2904 eventprop *alarmc
2905 "END" ":" "VEVENT" CRLF
2906
2907 eventprop = *(
2908 ;
2909 ; The following are REQUIRED,
2910 ; but MUST NOT occur more than once.
2911
2912
2913
2914Desruisseaux Standards Track [Page 52]
2915
2916RFC 5545 iCalendar September 2009
2917
2918
2919 ;
2920 dtstamp / uid /
2921 ;
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
2926 ; more than once.
2927 ;
2928 dtstart /
2929 ;
2930 ; The following are OPTIONAL,
2931 ; but MUST NOT occur more than once.
2932 ;
2933 class / created / description / geo /
2934 last-mod / location / organizer / priority /
2935 seq / status / summary / transp /
2936 url / recurid /
2937 ;
2938 ; The following is OPTIONAL,
2939 ; but SHOULD NOT occur more than once.
2940 ;
2941 rrule /
2942 ;
2943 ; Either 'dtend' or 'duration' MAY appear in
2944 ; a 'eventprop', but 'dtend' and 'duration'
2945 ; MUST NOT occur in the same 'eventprop'.
2946 ;
2947 dtend / duration /
2948 ;
2949 ; The following are OPTIONAL,
2950 ; and MAY occur more than once.
2951 ;
2952 attach / attendee / categories / comment /
2953 contact / exdate / rstatus / related /
2954 resources / rdate / x-prop / iana-prop
2955 ;
2956 )
2957
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
2966
2967
2968
2969
2970Desruisseaux Standards Track [Page 53]
2971
2972RFC 5545 iCalendar September 2009
2973
2974
2975 set to "TRANSPARENT" in order to prevent blocking of the event in
2976 searches for busy time.
2977
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.
2987
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.
2999
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.
3004
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:
3008
3009 BEGIN:VEVENT
3010 UID:19970901T130000Z-123401@example.com
3011 DTSTAMP:19970901T130000Z
3012 DTSTART:19970903T163000Z
3013 DTEND:19970903T190000Z
3014 SUMMARY:Annual Employee Review
3015 CLASS:PRIVATE
3016 CATEGORIES:BUSINESS,HUMAN RESOURCES
3017 END:VEVENT
3018
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:
3022
3023
3024
3025
3026Desruisseaux Standards Track [Page 54]
3027
3028RFC 5545 iCalendar September 2009
3029
3030
3031 BEGIN:VEVENT
3032 UID:19970901T130000Z-123402@example.com
3033 DTSTAMP:19970901T130000Z
3034 DTSTART:19970401T163000Z
3035 DTEND:19970402T010000Z
3036 SUMMARY:Laurel is in sensitivity awareness class.
3037 CLASS:PUBLIC
3038 CATEGORIES:BUSINESS,HUMAN RESOURCES
3039 TRANSP:TRANSPARENT
3040 END:VEVENT
3041
3042 The following is an example of the "VEVENT" calendar component
3043 used to represent an anniversary that will occur annually:
3044
3045 BEGIN:VEVENT
3046 UID:19970901T130000Z-123403@example.com
3047 DTSTAMP:19970901T130000Z
3048 DTSTART;VALUE=DATE:19971102
3049 SUMMARY:Our Blissful Anniversary
3050 TRANSP:TRANSPARENT
3051 CLASS:CONFIDENTIAL
3052 CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION
3053 RRULE:FREQ=YEARLY
3054 END:VEVENT
3055
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.
3061
3062 BEGIN:VEVENT
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
3068 TRANSP:TRANSPARENT
3069 END:VEVENT
3070
30713.6.2. To-Do Component
3072
3073 Component Name: VTODO
3074
3075 Purpose: Provide a grouping of calendar properties that describe a
3076 to-do.
3077
3078
3079
3080
3081
3082Desruisseaux Standards Track [Page 55]
3083
3084RFC 5545 iCalendar September 2009
3085
3086
3087 Format Definition: A "VTODO" calendar component is defined by the
3088 following notation:
3089
3090 todoc = "BEGIN" ":" "VTODO" CRLF
3091 todoprop *alarmc
3092 "END" ":" "VTODO" CRLF
3093
3094 todoprop = *(
3095 ;
3096 ; The following are REQUIRED,
3097 ; but MUST NOT occur more than once.
3098 ;
3099 dtstamp / uid /
3100 ;
3101 ; The following are OPTIONAL,
3102 ; but MUST NOT occur more than once.
3103 ;
3104 class / completed / created / description /
3105 dtstart / geo / last-mod / location / organizer /
3106 percent / priority / recurid / seq / status /
3107 summary / url /
3108 ;
3109 ; The following is OPTIONAL,
3110 ; but SHOULD NOT occur more than once.
3111 ;
3112 rrule /
3113 ;
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'.
3120 ;
3121 due / duration /
3122 ;
3123 ; The following are OPTIONAL,
3124 ; and MAY occur more than once.
3125 ;
3126 attach / attendee / categories / comment / contact /
3127 exdate / rstatus / related / resources /
3128 rdate / x-prop / iana-prop
3129 ;
3130 )
3131
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
3135
3136
3137
3138Desruisseaux Standards Track [Page 56]
3139
3140RFC 5545 iCalendar September 2009
3141
3142
3143 used to represent an item of work assigned to an individual; such
3144 as "turn in travel expense today".
3145
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.
3150
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.
3154
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.
3158
3159 BEGIN:VTODO
3160 UID:20070313T123432Z-456553@example.com
3161 DTSTAMP:20070313T123432Z
3162 DUE;VALUE=DATE:20070501
3163 SUMMARY:Submit Quebec Income Tax Return for 2006
3164 CLASS:CONFIDENTIAL
3165 CATEGORIES:FAMILY,FINANCE
3166 STATUS:NEEDS-ACTION
3167 END:VTODO
3168
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.
3172
3173 BEGIN:VTODO
3174 UID:20070514T103211Z-123404@example.com
3175 DTSTAMP:20070514T103211Z
3176 DTSTART:20070514T110000Z
3177 DUE:20070709T130000Z
3178 COMPLETED:20070707T100000Z
3179 SUMMARY:Submit Revised Internet-Draft
3180 PRIORITY:1
3181 STATUS:NEEDS-ACTION
3182 END:VTODO
3183
31843.6.3. Journal Component
3185
3186 Component Name: VJOURNAL
3187
3188 Purpose: Provide a grouping of component properties that describe a
3189 journal entry.
3190
3191
3192
3193
3194Desruisseaux Standards Track [Page 57]
3195
3196RFC 5545 iCalendar September 2009
3197
3198
3199 Format Definition: A "VJOURNAL" calendar component is defined by the
3200 following notation:
3201
3202 journalc = "BEGIN" ":" "VJOURNAL" CRLF
3203 jourprop
3204 "END" ":" "VJOURNAL" CRLF
3205
3206 jourprop = *(
3207 ;
3208 ; The following are REQUIRED,
3209 ; but MUST NOT occur more than once.
3210 ;
3211 dtstamp / uid /
3212 ;
3213 ; The following are OPTIONAL,
3214 ; but MUST NOT occur more than once.
3215 ;
3216 class / created / dtstart /
3217 last-mod / organizer / recurid / seq /
3218 status / summary / url /
3219 ;
3220 ; The following is OPTIONAL,
3221 ; but SHOULD NOT occur more than once.
3222 ;
3223 rrule /
3224 ;
3225 ; The following are OPTIONAL,
3226 ; and MAY occur more than once.
3227 ;
3228 attach / attendee / categories / comment /
3229 contact / description / exdate / related / rdate /
3230 rstatus / x-prop / iana-prop
3231 ;
3232 )
3233
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.
3245
3246
3247
3248
3249
3250Desruisseaux Standards Track [Page 58]
3251
3252RFC 5545 iCalendar September 2009
3253
3254
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.
3259
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.
3264
3265 Example: The following is an example of the "VJOURNAL" calendar
3266 component:
3267
3268 BEGIN:VJOURNAL
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
3281 (tel).
3282 END:VJOURNAL
3283
32843.6.4. Free/Busy Component
3285
3286 Component Name: VFREEBUSY
3287
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
3291 time.
3292
3293 Format Definition: A "VFREEBUSY" calendar component is defined by
3294 the following notation:
3295
3296 freebusyc = "BEGIN" ":" "VFREEBUSY" CRLF
3297 fbprop
3298 "END" ":" "VFREEBUSY" CRLF
3299
3300 fbprop = *(
3301 ;
3302 ; The following are REQUIRED,
3303
3304
3305
3306Desruisseaux Standards Track [Page 59]
3307
3308RFC 5545 iCalendar September 2009
3309
3310
3311 ; but MUST NOT occur more than once.
3312 ;
3313 dtstamp / uid /
3314 ;
3315 ; The following are OPTIONAL,
3316 ; but MUST NOT occur more than once.
3317 ;
3318 contact / dtstart / dtend /
3319 organizer / url /
3320 ;
3321 ; The following are OPTIONAL,
3322 ; and MAY occur more than once.
3323 ;
3324 attendee / comment / freebusy / rstatus / x-prop /
3325 iana-prop
3326 ;
3327 )
3328
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.
3333
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
3341 time requests.
3342
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.
3350
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
3357 created.
3358
3359
3360
3361
3362Desruisseaux Standards Track [Page 60]
3363
3364RFC 5545 iCalendar September 2009
3365
3366
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.
3372
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
3376 associated replies.
3377
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.
3382
3383 When present in a "VFREEBUSY" calendar component, the "DTSTART"
3384 and "DTEND" properties SHOULD be specified prior to any "FREEBUSY"
3385 properties.
3386
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.
3391
3392 Example: The following is an example of a "VFREEBUSY" calendar
3393 component used to request free or busy time information:
3394
3395 BEGIN:VFREEBUSY
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
3402 END:VFREEBUSY
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418Desruisseaux Standards Track [Page 61]
3419
3420RFC 5545 iCalendar September 2009
3421
3422
3423 The following is an example of a "VFREEBUSY" calendar component
3424 used to reply to the request with busy time information:
3425
3426 BEGIN:VFREEBUSY
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.
3436 END:VFREEBUSY
3437
3438 The following is an example of a "VFREEBUSY" calendar component
3439 used to publish busy time information:
3440
3441 BEGIN:VFREEBUSY
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
3451 END:VFREEBUSY
3452
34533.6.5. Time Zone Component
3454
3455 Component Name: VTIMEZONE
3456
3457 Purpose: Provide a grouping of component properties that defines a
3458 time zone.
3459
3460 Format Definition: A "VTIMEZONE" calendar component is defined by
3461 the following notation:
3462
3463 timezonec = "BEGIN" ":" "VTIMEZONE" CRLF
3464 *(
3465 ;
3466 ; 'tzid' is REQUIRED, but MUST NOT occur more
3467 ; than once.
3468 ;
3469 tzid /
3470 ;
3471
3472
3473
3474Desruisseaux Standards Track [Page 62]
3475
3476RFC 5545 iCalendar September 2009
3477
3478
3479 ; 'last-mod' and 'tzurl' are OPTIONAL,
3480 ; but MUST NOT occur more than once.
3481 ;
3482 last-mod / tzurl /
3483 ;
3484 ; One of 'standardc' or 'daylightc' MUST occur
3485 ; and each MAY occur more than once.
3486 ;
3487 standardc / daylightc /
3488 ;
3489 ; The following are OPTIONAL,
3490 ; and MAY occur more than once.
3491 ;
3492 x-prop / iana-prop
3493 ;
3494 )
3495 "END" ":" "VTIMEZONE" CRLF
3496
3497 standardc = "BEGIN" ":" "STANDARD" CRLF
3498 tzprop
3499 "END" ":" "STANDARD" CRLF
3500
3501 daylightc = "BEGIN" ":" "DAYLIGHT" CRLF
3502 tzprop
3503 "END" ":" "DAYLIGHT" CRLF
3504
3505 tzprop = *(
3506 ;
3507 ; The following are REQUIRED,
3508 ; but MUST NOT occur more than once.
3509 ;
3510 dtstart / tzoffsetto / tzoffsetfrom /
3511 ;
3512 ; The following is OPTIONAL,
3513 ; but SHOULD NOT occur more than once.
3514 ;
3515 rrule /
3516 ;
3517 ; The following are OPTIONAL,
3518 ; and MAY occur more than once.
3519 ;
3520 comment / rdate / tzname / x-prop / iana-prop
3521 ;
3522 )
3523
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
3527
3528
3529
3530Desruisseaux Standards Track [Page 63]
3531
3532RFC 5545 iCalendar September 2009
3533
3534
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
3545 observance.
3546
3547 Effective Observance Rule
3548
3549 +-----------+--------------------------+--------+--------------+
3550 | Date | (Date-Time) | Offset | Abbreviation |
3551 +-----------+--------------------------+--------+--------------+
3552 | 1967-1973 | last Sun in Apr, 02:00 | -0400 | EDT |
3553 | | | | |
3554 | 1967-2006 | last Sun in Oct, 02:00 | -0500 | EST |
3555 | | | | |
3556 | 1974-1974 | Jan 6, 02:00 | -0400 | EDT |
3557 | | | | |
3558 | 1975-1975 | Feb 23, 02:00 | -0400 | EDT |
3559 | | | | |
3560 | 1976-1986 | last Sun in Apr, 02:00 | -0400 | EDT |
3561 | | | | |
3562 | 1987-2006 | first Sun in Apr, 02:00 | -0400 | EDT |
3563 | | | | |
3564 | 2007-* | second Sun in Mar, 02:00 | -0400 | EDT |
3565 | | | | |
3566 | 2007-* | first Sun in Nov, 02:00 | -0500 | EST |
3567 +-----------+--------------------------+--------+--------------+
3568
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
3580 time.
3581
3582
3583
3584
3585
3586Desruisseaux Standards Track [Page 64]
3587
3588RFC 5545 iCalendar September 2009
3589
3590
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.
3596
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.
3606
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"
3611 properties.
3612
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.
3618
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:
3627
3628 * the first onset DATE-TIME for the observance;
3629
3630 * the last onset DATE-TIME for the observance, if a last onset is
3631 known;
3632
3633 * the offset to be applied for the observance;
3634
3635 * a rule that describes the day and time when the observance
3636 takes effect;
3637
3638 * an optional name for the observance.
3639
3640
3641
3642Desruisseaux Standards Track [Page 65]
3643
3644RFC 5545 iCalendar September 2009
3645
3646
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.
3655
3656 The top-level properties in a "VTIMEZONE" calendar component are:
3657
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.
3661
3662 The optional "LAST-MODIFIED" property is a UTC value that
3663 specifies the date and time that this time zone definition was
3664 last updated.
3665
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.
3671
3672 The collection of properties that are used to define the
3673 "STANDARD" and "DAYLIGHT" sub-components include:
3674
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
3678 time value.
3679
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:
3686
3687 DTSTART:19671029T020000
3688
3689 TZOFFSETFROM:-0400
3690
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.
3694
3695
3696
3697
3698Desruisseaux Standards Track [Page 66]
3699
3700RFC 5545 iCalendar September 2009
3701
3702
3703 The optional "TZNAME" property is the customary name for the time
3704 zone. This could be used for displaying dates.
3705
3706 The onset DATE-TIME values for the observance defined by the time
3707 zone sub-component is defined by the "DTSTART", "RRULE", and
3708 "RDATE" properties.
3709
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
3713 include:
3714
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.
3720
3721 * The "DTSTART" and the "TZOFFSETFROM" properties MUST be used
3722 when generating the onset DATE-TIME values (instances) from the
3723 "RRULE".
3724
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"
3729 property.
3730
3731 The optional "COMMENT" property is also allowed for descriptive
3732 explanatory text.
3733
3734 Example: The following are examples of the "VTIMEZONE" calendar
3735 component:
3736
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.
3739
3740 BEGIN:VTIMEZONE
3741 TZID:America/New_York
3742 LAST-MODIFIED:20050809T050000Z
3743 BEGIN:DAYLIGHT
3744 DTSTART:19670430T020000
3745 RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1SU;UNTIL=19730429T070000Z
3746 TZOFFSETFROM:-0500
3747 TZOFFSETTO:-0400
3748 TZNAME:EDT
3749 END:DAYLIGHT
3750 BEGIN:STANDARD
3751
3752
3753
3754Desruisseaux Standards Track [Page 67]
3755
3756RFC 5545 iCalendar September 2009
3757
3758
3759 DTSTART:19671029T020000
3760 RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU;UNTIL=20061029T060000Z
3761 TZOFFSETFROM:-0400
3762 TZOFFSETTO:-0500
3763 TZNAME:EST
3764 END:STANDARD
3765 BEGIN:DAYLIGHT
3766 DTSTART:19740106T020000
3767 RDATE:19750223T020000
3768 TZOFFSETFROM:-0500
3769 TZOFFSETTO:-0400
3770 TZNAME:EDT
3771 END:DAYLIGHT
3772 BEGIN:DAYLIGHT
3773 DTSTART:19760425T020000
3774 RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1SU;UNTIL=19860427T070000Z
3775 TZOFFSETFROM:-0500
3776 TZOFFSETTO:-0400
3777 TZNAME:EDT
3778 END:DAYLIGHT
3779 BEGIN:DAYLIGHT
3780 DTSTART:19870405T020000
3781 RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU;UNTIL=20060402T070000Z
3782 TZOFFSETFROM:-0500
3783 TZOFFSETTO:-0400
3784 TZNAME:EDT
3785 END:DAYLIGHT
3786 BEGIN:DAYLIGHT
3787 DTSTART:20070311T020000
3788 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
3789 TZOFFSETFROM:-0500
3790 TZOFFSETTO:-0400
3791 TZNAME:EDT
3792 END:DAYLIGHT
3793 BEGIN:STANDARD
3794 DTSTART:20071104T020000
3795 RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
3796 TZOFFSETFROM:-0400
3797 TZOFFSETTO:-0500
3798 TZNAME:EST
3799 END:STANDARD
3800 END:VTIMEZONE
3801
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
3807
3808
3809
3810Desruisseaux Standards Track [Page 68]
3811
3812RFC 5545 iCalendar September 2009
3813
3814
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
3818 December 31, 2007,
3819
3820 BEGIN:VTIMEZONE
3821 TZID:America/New_York
3822 LAST-MODIFIED:20050809T050000Z
3823 BEGIN:STANDARD
3824 DTSTART:20071104T020000
3825 TZOFFSETFROM:-0400
3826 TZOFFSETTO:-0500
3827 TZNAME:EST
3828 END:STANDARD
3829 BEGIN:DAYLIGHT
3830 DTSTART:20070311T020000
3831 TZOFFSETFROM:-0500
3832 TZOFFSETTO:-0400
3833 TZNAME:EDT
3834 END:DAYLIGHT
3835 END:VTIMEZONE
3836
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.
3842
3843 BEGIN:VTIMEZONE
3844 TZID:America/New_York
3845 LAST-MODIFIED:20050809T050000Z
3846 TZURL:http://zones.example.com/tz/America-New_York.ics
3847 BEGIN:STANDARD
3848 DTSTART:20071104T020000
3849 RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
3850 TZOFFSETFROM:-0400
3851 TZOFFSETTO:-0500
3852 TZNAME:EST
3853 END:STANDARD
3854 BEGIN:DAYLIGHT
3855 DTSTART:20070311T020000
3856 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
3857 TZOFFSETFROM:-0500
3858 TZOFFSETTO:-0400
3859 TZNAME:EDT
3860 END:DAYLIGHT
3861 END:VTIMEZONE
3862
3863
3864
3865
3866Desruisseaux Standards Track [Page 69]
3867
3868RFC 5545 iCalendar September 2009
3869
3870
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).
3874
3875 BEGIN:VTIMEZONE
3876 TZID:Fictitious
3877 LAST-MODIFIED:19870101T000000Z
3878 BEGIN:STANDARD
3879 DTSTART:19671029T020000
3880 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
3881 TZOFFSETFROM:-0400
3882 TZOFFSETTO:-0500
3883 TZNAME:EST
3884 END:STANDARD
3885 BEGIN:DAYLIGHT
3886 DTSTART:19870405T020000
3887 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z
3888 TZOFFSETFROM:-0500
3889 TZOFFSETTO:-0400
3890 TZNAME:EDT
3891 END:DAYLIGHT
3892 END:VTIMEZONE
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922Desruisseaux Standards Track [Page 70]
3923
3924RFC 5545 iCalendar September 2009
3925
3926
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
3930 left off.
3931
3932 BEGIN:VTIMEZONE
3933 TZID:Fictitious
3934 LAST-MODIFIED:19870101T000000Z
3935 BEGIN:STANDARD
3936 DTSTART:19671029T020000
3937 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
3938 TZOFFSETFROM:-0400
3939 TZOFFSETTO:-0500
3940 TZNAME:EST
3941 END:STANDARD
3942 BEGIN:DAYLIGHT
3943 DTSTART:19870405T020000
3944 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z
3945 TZOFFSETFROM:-0500
3946 TZOFFSETTO:-0400
3947 TZNAME:EDT
3948 END:DAYLIGHT
3949 BEGIN:DAYLIGHT
3950 DTSTART:19990424T020000
3951 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=4
3952 TZOFFSETFROM:-0500
3953 TZOFFSETTO:-0400
3954 TZNAME:EDT
3955 END:DAYLIGHT
3956 END:VTIMEZONE
3957
39583.6.6. Alarm Component
3959
3960 Component Name: VALARM
3961
3962 Purpose: Provide a grouping of component properties that define an
3963 alarm.
3964
3965 Format Definition: A "VALARM" calendar component is defined by the
3966 following notation:
3967
3968 alarmc = "BEGIN" ":" "VALARM" CRLF
3969 (audioprop / dispprop / emailprop)
3970 "END" ":" "VALARM" CRLF
3971
3972 audioprop = *(
3973 ;
3974 ; 'action' and 'trigger' are both REQUIRED,
3975
3976
3977
3978Desruisseaux Standards Track [Page 71]
3979
3980RFC 5545 iCalendar September 2009
3981
3982
3983 ; but MUST NOT occur more than once.
3984 ;
3985 action / trigger /
3986 ;
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.
3990 ;
3991 duration / repeat /
3992 ;
3993 ; The following is OPTIONAL,
3994 ; but MUST NOT occur more than once.
3995 ;
3996 attach /
3997 ;
3998 ; The following is OPTIONAL,
3999 ; and MAY occur more than once.
4000 ;
4001 x-prop / iana-prop
4002 ;
4003 )
4004
4005 dispprop = *(
4006 ;
4007 ; The following are REQUIRED,
4008 ; but MUST NOT occur more than once.
4009 ;
4010 action / description / trigger /
4011 ;
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.
4015 ;
4016 duration / repeat /
4017 ;
4018 ; The following is OPTIONAL,
4019 ; and MAY occur more than once.
4020 ;
4021 x-prop / iana-prop
4022 ;
4023 )
4024
4025 emailprop = *(
4026 ;
4027 ; The following are all REQUIRED,
4028 ; but MUST NOT occur more than once.
4029 ;
4030 action / description / trigger / summary /
4031
4032
4033
4034Desruisseaux Standards Track [Page 72]
4035
4036RFC 5545 iCalendar September 2009
4037
4038
4039 ;
4040 ; The following is REQUIRED,
4041 ; and MAY occur more than once.
4042 ;
4043 attendee /
4044 ;
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.
4048 ;
4049 duration / repeat /
4050 ;
4051 ; The following are OPTIONAL,
4052 ; and MAY occur more than once.
4053 ;
4054 attach / x-prop / iana-prop
4055 ;
4056 )
4057
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.
4062
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:
4066
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.
4070
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.
4074
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.
4083
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
4087
4088
4089
4090Desruisseaux Standards Track [Page 73]
4091
4092RFC 5545 iCalendar September 2009
4093
4094
4095 "VALARM" calendar components can be specified for a single
4096 "VEVENT" or "VTODO" calendar component.
4097
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.
4105
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
4114 both be present.
4115
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.
4126
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
4137 addresses.
4138
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
4143
4144
4145
4146Desruisseaux Standards Track [Page 74]
4147
4148RFC 5545 iCalendar September 2009
4149
4150
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.
4156
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.
4159
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.
4168
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.
4175
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:
4179
4180 BEGIN:VALARM
4181 TRIGGER;VALUE=DATE-TIME:19970317T133000Z
4182 REPEAT:4
4183 DURATION:PT15M
4184 ACTION:AUDIO
4185 ATTACH;FMTTYPE=audio/basic:ftp://example.com/pub/
4186 sounds/bell-01.aud
4187 END:VALARM
4188
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:
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202Desruisseaux Standards Track [Page 75]
4203
4204RFC 5545 iCalendar September 2009
4205
4206
4207 BEGIN:VALARM
4208 TRIGGER:-PT30M
4209 REPEAT:2
4210 DURATION:PT15M
4211 ACTION:DISPLAY
4212 DESCRIPTION:Breakfast meeting with executive\n
4213 team at 8:30 AM EST.
4214 END:VALARM
4215
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
4220 link.
4221
4222 BEGIN:VALARM
4223 TRIGGER;RELATED=END:-P2D
4224 ACTION:EMAIL
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
4232 END:VALARM
4233
42343.7. Calendar Properties
4235
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.
4240
42413.7.1. Calendar Scale
4242
4243 Property Name: CALSCALE
4244
4245 Purpose: This property defines the calendar scale used for the
4246 calendar information specified in the iCalendar object.
4247
4248 Value Type: TEXT
4249
4250 Property Parameters: IANA and non-standard property parameters can
4251 be specified on this property.
4252
4253 Conformance: This property can be specified once in an iCalendar
4254 object. The default value is "GREGORIAN".
4255
4256
4257
4258Desruisseaux Standards Track [Page 76]
4259
4260RFC 5545 iCalendar September 2009
4261
4262
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.
4268
4269 Format Definition: This property is defined by the following
4270 notation:
4271
4272 calscale = "CALSCALE" calparam ":" calvalue CRLF
4273
4274 calparam = *(";" other-param)
4275
4276 calvalue = "GREGORIAN"
4277
4278 Example: The following is an example of this property:
4279
4280 CALSCALE:GREGORIAN
4281
42823.7.2. Method
4283
4284 Property Name: METHOD
4285
4286 Purpose: This property defines the iCalendar object method
4287 associated with the calendar object.
4288
4289 Value Type: TEXT
4290
4291 Property Parameters: IANA and non-standard property parameters can
4292 be specified on this property.
4293
4294 Conformance: This property can be specified once in an iCalendar
4295 object.
4296
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
4301 specified.
4302
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].
4306
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
4310
4311
4312
4313
4314Desruisseaux Standards Track [Page 77]
4315
4316RFC 5545 iCalendar September 2009
4317
4318
4319 some calendar information; without the intention of conveying a
4320 scheduling semantic.
4321
4322 Format Definition: This property is defined by the following
4323 notation:
4324
4325 method = "METHOD" metparam ":" metvalue CRLF
4326
4327 metparam = *(";" other-param)
4328
4329 metvalue = iana-token
4330
4331 Example: The following is a hypothetical example of this property to
4332 convey that the iCalendar object is a scheduling request:
4333
4334 METHOD:REQUEST
4335
43363.7.3. Product Identifier
4337
4338 Property Name: PRODID
4339
4340 Purpose: This property specifies the identifier for the product that
4341 created the iCalendar object.
4342
4343 Value Type: TEXT
4344
4345 Property Parameters: IANA and non-standard property parameters can
4346 be specified on this property.
4347
4348 Conformance: The property MUST be specified once in an iCalendar
4349 object.
4350
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].
4354
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.
4359
4360 Format Definition: This property is defined by the following
4361 notation:
4362
4363 prodid = "PRODID" pidparam ":" pidvalue CRLF
4364
4365 pidparam = *(";" other-param)
4366
4367
4368
4369
4370Desruisseaux Standards Track [Page 78]
4371
4372RFC 5545 iCalendar September 2009
4373
4374
4375 pidvalue = text
4376 ;Any text that describes the product and version
4377 ;and that is generally assured of being unique.
4378
4379 Example: The following is an example of this property. It does not
4380 imply that English is the default language.
4381
4382 PRODID:-//ABC Corporation//NONSGML My Product//EN
4383
43843.7.4. Version
4385
4386 Property Name: VERSION
4387
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
4391 iCalendar object.
4392
4393 Value Type: TEXT
4394
4395 Property Parameters: IANA and non-standard property parameters can
4396 be specified on this property.
4397
4398 Conformance: This property MUST be specified once in an iCalendar
4399 object.
4400
4401 Description: A value of "2.0" corresponds to this memo.
4402
4403 Format Definition: This property is defined by the following
4404 notation:
4405
4406 version = "VERSION" verparam ":" vervalue CRLF
4407
4408 verparam = *(";" other-param)
4409
4410 vervalue = "2.0" ;This memo
4411 / maxver
4412 / (minver ";" maxver)
4413
4414 minver = <A IANA-registered iCalendar version identifier>
4415 ;Minimum iCalendar version needed to parse the iCalendar object.
4416
4417 maxver = <A IANA-registered iCalendar version identifier>
4418 ;Maximum iCalendar version needed to parse the iCalendar object.
4419
4420
4421
4422
4423
4424
4425
4426Desruisseaux Standards Track [Page 79]
4427
4428RFC 5545 iCalendar September 2009
4429
4430
4431 Example: The following is an example of this property:
4432
4433 VERSION:2.0
4434
44353.8. Component Properties
4436
4437 The following properties can appear within calendar components, as
4438 specified by each component property definition.
4439
44403.8.1. Descriptive Component Properties
4441
4442 The following properties specify descriptive information about
4443 calendar components.
4444
44453.8.1.1. Attachment
4446
4447 Property Name: ATTACH
4448
4449 Purpose: This property provides the capability to associate a
4450 document object with a calendar component.
4451
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.
4455
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.
4460
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
4464 occur once.
4465
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.
4472
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".
4479
4480
4481
4482Desruisseaux Standards Track [Page 80]
4483
4484RFC 5545 iCalendar September 2009
4485
4486
4487 Format Definition: This property is defined by the following
4488 notation:
4489
4490 attach = "ATTACH" attachparam ( ":" uri ) /
4491 (
4492 ";" "ENCODING" "=" "BASE64"
4493 ";" "VALUE" "=" "BINARY"
4494 ":" binary
4495 )
4496 CRLF
4497
4498 attachparam = *(
4499 ;
4500 ; The following is OPTIONAL for a URI value,
4501 ; RECOMMENDED for a BINARY value,
4502 ; and MUST NOT occur more than once.
4503 ;
4504 (";" fmttypeparam) /
4505 ;
4506 ; The following is OPTIONAL,
4507 ; and MAY occur more than once.
4508 ;
4509 (";" other-param)
4510 ;
4511 )
4512
4513 Example: The following are examples of this property:
4514
4515 ATTACH:CID:jsmith.part3.960817T083000.xyzMail@example.com
4516
4517 ATTACH;FMTTYPE=application/postscript:ftp://example.com/pub/
4518 reports/r-960812.ps
4519
45203.8.1.2. Categories
4521
4522 Property Name: CATEGORIES
4523
4524 Purpose: This property defines the categories for a calendar
4525 component.
4526
4527 Value Type: TEXT
4528
4529 Property Parameters: IANA, non-standard, and language property
4530 parameters can be specified on this property.
4531
4532 Conformance: The property can be specified within "VEVENT", "VTODO",
4533 or "VJOURNAL" calendar components.
4534
4535
4536
4537
4538Desruisseaux Standards Track [Page 81]
4539
4540RFC 5545 iCalendar September 2009
4541
4542
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
4548 of categories.
4549
4550 Format Definition: This property is defined by the following
4551 notation:
4552
4553 categories = "CATEGORIES" catparam ":" text *("," text)
4554 CRLF
4555
4556 catparam = *(
4557 ;
4558 ; The following is OPTIONAL,
4559 ; but MUST NOT occur more than once.
4560 ;
4561 (";" languageparam ) /
4562 ;
4563 ; The following is OPTIONAL,
4564 ; and MAY occur more than once.
4565 ;
4566 (";" other-param)
4567 ;
4568 )
4569
4570 Example: The following are examples of this property:
4571
4572 CATEGORIES:APPOINTMENT,EDUCATION
4573
4574 CATEGORIES:MEETING
4575
45763.8.1.3. Classification
4577
4578 Property Name: CLASS
4579
4580 Purpose: This property defines the access classification for a
4581 calendar component.
4582
4583 Value Type: TEXT
4584
4585 Property Parameters: IANA and non-standard property parameters can
4586 be specified on this property.
4587
4588 Conformance: The property can be specified once in a "VEVENT",
4589 "VTODO", or "VJOURNAL" calendar components.
4590
4591
4592
4593
4594Desruisseaux Standards Track [Page 82]
4595
4596RFC 5545 iCalendar September 2009
4597
4598
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.
4617
4618 Format Definition: This property is defined by the following
4619 notation:
4620
4621 class = "CLASS" classparam ":" classvalue CRLF
4622
4623 classparam = *(";" other-param)
4624
4625 classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token
4626 / x-name
4627 ;Default is PUBLIC
4628
4629 Example: The following is an example of this property:
4630
4631 CLASS:PUBLIC
4632
46333.8.1.4. Comment
4634
4635 Property Name: COMMENT
4636
4637 Purpose: This property specifies non-processing information intended
4638 to provide a comment to the calendar user.
4639
4640 Value Type: TEXT
4641
4642 Property Parameters: IANA, non-standard, alternate text
4643 representation, and language property parameters can be specified
4644 on this property.
4645
4646
4647
4648
4649
4650Desruisseaux Standards Track [Page 83]
4651
4652RFC 5545 iCalendar September 2009
4653
4654
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.
4658
4659 Description: This property is used to specify a comment to the
4660 calendar user.
4661
4662 Format Definition: This property is defined by the following
4663 notation:
4664
4665 comment = "COMMENT" commparam ":" text CRLF
4666
4667 commparam = *(
4668 ;
4669 ; The following are OPTIONAL,
4670 ; but MUST NOT occur more than once.
4671 ;
4672 (";" altrepparam) / (";" languageparam) /
4673 ;
4674 ; The following is OPTIONAL,
4675 ; and MAY occur more than once.
4676 ;
4677 (";" other-param)
4678 ;
4679 )
4680
4681 Example: The following is an example of this property:
4682
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
4687
46883.8.1.5. Description
4689
4690 Property Name: DESCRIPTION
4691
4692 Purpose: This property provides a more complete description of the
4693 calendar component than that provided by the "SUMMARY" property.
4694
4695 Value Type: TEXT
4696
4697 Property Parameters: IANA, non-standard, alternate text
4698 representation, and language property parameters can be specified
4699 on this property.
4700
4701
4702
4703
4704
4705
4706Desruisseaux Standards Track [Page 84]
4707
4708RFC 5545 iCalendar September 2009
4709
4710
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
4714 component.
4715
4716 Description: This property is used in the "VEVENT" and "VTODO" to
4717 capture lengthy textual descriptions associated with the activity.
4718
4719 This property is used in the "VJOURNAL" calendar component to
4720 capture one or more textual journal entries.
4721
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.
4725
4726 Format Definition: This property is defined by the following
4727 notation:
4728
4729 description = "DESCRIPTION" descparam ":" text CRLF
4730
4731 descparam = *(
4732 ;
4733 ; The following are OPTIONAL,
4734 ; but MUST NOT occur more than once.
4735 ;
4736 (";" altrepparam) / (";" languageparam) /
4737 ;
4738 ; The following is OPTIONAL,
4739 ; and MAY occur more than once.
4740 ;
4741 (";" other-param)
4742 ;
4743 )
4744
4745 Example: The following is an example of this property with formatted
4746 line breaks in the property value:
4747
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.
4751
47523.8.1.6. Geographic Position
4753
4754 Property Name: GEO
4755
4756 Purpose: This property specifies information related to the global
4757 position for the activity specified by a calendar component.
4758
4759
4760
4761
4762Desruisseaux Standards Track [Page 85]
4763
4764RFC 5545 iCalendar September 2009
4765
4766
4767 Value Type: FLOAT. The value MUST be two SEMICOLON-separated FLOAT
4768 values.
4769
4770 Property Parameters: IANA and non-standard property parameters can
4771 be specified on this property.
4772
4773 Conformance: This property can be specified in "VEVENT" or "VTODO"
4774 calendar components.
4775
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.
4784
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.
4792
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
4798 Hemisphere.
4799
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.
4810
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
4814 value.
4815
4816
4817
4818Desruisseaux Standards Track [Page 86]
4819
4820RFC 5545 iCalendar September 2009
4821
4822
4823 With the exception of the special condition described above, this
4824 form is specified in [ANSI INCITS 61-1986].
4825
4826 The simple formula for converting degrees-minutes-seconds into
4827 decimal degrees is:
4828
4829 decimal = degrees + minutes/60 + seconds/3600.
4830
4831 Format Definition: This property is defined by the following
4832 notation:
4833
4834 geo = "GEO" geoparam ":" geovalue CRLF
4835
4836 geoparam = *(";" other-param)
4837
4838 geovalue = float ";" float
4839 ;Latitude and Longitude components
4840
4841 Example: The following is an example of this property:
4842
4843 GEO:37.386013;-122.082932
4844
48453.8.1.7. Location
4846
4847 Property Name: LOCATION
4848
4849 Purpose: This property defines the intended venue for the activity
4850 defined by a calendar component.
4851
4852 Value Type: TEXT
4853
4854 Property Parameters: IANA, non-standard, alternate text
4855 representation, and language property parameters can be specified
4856 on this property.
4857
4858 Conformance: This property can be specified in "VEVENT" or "VTODO"
4859 calendar component.
4860
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.
4869
4870
4871
4872
4873
4874Desruisseaux Standards Track [Page 87]
4875
4876RFC 5545 iCalendar September 2009
4877
4878
4879 Format Definition: This property is defined by the following
4880 notation:
4881
4882 location = "LOCATION" locparam ":" text CRLF
4883
4884 locparam = *(
4885 ;
4886 ; The following are OPTIONAL,
4887 ; but MUST NOT occur more than once.
4888 ;
4889 (";" altrepparam) / (";" languageparam) /
4890 ;
4891 ; The following is OPTIONAL,
4892 ; and MAY occur more than once.
4893 ;
4894 (";" other-param)
4895 ;
4896 )
4897
4898 Example: The following are some examples of this property:
4899
4900 LOCATION:Conference Room - F123\, Bldg. 002
4901
4902 LOCATION;ALTREP="http://xyzcorp.com/conf-rooms/f123.vcf":
4903 Conference Room - F123\, Bldg. 002
4904
49053.8.1.8. Percent Complete
4906
4907 Property Name: PERCENT-COMPLETE
4908
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
4911 "Organizer".
4912
4913 Value Type: INTEGER
4914
4915 Property Parameters: IANA and non-standard property parameters can
4916 be specified on this property.
4917
4918 Conformance: This property can be specified once in a "VTODO"
4919 calendar component.
4920
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.
4925
4926
4927
4928
4929
4930Desruisseaux Standards Track [Page 88]
4931
4932RFC 5545 iCalendar September 2009
4933
4934
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
4942 assigned to them.
4943
4944 Format Definition: This property is defined by the following
4945 notation:
4946
4947 percent = "PERCENT-COMPLETE" pctparam ":" integer CRLF
4948
4949 pctparam = *(";" other-param)
4950
4951 Example: The following is an example of this property to show 39%
4952 completion:
4953
4954 PERCENT-COMPLETE:39
4955
49563.8.1.9. Priority
4957
4958 Property Name: PRIORITY
4959
4960 Purpose: This property defines the relative priority for a calendar
4961 component.
4962
4963 Value Type: INTEGER
4964
4965 Property Parameters: IANA and non-standard property parameters can
4966 be specified on this property.
4967
4968 Conformance: This property can be specified in "VEVENT" and "VTODO"
4969 calendar components.
4970
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.
4976
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
4981 is "LOW" priority.
4982
4983
4984
4985
4986Desruisseaux Standards Track [Page 89]
4987
4988RFC 5545 iCalendar September 2009
4989
4990
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
4995 9 specifies "C3".
4996
4997 Other integer values are reserved for future use.
4998
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.
5002
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.
5006
5007 Format Definition: This property is defined by the following
5008 notation:
5009
5010 priority = "PRIORITY" prioparam ":" priovalue CRLF
5011 ;Default is zero (i.e., undefined).
5012
5013 prioparam = *(";" other-param)
5014
5015 priovalue = integer ;Must be in the range [0..9]
5016 ; All other values are reserved for future use.
5017
5018 Example: The following is an example of a property with the highest
5019 priority:
5020
5021 PRIORITY:1
5022
5023 The following is an example of a property with a next highest
5024 priority:
5025
5026 PRIORITY:2
5027
5028 The following is an example of a property with no priority. This
5029 is equivalent to not specifying the "PRIORITY" property:
5030
5031 PRIORITY:0
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042Desruisseaux Standards Track [Page 90]
5043
5044RFC 5545 iCalendar September 2009
5045
5046
50473.8.1.10. Resources
5048
5049 Property Name: RESOURCES
5050
5051 Purpose: This property defines the equipment or resources
5052 anticipated for an activity specified by a calendar component.
5053
5054 Value Type: TEXT
5055
5056 Property Parameters: IANA, non-standard, alternate text
5057 representation, and language property parameters can be specified
5058 on this property.
5059
5060 Conformance: This property can be specified once in "VEVENT" or
5061 "VTODO" calendar component.
5062
5063 Description: The property value is an arbitrary text. More than one
5064 resource can be specified as a COMMA-separated list of resources.
5065
5066 Format Definition: This property is defined by the following
5067 notation:
5068
5069 resources = "RESOURCES" resrcparam ":" text *("," text) CRLF
5070
5071 resrcparam = *(
5072 ;
5073 ; The following are OPTIONAL,
5074 ; but MUST NOT occur more than once.
5075 ;
5076 (";" altrepparam) / (";" languageparam) /
5077 ;
5078 ; The following is OPTIONAL,
5079 ; and MAY occur more than once.
5080 ;
5081 (";" other-param)
5082 ;
5083 )
5084
5085 Example: The following is an example of this property:
5086
5087 RESOURCES:EASEL,PROJECTOR,VCR
5088
5089 RESOURCES;LANGUAGE=fr:Nettoyeur haute pression
5090
5091
5092
5093
5094
5095
5096
5097
5098Desruisseaux Standards Track [Page 91]
5099
5100RFC 5545 iCalendar September 2009
5101
5102
51033.8.1.11. Status
5104
5105 Property Name: STATUS
5106
5107 Purpose: This property defines the overall status or confirmation
5108 for the calendar component.
5109
5110 Value Type: TEXT
5111
5112 Property Parameters: IANA and non-standard property parameters can
5113 be specified on this property.
5114
5115 Conformance: This property can be specified once in "VEVENT",
5116 "VTODO", or "VJOURNAL" calendar components.
5117
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.
5128
5129 Format Definition: This property is defined by the following
5130 notation:
5131
5132 status = "STATUS" statparam ":" statvalue CRLF
5133
5134 statparam = *(";" other-param)
5135
5136 statvalue = (statvalue-event
5137 / statvalue-todo
5138 / statvalue-jour)
5139
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"
5144
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".
5150
5151
5152
5153
5154Desruisseaux Standards Track [Page 92]
5155
5156RFC 5545 iCalendar September 2009
5157
5158
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".
5163
5164 Example: The following is an example of this property for a "VEVENT"
5165 calendar component:
5166
5167 STATUS:TENTATIVE
5168
5169 The following is an example of this property for a "VTODO"
5170 calendar component:
5171
5172 STATUS:NEEDS-ACTION
5173
5174 The following is an example of this property for a "VJOURNAL"
5175 calendar component:
5176
5177 STATUS:DRAFT
5178
51793.8.1.12. Summary
5180
5181 Property Name: SUMMARY
5182
5183 Purpose: This property defines a short summary or subject for the
5184 calendar component.
5185
5186 Value Type: TEXT
5187
5188 Property Parameters: IANA, non-standard, alternate text
5189 representation, and language property parameters can be specified
5190 on this property.
5191
5192 Conformance: The property can be specified in "VEVENT", "VTODO",
5193 "VJOURNAL", or "VALARM" calendar components.
5194
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.
5198
5199 This property is used in the "VALARM" calendar component to
5200 capture the subject of an EMAIL category of alarm.
5201
5202 Format Definition: This property is defined by the following
5203 notation:
5204
5205
5206
5207
5208
5209
5210Desruisseaux Standards Track [Page 93]
5211
5212RFC 5545 iCalendar September 2009
5213
5214
5215 summary = "SUMMARY" summparam ":" text CRLF
5216
5217 summparam = *(
5218 ;
5219 ; The following are OPTIONAL,
5220 ; but MUST NOT occur more than once.
5221 ;
5222 (";" altrepparam) / (";" languageparam) /
5223 ;
5224 ; The following is OPTIONAL,
5225 ; and MAY occur more than once.
5226 ;
5227 (";" other-param)
5228 ;
5229 )
5230
5231 Example: The following is an example of this property:
5232
5233 SUMMARY:Department Party
5234
52353.8.2. Date and Time Component Properties
5236
5237 The following properties specify date and time related information in
5238 calendar components.
5239
52403.8.2.1. Date-Time Completed
5241
5242 Property Name: COMPLETED
5243
5244 Purpose: This property defines the date and time that a to-do was
5245 actually completed.
5246
5247 Value Type: DATE-TIME
5248
5249 Property Parameters: IANA and non-standard property parameters can
5250 be specified on this property.
5251
5252 Conformance: The property can be specified in a "VTODO" calendar
5253 component. The value MUST be specified as a date with UTC time.
5254
5255 Description: This property defines the date and time that a to-do
5256 was actually completed.
5257
5258 Format Definition: This property is defined by the following
5259 notation:
5260
5261
5262
5263
5264
5265
5266Desruisseaux Standards Track [Page 94]
5267
5268RFC 5545 iCalendar September 2009
5269
5270
5271 completed = "COMPLETED" compparam ":" date-time CRLF
5272
5273 compparam = *(";" other-param)
5274
5275 Example: The following is an example of this property:
5276
5277 COMPLETED:19960401T150000Z
5278
52793.8.2.2. Date-Time End
5280
5281 Property Name: DTEND
5282
5283 Purpose: This property specifies the date and time that a calendar
5284 component ends.
5285
5286 Value Type: The default value type is DATE-TIME. The value type can
5287 be set to a DATE value type.
5288
5289 Property Parameters: IANA, non-standard, value data type, and time
5290 zone identifier property parameters can be specified on this
5291 property.
5292
5293 Conformance: This property can be specified in "VEVENT" or
5294 "VFREEBUSY" calendar components.
5295
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.
5303
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.
5308
5309 Format Definition: This property is defined by the following
5310 notation:
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322Desruisseaux Standards Track [Page 95]
5323
5324RFC 5545 iCalendar September 2009
5325
5326
5327 dtend = "DTEND" dtendparam ":" dtendval CRLF
5328
5329 dtendparam = *(
5330 ;
5331 ; The following are OPTIONAL,
5332 ; but MUST NOT occur more than once.
5333 ;
5334 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
5335 (";" tzidparam) /
5336 ;
5337 ; The following is OPTIONAL,
5338 ; and MAY occur more than once.
5339 ;
5340 (";" other-param)
5341 ;
5342 )
5343
5344 dtendval = date-time / date
5345 ;Value MUST match value type
5346
5347 Example: The following is an example of this property:
5348
5349 DTEND:19960401T150000Z
5350
5351 DTEND;VALUE=DATE:19980704
5352
53533.8.2.3. Date-Time Due
5354
5355 Property Name: DUE
5356
5357 Purpose: This property defines the date and time that a to-do is
5358 expected to be completed.
5359
5360 Value Type: The default value type is DATE-TIME. The value type can
5361 be set to a DATE value type.
5362
5363 Property Parameters: IANA, non-standard, value data type, and time
5364 zone identifier property parameters can be specified on this
5365 property.
5366
5367 Conformance: The property can be specified once in a "VTODO"
5368 calendar component.
5369
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
5375
5376
5377
5378Desruisseaux Standards Track [Page 96]
5379
5380RFC 5545 iCalendar September 2009
5381
5382
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.
5387
5388 Format Definition: This property is defined by the following
5389 notation:
5390
5391 due = "DUE" dueparam ":" dueval CRLF
5392
5393 dueparam = *(
5394 ;
5395 ; The following are OPTIONAL,
5396 ; but MUST NOT occur more than once.
5397 ;
5398 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
5399 (";" tzidparam) /
5400 ;
5401 ; The following is OPTIONAL,
5402 ; and MAY occur more than once.
5403 ;
5404 (";" other-param)
5405 ;
5406 )
5407
5408 dueval = date-time / date
5409 ;Value MUST match value type
5410
5411 Example: The following is an example of this property:
5412
5413 DUE:19980430T000000Z
5414
54153.8.2.4. Date-Time Start
5416
5417 Property Name: DTSTART
5418
5419 Purpose: This property specifies when the calendar component begins.
5420
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.
5424
5425 Property Parameters: IANA, non-standard, value data type, and time
5426 zone identifier property parameters can be specified on this
5427 property.
5428
5429 Conformance: This property can be specified once in the "VEVENT",
5430 "VTODO", or "VFREEBUSY" calendar components as well as in the
5431
5432
5433
5434Desruisseaux Standards Track [Page 97]
5435
5436RFC 5545 iCalendar September 2009
5437
5438
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.
5444
5445 Description: Within the "VEVENT" calendar component, this property
5446 defines the start date and time for the event.
5447
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.
5451
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.
5458
5459 Format Definition: This property is defined by the following
5460 notation:
5461
5462 dtstart = "DTSTART" dtstparam ":" dtstval CRLF
5463
5464 dtstparam = *(
5465 ;
5466 ; The following are OPTIONAL,
5467 ; but MUST NOT occur more than once.
5468 ;
5469 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
5470 (";" tzidparam) /
5471 ;
5472 ; The following is OPTIONAL,
5473 ; and MAY occur more than once.
5474 ;
5475 (";" other-param)
5476 ;
5477 )
5478
5479 dtstval = date-time / date
5480 ;Value MUST match value type
5481
5482 Example: The following is an example of this property:
5483
5484 DTSTART:19980118T073000Z
5485
5486
5487
5488
5489
5490Desruisseaux Standards Track [Page 98]
5491
5492RFC 5545 iCalendar September 2009
5493
5494
54953.8.2.5. Duration
5496
5497 Property Name: DURATION
5498
5499 Purpose: This property specifies a positive duration of time.
5500
5501 Value Type: DURATION
5502
5503 Property Parameters: IANA and non-standard property parameters can
5504 be specified on this property.
5505
5506 Conformance: This property can be specified in "VEVENT", "VTODO", or
5507 "VALARM" calendar components.
5508
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"
5518 value.
5519
5520 Format Definition: This property is defined by the following
5521 notation:
5522
5523 duration = "DURATION" durparam ":" dur-value CRLF
5524 ;consisting of a positive duration of time.
5525
5526 durparam = *(";" other-param)
5527
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:
5530
5531 DURATION:PT1H0M0S
5532
5533 The following is an example of this property that specifies an
5534 interval of time of 15 minutes.
5535
5536 DURATION:PT15M
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546Desruisseaux Standards Track [Page 99]
5547
5548RFC 5545 iCalendar September 2009
5549
5550
55513.8.2.6. Free/Busy Time
5552
5553 Property Name: FREEBUSY
5554
5555 Purpose: This property defines one or more free or busy time
5556 intervals.
5557
5558 Value Type: PERIOD
5559
5560 Property Parameters: IANA, non-standard, and free/busy time type
5561 property parameters can be specified on this property.
5562
5563 Conformance: The property can be specified in a "VFREEBUSY" calendar
5564 component.
5565
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.
5569
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.
5573
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
5578 single property).
5579
5580 Format Definition: This property is defined by the following
5581 notation:
5582
5583 freebusy = "FREEBUSY" fbparam ":" fbvalue CRLF
5584
5585 fbparam = *(
5586 ;
5587 ; The following is OPTIONAL,
5588 ; but MUST NOT occur more than once.
5589 ;
5590 (";" fbtypeparam) /
5591 ;
5592 ; The following is OPTIONAL,
5593 ; and MAY occur more than once.
5594 ;
5595 (";" other-param)
5596 ;
5597 )
5598
5599
5600
5601
5602Desruisseaux Standards Track [Page 100]
5603
5604RFC 5545 iCalendar September 2009
5605
5606
5607 fbvalue = period *("," period)
5608 ;Time value MUST be in the UTC time format.
5609
5610 Example: The following are some examples of this property:
5611
5612 FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M
5613
5614 FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H
5615
5616 FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H
5617 ,19970308T230000Z/19970309T000000Z
5618
56193.8.2.7. Time Transparency
5620
5621 Property Name: TRANSP
5622
5623 Purpose: This property defines whether or not an event is
5624 transparent to busy time searches.
5625
5626 Value Type: TEXT
5627
5628 Property Parameters: IANA and non-standard property parameters can
5629 be specified on this property.
5630
5631 Conformance: This property can be specified once in a "VEVENT"
5632 calendar component.
5633
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/
5641 busy time searches.
5642
5643 Format Definition: This property is defined by the following
5644 notation:
5645
5646 transp = "TRANSP" transparam ":" transvalue CRLF
5647
5648 transparam = *(";" other-param)
5649
5650 transvalue = "OPAQUE"
5651 ;Blocks or opaque on busy time searches.
5652 / "TRANSPARENT"
5653 ;Transparent on busy time searches.
5654 ;Default value is OPAQUE
5655
5656
5657
5658Desruisseaux Standards Track [Page 101]
5659
5660RFC 5545 iCalendar September 2009
5661
5662
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:
5665
5666 TRANSP:TRANSPARENT
5667
5668 The following is an example of this property for an event that is
5669 opaque or blocks on free/busy time searches:
5670
5671 TRANSP:OPAQUE
5672
56733.8.3. Time Zone Component Properties
5674
5675 The following properties specify time zone information in calendar
5676 components.
5677
56783.8.3.1. Time Zone Identifier
5679
5680 Property Name: TZID
5681
5682 Purpose: This property specifies the text value that uniquely
5683 identifies the "VTIMEZONE" calendar component in the scope of an
5684 iCalendar object.
5685
5686 Value Type: TEXT
5687
5688 Property Parameters: IANA and non-standard property parameters can
5689 be specified on this property.
5690
5691 Conformance: This property MUST be specified in a "VTIMEZONE"
5692 calendar component.
5693
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
5700 defined).
5701
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.
5708
5709
5710
5711
5712
5713
5714Desruisseaux Standards Track [Page 102]
5715
5716RFC 5545 iCalendar September 2009
5717
5718
5719 Format Definition: This property is defined by the following
5720 notation:
5721
5722 tzid = "TZID" tzidpropparam ":" [tzidprefix] text CRLF
5723
5724 tzidpropparam = *(";" other-param)
5725
5726 ;tzidprefix = "/"
5727 ; Defined previously. Just listed here for reader convenience.
5728
5729 Example: The following are examples of non-globally unique time zone
5730 identifiers:
5731
5732 TZID:America/New_York
5733
5734 TZID:America/Los_Angeles
5735
5736 The following is an example of a fictitious globally unique time
5737 zone identifier:
5738
5739 TZID:/example.org/America/New_York
5740
57413.8.3.2. Time Zone Name
5742
5743 Property Name: TZNAME
5744
5745 Purpose: This property specifies the customary designation for a
5746 time zone description.
5747
5748 Value Type: TEXT
5749
5750 Property Parameters: IANA, non-standard, and language property
5751 parameters can be specified on this property.
5752
5753 Conformance: This property can be specified in "STANDARD" and
5754 "DAYLIGHT" sub-components.
5755
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.
5759
5760 Format Definition: This property is defined by the following
5761 notation:
5762
5763
5764
5765
5766
5767
5768
5769
5770Desruisseaux Standards Track [Page 103]
5771
5772RFC 5545 iCalendar September 2009
5773
5774
5775 tzname = "TZNAME" tznparam ":" text CRLF
5776
5777 tznparam = *(
5778 ;
5779 ; The following is OPTIONAL,
5780 ; but MUST NOT occur more than once.
5781 ;
5782 (";" languageparam) /
5783 ;
5784 ; The following is OPTIONAL,
5785 ; and MAY occur more than once.
5786 ;
5787 (";" other-param)
5788 ;
5789 )
5790
5791 Example: The following are examples of this property:
5792
5793 TZNAME:EST
5794
5795 TZNAME;LANGUAGE=fr-CA:HNE
5796
57973.8.3.3. Time Zone Offset From
5798
5799 Property Name: TZOFFSETFROM
5800
5801 Purpose: This property specifies the offset that is in use prior to
5802 this time zone observance.
5803
5804 Value Type: UTC-OFFSET
5805
5806 Property Parameters: IANA and non-standard property parameters can
5807 be specified on this property.
5808
5809 Conformance: This property MUST be specified in "STANDARD" and
5810 "DAYLIGHT" sub-components.
5811
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,
5821 or behind UTC.
5822
5823
5824
5825
5826Desruisseaux Standards Track [Page 104]
5827
5828RFC 5545 iCalendar September 2009
5829
5830
5831 Format Definition: This property is defined by the following
5832 notation:
5833
5834 tzoffsetfrom = "TZOFFSETFROM" frmparam ":" utc-offset
5835 CRLF
5836
5837 frmparam = *(";" other-param)
5838
5839 Example: The following are examples of this property:
5840
5841 TZOFFSETFROM:-0500
5842
5843 TZOFFSETFROM:+1345
5844
58453.8.3.4. Time Zone Offset To
5846
5847 Property Name: TZOFFSETTO
5848
5849 Purpose: This property specifies the offset that is in use in this
5850 time zone observance.
5851
5852 Value Type: UTC-OFFSET
5853
5854 Property Parameters: IANA and non-standard property parameters can
5855 be specified on this property.
5856
5857 Conformance: This property MUST be specified in "STANDARD" and
5858 "DAYLIGHT" sub-components.
5859
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.
5867
5868 Format Definition: This property is defined by the following
5869 notation:
5870
5871 tzoffsetto = "TZOFFSETTO" toparam ":" utc-offset CRLF
5872
5873 toparam = *(";" other-param)
5874
5875
5876
5877
5878
5879
5880
5881
5882Desruisseaux Standards Track [Page 105]
5883
5884RFC 5545 iCalendar September 2009
5885
5886
5887 Example: The following are examples of this property:
5888
5889 TZOFFSETTO:-0400
5890
5891 TZOFFSETTO:+1245
5892
58933.8.3.5. Time Zone URL
5894
5895 Property Name: TZURL
5896
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.
5900
5901 Value Type: URI
5902
5903 Property Parameters: IANA and non-standard property parameters can
5904 be specified on this property.
5905
5906 Conformance: This property can be specified in a "VTIMEZONE"
5907 calendar component.
5908
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.
5916
5917 Format Definition: This property is defined by the following
5918 notation:
5919
5920 tzurl = "TZURL" tzurlparam ":" uri CRLF
5921
5922 tzurlparam = *(";" other-param)
5923
5924 Example: The following is an example of this property:
5925
5926 TZURL:http://timezones.example.org/tz/America-Los_Angeles.ics
5927
59283.8.4. Relationship Component Properties
5929
5930 The following properties specify relationship information in calendar
5931 components.
5932
5933
5934
5935
5936
5937
5938Desruisseaux Standards Track [Page 106]
5939
5940RFC 5545 iCalendar September 2009
5941
5942
59433.8.4.1. Attendee
5944
5945 Property Name: ATTENDEE
5946
5947 Purpose: This property defines an "Attendee" within a calendar
5948 component.
5949
5950 Value Type: CAL-ADDRESS
5951
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.
5957
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.
5967
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.
5974
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
5991
5992
5993
5994Desruisseaux Standards Track [Page 107]
5995
5996RFC 5545 iCalendar September 2009
5997
5998
5999 "LANGUAGE" property parameter is specified, the identified
6000 language applies to the "CN" parameter.
6001
6002 A recipient delegated a request MUST inherit the "RSVP" and "ROLE"
6003 values from the attendee that delegated the request to them.
6004
6005 Multiple attendees can be specified by including multiple
6006 "ATTENDEE" properties within the calendar component.
6007
6008 Format Definition: This property is defined by the following
6009 notation:
6010
6011 attendee = "ATTENDEE" attparam ":" cal-address CRLF
6012
6013 attparam = *(
6014 ;
6015 ; The following are OPTIONAL,
6016 ; but MUST NOT occur more than once.
6017 ;
6018 (";" cutypeparam) / (";" memberparam) /
6019 (";" roleparam) / (";" partstatparam) /
6020 (";" rsvpparam) / (";" deltoparam) /
6021 (";" delfromparam) / (";" sentbyparam) /
6022 (";" cnparam) / (";" dirparam) /
6023 (";" languageparam) /
6024 ;
6025 ; The following is OPTIONAL,
6026 ; and MAY occur more than once.
6027 ;
6028 (";" other-param)
6029 ;
6030 )
6031
6032 Example: The following are examples of this property's use for a
6033 to-do:
6034
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
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050Desruisseaux Standards Track [Page 108]
6051
6052RFC 5545 iCalendar September 2009
6053
6054
6055 The following is an example of this property used for specifying
6056 multiple attendees to an event:
6057
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@
6062 example.com
6063
6064 The following is an example of this property with a URI to the
6065 directory information associated with the attendee:
6066
6067 ATTENDEE;CN=John Smith;DIR="ldap://example.com:6666/o=ABC%
6068 20Industries,c=US???(cn=Jim%20Dolittle)":mailto:jimdo@
6069 example.com
6070
6071 The following is an example of this property with "delegatee" and
6072 "delegator" information for an event:
6073
6074 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;DELEGATED-FROM=
6075 "mailto:iamboss@example.com";CN=Henry Cabot:mailto:hcabot@
6076 example.com
6077 ATTENDEE;ROLE=NON-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO=
6078 "mailto:hcabot@example.com";CN=The Big Cheese:mailto:iamboss
6079 @example.com
6080 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Jane Doe
6081 :mailto:jdoe@example.com
6082
6083 Example: The following is an example of this property's use when
6084 another calendar user is acting on behalf of the "Attendee":
6085
6086 ATTENDEE;SENT-BY=mailto:jan_doe@example.com;CN=John Smith:
6087 mailto:jsmith@example.com
6088
60893.8.4.2. Contact
6090
6091 Property Name: CONTACT
6092
6093 Purpose: This property is used to represent contact information or
6094 alternately a reference to contact information associated with the
6095 calendar component.
6096
6097 Value Type: TEXT
6098
6099 Property Parameters: IANA, non-standard, alternate text
6100 representation, and language property parameters can be specified
6101 on this property.
6102
6103
6104
6105
6106Desruisseaux Standards Track [Page 109]
6107
6108RFC 5545 iCalendar September 2009
6109
6110
6111 Conformance: This property can be specified in a "VEVENT", "VTODO",
6112 "VJOURNAL", or "VFREEBUSY" calendar component.
6113
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
6118 information.
6119
6120 Format Definition: This property is defined by the following
6121 notation:
6122
6123 contact = "CONTACT" contparam ":" text CRLF
6124
6125 contparam = *(
6126 ;
6127 ; The following are OPTIONAL,
6128 ; but MUST NOT occur more than once.
6129 ;
6130 (";" altrepparam) / (";" languageparam) /
6131 ;
6132 ; The following is OPTIONAL,
6133 ; and MAY occur more than once.
6134 ;
6135 (";" other-param)
6136 ;
6137 )
6138
6139 Example: The following is an example of this property referencing
6140 textual contact information:
6141
6142 CONTACT:Jim Dolittle\, ABC Industries\, +1-919-555-1234
6143
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:
6147
6148 CONTACT;ALTREP="ldap://example.com:6666/o=ABC%20Industries\,
6149 c=US???(cn=Jim%20Dolittle)":Jim Dolittle\, ABC Industries\,
6150 +1-919-555-1234
6151
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]:
6156
6157 CONTACT;ALTREP="CID:part3.msg970930T083000SILVER@example.com":
6158 Jim Dolittle\, ABC Industries\, +1-919-555-1234
6159
6160
6161
6162Desruisseaux Standards Track [Page 110]
6163
6164RFC 5545 iCalendar September 2009
6165
6166
6167 The following is an example of this property referencing a network
6168 resource, such as a vCard [RFC2426] object containing the contact
6169 information:
6170
6171 CONTACT;ALTREP="http://example.com/pdi/jdoe.vcf":Jim
6172 Dolittle\, ABC Industries\, +1-919-555-1234
6173
61743.8.4.3. Organizer
6175
6176 Property Name: ORGANIZER
6177
6178 Purpose: This property defines the organizer for a calendar
6179 component.
6180
6181 Value Type: CAL-ADDRESS
6182
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.
6186
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
6194 user's calendar.
6195
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.
6203
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.
6212
6213
6214
6215
6216
6217
6218Desruisseaux Standards Track [Page 111]
6219
6220RFC 5545 iCalendar September 2009
6221
6222
6223 Format Definition: This property is defined by the following
6224 notation:
6225
6226 organizer = "ORGANIZER" orgparam ":"
6227 cal-address CRLF
6228
6229 orgparam = *(
6230 ;
6231 ; The following are OPTIONAL,
6232 ; but MUST NOT occur more than once.
6233 ;
6234 (";" cnparam) / (";" dirparam) / (";" sentbyparam) /
6235 (";" languageparam) /
6236 ;
6237 ; The following is OPTIONAL,
6238 ; and MAY occur more than once.
6239 ;
6240 (";" other-param)
6241 ;
6242 )
6243
6244 Example: The following is an example of this property:
6245
6246 ORGANIZER;CN=John Smith:mailto:jsmith@example.com
6247
6248 The following is an example of this property with a pointer to the
6249 directory information associated with the organizer:
6250
6251 ORGANIZER;CN=JohnSmith;DIR="ldap://example.com:6666/o=DC%20Ass
6252 ociates,c=US???(cn=John%20Smith)":mailto:jsmith@example.com
6253
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
6257 calendar user:
6258
6259 ORGANIZER;SENT-BY="mailto:jane_doe@example.com":
6260 mailto:jsmith@example.com
6261
62623.8.4.4. Recurrence ID
6263
6264 Property Name: RECURRENCE-ID
6265
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.
6271
6272
6273
6274Desruisseaux Standards Track [Page 112]
6275
6276RFC 5545 iCalendar September 2009
6277
6278
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
6285 with local time.
6286
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.
6290
6291 Conformance: This property can be specified in an iCalendar object
6292 containing a recurring calendar component.
6293
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.
6299
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.
6302
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.
6307
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.
6313
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.
6327
6328
6329
6330Desruisseaux Standards Track [Page 113]
6331
6332RFC 5545 iCalendar September 2009
6333
6334
6335 Similarly, if the duration of the given recurrence instance is
6336 modified, then all subsequence instances are also modified to have
6337 this same duration.
6338
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.
6349
6350 Format Definition: This property is defined by the following
6351 notation:
6352
6353 recurid = "RECURRENCE-ID" ridparam ":" ridval CRLF
6354
6355 ridparam = *(
6356 ;
6357 ; The following are OPTIONAL,
6358 ; but MUST NOT occur more than once.
6359 ;
6360 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
6361 (";" tzidparam) / (";" rangeparam) /
6362 ;
6363 ; The following is OPTIONAL,
6364 ; and MAY occur more than once.
6365 ;
6366 (";" other-param)
6367 ;
6368 )
6369
6370 ridval = date-time / date
6371 ;Value MUST match value type
6372
6373 Example: The following are examples of this property:
6374
6375 RECURRENCE-ID;VALUE=DATE:19960401
6376
6377 RECURRENCE-ID;RANGE=THISANDFUTURE:19960120T120000Z
6378
6379
6380
6381
6382
6383
6384
6385
6386Desruisseaux Standards Track [Page 114]
6387
6388RFC 5545 iCalendar September 2009
6389
6390
63913.8.4.5. Related To
6392
6393 Property Name: RELATED-TO
6394
6395 Purpose: This property is used to represent a relationship or
6396 reference between one calendar component and another.
6397
6398 Value Type: TEXT
6399
6400 Property Parameters: IANA, non-standard, and relationship type
6401 property parameters can be specified on this property.
6402
6403 Conformance: This property can be specified in the "VEVENT",
6404 "VTODO", and "VJOURNAL" calendar components.
6405
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.
6409
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.
6422
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
6433 relationship.
6434
6435
6436
6437
6438
6439
6440
6441
6442Desruisseaux Standards Track [Page 115]
6443
6444RFC 5545 iCalendar September 2009
6445
6446
6447 Format Definition: This property is defined by the following
6448 notation:
6449
6450 related = "RELATED-TO" relparam ":" text CRLF
6451
6452 relparam = *(
6453 ;
6454 ; The following is OPTIONAL,
6455 ; but MUST NOT occur more than once.
6456 ;
6457 (";" reltypeparam) /
6458 ;
6459 ; The following is OPTIONAL,
6460 ; and MAY occur more than once.
6461 ;
6462 (";" other-param)
6463 ;
6464 )
6465
6466 The following is an example of this property:
6467
6468 RELATED-TO:jsmith.part7.19960817T083000.xyzMail@example.com
6469
6470 RELATED-TO:19960401-080045-4000F192713-0052@example.com
6471
64723.8.4.6. Uniform Resource Locator
6473
6474 Property Name: URL
6475
6476 Purpose: This property defines a Uniform Resource Locator (URL)
6477 associated with the iCalendar object.
6478
6479 Value Type: URI
6480
6481 Property Parameters: IANA and non-standard property parameters can
6482 be specified on this property.
6483
6484 Conformance: This property can be specified once in the "VEVENT",
6485 "VTODO", "VJOURNAL", or "VFREEBUSY" calendar components.
6486
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.
6494
6495
6496
6497
6498Desruisseaux Standards Track [Page 116]
6499
6500RFC 5545 iCalendar September 2009
6501
6502
6503 Format Definition: This property is defined by the following
6504 notation:
6505
6506 url = "URL" urlparam ":" uri CRLF
6507
6508 urlparam = *(";" other-param)
6509
6510 Example: The following is an example of this property:
6511
6512 URL:http://example.com/pub/calendars/jsmith/mytime.ics
6513
65143.8.4.7. Unique Identifier
6515
6516 Property Name: UID
6517
6518 Purpose: This property defines the persistent, globally unique
6519 identifier for the calendar component.
6520
6521 Value Type: TEXT
6522
6523 Property Parameters: IANA and non-standard property parameters can
6524 be specified on this property.
6525
6526 Conformance: The property MUST be specified in the "VEVENT",
6527 "VTODO", "VJOURNAL", or "VFREEBUSY" calendar components.
6528
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
6547 that domain.
6548
6549 This is the method for correlating scheduling messages with the
6550 referenced "VEVENT", "VTODO", or "VJOURNAL" calendar component.
6551
6552
6553
6554Desruisseaux Standards Track [Page 117]
6555
6556RFC 5545 iCalendar September 2009
6557
6558
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
6563 recurrence set.
6564
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.
6572
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.
6576
6577 Format Definition: This property is defined by the following
6578 notation:
6579
6580 uid = "UID" uidparam ":" text CRLF
6581
6582 uidparam = *(";" other-param)
6583
6584 Example: The following is an example of this property:
6585
6586 UID:19960401T080045Z-4000F192713-0052@example.com
6587
65883.8.5. Recurrence Component Properties
6589
6590 The following properties specify recurrence information in calendar
6591 components.
6592
65933.8.5.1. Exception Date-Times
6594
6595 Property Name: EXDATE
6596
6597 Purpose: This property defines the list of DATE-TIME exceptions for
6598 recurring events, to-dos, journal entries, or time zone
6599 definitions.
6600
6601 Value Type: The default value type for this property is DATE-TIME.
6602 The value type can be set to DATE.
6603
6604 Property Parameters: IANA, non-standard, value data type, and time
6605 zone identifier property parameters can be specified on this
6606 property.
6607
6608
6609
6610Desruisseaux Standards Track [Page 118]
6611
6612RFC 5545 iCalendar September 2009
6613
6614
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"
6618 calendar component.
6619
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.
6639
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".
6645
6646 Format Definition: This property is defined by the following
6647 notation:
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666Desruisseaux Standards Track [Page 119]
6667
6668RFC 5545 iCalendar September 2009
6669
6670
6671 exdate = "EXDATE" exdtparam ":" exdtval *("," exdtval) CRLF
6672
6673 exdtparam = *(
6674 ;
6675 ; The following are OPTIONAL,
6676 ; but MUST NOT occur more than once.
6677 ;
6678 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
6679 ;
6680 (";" tzidparam) /
6681 ;
6682 ; The following is OPTIONAL,
6683 ; and MAY occur more than once.
6684 ;
6685 (";" other-param)
6686 ;
6687 )
6688
6689 exdtval = date-time / date
6690 ;Value MUST match value type
6691
6692 Example: The following is an example of this property:
6693
6694 EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z
6695
66963.8.5.2. Recurrence Date-Times
6697
6698 Property Name: RDATE
6699
6700 Purpose: This property defines the list of DATE-TIME values for
6701 recurring events, to-dos, journal entries, or time zone
6702 definitions.
6703
6704 Value Type: The default value type for this property is DATE-TIME.
6705 The value type can be set to DATE or PERIOD.
6706
6707 Property Parameters: IANA, non-standard, value data type, and time
6708 zone identifier property parameters can be specified on this
6709 property.
6710
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"
6714 calendar component.
6715
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
6719
6720
6721
6722Desruisseaux Standards Track [Page 120]
6723
6724RFC 5545 iCalendar September 2009
6725
6726
6727 instances are defined by the union of occurrences defined by both
6728 the "RDATE" and "RRULE".
6729
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.
6749
6750 Format Definition: This property is defined by the following
6751 notation:
6752
6753 rdate = "RDATE" rdtparam ":" rdtval *("," rdtval) CRLF
6754
6755 rdtparam = *(
6756 ;
6757 ; The following are OPTIONAL,
6758 ; but MUST NOT occur more than once.
6759 ;
6760 (";" "VALUE" "=" ("DATE-TIME" / "DATE" / "PERIOD")) /
6761 (";" tzidparam) /
6762 ;
6763 ; The following is OPTIONAL,
6764 ; and MAY occur more than once.
6765 ;
6766 (";" other-param)
6767 ;
6768 )
6769
6770 rdtval = date-time / date / period
6771 ;Value MUST match value type
6772
6773
6774
6775
6776
6777
6778Desruisseaux Standards Track [Page 121]
6779
6780RFC 5545 iCalendar September 2009
6781
6782
6783 Example: The following are examples of this property:
6784
6785 RDATE:19970714T123000Z
6786 RDATE;TZID=America/New_York:19970714T083000
6787
6788 RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z,
6789 19960404T010000Z/PT3H
6790
6791 RDATE;VALUE=DATE:19970101,19970120,19970217,19970421
6792 19970526,19970704,19970901,19971014,19971128,19971129,19971225
6793
67943.8.5.3. Recurrence Rule
6795
6796 Property Name: RRULE
6797
6798 Purpose: This property defines a rule or repeating pattern for
6799 recurring events, to-dos, journal entries, or time zone
6800 definitions.
6801
6802 Value Type: RECUR
6803
6804 Property Parameters: IANA and non-standard property parameters can
6805 be specified on this property.
6806
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
6812 undefined.
6813
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"
6831
6832
6833
6834Desruisseaux Standards Track [Page 122]
6835
6836RFC 5545 iCalendar September 2009
6837
6838
6839 and "RDATE" properties, only one recurrence is considered.
6840 Duplicate instances are ignored.
6841
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.
6848
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
6861 type.
6862
6863 Format Definition: This property is defined by the following
6864 notation:
6865
6866 rrule = "RRULE" rrulparam ":" recur CRLF
6867
6868 rrulparam = *(";" other-param)
6869
6870 Example: All examples assume the Eastern United States time zone.
6871
6872 Daily for 10 occurrences:
6873
6874 DTSTART;TZID=America/New_York:19970902T090000
6875 RRULE:FREQ=DAILY;COUNT=10
6876
6877 ==> (1997 9:00 AM EDT) September 2-11
6878
6879 Daily until December 24, 1997:
6880
6881 DTSTART;TZID=America/New_York:19970902T090000
6882 RRULE:FREQ=DAILY;UNTIL=19971224T000000Z
6883
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
6886
6887
6888
6889
6890Desruisseaux Standards Track [Page 123]
6891
6892RFC 5545 iCalendar September 2009
6893
6894
6895 Every other day - forever:
6896
6897 DTSTART;TZID=America/New_York:19970902T090000
6898 RRULE:FREQ=DAILY;INTERVAL=2
6899
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;
6904 December 1,3,...
6905
6906 Every 10 days, 5 occurrences:
6907
6908 DTSTART;TZID=America/New_York:19970902T090000
6909 RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5
6910
6911 ==> (1997 9:00 AM EDT) September 2,12,22;
6912 October 2,12
6913
6914 Every day in January, for 3 years:
6915
6916 DTSTART;TZID=America/New_York:19980101T090000
6917
6918 RRULE:FREQ=YEARLY;UNTIL=20000131T140000Z;
6919 BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA
6920 or
6921 RRULE:FREQ=DAILY;UNTIL=20000131T140000Z;BYMONTH=1
6922
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
6926
6927 Weekly for 10 occurrences:
6928
6929 DTSTART;TZID=America/New_York:19970902T090000
6930 RRULE:FREQ=WEEKLY;COUNT=10
6931
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
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946Desruisseaux Standards Track [Page 124]
6947
6948RFC 5545 iCalendar September 2009
6949
6950
6951 Weekly until December 24, 1997:
6952
6953 DTSTART;TZID=America/New_York:19970902T090000
6954 RRULE:FREQ=WEEKLY;UNTIL=19971224T000000Z
6955
6956 ==> (1997 9:00 AM EDT) September 2,9,16,23,30;
6957 October 7,14,21
6958 (1997 9:00 AM EST) October 28;
6959 November 4,11,18,25;
6960 December 2,9,16,23
6961
6962 Every other week - forever:
6963
6964 DTSTART;TZID=America/New_York:19970902T090000
6965 RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=SU
6966
6967 ==> (1997 9:00 AM EDT) September 2,16,30;
6968 October 14
6969 (1997 9:00 AM EST) October 28;
6970 November 11,25;
6971 December 9,23
6972 (1998 9:00 AM EST) January 6,20;
6973 February 3, 17
6974 ...
6975
6976 Weekly on Tuesday and Thursday for five weeks:
6977
6978 DTSTART;TZID=America/New_York:19970902T090000
6979 RRULE:FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH
6980
6981 or
6982
6983 RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH
6984
6985 ==> (1997 9:00 AM EDT) September 2,4,9,11,16,18,23,25,30;
6986 October 2
6987
6988 Every other week on Monday, Wednesday, and Friday until December
6989 24, 1997, starting on Monday, September 1, 1997:
6990
6991 DTSTART;TZID=America/New_York:19970901T090000
6992 RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;
6993 BYDAY=MO,WE,FR
6994
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;
6999
7000
7001
7002Desruisseaux Standards Track [Page 125]
7003
7004RFC 5545 iCalendar September 2009
7005
7006
7007 December 8,10,12,22
7008
7009 Every other week on Tuesday and Thursday, for 8 occurrences:
7010
7011 DTSTART;TZID=America/New_York:19970902T090000
7012 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH
7013
7014 ==> (1997 9:00 AM EDT) September 2,4,16,18,30;
7015 October 2,14,16
7016
7017 Monthly on the first Friday for 10 occurrences:
7018
7019 DTSTART;TZID=America/New_York:19970905T090000
7020 RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR
7021
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
7026
7027 Monthly on the first Friday until December 24, 1997:
7028
7029 DTSTART;TZID=America/New_York:19970905T090000
7030 RRULE:FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR
7031
7032 ==> (1997 9:00 AM EDT) September 5; October 3
7033 (1997 9:00 AM EST) November 7; December 5
7034
7035 Every other month on the first and last Sunday of the month for 10
7036 occurrences:
7037
7038 DTSTART;TZID=America/New_York:19970907T090000
7039 RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU
7040
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
7045
7046 Monthly on the second-to-last Monday of the month for 6 months:
7047
7048 DTSTART;TZID=America/New_York:19970922T090000
7049 RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO
7050
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
7054
7055
7056
7057
7058Desruisseaux Standards Track [Page 126]
7059
7060RFC 5545 iCalendar September 2009
7061
7062
7063 Monthly on the third-to-the-last day of the month, forever:
7064
7065 DTSTART;TZID=America/New_York:19970928T090000
7066 RRULE:FREQ=MONTHLY;BYMONTHDAY=-3
7067
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
7071 ...
7072
7073 Monthly on the 2nd and 15th of the month for 10 occurrences:
7074
7075 DTSTART;TZID=America/New_York:19970902T090000
7076 RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15
7077
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
7081
7082 Monthly on the first and last day of the month for 10 occurrences:
7083
7084 DTSTART;TZID=America/New_York:19970930T090000
7085 RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1
7086
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
7090
7091 Every 18 months on the 10th thru 15th of the month for 10
7092 occurrences:
7093
7094 DTSTART;TZID=America/New_York:19970910T090000
7095 RRULE:FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,
7096 13,14,15
7097
7098 ==> (1997 9:00 AM EDT) September 10,11,12,13,14,15
7099 (1999 9:00 AM EST) March 10,11,12,13
7100
7101 Every Tuesday, every other month:
7102
7103 DTSTART;TZID=America/New_York:19970902T090000
7104 RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU
7105
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
7109 ...
7110
7111
7112
7113
7114Desruisseaux Standards Track [Page 127]
7115
7116RFC 5545 iCalendar September 2009
7117
7118
7119 Yearly in June and July for 10 occurrences:
7120
7121 DTSTART;TZID=America/New_York:19970610T090000
7122 RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7
7123
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
7129
7130 Note: Since none of the BYDAY, BYMONTHDAY, or BYYEARDAY
7131 components are specified, the day is gotten from "DTSTART".
7132
7133 Every other year on January, February, and March for 10
7134 occurrences:
7135
7136 DTSTART;TZID=America/New_York:19970310T090000
7137 RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3
7138
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
7143
7144 Every third year on the 1st, 100th, and 200th day for 10
7145 occurrences:
7146
7147 DTSTART;TZID=America/New_York:19970101T090000
7148 RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200
7149
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
7157
7158 Every 20th Monday of the year, forever:
7159
7160 DTSTART;TZID=America/New_York:19970519T090000
7161 RRULE:FREQ=YEARLY;BYDAY=20MO
7162
7163 ==> (1997 9:00 AM EDT) May 19
7164 (1998 9:00 AM EDT) May 18
7165 (1999 9:00 AM EDT) May 17
7166 ...
7167
7168
7169
7170Desruisseaux Standards Track [Page 128]
7171
7172RFC 5545 iCalendar September 2009
7173
7174
7175 Monday of week number 20 (where the default start of the week is
7176 Monday), forever:
7177
7178 DTSTART;TZID=America/New_York:19970512T090000
7179 RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO
7180
7181 ==> (1997 9:00 AM EDT) May 12
7182 (1998 9:00 AM EDT) May 11
7183 (1999 9:00 AM EDT) May 17
7184 ...
7185
7186 Every Thursday in March, forever:
7187
7188 DTSTART;TZID=America/New_York:19970313T090000
7189 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH
7190
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
7194 ...
7195
7196 Every Thursday, but only during June, July, and August, forever:
7197
7198 DTSTART;TZID=America/New_York:19970605T090000
7199 RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8
7200
7201 ==> (1997 9:00 AM EDT) June 5,12,19,26;July 3,10,17,24,31;
7202 August 7,14,21,28
7203 (1998 9:00 AM EDT) June 4,11,18,25;July 2,9,16,23,30;
7204 August 6,13,20,27
7205 (1999 9:00 AM EDT) June 3,10,17,24;July 1,8,15,22,29;
7206 August 5,12,19,26
7207 ...
7208
7209 Every Friday the 13th, forever:
7210
7211 DTSTART;TZID=America/New_York:19970902T090000
7212 EXDATE;TZID=America/New_York:19970902T090000
7213 RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13
7214
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
7218 ...
7219
7220
7221
7222
7223
7224
7225
7226Desruisseaux Standards Track [Page 129]
7227
7228RFC 5545 iCalendar September 2009
7229
7230
7231 The first Saturday that follows the first Sunday of the month,
7232 forever:
7233
7234 DTSTART;TZID=America/New_York:19970913T090000
7235 RRULE:FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13
7236
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...
7241 ...
7242
7243 Every 4 years, the first Tuesday after a Monday in November,
7244 forever (U.S. Presidential Election day):
7245
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
7249
7250 ==> (1996 9:00 AM EST) November 5
7251 (2000 9:00 AM EST) November 7
7252 (2004 9:00 AM EST) November 2
7253 ...
7254
7255 The third instance into the month of one of Tuesday, Wednesday, or
7256 Thursday, for the next 3 months:
7257
7258 DTSTART;TZID=America/New_York:19970904T090000
7259 RRULE:FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3
7260
7261 ==> (1997 9:00 AM EDT) September 4;October 7
7262 (1997 9:00 AM EST) November 6
7263
7264 The second-to-last weekday of the month:
7265
7266 DTSTART;TZID=America/New_York:19970929T090000
7267 RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2
7268
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
7272 ...
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282Desruisseaux Standards Track [Page 130]
7283
7284RFC 5545 iCalendar September 2009
7285
7286
7287 Every 3 hours from 9:00 AM to 5:00 PM on a specific day:
7288
7289 DTSTART;TZID=America/New_York:19970902T090000
7290 RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z
7291
7292 ==> (September 2, 1997 EDT) 09:00,12:00,15:00
7293
7294 Every 15 minutes for 6 occurrences:
7295
7296 DTSTART;TZID=America/New_York:19970902T090000
7297 RRULE:FREQ=MINUTELY;INTERVAL=15;COUNT=6
7298
7299 ==> (September 2, 1997 EDT) 09:00,09:15,09:30,09:45,10:00,10:15
7300
7301 Every hour and a half for 4 occurrences:
7302
7303 DTSTART;TZID=America/New_York:19970902T090000
7304 RRULE:FREQ=MINUTELY;INTERVAL=90;COUNT=4
7305
7306 ==> (September 2, 1997 EDT) 09:00,10:30;12:00;13:30
7307
7308 Every 20 minutes from 9:00 AM to 4:40 PM every day:
7309
7310 DTSTART;TZID=America/New_York:19970902T090000
7311 RRULE:FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40
7312 or
7313 RRULE:FREQ=MINUTELY;INTERVAL=20;BYHOUR=9,10,11,12,13,14,15,16
7314
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
7319 ...
7320
7321 An example where the days generated makes a difference because of
7322 WKST:
7323
7324 DTSTART;TZID=America/New_York:19970805T090000
7325 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO
7326
7327 ==> (1997 EDT) August 5,10,19,24
7328
7329 changing only WKST from MO to SU, yields different results...
7330
7331 DTSTART;TZID=America/New_York:19970805T090000
7332 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU
7333
7334 ==> (1997 EDT) August 5,17,19,31
7335
7336
7337
7338Desruisseaux Standards Track [Page 131]
7339
7340RFC 5545 iCalendar September 2009
7341
7342
7343 An example where an invalid date (i.e., February 30) is ignored.
7344
7345 DTSTART;TZID=America/New_York:20070115T090000
7346 RRULE:FREQ=MONTHLY;BYMONTHDAY=15,30;COUNT=5
7347
7348 ==> (2007 EST) January 15,30
7349 (2007 EST) February 15
7350 (2007 EDT) March 15,30
7351
73523.8.6. Alarm Component Properties
7353
7354 The following properties specify alarm information in calendar
7355 components.
7356
73573.8.6.1. Action
7358
7359 Property Name: ACTION
7360
7361 Purpose: This property defines the action to be invoked when an
7362 alarm is triggered.
7363
7364 Value Type: TEXT
7365
7366 Property Parameters: IANA and non-standard property parameters can
7367 be specified on this property.
7368
7369 Conformance: This property MUST be specified once in a "VALARM"
7370 calendar component.
7371
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.
7376
7377 Format Definition: This property is defined by the following
7378 notation:
7379
7380 action = "ACTION" actionparam ":" actionvalue CRLF
7381
7382 actionparam = *(";" other-param)
7383
7384
7385 actionvalue = "AUDIO" / "DISPLAY" / "EMAIL"
7386 / iana-token / x-name
7387
7388 Example: The following are examples of this property in a "VALARM"
7389 calendar component:
7390
7391
7392
7393
7394Desruisseaux Standards Track [Page 132]
7395
7396RFC 5545 iCalendar September 2009
7397
7398
7399 ACTION:AUDIO
7400
7401 ACTION:DISPLAY
7402
74033.8.6.2. Repeat Count
7404
7405 Property Name: REPEAT
7406
7407 Purpose: This property defines the number of times the alarm should
7408 be repeated, after the initial trigger.
7409
7410 Value Type: INTEGER
7411
7412 Property Parameters: IANA and non-standard property parameters can
7413 be specified on this property.
7414
7415 Conformance: This property can be specified in a "VALARM" calendar
7416 component.
7417
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.
7422
7423 Format Definition: This property is defined by the following
7424 notation:
7425
7426 repeat = "REPEAT" repparam ":" integer CRLF
7427 ;Default is "0", zero.
7428
7429 repparam = *(";" other-param)
7430
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:
7434
7435 REPEAT:4
7436 DURATION:PT5M
7437
74383.8.6.3. Trigger
7439
7440 Property Name: TRIGGER
7441
7442 Purpose: This property specifies when an alarm will trigger.
7443
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.
7447
7448
7449
7450Desruisseaux Standards Track [Page 133]
7451
7452RFC 5545 iCalendar September 2009
7453
7454
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
7459 "DURATION".
7460
7461 Conformance: This property MUST be specified in the "VALARM"
7462 calendar component.
7463
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.
7473
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.
7479
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.
7487
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.
7497
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
7503
7504
7505
7506Desruisseaux Standards Track [Page 134]
7507
7508RFC 5545 iCalendar September 2009
7509
7510
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.
7514
7515 Format Definition: This property is defined by the following
7516 notation:
7517
7518 trigger = "TRIGGER" (trigrel / trigabs) CRLF
7519
7520 trigrel = *(
7521 ;
7522 ; The following are OPTIONAL,
7523 ; but MUST NOT occur more than once.
7524 ;
7525 (";" "VALUE" "=" "DURATION") /
7526 (";" trigrelparam) /
7527 ;
7528 ; The following is OPTIONAL,
7529 ; and MAY occur more than once.
7530 ;
7531 (";" other-param)
7532 ;
7533 ) ":" dur-value
7534
7535 trigabs = *(
7536 ;
7537 ; The following is REQUIRED,
7538 ; but MUST NOT occur more than once.
7539 ;
7540 (";" "VALUE" "=" "DATE-TIME") /
7541 ;
7542 ; The following is OPTIONAL,
7543 ; and MAY occur more than once.
7544 ;
7545 (";" other-param)
7546 ;
7547 ) ":" date-time
7548
7549 Example: A trigger set 15 minutes prior to the start of the event or
7550 to-do.
7551
7552 TRIGGER:-PT15M
7553
7554 A trigger set five minutes after the end of an event or the due
7555 date of a to-do.
7556
7557 TRIGGER;RELATED=END:PT5M
7558
7559
7560
7561
7562Desruisseaux Standards Track [Page 135]
7563
7564RFC 5545 iCalendar September 2009
7565
7566
7567 A trigger set to an absolute DATE-TIME.
7568
7569 TRIGGER;VALUE=DATE-TIME:19980101T050000Z
7570
75713.8.7. Change Management Component Properties
7572
7573 The following properties specify change management information in
7574 calendar components.
7575
75763.8.7.1. Date-Time Created
7577
7578 Property Name: CREATED
7579
7580 Purpose: This property specifies the date and time that the calendar
7581 information was created by the calendar user agent in the calendar
7582 store.
7583
7584 Note: This is analogous to the creation date and time for a
7585 file in the file system.
7586
7587 Value Type: DATE-TIME
7588
7589 Property Parameters: IANA and non-standard property parameters can
7590 be specified on this property.
7591
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.
7595
7596 Description: This property specifies the date and time that the
7597 calendar information was created by the calendar user agent in the
7598 calendar store.
7599
7600 Format Definition: This property is defined by the following
7601 notation:
7602
7603 created = "CREATED" creaparam ":" date-time CRLF
7604
7605 creaparam = *(";" other-param)
7606
7607 Example: The following is an example of this property:
7608
7609 CREATED:19960329T133000Z
7610
7611
7612
7613
7614
7615
7616
7617
7618Desruisseaux Standards Track [Page 136]
7619
7620RFC 5545 iCalendar September 2009
7621
7622
76233.8.7.2. Date-Time Stamp
7624
7625 Property Name: DTSTAMP
7626
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
7633 calendar store.
7634
7635 Value Type: DATE-TIME
7636
7637 Property Parameters: IANA and non-standard property parameters can
7638 be specified on this property.
7639
7640 Conformance: This property MUST be included in the "VEVENT",
7641 "VTODO", "VJOURNAL", or "VFREEBUSY" calendar components.
7642
7643 Description: The value MUST be specified in the UTC time format.
7644
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.
7649
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.
7657
7658 In the case of an iCalendar object that doesn't specify a "METHOD"
7659 property, this property is equivalent to the "LAST-MODIFIED"
7660 property.
7661
7662 Format Definition: This property is defined by the following
7663 notation:
7664
7665 dtstamp = "DTSTAMP" stmparam ":" date-time CRLF
7666
7667 stmparam = *(";" other-param)
7668
7669
7670
7671
7672
7673
7674Desruisseaux Standards Track [Page 137]
7675
7676RFC 5545 iCalendar September 2009
7677
7678
7679 Example:
7680
7681 DTSTAMP:19971210T080000Z
7682
76833.8.7.3. Last Modified
7684
7685 Property Name: LAST-MODIFIED
7686
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.
7690
7691 Note: This is analogous to the modification date and time for a
7692 file in the file system.
7693
7694 Value Type: DATE-TIME
7695
7696 Property Parameters: IANA and non-standard property parameters can
7697 be specified on this property.
7698
7699 Conformance: This property can be specified in the "VEVENT",
7700 "VTODO", "VJOURNAL", or "VTIMEZONE" calendar components.
7701
7702 Description: The property value MUST be specified in the UTC time
7703 format.
7704
7705 Format Definition: This property is defined by the following
7706 notation:
7707
7708 last-mod = "LAST-MODIFIED" lstparam ":" date-time CRLF
7709
7710 lstparam = *(";" other-param)
7711
7712 Example: The following is an example of this property:
7713
7714 LAST-MODIFIED:19960817T133000Z
7715
77163.8.7.4. Sequence Number
7717
7718 Property Name: SEQUENCE
7719
7720 Purpose: This property defines the revision sequence number of the
7721 calendar component within a sequence of revisions.
7722
7723 Value Type: INTEGER
7724
7725 Property Parameters: IANA and non-standard property parameters can
7726 be specified on this property.
7727
7728
7729
7730Desruisseaux Standards Track [Page 138]
7731
7732RFC 5545 iCalendar September 2009
7733
7734
7735 Conformance: The property can be specified in "VEVENT", "VTODO", or
7736 "VJOURNAL" calendar component.
7737
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
7741 calendar component.
7742
7743 The "Organizer" includes this property in an iCalendar object that
7744 it sends to an "Attendee" to specify the current version of the
7745 calendar component.
7746
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.
7750
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
7755 requested.
7756
7757 Recurrence instances of a recurring component MAY have different
7758 sequence numbers.
7759
7760 Format Definition: This property is defined by the following
7761 notation:
7762
7763 seq = "SEQUENCE" seqparam ":" integer CRLF
7764 ; Default is "0"
7765
7766 seqparam = *(";" other-param)
7767
7768 Example: The following is an example of this property for a calendar
7769 component that was just created by the "Organizer":
7770
7771 SEQUENCE:0
7772
7773 The following is an example of this property for a calendar
7774 component that has been revised two different times by the
7775 "Organizer":
7776
7777 SEQUENCE:2
7778
77793.8.8. Miscellaneous Component Properties
7780
7781 The following properties specify information about a number of
7782 miscellaneous features of calendar components.
7783
7784
7785
7786Desruisseaux Standards Track [Page 139]
7787
7788RFC 5545 iCalendar September 2009
7789
7790
77913.8.8.1. IANA Properties
7792
7793 Property Name: An IANA-registered property name
7794
7795 Value Type: The default value type is TEXT. The value type can be
7796 set to any value type.
7797
7798 Property Parameters: Any parameter can be specified on this
7799 property.
7800
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.
7805
7806 Format Definition: This property is defined by the following
7807 notation:
7808
7809 iana-prop = iana-token *(";" icalparameter) ":" value CRLF
7810
7811 Example: The following are examples of properties that might be
7812 registered to IANA:
7813
7814 DRESSCODE:CASUAL
7815
7816 NON-SMOKING;VALUE=BOOLEAN:TRUE
7817
78183.8.8.2. Non-Standard Properties
7819
7820 Property Name: Any property name with a "X-" prefix
7821
7822 Purpose: This class of property provides a framework for defining
7823 non-standard properties.
7824
7825 Value Type: The default value type is TEXT. The value type can be
7826 set to any value type.
7827
7828 Property Parameters: IANA, non-standard, and language property
7829 parameters can be specified on this property.
7830
7831 Conformance: This property can be specified in any calendar
7832 component.
7833
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
7839
7840
7841
7842Desruisseaux Standards Track [Page 140]
7843
7844RFC 5545 iCalendar September 2009
7845
7846
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
7855 ignore them.
7856
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.
7861
7862 Format Definition: This property is defined by the following
7863 notation:
7864
7865 x-prop = x-name *(";" icalparameter) ":" value CRLF
7866
7867 Example: The following might be the ABC vendor's extension for an
7868 audio-clip form of subject property:
7869
7870 X-ABC-MMSUBJ;VALUE=URI;FMTTYPE=audio/basic:http://www.example.
7871 org/mysubj.au
7872
78733.8.8.3. Request Status
7874
7875 Property Name: REQUEST-STATUS
7876
7877 Purpose: This property defines the status code returned for a
7878 scheduling request.
7879
7880 Value Type: TEXT
7881
7882 Property Parameters: IANA, non-standard, and language property
7883 parameters can be specified on this property.
7884
7885 Conformance: The property can be specified in the "VEVENT", "VTODO",
7886 "VJOURNAL", or "VFREEBUSY" calendar component.
7887
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.
7891
7892
7893
7894
7895
7896
7897
7898Desruisseaux Standards Track [Page 141]
7899
7900RFC 5545 iCalendar September 2009
7901
7902
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.
7907
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.
7912
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.
7918
7919 +--------+----------------------------------------------------------+
7920 | Short | Longer Return Status Description |
7921 | Return | |
7922 | Status | |
7923 | Code | |
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. |
7928 | | |
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 |
7932 | | taken. |
7933 | | |
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. |
7939 | | |
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 +--------+----------------------------------------------------------+
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954Desruisseaux Standards Track [Page 142]
7955
7956RFC 5545 iCalendar September 2009
7957
7958
7959 Format Definition: This property is defined by the following
7960 notation:
7961
7962 rstatus = "REQUEST-STATUS" rstatparam ":"
7963 statcode ";" statdesc [";" extdata]
7964
7965 rstatparam = *(
7966 ;
7967 ; The following is OPTIONAL,
7968 ; but MUST NOT occur more than once.
7969 ;
7970 (";" languageparam) /
7971 ;
7972 ; The following is OPTIONAL,
7973 ; and MAY occur more than once.
7974 ;
7975 (";" other-param)
7976 ;
7977 )
7978
7979 statcode = 1*DIGIT 1*2("." 1*DIGIT)
7980 ;Hierarchical, numeric return status code
7981
7982 statdesc = text
7983 ;Textual status description
7984
7985 extdata = text
7986 ;Textual exception data. For example, the offending property
7987 ;name and value or complete property line.
7988
7989 Example: The following are some possible examples of this property.
7990
7991 The COMMA and SEMICOLON separator characters in the property value
7992 are BACKSLASH character escaped because they appear in a text
7993 value.
7994
7995 REQUEST-STATUS:2.0;Success
7996
7997 REQUEST-STATUS:3.1;Invalid property value;DTSTART:96-Apr-01
7998
7999 REQUEST-STATUS:2.8; Success\, repeating event ignored. Scheduled
8000 as a single event.;RRULE:FREQ=WEEKLY\;INTERVAL=2
8001
8002 REQUEST-STATUS:4.1;Event conflict. Date-time is busy.
8003
8004 REQUEST-STATUS:3.7;Invalid calendar user;ATTENDEE:
8005 mailto:jsmith@example.com
8006
8007
8008
8009
8010Desruisseaux Standards Track [Page 143]
8011
8012RFC 5545 iCalendar September 2009
8013
8014
80154. iCalendar Object Examples
8016
8017 The following examples are provided as an informational source of
8018 illustrative iCalendar objects consistent with this content type.
8019
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,
8022 September 20, 1996.
8023
8024 BEGIN:VCALENDAR
8025 PRODID:-//xyz Corp//NONSGML PDA Calendar Version 1.0//EN
8026 VERSION:2.0
8027 BEGIN:VEVENT
8028 DTSTAMP:19960704T120000Z
8029 UID:uid1@example.com
8030 ORGANIZER:mailto:jsmith@example.com
8031 DTSTART:19960918T143000Z
8032 DTEND:19960920T220000Z
8033 STATUS:CONFIRMED
8034 CATEGORIES:CONFERENCE
8035 SUMMARY:Networld+Interop Conference
8036 DESCRIPTION:Networld+Interop Conference
8037 and Exhibit\nAtlanta World Congress Center\n
8038 Atlanta\, Georgia
8039 END:VEVENT
8040 END:VCALENDAR
8041
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.
8047
8048 BEGIN:VCALENDAR
8049 PRODID:-//RDU Software//NONSGML HandCal//EN
8050 VERSION:2.0
8051 BEGIN:VTIMEZONE
8052 TZID:America/New_York
8053 BEGIN:STANDARD
8054 DTSTART:19981025T020000
8055 TZOFFSETFROM:-0400
8056 TZOFFSETTO:-0500
8057 TZNAME:EST
8058 END:STANDARD
8059 BEGIN:DAYLIGHT
8060 DTSTART:19990404T020000
8061 TZOFFSETFROM:-0500
8062 TZOFFSETTO:-0400
8063
8064
8065
8066Desruisseaux Standards Track [Page 144]
8067
8068RFC 5545 iCalendar September 2009
8069
8070
8071 TZNAME:EDT
8072 END:DAYLIGHT
8073 END:VTIMEZONE
8074 BEGIN:VEVENT
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
8081 CATEGORIES:MEETING
8082 CLASS:PUBLIC
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
8088 END:VEVENT
8089 END:VCALENDAR
8090
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"
8093 Content Type.
8094
8095 TO:jsmith@example.com
8096 FROM:jdoe@example.com
8097 MIME-VERSION:1.0
8098 MESSAGE-ID:<id3@example.com>
8099 CONTENT-TYPE:text/calendar; method="xyz"; component="VEVENT"
8100
8101 BEGIN:VCALENDAR
8102 METHOD:xyz
8103 VERSION:2.0
8104 PRODID:-//ABC Corporation//NONSGML My Product//EN
8105 BEGIN:VEVENT
8106 DTSTAMP:19970324T120000Z
8107 SEQUENCE:0
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
8114 CLASS:PUBLIC
8115 SUMMARY:Calendaring Interoperability Planning Meeting
8116 DESCRIPTION:Discuss how we can test c&s interoperability\n
8117 using iCalendar and other IETF standards.
8118 LOCATION:LDB Lobby
8119
8120
8121
8122Desruisseaux Standards Track [Page 145]
8123
8124RFC 5545 iCalendar September 2009
8125
8126
8127 ATTACH;FMTTYPE=application/postscript:ftp://example.com/pub/
8128 conf/bkgrnd.ps
8129 END:VEVENT
8130 END:VCALENDAR
8131
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.
8137
8138 BEGIN:VCALENDAR
8139 VERSION:2.0
8140 PRODID:-//ABC Corporation//NONSGML My Product//EN
8141 BEGIN:VTODO
8142 DTSTAMP:19980130T134500Z
8143 SEQUENCE:2
8144 UID:uid4@example.com
8145 ORGANIZER:mailto:unclesam@example.com
8146 ATTENDEE;PARTSTAT=ACCEPTED:mailto:jqpublic@example.com
8147 DUE:19980415T000000
8148 STATUS:NEEDS-ACTION
8149 SUMMARY:Submit Income Taxes
8150 BEGIN:VALARM
8151 ACTION:AUDIO
8152 TRIGGER:19980403T120000Z
8153 ATTACH;FMTTYPE=audio/basic:http://example.com/pub/audio-
8154 files/ssbanner.aud
8155 REPEAT:4
8156 DURATION:PT1H
8157 END:VALARM
8158 END:VTODO
8159 END:VCALENDAR
8160
8161 The following is an example of a journal entry:
8162
8163 BEGIN:VCALENDAR
8164 VERSION:2.0
8165 PRODID:-//ABC Corporation//NONSGML My Product//EN
8166 BEGIN:VJOURNAL
8167 DTSTAMP:19970324T120000Z
8168 UID:uid5@example.com
8169 ORGANIZER:mailto:jsmith@example.com
8170 STATUS:DRAFT
8171 CLASS:PUBLIC
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.
8175
8176
8177
8178Desruisseaux Standards Track [Page 146]
8179
8180RFC 5545 iCalendar September 2009
8181
8182
8183 Definition
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.
8192 END:VJOURNAL
8193 END:VCALENDAR
8194
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.
8198
8199 BEGIN:VCALENDAR
8200 VERSION:2.0
8201 PRODID:-//RDU Software//NONSGML HandCal//EN
8202 BEGIN:VFREEBUSY
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
8210 END:VFREEBUSY
8211 END:VCALENDAR
8212
82135. Recommended Practices
8214
8215 These recommended practices should be followed in order to assure
8216 consistent handling of the following cases for an iCalendar object.
8217
8218 1. Content lines longer than 75 octets SHOULD be folded.
8219
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
8227 "DTSTART" property.
8228
8229 3. When a calendar user receives multiple requests for the same
8230 calendar component (e.g., REQUEST for a "VEVENT" calendar
8231
8232
8233
8234Desruisseaux Standards Track [Page 147]
8235
8236RFC 5545 iCalendar September 2009
8237
8238
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.
8244
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.
8248
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.
8252
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
8255 in the Internet.
8256
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.
8263
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.
8269
82706. Internationalization Considerations
8271
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.
8274
82757. Security Considerations
8276
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
8282 attacks.
8283
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],
8287
8288
8289
8290Desruisseaux Standards Track [Page 148]
8291
8292RFC 5545 iCalendar September 2009
8293
8294
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.
8298
82998. IANA Considerations
8300
83018.1. iCalendar Media Type Registration
8302
8303 The Calendaring and Scheduling Core Object Specification is intended
8304 for use as a MIME content type.
8305
8306 To: ietf-types@iana.org
8307
8308 Subject: Registration of media type text/calendar
8309
8310 Type name: text
8311
8312 Subtype name: calendar
8313
8314 Required parameters: none
8315
8316 Optional parameters: charset, method, component, and optinfo
8317
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.
8325
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.
8342
8343
8344
8345
8346Desruisseaux Standards Track [Page 149]
8347
8348RFC 5545 iCalendar September 2009
8349
8350
8351 The value for the "method" parameter is defined as follows:
8352
8353 method = 1*(ALPHA / DIGIT / "-")
8354 ; IANA-registered iCalendar object method
8355
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.
8360
8361 The value for the "component" parameter is defined as follows:
8362
8363 component = "VEVENT"
8364 / "VTODO"
8365 / "VJOURNAL"
8366 / "VFREEBUSY"
8367 / "VTIMEZONE"
8368 / iana-token
8369 / x-name
8370
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.
8380
8381 The parameter can be specified multiple times.
8382
8383 The value for the "optinfo" parameter is defined as follows:
8384
8385 optinfo = infovalue / qinfovalue
8386
8387 infovalue = iana-token / x-name
8388
8389 qinfovalue = DQUOTE (infovalue) DQUOTE
8390
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.
8399
8400
8401
8402Desruisseaux Standards Track [Page 150]
8403
8404RFC 5545 iCalendar September 2009
8405
8406
8407 Security considerations: See Section 7.
8408
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.
8413
8414 Published specification: This specification.
8415
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.
8422
8423 Additional information:
8424
8425 Magic number(s): None.
8426
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
8430 type.
8431
8432 The file extension of "ifb" is to be used to designate a file
8433 containing free or busy time information consistent with this
8434 MIME content type.
8435
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.
8440
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
8444 type.
8445
8446 Person & email address to contact for further information: See the
8447 "Author's Address" section of this document.
8448
8449 Intended usage: COMMON
8450
8451 Restrictions on usage: There are no restrictions on where this media
8452 type can be used.
8453
8454 Author: See the "Author's Address" section of this document.
8455
8456
8457
8458Desruisseaux Standards Track [Page 151]
8459
8460RFC 5545 iCalendar September 2009
8461
8462
8463 Change controller: IETF
8464
84658.2. New iCalendar Elements Registration
8466
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.
8470
84718.2.1. iCalendar Elements Registration Procedure
8472
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.
8478
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.
8487
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.
8498
84998.2.2. Registration Template for Components
8500
8501 A component is defined by completing the following template.
8502
8503 Component name: The name of the component.
8504
8505 Purpose: The purpose of the component. Give a short but clear
8506 description.
8507
8508 Format definition: The ABNF for the component definition needs to be
8509 specified.
8510
8511
8512
8513
8514Desruisseaux Standards Track [Page 152]
8515
8516RFC 5545 iCalendar September 2009
8517
8518
8519 Description: Any special notes about the component, how it is to be
8520 used, etc.
8521
8522 Example(s): One or more examples of instances of the component need
8523 to be specified.
8524
85258.2.3. Registration Template for Properties
8526
8527 A property is defined by completing the following template.
8528
8529 Property name: The name of the property.
8530
8531 Purpose: The purpose of the property. Give a short but clear
8532 description.
8533
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
8536 specified.
8537
8538 Property parameters: Any of the valid property parameters for the
8539 property MUST be specified.
8540
8541 Conformance: The calendar components in which the property can
8542 appear MUST be specified.
8543
8544 Description: Any special notes about the property, how it is to be
8545 used, etc.
8546
8547 Format definition: The ABNF for the property definition needs to be
8548 specified.
8549
8550 Example(s): One or more examples of instances of the property need
8551 to be specified.
8552
85538.2.4. Registration Template for Parameters
8554
8555 A parameter is defined by completing the following template.
8556
8557 Parameter name: The name of the parameter.
8558
8559 Purpose: The purpose of the parameter. Give a short but clear
8560 description.
8561
8562 Format definition: The ABNF for the parameter definition needs to be
8563 specified.
8564
8565 Description: Any special notes about the parameter, how it is to be
8566 used, etc.
8567
8568
8569
8570Desruisseaux Standards Track [Page 153]
8571
8572RFC 5545 iCalendar September 2009
8573
8574
8575 Example(s): One or more examples of instances of the parameter need
8576 to be specified.
8577
85788.2.5. Registration Template for Value Data Types
8579
8580 A value data type is defined by completing the following template.
8581
8582 Value name: The name of the value type.
8583
8584 Purpose: The purpose of the value type. Give a short but clear
8585 description.
8586
8587 Format definition: The ABNF for the value type definition needs to
8588 be specified.
8589
8590 Description: Any special notes about the value type, how it is to be
8591 used, etc.
8592
8593 Example(s): One or more examples of instances of the value type need
8594 to be specified.
8595
85968.2.6. Registration Template for Values
8597
8598 A value is defined by completing the following template.
8599
8600 Value: The value literal.
8601
8602 Purpose: The purpose of the value. Give a short but clear
8603 description.
8604
8605 Conformance: The calendar properties and/or parameters that can take
8606 this value need to be specified.
8607
8608 Example(s): One or more examples of instances of the value need to
8609 be specified.
8610
8611 The following is a fictitious example of a registration of an
8612 iCalendar value:
8613
8614 Value: TOP-SECRET
8615
8616 Purpose: This value is used to specify the access classification of
8617 top-secret calendar components.
8618
8619 Conformance: This value can be used with the "CLASS" property.
8620
8621
8622
8623
8624
8625
8626Desruisseaux Standards Track [Page 154]
8627
8628RFC 5545 iCalendar September 2009
8629
8630
8631 Example(s): The following is an example of this value used with the
8632 "CLASS" property:
8633
8634 CLASS:TOP-SECRET
8635
86368.3. Initial iCalendar Elements Registries
8637
8638 The IANA created and maintains the following registries for iCalendar
8639 elements with pointers to appropriate reference documents.
8640
86418.3.1. Components Registry
8642
8643 The following table has been used to initialize the components
8644 registry.
8645
8646 +-----------+---------+-------------------------+
8647 | Component | Status | Reference |
8648 +-----------+---------+-------------------------+
8649 | VCALENDAR | Current | RFC 5545, Section 3.4 |
8650 | | | |
8651 | VEVENT | Current | RFC 5545, Section 3.6.1 |
8652 | | | |
8653 | VTODO | Current | RFC 5545, Section 3.6.2 |
8654 | | | |
8655 | VJOURNAL | Current | RFC 5545, Section 3.6.3 |
8656 | | | |
8657 | VFREEBUSY | Current | RFC 5545, Section 3.6.4 |
8658 | | | |
8659 | VTIMEZONE | Current | RFC 5545, Section 3.6.5 |
8660 | | | |
8661 | VALARM | Current | RFC 5545, Section 3.6.6 |
8662 | | | |
8663 | STANDARD | Current | RFC 5545, Section 3.6.5 |
8664 | | | |
8665 | DAYLIGHT | Current | RFC 5545, Section 3.6.5 |
8666 +-----------+---------+-------------------------+
8667
8668
8669
8670
8671
8672
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682Desruisseaux Standards Track [Page 155]
8683
8684RFC 5545 iCalendar September 2009
8685
8686
86878.3.2. Properties Registry
8688
8689 The following table is has been used to initialize the properties
8690 registry.
8691
8692 +------------------+------------+----------------------------+
8693 | Property | Status | Reference |
8694 +------------------+------------+----------------------------+
8695 | CALSCALE | Current | RFC 5545, Section 3.7.1 |
8696 | METHOD | Current | RFC 5545, Section 3.7.2 |
8697 | | | |
8698 | PRODID | Current | RFC 5545, Section 3.7.3 |
8699 | | | |
8700 | VERSION | Current | RFC 5545, Section 3.7.4 |
8701 | | | |
8702 | ATTACH | Current | RFC 5545, Section 3.8.1.1 |
8703 | | | |
8704 | CATEGORIES | Current | RFC 5545, Section 3.8.1.2 |
8705 | | | |
8706 | CLASS | Current | RFC 5545, Section 3.8.1.3 |
8707 | | | |
8708 | COMMENT | Current | RFC 5545, Section 3.8.1.4 |
8709 | | | |
8710 | DESCRIPTION | Current | RFC 5545, Section 3.8.1.5 |
8711 | | | |
8712 | GEO | Current | RFC 5545, Section 3.8.1.6 |
8713 | | | |
8714 | LOCATION | Current | RFC 5545, Section 3.8.1.7 |
8715 | | | |
8716 | PERCENT-COMPLETE | Current | RFC 5545, Section 3.8.1.8 |
8717 | | | |
8718 | PRIORITY | Current | RFC 5545, Section 3.8.1.9 |
8719 | | | |
8720 | RESOURCES | Current | RFC 5545, Section 3.8.1.10 |
8721 | | | |
8722 | STATUS | Current | RFC 5545, Section 3.8.1.11 |
8723 | | | |
8724 | SUMMARY | Current | RFC 5545, Section 3.8.1.12 |
8725 | | | |
8726 | COMPLETED | Current | RFC 5545, Section 3.8.2.1 |
8727 | | | |
8728 | DTEND | Current | RFC 5545, Section 3.8.2.2 |
8729 | | | |
8730 | DUE | Current | RFC 5545, Section 3.8.2.3 |
8731 | | | |
8732 | DTSTART | Current | RFC 5545, Section 3.8.2.4 |
8733 | | | |
8734 | DURATION | Current | RFC 5545, Section 3.8.2.5 |
8735
8736
8737
8738Desruisseaux Standards Track [Page 156]
8739
8740RFC 5545 iCalendar September 2009
8741
8742
8743 | | | |
8744 | FREEBUSY | Current | RFC 5545, Section 3.8.2.6 |
8745 | | | |
8746 | TRANSP | Current | RFC 5545, Section 3.8.2.7 |
8747 | | | |
8748 | TZID | Current | RFC 5545, Section 3.8.3.1 |
8749 | | | |
8750 | TZNAME | Current | RFC 5545, Section 3.8.3.2 |
8751 | | | |
8752 | TZOFFSETFROM | Current | RFC 5545, Section 3.8.3.3 |
8753 | | | |
8754 | TZOFFSETTO | Current | RFC 5545, Section 3.8.3.4 |
8755 | | | |
8756 | TZURL | Current | RFC 5545, Section 3.8.3.5 |
8757 | | | |
8758 | ATTENDEE | Current | RFC 5545, Section 3.8.4.1 |
8759 | | | |
8760 | CONTACT | Current | RFC 5545, Section 3.8.4.2 |
8761 | | | |
8762 | ORGANIZER | Current | RFC 5545, Section 3.8.4.3 |
8763 | | | |
8764 | RECURRENCE-ID | Current | RFC 5545, Section 3.8.4.4 |
8765 | | | |
8766 | RELATED-TO | Current | RFC 5545, Section 3.8.4.5 |
8767 | | | |
8768 | URL | Current | RFC 5545, Section 3.8.4.6 |
8769 | | | |
8770 | UID | Current | RFC 5545, Section 3.8.4.7 |
8771 | | | |
8772 | EXDATE | Current | RFC 5545, Section 3.8.5.1 |
8773 | | | |
8774 | EXRULE | Deprecated | [RFC2445], Section 4.8.5.2 |
8775 | | | |
8776 | RDATE | Current | RFC 5545, Section 3.8.5.2 |
8777 | | | |
8778 | RRULE | Current | RFC 5545, Section 3.8.5.3 |
8779 | | | |
8780 | ACTION | Current | RFC 5545, Section 3.8.6.1 |
8781 | | | |
8782 | REPEAT | Current | RFC 5545, Section 3.8.6.2 |
8783 | | | |
8784 | TRIGGER | Current | RFC 5545, Section 3.8.6.3 |
8785 | | | |
8786 | CREATED | Current | RFC 5545, Section 3.8.7.1 |
8787 | | | |
8788 | DTSTAMP | Current | RFC 5545, Section 3.8.7.2 |
8789 | | | |
8790 | LAST-MODIFIED | Current | RFC 5545, Section 3.8.7.3 |
8791
8792
8793
8794Desruisseaux Standards Track [Page 157]
8795
8796RFC 5545 iCalendar September 2009
8797
8798
8799 | | | |
8800 | SEQUENCE | Current | RFC 5545, Section 3.8.7.4 |
8801 | | | |
8802 | REQUEST-STATUS | Current | RFC 5545, Section 3.8.8.3 |
8803 +------------------+------------+----------------------------+
8804
88058.3.3. Parameters Registry
8806
8807 The following table has been used to initialize the parameters
8808 registry.
8809
8810 +----------------+---------+--------------------------+
8811 | Parameter | Status | Reference |
8812 +----------------+---------+--------------------------+
8813 | ALTREP | Current | RFC 5545, Section 3.2.1 |
8814 | | | |
8815 | CN | Current | RFC 5545, Section 3.2.2 |
8816 | | | |
8817 | CUTYPE | Current | RFC 5545, Section 3.2.3 |
8818 | | | |
8819 | DELEGATED-FROM | Current | RFC 5545, Section 3.2.4 |
8820 | | | |
8821 | DELEGATED-TO | Current | RFC 5545, Section 3.2.5 |
8822 | | | |
8823 | DIR | Current | RFC 5545, Section 3.2.6 |
8824 | | | |
8825 | ENCODING | Current | RFC 5545, Section 3.2.7 |
8826 | | | |
8827 | FMTTYPE | Current | RFC 5545, Section 3.2.8 |
8828 | | | |
8829 | FBTYPE | Current | RFC 5545, Section 3.2.9 |
8830 | | | |
8831 | LANGUAGE | Current | RFC 5545, Section 3.2.10 |
8832 | | | |
8833 | MEMBER | Current | RFC 5545, Section 3.2.11 |
8834 | | | |
8835 | PARTSTAT | Current | RFC 5545, Section 3.2.12 |
8836 | | | |
8837 | RANGE | Current | RFC 5545, Section 3.2.13 |
8838 | | | |
8839 | RELATED | Current | RFC 5545, Section 3.2.14 |
8840 | | | |
8841 | RELTYPE | Current | RFC 5545, Section 3.2.15 |
8842 | | | |
8843 | ROLE | Current | RFC 5545, Section 3.2.16 |
8844 | | | |
8845 | RSVP | Current | RFC 5545, Section 3.2.17 |
8846 | | | |
8847
8848
8849
8850Desruisseaux Standards Track [Page 158]
8851
8852RFC 5545 iCalendar September 2009
8853
8854
8855 | SENT-BY | Current | RFC 5545, Section 3.2.18 |
8856 | | | |
8857 | TZID | Current | RFC 5545, Section 3.2.19 |
8858 | | | |
8859 | VALUE | Current | RFC 5545, Section 3.2.20 |
8860 +----------------+---------+--------------------------+
8861
88628.3.4. Value Data Types Registry
8863
8864 The following table has been used to initialize the value data types
8865 registry.
8866
8867 +-----------------+---------+--------------------------+
8868 | Value Data Type | Status | Reference |
8869 +-----------------+---------+--------------------------+
8870 | BINARY | Current | RFC 5545, Section 3.3.1 |
8871 | | | |
8872 | BOOLEAN | Current | RFC 5545, Section 3.3.2 |
8873 | | | |
8874 | CAL-ADDRESS | Current | RFC 5545, Section 3.3.3 |
8875 | | | |
8876 | DATE | Current | RFC 5545, Section 3.3.4 |
8877 | | | |
8878 | DATE-TIME | Current | RFC 5545, Section 3.3.5 |
8879 | | | |
8880 | DURATION | Current | RFC 5545, Section 3.3.6 |
8881 | | | |
8882 | FLOAT | Current | RFC 5545, Section 3.3.7 |
8883 | | | |
8884 | INTEGER | Current | RFC 5545, Section 3.3.8 |
8885 | | | |
8886 | PERIOD | Current | RFC 5545, Section 3.3.9 |
8887 | | | |
8888 | RECUR | Current | RFC 5545, Section 3.3.10 |
8889 | | | |
8890 | TEXT | Current | RFC 5545, Section 3.3.11 |
8891 | | | |
8892 | TIME | Current | RFC 5545, Section 3.3.12 |
8893 | | | |
8894 | URI | Current | RFC 5545, Section 3.3.13 |
8895 | | | |
8896 | UTC-OFFSET | Current | RFC 5545, Section 3.3.14 |
8897 +-----------------+---------+--------------------------+
8898
8899
8900
8901
8902
8903
8904
8905
8906Desruisseaux Standards Track [Page 159]
8907
8908RFC 5545 iCalendar September 2009
8909
8910
89118.3.5. Calendar User Types Registry
8912
8913 The following table has been used to initialize the calendar user
8914 types registry.
8915
8916 +--------------------+---------+-------------------------+
8917 | Calendar User Type | Status | Reference |
8918 +--------------------+---------+-------------------------+
8919 | INDIVIDUAL | Current | RFC 5545, Section 3.2.3 |
8920 | | | |
8921 | GROUP | Current | RFC 5545, Section 3.2.3 |
8922 | | | |
8923 | RESOURCE | Current | RFC 5545, Section 3.2.3 |
8924 | | | |
8925 | ROOM | Current | RFC 5545, Section 3.2.3 |
8926 | | | |
8927 | UNKNOWN | Current | RFC 5545, Section 3.2.3 |
8928 +--------------------+---------+-------------------------+
8929
89308.3.6. Free/Busy Time Types Registry
8931
8932 The following table has been used to initialize the free/busy time
8933 types registry.
8934
8935 +---------------------+---------+-------------------------+
8936 | Free/Busy Time Type | Status | Reference |
8937 +---------------------+---------+-------------------------+
8938 | FREE | Current | RFC 5545, Section 3.2.9 |
8939 | | | |
8940 | BUSY | Current | RFC 5545, Section 3.2.9 |
8941 | | | |
8942 | BUSY-UNAVAILABLE | Current | RFC 5545, Section 3.2.9 |
8943 | | | |
8944 | BUSY-TENTATIVE | Current | RFC 5545, Section 3.2.9 |
8945 +---------------------+---------+-------------------------+
8946
8947
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962Desruisseaux Standards Track [Page 160]
8963
8964RFC 5545 iCalendar September 2009
8965
8966
89678.3.7. Participation Statuses Registry
8968
8969 The following table has been used to initialize the participation
8970 statuses registry.
8971
8972 +--------------------+---------+--------------------------+
8973 | Participant Status | Status | Reference |
8974 +--------------------+---------+--------------------------+
8975 | NEEDS-ACTION | Current | RFC 5545, Section 3.2.12 |
8976 | | | |
8977 | ACCEPTED | Current | RFC 5545, Section 3.2.12 |
8978 | | | |
8979 | DECLINED | Current | RFC 5545, Section 3.2.12 |
8980 | | | |
8981 | TENTATIVE | Current | RFC 5545, Section 3.2.12 |
8982 | | | |
8983 | DELEGATED | Current | RFC 5545, Section 3.2.12 |
8984 | | | |
8985 | COMPLETED | Current | RFC 5545, Section 3.2.12 |
8986 | | | |
8987 | IN-PROCESS | Current | RFC 5545, Section 3.2.12 |
8988 +--------------------+---------+--------------------------+
8989
89908.3.8. Relationship Types Registry
8991
8992 The following table has been used to initialize the relationship
8993 types registry.
8994
8995 +-------------------+---------+--------------------------+
8996 | Relationship Type | Status | Reference |
8997 +-------------------+---------+--------------------------+
8998 | CHILD | Current | RFC 5545, Section 3.2.15 |
8999 | | | |
9000 | PARENT | Current | RFC 5545, Section 3.2.15 |
9001 | | | |
9002 | SIBLING | Current | RFC 5545, Section 3.2.15 |
9003 +-------------------+---------+--------------------------+
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018Desruisseaux Standards Track [Page 161]
9019
9020RFC 5545 iCalendar September 2009
9021
9022
90238.3.9. Participation Roles Registry
9024
9025 The following table has been used to initialize the participation
9026 roles registry.
9027
9028 +-----------------+---------+--------------------------+
9029 | Role Type | Status | Reference |
9030 +-----------------+---------+--------------------------+
9031 | CHAIR | Current | RFC 5545, Section 3.2.16 |
9032 | | | |
9033 | REQ-PARTICIPANT | Current | RFC 5545, Section 3.2.16 |
9034 | | | |
9035 | OPT-PARTICIPANT | Current | RFC 5545, Section 3.2.16 |
9036 | | | |
9037 | NON-PARTICIPANT | Current | RFC 5545, Section 3.2.16 |
9038 +-----------------+---------+--------------------------+
9039
90408.3.10. Actions Registry
9041
9042 The following table has been used to initialize the actions registry.
9043
9044 +-----------+------------+----------------------------+
9045 | Action | Status | Reference |
9046 +-----------+------------+----------------------------+
9047 | AUDIO | Current | RFC 5545, Section 3.8.6.1 |
9048 | | | |
9049 | DISPLAY | Current | RFC 5545, Section 3.8.6.1 |
9050 | | | |
9051 | EMAIL | Current | RFC 5545, Section 3.8.6.1 |
9052 | | | |
9053 | PROCEDURE | Deprecated | [RFC2445], Section 4.8.6.1 |
9054 +-----------+------------+----------------------------+
9055
90568.3.11. Classifications Registry
9057
9058 The following table has been used to initialize the classifications
9059 registry.
9060
9061 +----------------+---------+---------------------------+
9062 | Classification | Status | Reference |
9063 +----------------+---------+---------------------------+
9064 | PUBLIC | Current | RFC 5545, Section 3.8.1.3 |
9065 | | | |
9066 | PRIVATE | Current | RFC 5545, Section 3.8.1.3 |
9067 | | | |
9068 | CONFIDENTIAL | Current | RFC 5545, Section 3.8.1.3 |
9069 +----------------+---------+---------------------------+
9070
9071
9072
9073
9074Desruisseaux Standards Track [Page 162]
9075
9076RFC 5545 iCalendar September 2009
9077
9078
90798.3.12. Methods Registry
9080
9081 No values are defined in this document for the "METHOD" property.
9082
90839. Acknowledgments
9084
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:
9089
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,
9102 and Sandy Wills.
9103
9104 A special thanks to the working group chairs Aki Niemi and Eliot Lear
9105 for their support and guidance.
9106
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.
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130Desruisseaux Standards Track [Page 163]
9131
9132RFC 5545 iCalendar September 2009
9133
9134
913510. References
9136
913710.1. Normative References
9138
9139 [ISO.8601.2004] International Organization for
9140 Standardization, "Data elements and
9141 interchange formats -- Information interchange
9142 -- Representation of dates and times", 2004.
9143
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.
9149
9150 [RFC2045] Freed, N. and N. Borenstein, "Multipurpose
9151 Internet Mail Extensions (MIME) Part One:
9152 Format of Internet Message Bodies", RFC 2045,
9153 November 1996.
9154
9155 [RFC2046] Freed, N. and N. Borenstein, "Multipurpose
9156 Internet Mail Extensions (MIME) Part Two:
9157 Media Types", RFC 2046, November 1996.
9158
9159 [RFC2119] Bradner, S., "Key words for use in RFCs to
9160 Indicate Requirement Levels", BCP 14,
9161 RFC 2119, March 1997.
9162
9163 [RFC2368] Hoffman, P., Masinter, L., and J. Zawinski,
9164 "The mailto URL scheme", RFC 2368, July 1998.
9165
9166 [RFC3629] Yergeau, F., "UTF-8, a transformation format
9167 of ISO 10646", STD 63, RFC 3629,
9168 November 2003.
9169
9170 [RFC3986] Berners-Lee, T., Fielding, R., and L.
9171 Masinter, "Uniform Resource Identifier (URI):
9172 Generic Syntax", STD 66, RFC 3986,
9173 January 2005.
9174
9175 [RFC4288] Freed, N. and J. Klensin, "Media Type
9176 Specifications and Registration Procedures",
9177 BCP 13, RFC 4288, December 2005.
9178
9179 [RFC4648] Josefsson, S., "The Base16, Base32, and Base64
9180 Data Encodings", RFC 4648, October 2006.
9181
9182
9183
9184
9185
9186Desruisseaux Standards Track [Page 164]
9187
9188RFC 5545 iCalendar September 2009
9189
9190
9191 [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for
9192 Syntax Specifications: ABNF", STD 68,
9193 RFC 5234, January 2008.
9194
9195 [RFC5646] Phillips, A., Ed., and M. Davis, Ed., "Tags
9196 for Identifying Languages", BCP 47, RFC 5646,
9197 September 2009.
9198
9199 [US-ASCII] American National Standards Institute, "Coded
9200 Character Set - 7-bit American Standard Code
9201 for Information Interchange", ANSI X3.4, 1986.
9202
920310.2. Informative References
9204
9205 [2446bis] Daboo, C., "iCalendar Transport-Independent
9206 Interoperability Protocol (iTIP)", Work
9207 in Progress, April 2009.
9208
9209 [2447bis] Melnikov, A., "iCalendar Message-Based
9210 Interoperability Protocol (iMIP)", Work
9211 in Progress, June 2008.
9212
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.
9218
9219 [RFC1738] Berners-Lee, T., Masinter, L., and M.
9220 McCahill, "Uniform Resource Locators (URL)",
9221 RFC 1738, December 1994.
9222
9223 [RFC2392] Levinson, E., "Content-ID and Message-ID
9224 Uniform Resource Locators", RFC 2392,
9225 August 1998.
9226
9227 [RFC2397] Masinter, L., "The "data" URL scheme",
9228 RFC 2397, August 1998.
9229
9230 [RFC2425] Howes, T., Smith, M., and F. Dawson, "A MIME
9231 Content-Type for Directory Information",
9232 RFC 2425, September 1998.
9233
9234 [RFC2426] Dawson, F. and T. Howes, "vCard MIME Directory
9235 Profile", RFC 2426, September 1998.
9236
9237
9238
9239
9240
9241
9242Desruisseaux Standards Track [Page 165]
9243
9244RFC 5545 iCalendar September 2009
9245
9246
9247 [RFC2445] Dawson, F. and Stenerson, D., "Internet
9248 Calendaring and Scheduling Core Object
9249 Specification (iCalendar)", RFC 2445,
9250 November 1998.
9251
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.
9256
9257 [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818,
9258 May 2000.
9259
9260 [RFC4516] Smith, M. and T. Howes, "Lightweight Directory
9261 Access Protocol (LDAP): Uniform Resource
9262 Locator", RFC 4516, June 2006.
9263
9264 [RFC4791] Daboo, C., Desruisseaux, B., and L. Dusseault,
9265 "Calendaring Extensions to WebDAV (CalDAV)",
9266 RFC 4791, March 2007.
9267
9268 [TZDB] Eggert, P. and A.D. Olson, "Sources for Time
9269 Zone and Daylight Saving Time Data",
9270 July 2009,
9271 <http://www.twinsun.com/tz/tz-link.htm>.
9272
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>.
9277
9278
9279
9280
9281
9282
9283
9284
9285
9286
9287
9288
9289
9290
9291
9292
9293
9294
9295
9296
9297
9298Desruisseaux Standards Track [Page 166]
9299
9300RFC 5545 iCalendar September 2009
9301
9302
9303Appendix A. Differences from RFC 2445
9304
9305 This appendix contains a list of changes that have been made in the
9306 Internet Calendaring and Scheduling Core Object Specification from
9307 RFC 2445.
9308
9309A.1. New Restrictions
9310
9311 1. The "DTSTART" property SHOULD be synchronized with the recurrence
9312 rule, if specified.
9313
9314 2. The "RRULE" property SHOULD NOT occur more than once in a
9315 component.
9316
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.
9320
9321 4. The value type of the "DTEND" or "DUE" properties MUST match the
9322 value type of "DTSTART" property.
9323
9324 5. The "DURATION" property can no longer appear in "VFREEBUSY"
9325 components.
9326
9327A.2. Restrictions Removed
9328
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.
9332
9333A.3. Deprecated Features
9334
9335 1. The "EXRULE" property can no longer be specified in a component.
9336
9337 2. The "THISANDPRIOR" value can no longer be used with the "RANGE"
9338 parameter.
9339
9340 3. The "PROCEDURE" value can no longer be used with the "ACTION"
9341 property.
9342
9343 4. The value type RECUR no longer allows multiple values to be
9344 specified by a COMMA-separated list of values.
9345
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.
9349
9350
9351
9352
9353
9354Desruisseaux Standards Track [Page 167]
9355
9356RFC 5545 iCalendar September 2009
9357
9358
9359Author's Address
9360
9361 Bernard Desruisseaux (editor)
9362 Oracle Corporation
9363 600 blvd. de Maisonneuve West
9364 Suite 1900
9365 Montreal, QC H3A 3J2
9366 CANADA
9367
9368 EMail: bernard.desruisseaux@oracle.com
9369 URI: http://www.oracle.com/
9370
9371
9372
9373
9374
9375
9376
9377
9378
9379
9380
9381
9382
9383
9384
9385
9386
9387
9388
9389
9390
9391
9392
9393
9394
9395
9396
9397
9398
9399
9400
9401
9402
9403
9404
9405
9406
9407
9408
9409
9410Desruisseaux Standards Track [Page 168]
9411
9412