idnits 2.17.1
draft-ietf-calsify-rfc2445bis-00.txt:
Checking boilerplate required by RFC 5378 and the IETF Trust (see
https://trustee.ietf.org/license-info):
----------------------------------------------------------------------------
** It looks like you're using RFC 3978 boilerplate. You should update this
to the boilerplate described in the IETF Trust License Policy document
(see https://trustee.ietf.org/license-info), which is required now.
-- Found old boilerplate from RFC 3978, Section 5.1 on line 17.
-- Found old boilerplate from RFC 3978, Section 5.5 on line 6974.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 6951.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 6958.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 6964.
** This document has an original RFC 3978 Section 5.4 Copyright Line,
instead of the newer IETF Trust Copyright according to RFC 4748.
** This document has an original RFC 3978 Section 5.5 Disclaimer, instead
of the newer disclaimer which includes the IETF Trust according to RFC
4748.
Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt:
----------------------------------------------------------------------------
== No 'Intended status' indicated for this document; assuming Proposed
Standard
Checking nits according to https://www.ietf.org/id-info/checklist :
----------------------------------------------------------------------------
** The document seems to lack an IANA Considerations section. (See Section
2.2 of https://www.ietf.org/id-info/checklist for how to handle the case
when there are no actions for IANA.)
== There are 1 instance of lines with non-RFC2606-compliant FQDNs in the
document.
Miscellaneous warnings:
----------------------------------------------------------------------------
== The copyright year in the RFC 3978 Section 5.4 Copyright Line does not
match the current year
== Line 2080 has weird spacing: '...ld this meeti...'
== The document seems to lack the recommended RFC 2119 boilerplate, even if
it appears to use RFC 2119 keywords -- however, there's a paragraph with
a matching beginning. Boilerplate error?
(The document does seem to have the reference to RFC 2119 which the
ID-Checklist requires).
== Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD',
or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please
use uppercase 'NOT' together with RFC 2119 keywords (if that is what you
mean).
Found 'SHOULD not' in this paragraph:
This property SHOULD not be used to alter the interpretation of an
iCalendar object beyond the semantics specified in this memo. For
example, it is not to be used to further the understanding of
non-standard properties.
== Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD',
or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please
use uppercase 'NOT' together with RFC 2119 keywords (if that is what you
mean).
Found 'MUST not' in this paragraph:
property in either a "VEVENT", "VTODO" or "VJOURNAL" calendar
component. They MUST not be specified in an "ATTENDEE" property in a
"VFREEBUSY" or "VALARM" calendar component. If the LANGUAGE property
parameter is specified, the identified language applies to the CN
parameter.
-- The document seems to lack a disclaimer for pre-RFC5378 work, but may
have content which was first submitted before 10 November 2008. If you
have contacted all the original authors and they are all willing to grant
the BCP78 rights to the IETF Trust, then this is fine, and you can ignore
this comment. If not, you may need to add the pre-RFC5378 disclaimer.
(See the Legal Provisions document at
https://trustee.ietf.org/license-info for more information.)
-- The document date (October 11, 2005) is 6769 days in the past. Is this
intentional?
Checking references for intended status: Proposed Standard
----------------------------------------------------------------------------
(See RFCs 3967 and 4897 for information about using normative references
to lower-maturity documents in RFCs)
-- Looks like a reference, but probably isn't: 'ICAL' on line 214
-- Looks like a reference, but probably isn't: 'ITIP' on line 6830
-- Looks like a reference, but probably isn't: 'IMIP' on line 6830
-- Looks like a reference, but probably isn't: 'RFC 2045' on line 5809
-- Looks like a reference, but probably isn't: 'TZ' on line 6119
-- Looks like a reference, but probably isn't: 'ISO 9070' on line 1833
-- Looks like a reference, but probably isn't: 'RFC 2426' on line 3368
-- Looks like a reference, but probably isn't: 'MIME-DIR' on line 3361
-- Looks like a reference, but probably isn't: 'RFC 1738' on line 5854
-- Looks like a reference, but probably isn't: 'RFC 822' on line 3847
-- Looks like a reference, but probably isn't: 'RFC 1766' on line 5061
-- Looks like a reference, but probably isn't: 'ISO 8601' on line 6541
== Unused Reference: '1' is defined on line 6865, but no explicit reference
was found in the text
== Unused Reference: '2' is defined on line 6868, but no explicit reference
was found in the text
== Unused Reference: '3' is defined on line 6871, but no explicit reference
was found in the text
== Unused Reference: '6' is defined on line 6882, but no explicit reference
was found in the text
== Unused Reference: '10' is defined on line 6895, but no explicit
reference was found in the text
== Unused Reference: '11' is defined on line 6898, but no explicit
reference was found in the text
== Unused Reference: '12' is defined on line 6902, but no explicit
reference was found in the text
== Unused Reference: '13' is defined on line 6907, but no explicit
reference was found in the text
== Unused Reference: '14' is defined on line 6912, but no explicit
reference was found in the text
== Unused Reference: '15' is defined on line 6918, but no explicit
reference was found in the text
** Obsolete normative reference: RFC 822 (ref. '1') (Obsoleted by RFC 2822)
** Obsolete normative reference: RFC 1738 (ref. '2') (Obsoleted by RFC
4248, RFC 4266)
** Obsolete normative reference: RFC 1766 (ref. '3') (Obsoleted by RFC
3066, RFC 3282)
** Obsolete normative reference: RFC 2048 (ref. '6') (Obsoleted by RFC
4288, RFC 4289)
** Obsolete normative reference: RFC 2234 (ref. '8') (Obsoleted by RFC 4234)
** Obsolete normative reference: RFC 2279 (ref. '9') (Obsoleted by RFC 3629)
** Obsolete normative reference: RFC 2426 (ref. '10') (Obsoleted by RFC
6350)
** Obsolete normative reference: RFC 2445 (ref. '11') (Obsoleted by RFC
5545)
** Obsolete normative reference: RFC 2446 (ref. '12') (Obsoleted by RFC
5546)
-- Possible downref: Non-RFC (?) normative reference: ref. '13'
== Outdated reference: A later version (-01) exists of
draft-ietf-calsch-icalfpi-00
-- Possible downref: Normative reference to a draft: ref. '14'
-- Possible downref: Non-RFC (?) normative reference: ref. '15'
Summary: 13 errors (**), 0 flaws (~~), 18 warnings (==), 22 comments
(--).
Run idnits with the --verbose option for more detailed information about
the items above.
--------------------------------------------------------------------------------
2 Network Working Group B. Desruisseaux, Ed.
3 Internet-Draft Oracle
4 Expires: April 14, 2006 C. Stoner, Ed.
5 IBM
6 October 11, 2005
8 Internet Calendaring and Scheduling Core Object Specification
9 (iCalendar)
10 draft-ietf-calsify-rfc2445bis-00
12 Status of this Memo
14 By submitting this Internet-Draft, each author represents that any
15 applicable patent or other IPR claims of which he or she is aware
16 have been or will be disclosed, and any of which he or she becomes
17 aware will be disclosed, in accordance with Section 6 of BCP 79.
19 Internet-Drafts are working documents of the Internet Engineering
20 Task Force (IETF), its areas, and its working groups. Note that
21 other groups may also distribute working documents as Internet-
22 Drafts.
24 Internet-Drafts are draft documents valid for a maximum of six months
25 and may be updated, replaced, or obsoleted by other documents at any
26 time. It is inappropriate to use Internet-Drafts as reference
27 material or to cite them other than as "work in progress."
29 The list of current Internet-Drafts can be accessed at
30 http://www.ietf.org/ietf/1id-abstracts.txt.
32 The list of Internet-Draft Shadow Directories can be accessed at
33 http://www.ietf.org/shadow.html.
35 This Internet-Draft will expire on April 14, 2006.
37 Copyright Notice
39 Copyright (C) The Internet Society (2005).
41 Abstract
43 Calendar systems export, transport and sometimes even store calendar
44 information in a standard, interoperable format. This memo defines
45 the common format for openly exchanging calendaring and scheduling
46 information across the Internet, known as the iCalendar object
47 format. An iCalendar object may represent an event, to-do or task,
48 or journal entry (note).
50 Comments are solicited and should be addressed to the working group's
51 mailing list at ietf-calsify@osafoundation.org and/or the editor.
53 Table of Contents
55 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5
56 1.1. Related Memos . . . . . . . . . . . . . . . . . . . . . 5
57 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 7
58 3. Document Conventions . . . . . . . . . . . . . . . . . . . . 8
59 3.1. Formatting Conventions . . . . . . . . . . . . . . . . . 8
60 4. International Considerations . . . . . . . . . . . . . . . . 10
61 5. General Syntax . . . . . . . . . . . . . . . . . . . . . . . 11
62 5.1. Character Set . . . . . . . . . . . . . . . . . . . . . 11
63 5.2. Case Sensitivity . . . . . . . . . . . . . . . . . . . . 11
64 5.3. Content Lines . . . . . . . . . . . . . . . . . . . . . 11
65 5.4. List and Field Separators . . . . . . . . . . . . . . . 14
66 5.5. Multiple Property Values . . . . . . . . . . . . . . . . 14
67 5.6. Binary Content . . . . . . . . . . . . . . . . . . . . . 15
68 5.7. Property Parameter Syntax . . . . . . . . . . . . . . . 15
69 6. iCalendar Objects . . . . . . . . . . . . . . . . . . . . . . 17
70 7. Calendar Components . . . . . . . . . . . . . . . . . . . . . 18
71 7.1. Event Component . . . . . . . . . . . . . . . . . . . . 19
72 7.2. To-do Component . . . . . . . . . . . . . . . . . . . . 22
73 7.3. Journal Component . . . . . . . . . . . . . . . . . . . 24
74 7.4. Free/Busy Component . . . . . . . . . . . . . . . . . . 26
75 7.5. Time Zone Component . . . . . . . . . . . . . . . . . . 29
76 7.6. Alarm Component . . . . . . . . . . . . . . . . . . . . 38
77 8. Properties . . . . . . . . . . . . . . . . . . . . . . . . . 45
78 8.1. Calendar Properties . . . . . . . . . . . . . . . . . . 45
79 8.1.1. Calendar Scale . . . . . . . . . . . . . . . . . . . 45
80 8.1.2. Method . . . . . . . . . . . . . . . . . . . . . . . 46
81 8.1.3. Product Identifier . . . . . . . . . . . . . . . . . 47
82 8.1.4. Version . . . . . . . . . . . . . . . . . . . . . . . 48
83 8.2. Descriptive Component Properties . . . . . . . . . . . . 49
84 8.2.1. Attachment . . . . . . . . . . . . . . . . . . . . . 49
85 8.2.2. Categories . . . . . . . . . . . . . . . . . . . . . 50
86 8.2.3. Classification . . . . . . . . . . . . . . . . . . . 51
87 8.2.4. Comment . . . . . . . . . . . . . . . . . . . . . . . 52
88 8.2.5. Description . . . . . . . . . . . . . . . . . . . . . 53
89 8.2.6. Geographic Position . . . . . . . . . . . . . . . . . 54
90 8.2.7. Location . . . . . . . . . . . . . . . . . . . . . . 56
91 8.2.8. Percent Complete . . . . . . . . . . . . . . . . . . 57
92 8.2.9. Priority . . . . . . . . . . . . . . . . . . . . . . 58
93 8.2.10. Resources . . . . . . . . . . . . . . . . . . . . . . 59
94 8.2.11. Free/Busy Time Type . . . . . . . . . . . . . . . . . 60
95 8.2.12. Participation Status . . . . . . . . . . . . . . . . 61
96 8.2.13. Status . . . . . . . . . . . . . . . . . . . . . . . 63
97 8.2.14. Summary . . . . . . . . . . . . . . . . . . . . . . . 64
98 8.2.15. Date and Time Component Properties . . . . . . . . . 65
99 8.2.16. Time Zone Component Properties . . . . . . . . . . . 73
100 8.2.17. Relationship Component Properties . . . . . . . . . . 77
101 8.2.18. Calendar User Type . . . . . . . . . . . . . . . . . 86
102 8.2.19. Directory Entry Reference . . . . . . . . . . . . . . 87
103 8.2.20. Recurrence ID . . . . . . . . . . . . . . . . . . . . 87
104 8.2.21. Related To . . . . . . . . . . . . . . . . . . . . . 89
105 8.2.22. Uniform Resource Locator . . . . . . . . . . . . . . 91
106 8.2.23. Unique Identifier . . . . . . . . . . . . . . . . . . 91
107 8.2.24. Relationship Type . . . . . . . . . . . . . . . . . . 93
108 8.3. Recurrence Component Properties . . . . . . . . . . . . 94
109 8.3.1. Exception Date/Times . . . . . . . . . . . . . . . . 94
110 8.3.2. Exception Rule . . . . . . . . . . . . . . . . . . . 95
111 8.3.3. Recurrence Date/Times . . . . . . . . . . . . . . . . 97
112 8.3.4. Recurrence Identifier Range . . . . . . . . . . . . . 98
113 8.3.5. Recurrence Rule . . . . . . . . . . . . . . . . . . . 99
114 8.4. Alarm Component Properties . . . . . . . . . . . . . . . 110
115 8.4.1. Action . . . . . . . . . . . . . . . . . . . . . . . 110
116 8.4.2. Alarm Repeat Count . . . . . . . . . . . . . . . . . 111
117 8.4.3. Alarm Trigger . . . . . . . . . . . . . . . . . . . . 111
118 8.5. Alarm Trigger Relationship . . . . . . . . . . . . . . . 114
119 8.6. Change Management Component Properties . . . . . . . . . 114
120 8.6.1. Date/Time Created . . . . . . . . . . . . . . . . . . 114
121 8.6.2. Date/Time Stamp . . . . . . . . . . . . . . . . . . . 115
122 8.6.3. Last Modified . . . . . . . . . . . . . . . . . . . . 116
123 8.6.4. Sequence Number . . . . . . . . . . . . . . . . . . . 117
124 8.7. Miscellaneous Component Properties . . . . . . . . . . . 118
125 8.7.1. RSVP Expectation . . . . . . . . . . . . . . . . . . 118
126 8.7.2. Language . . . . . . . . . . . . . . . . . . . . . . 119
127 8.7.3. Group or List Membership . . . . . . . . . . . . . . 120
128 8.7.4. Alternate Text Representation . . . . . . . . . . . . 121
129 8.7.5. Inline Encoding . . . . . . . . . . . . . . . . . . . 121
130 8.7.6. Format Type . . . . . . . . . . . . . . . . . . . . . 122
131 8.7.7. Non-standard Properties . . . . . . . . . . . . . . . 123
132 8.7.8. Request Status . . . . . . . . . . . . . . . . . . . 124
133 9. iCalendar Object Examples . . . . . . . . . . . . . . . . . . 127
134 10. Recommended Practices . . . . . . . . . . . . . . . . . . . . 132
135 11. Registration of Content Type Elements . . . . . . . . . . . . 134
136 11.1. Registration of New and Modified iCalendar Object
137 Methods . . . . . . . . . . . . . . . . . . . . . . . . 134
138 11.2. Registration of New Properties . . . . . . . . . . . . . 134
139 11.3. Define the property . . . . . . . . . . . . . . . . . . 134
140 11.4. Post the Property definition . . . . . . . . . . . . . . 136
141 11.5. Allow a comment period . . . . . . . . . . . . . . . . . 136
142 11.6. Submit the property for approval . . . . . . . . . . . . 136
143 11.7. Property Change Control . . . . . . . . . . . . . . . . 136
144 12. Property Parameters . . . . . . . . . . . . . . . . . . . . . 138
145 13. Value Data Types . . . . . . . . . . . . . . . . . . . . . . 139
146 13.1. Binary . . . . . . . . . . . . . . . . . . . . . . . . . 139
147 13.2. Boolean . . . . . . . . . . . . . . . . . . . . . . . . 140
148 13.3. Calendar User Address . . . . . . . . . . . . . . . . . 140
149 13.4. Date . . . . . . . . . . . . . . . . . . . . . . . . . . 141
150 13.5. Date-Time . . . . . . . . . . . . . . . . . . . . . . . 141
151 13.6. Duration . . . . . . . . . . . . . . . . . . . . . . . . 143
152 13.7. Period of Time . . . . . . . . . . . . . . . . . . . . . 144
153 13.8. Time Zone Identifier . . . . . . . . . . . . . . . . . . 145
154 13.9. Recurrence Rule . . . . . . . . . . . . . . . . . . . . 146
155 13.10. Float . . . . . . . . . . . . . . . . . . . . . . . . . 152
156 13.11. Integer . . . . . . . . . . . . . . . . . . . . . . . . 152
157 13.12. Text . . . . . . . . . . . . . . . . . . . . . . . . . . 153
158 13.13. Time . . . . . . . . . . . . . . . . . . . . . . . . . . 154
159 13.14. URI . . . . . . . . . . . . . . . . . . . . . . . . . . 156
160 13.15. UTC Offset . . . . . . . . . . . . . . . . . . . . . . . 157
161 14. Security Considerations . . . . . . . . . . . . . . . . . . . 159
162 15. IANA MIME Media Type Registration . . . . . . . . . . . . . . 160
163 16. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 163
164 17. Normative References . . . . . . . . . . . . . . . . . . . . 163
165 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 165
166 Intellectual Property and Copyright Statements . . . . . . . . . 166
168 1. Introduction
170 The use of calendaring and scheduling has grown considerably in the
171 last decade. Enterprise and inter-enterprise business has become
172 dependent on rapid scheduling of events and actions using this
173 information technology. However, the longer term growth of
174 calendaring and scheduling, is currently limited by the lack of
175 Internet standards for the message content types that are central to
176 these knowledgeware applications. This memo is intended to progress
177 the level of interoperability possible between dissimilar calendaring
178 and scheduling applications. This memo defines a MIME [5] content
179 type for exchanging electronic calendaring and scheduling
180 information. The Internet Calendaring and Scheduling Core Object
181 Specification, or iCalendar, allows for the capture and exchange of
182 information normally stored within a calendaring and scheduling
183 application; such as a Personal Information Manager or a Group
184 Scheduling product.
186 The iCalendar format is suitable as an exchange format between
187 applications or systems. The format is defined in terms of a MIME
188 content type. This will enable the object to be exchanged using
189 several transports, including but not limited to SMTP, HTTP, a file
190 system, desktop interactive protocols such as the use of a memory-
191 based clipboard or drag/drop interactions, point-to-point
192 asynchronous communication, wired-network transport, or some form of
193 unwired transport such as infrared might also be used.
195 The memo also provides for the definition of iCalendar object methods
196 that will map this content type to a set of messages for supporting
197 calendaring and scheduling operations such as requesting, replying
198 to, modifying, and canceling meetings or appointments, to-dos and
199 journal entries. The iCalendar object methods can be used to define
200 other calendaring and scheduling operations such a requesting for and
201 replying with free/busy time data. [[Comment.1: Removed forward
202 reference to ITIP (unnecessary) --Lisa D]]
204 The memo also includes a formal grammar for the content type based on
205 the Internet ABNF defined in RFC 2234 [8]. This ABNF is required for
206 the implementation of parsers and to serve as the definitive
207 reference when ambiguities or questions arise in interpreting the
208 descriptive prose definition of the memo.
210 1.1. Related Memos
212 Implementers will need to be familiar with several other memos that,
213 along with this memo, form a framework for Internet calendaring and
214 scheduling standards. This memo, [ICAL], specifies a core
215 specification of objects, data types, properties and property
216 parameters.
218 [ITIP] - specifies an interoperability protocol for scheduling
219 between different implementations;
221 [IMIP] specifies an Internet email binding for [ITIP].
223 This memo does not attempt to repeat the specification of concepts or
224 definitions from these other memos. Where possible, references are
225 made to the memo that provides for the specification of these
226 concepts or definitions. [[Comment.2: If we keep this section on
227 related memos, we have to think about whether ITIP and IMIP are
228 progressing to Draft at the same time, whether to update those
229 references and whether to add CalDAV or other references. --Lisa D]]
231 2. Overview
233 This draft section provides a high-level overview of the concepts of
234 iCalendar and the organization of this document.
236 An iCalendar object contains a set of calendar properties and a set
237 of components. Components consist of a set of component properties.
238 Properties consist of a property name, a set of parameters, and a
239 property value.
241 The preliminary material of this document includes the introduction,
242 this overview, some document conventions and the considerations for
243 internationalization.
245 Section 5 provides the general syntax rules used by all of iCalendar,
246 such as character set, line length and line break rules, and which
247 characters are separators.
249 Section 6 defines the iCalendar object itself, and Section 7 covers
250 the components that appear in iCalendar objects.
252 3. Document Conventions
254 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
255 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" and
256 "OPTIONAL" in this document are to be interoperated as described in
257 RFC 2119 [7].
259 This memo makes use of both a descriptive prose and a more formal
260 notation for defining the calendaring and scheduling format.
262 The notation used in this memo is the ABNF notation of RFC 2234 [8].
263 Readers intending on implementing this format defined in this memo
264 should be familiar with this notation in order to properly interpret
265 the specifications of this memo.
267 Note: All indented editorial notes, such as this one, are intended to
268 provide the reader with additional information. The information is
269 not essential to the building of an implementation conformant with
270 this memo. The information is provided to highlight a particular
271 feature or characteristic of the memo. [[Comment.3: This section can
272 be deleted because it provides practically no information and is not
273 a normative reference: The format for the iCalendar object is based
274 on the syntax of the RFC 2425 content type. While the iCalendar
275 object is not a profile of the RFC 2425 content type, it does reuse a
276 number of the elements from the RFC 2425 specification. --Lisa D]]
278 3.1. Formatting Conventions
280 The mechanisms defined in this memo are defined in prose. Many of
281 the terms used to describe these have common usage that is different
282 than the standards usage of this memo. In order to reference within
283 this memo elements of the calendaring and scheduling model, core
284 object (this memo) or interoperability protocol [ITIP] some
285 formatting conventions have been used. Calendaring and scheduling
286 roles are referred to in quoted-strings of text with the first
287 character of each word in upper case. For example, "Organizer"
288 refers to a role of a "Calendar User" within the scheduling protocol
289 defined by [ITIP]. Calendar components defined by this memo are
290 referred to with capitalized, quoted-strings of text. All calendar
291 components start with the letter "V". For example, "VEVENT" refers
292 to the event calendar component, "VTODO" refers to the to-do calendar
293 component and "VJOURNAL" refers to the daily journal calendar
294 component. Scheduling methods defined by [ITIP] are referred to with
295 capitalized, quoted-strings of text. For example, "REQUEST" refers
296 to the method for requesting a scheduling calendar component be
297 created or modified, "REPLY" refers to the method a recipient of a
298 request uses to update their status with the "Organizer" of the
299 calendar component.
301 The properties defined by this memo are referred to with capitalized,
302 quoted-strings of text, followed by the word "property". For
303 example, "ATTENDEE" property refers to the iCalendar property used to
304 convey the calendar address of a calendar user. Property parameters
305 defined by this memo are referred to with lowercase, quoted-strings
306 of text, followed by the word "parameter". For example, "value"
307 parameter refers to the iCalendar property parameter used to override
308 the default data type for a property value. Enumerated values
309 defined by this memo are referred to with capitalized text, either
310 alone or followed by the word "value". For example, the "MINUTELY"
311 value can be used with the "FREQ" component of the "RECUR" data type
312 to specify repeating components based on an interval of one minute or
313 more.
315 4. International Considerations
317 In the rest of this document, descriptions of characters are of the
318 form "character name (codepoint)", where "codepoint" is from the US-
319 ASCII character set. The "character name" is the authoritative
320 description; (codepoint) is a reference to that character in US-ASCII
321 or US-ASCII compatible sets (for example the ISO-8859-x family, UTF-
322 8, ISO-2022-xx, KOI8-R). If a non-US-ASCII compatible character set
323 is used, appropriate code-point from that character set MUST be
324 chosen instead. Use of non-US-ASCII-compatible character sets is NOT
325 recommended.
327 5. General Syntax
329 5.1. Character Set
331 The default character set for an iCalendar object is UTF-8 as defined
332 in RFC 2279 [9]. The "charset" Content-Type parameter can be used in
333 MIME transports to specify any other IANA registered character set.
334 [[Comment.4: I think we need to say something about interoperability
335 problems which result from using any other charset. --Lisa D]]
337 5.2. Case Sensitivity
339 All names of properties, property parameters, enumerated property
340 values and property parameter values are case-insensitive. However,
341 all other property values are case-sensitive, unless otherwise
342 stated.
344 5.3. Content Lines
346 The iCalendar object is organized into individual lines of text,
347 called content lines. Content lines are delimited by a line break,
348 which is a CRLF sequence (US-ASCII decimal 13, followed by US-ASCII
349 decimal 10).
351 Lines of text SHOULD NOT be longer than 75 octets, excluding the line
352 break. Long content lines SHOULD be split into a multiple line
353 representations using the line "folding" technique. That is, a long
354 line can be split between any two characters by inserting a CRLF
355 immediately followed by a single linear white space character (i.e.,
356 SPACE, US-ASCII decimal 32 or HTAB, US-ASCII decimal 9). Any
357 sequence of CRLF followed immediately by a single linear white space
358 character is ignored (i.e., removed) when processing the content
359 type.
361 For example the line:
363 DESCRIPTION:This is a long description that exists on a long line.
365 Figure 1
367 Can be represented as:
369 DESCRIPTION:This is a lo
370 ng description
371 that exists on a long line.
373 Figure 2
374 The process of moving from this folded multiple line representation
375 to its single line representation is called "unfolding". Unfolding
376 is accomplished by removing the CRLF character and the linear white
377 space character that immediately follows.
379 When parsing a content line, folded lines MUST first be unfolded
380 according to the unfolding procedure described above. When
381 generating a content line, lines longer than 75 octets SHOULD be
382 folded according to the folding procedure described above. Content
383 lines are CRLF-separated. [[Comment.5: Removed reference to 2425
384 again and simply stated that lines are CRLF-separated --Lisa]]
386 The following ABNF defines the lines of content in an iCalendar
387 object:
389 contentline = name *(";" param ) ":" value CRLF
390 ; This ABNF is just a general definition for an initial parsing
391 ; of the content line into its property name, parameter list,
392 ; and value string
394 ; When parsing a content line, folded lines MUST first
395 ; be unfolded according to the unfolding procedure
396 ; described above. When generating a content line, lines
397 ; longer than 75 octets SHOULD be folded according to
398 ; the folding procedure described above.
400 name = x-name / iana-token
402 iana-token = 1*(ALPHA / DIGIT / "-")
403 ; iCalendar identifier registered with IANA
405 x-name = "X-" [vendorid "-"] 1*(ALPHA / DIGIT / "-")
406 ; Reservered for experimental use. Not intended for use in
407 ; released products.
409 vendorid = 3*(ALPHA / DIGIT) ;Vendor identification
411 param = param-name "=" param-value
412 *("," param-value)
413 ; Each property defines the specific ABNF for the parameters
414 ; allowed on the property. Refer to specific properties for
415 ; precise parameter ABNF.
417 param-name = iana-token / x-token
419 param-value = paramtext / quoted-string
421 paramtext = *SAFE-CHAR
422 value = *VALUE-CHAR
424 quoted-string = DQUOTE *QSAFE-CHAR DQUOTE
426 NON-US-ASCII = %x80-F8
427 ; Use restricted by charset parameter
428 ; on outer MIME object (UTF-8 preferred)
430 QSAFE-CHAR = WSP / %x21 / %x23-7E / NON-US-ASCII
431 ; Any character except CTLs and DQUOTE
433 SAFE-CHAR = WSP / %x21 / %x23-2B / %x2D-39 / %x3C-7E
434 / NON-US-ASCII
435 ; Any character except CTLs, DQUOTE, ";", ":", ","
437 VALUE-CHAR = WSP / %x21-7E / NON-US-ASCII
438 ; Any textual character
440 CR = %x0D
441 ; carriage return
443 LF = %x0A
444 ; line feed
446 CRLF = CR LF
447 ; Internet standard newline
449 CTL = %x00-08 / %x0A-1F / %x7F
450 ; Controls
452 ALPHA = %x41-5A / %x61-7A ; A-Z / a-z
454 DIGIT = %x30-39
455 ; 0-9
457 DQUOTE = %x22
458 ; Quotation Mark
460 WSP = SPACE / HTAB
462 SPACE = %x20
464 HTAB = %x09
466 Figure 3
468 The property value component of a content line has a format that is
469 property specific. Refer to the section describing each property for
470 a definition of this format.
472 All names of properties, property parameters, enumerated property
473 values and property parameter values are case-insensitive. However,
474 all other property values are case-sensitive, unless otherwise
475 stated.
477 5.4. List and Field Separators
479 Some properties and parameters allow a list of values. Values in a
480 list of values MUST be separated by a COMMA character (US-ASCII
481 decimal 44). There is no significance to the order of values in a
482 list. For those parameter values (such as those that specify URI
483 values) that are specified in quoted-strings, the individual quoted-
484 strings are separated by a COMMA character (US-ASCII decimal 44).
486 Some property values are defined in terms of multiple parts. These
487 structured property values MUST have their value parts separated by a
488 SEMICOLON character (US-ASCII decimal 59).
490 Some properties allow a list of parameters. Each property parameter
491 in a list of property parameters MUST be separated by a SEMICOLON
492 character (US-ASCII decimal 59).
494 Property parameters with values containing a COLON, a SEMICOLON or a
495 COMMA character MUST be placed in quoted text.
497 For example, in the following properties a SEMICOLON is used to
498 separate property parameters from each other, and a COMMA is used to
499 separate property values in a value list.
501 ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT:MAILTO:
502 jsmith@host.com
504 RDATE;VALUE=DATE:19970304,19970504,19970704,19970904
506 5.5. Multiple Property Values
508 Some properties defined in the iCalendar object can have multiple
509 values. The general rule for encoding multi-valued items is to
510 simply create a new content line for each value, including the
511 property name. However, it should be noted that some properties
512 support encoding multiple values in a single property by separating
513 the values with a COMMA character (US-ASCII decimal 44). Individual
514 property definitions should be consulted for determining whether a
515 specific property allows multiple values and in which of these two
516 forms.
518 5.6. Binary Content
520 Binary content information in an iCalendar object SHOULD be
521 referenced using a URI within a property value. That is the binary
522 content information SHOULD be placed in an external MIME entity that
523 can be referenced by a URI from within the iCalendar object. In
524 applications where this is not feasible, binary content information
525 can be included within an iCalendar object, but only after first
526 encoding it into text using the "BASE64" encoding method defined in
527 [RFC 2045]. Inline binary contact SHOULD only be used in
528 applications whose special circumstances demand that an iCalendar
529 object be expressed as a single entity. A property containing inline
530 binary content information MUST specify the "ENCODING" property
531 parameter. Binary content information placed external to the
532 iCalendar object MUST be referenced by a uniform resource identifier
533 (URI).
535 The following example specifies an "ATTACH" property that references
536 an attachment external to the iCalendar object with a URI reference:
538 ATTACH:http://xyz.com/public/quarterly-report.doc
540 The following example specifies an "ATTACH" property with inline
541 binary encoded content information:
543 ATTACH;FMTTYPE=image/basic;ENCODING=BASE64;VALUE=BINARY:
544 MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1U
545 EBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bmljYXRpb25zIE
546 [...remainder of "BASE64" encoded binary data...]
548 5.7. Property Parameter Syntax
550 A property can have attributes associated with it. These "property
551 parameters" contain meta-information about the property or the
552 property value. Property parameters are provided to specify such
553 information as the location of an alternate text representation for a
554 property value, the language of a text property value, the data type
555 of the property value and other attributes.
557 Property parameter values that contain the COLON (US-ASCII decimal
558 58), SEMICOLON (US-ASCII decimal 59) or COMMA (US-ASCII decimal 44)
559 character separators MUST be specified as quoted-string text values.
560 Property parameter values MUST NOT contain the DOUBLE-QUOTE (US-ASCII
561 decimal 22) character. The DOUBLE-QUOTE (US-ASCII decimal 22)
562 character is used as a delimiter for parameter values that contain
563 restricted characters or URI text. For example:
565 DESCRIPTION;ALTREP="http://www.wiz.org":The Fall'98 Wild Wizards
566 Conference - - Las Vegas, NV, USA
568 Property parameter values that are not in quoted strings are case
569 insensitive.
571 6. iCalendar Objects
573 The Calendaring and Scheduling Core Object is a collection of
574 calendaring and scheduling information. Typically, this information
575 will consist of a single iCalendar object. However, multiple
576 iCalendar objects can be sequentially grouped together. The first
577 line and last line of the iCalendar object MUST contain a pair of
578 iCalendar object delimiter strings.
580 The syntax for an iCalendar object is as follows:
582 icalobject = 1*("BEGIN" ":" "VCALENDAR" CRLF
583 icalbody
584 "END" ":" "VCALENDAR" CRLF)
586 Figure 8
588 The following is a simple example of an iCalendar object:
590 BEGIN:VCALENDAR
591 VERSION:2.0
592 PRODID:-//hacksw/handcal//NONSGML v1.0//EN
593 BEGIN:VEVENT
594 DTSTART:19970714T170000Z
595 DTEND:19970715T035959Z
596 SUMMARY:Bastille Day Party
597 END:VEVENT
598 END:VCALENDAR
600 Figure 9
602 7. Calendar Components
604 The body of an iCalendar object consists of a sequence of calendar
605 properties and one or more calendar components. The calendar
606 properties are attributes that apply to the calendar as a whole. The
607 calendar components are collections of properties that express a
608 particular calendar semantic. For example, the calendar component
609 can specify an event, a to-do, a journal entry, time zone
610 information, or free/busy time information, or an alarm.
612 The body of the iCalendar object is defined by the following
613 notation:
615 icalbody = calprops component
617 calprops = 2*(
619 ; 'prodid' and 'version' are both REQUIRED,
620 ; but MUST NOT occur more than once
622 prodid /version /
624 ; 'calscale' and 'method' are optional,
625 ; but MUST NOT occur more than once
627 calscale /
628 method /
630 x-prop
632 )
634 component = 1*(eventc / todoc / journalc / freebusyc /
635 / timezonec / iana-comp / x-comp)
637 iana-comp = "BEGIN" ":" iana-token CRLF
639 1*contentline
641 "END" ":" iana-token CRLF
643 x-comp = "BEGIN" ":" x-name CRLF
645 1*contentline
647 "END" ":" x-name CRLF
649 Figure 10
651 An iCalendar object MUST include the "PRODID" and "VERSION" calendar
652 properties. In addition, it MUST include at least one calendar
653 component. Special forms of iCalendar objects are possible to
654 publish just busy time (i.e., only a "VFREEBUSY" calendar component)
655 or time zone (i.e., only a "VTIMEZONE" calendar component)
656 information. In addition, a complex iCalendar object is possible
657 that is used to capture a complete snapshot of the contents of a
658 calendar (e.g., composite of many different calendar components).
659 More commonly, an iCalendar object will consist of just a single
660 "VEVENT", "VTODO" or "VJOURNAL" calendar component.
662 7.1. Event Component
664 Component Name: VEVENT
666 Purpose: Provide a grouping of component properties that describe an
667 event.
669 Formal Definition: A "VEVENT" calendar component is defined by the
670 following notation:
672 eventc = "BEGIN" ":" "VEVENT" CRLF
673 eventprop *alarmc
674 "END" ":" "VEVENT" CRLF
676 eventprop = *(
678 ; the following are optional,
679 ; but MUST NOT occur more than once
681 class / created / description / dtstart / geo /
683 last-mod / location / organizer / priority /
684 dtstamp / seq / status / summary / transp /
685 uid / url / recurid /
687 ; either 'dtend' or 'duration' may appear in
688 ; a 'eventprop', but 'dtend' and 'duration'
689 ; MUST NOT occur in the same 'eventprop'
691 dtend / duration /
693 ; the following are optional,
694 ; and MAY occur more than once
696 attach / attendee / categories / comment /
697 contact / exdate / exrule / rstatus / related /
698 resources / rdate / rrule / x-prop
700 )
702 Figure 11
704 Description: A "VEVENT" calendar component is a grouping of component
705 properties, and possibly including "VALARM" calendar components, that
706 represents a scheduled amount of time on a calendar. For example, it
707 can be an activity; such as a one-hour long, department meeting from
708 8:00 AM to 9:00 AM, tomorrow. Generally, an event will take up time
709 on an individual calendar. Hence, the event will appear as an opaque
710 interval in a search for busy time. Alternately, the event can have
711 its Time Transparency set to "TRANSPARENT" in order to prevent
712 blocking of the event in searches for busy time.
714 The "VEVENT" is also the calendar component used to specify an
715 anniversary or daily reminder within a calendar. These events have a
716 DATE value type for the "DTSTART" property instead of the default
717 data type of DATE-TIME. If such a "VEVENT" has a "DTEND" property,
718 it MUST be specified as a DATE value also. The anniversary type of
719 "VEVENT" can span more than one date (i.e, "DTEND" property value is
720 set to a calendar date after the "DTSTART" property value).
722 The "DTSTART" property for a "VEVENT" specifies the inclusive start
723 of the event. For recurring events, it also specifies the very first
724 instance in the recurrence set. The "DTEND" property for a "VEVENT"
725 calendar component specifies the non-inclusive end of the event. For
726 cases where a "VEVENT" calendar component specifies a "DTSTART"
727 property with a DATE data type but no "DTEND" property, the events
728 non-inclusive end is the end of the calendar date specified by the
729 "DTSTART" property. For cases where a "VEVENT" calendar component
730 specifies a "DTSTART" property with a DATE-TIME data type but no
731 "DTEND" property, the event ends on the same calendar date and time
732 of day specified by the "DTSTART" property.
734 The "VEVENT" calendar component cannot be nested within another
735 calendar component. However, "VEVENT" calendar components can be
736 related to each other or to a "VTODO" or to a "VJOURNAL" calendar
737 component with the "RELATED-TO" property.
739 Example 1: The following is an example of the "VEVENT" calendar
740 component used to represent a meeting that will also be opaque to
741 searches for busy time:
743 BEGIN:VEVENT
744 UID:19970901T130000Z-123401@host.com
745 DTSTAMP:19970901T1300Z
746 DTSTART:19970903T163000Z
747 DTEND:19970903T190000Z
748 SUMMARY:Annual Employee Review
749 CLASS:PRIVATE
750 CATEGORIES:BUSINESS,HUMAN RESOURCES
751 END:VEVENT
753 Figure 12
754 Example 2: The following is an example of the "VEVENT" calendar
755 component used to represent a reminder that will not be opaque, but
756 rather transparent, to searches for busy time:
758 BEGIN:VEVENT
759 UID:19970901T130000Z-123402@host.com
760 DTSTAMP:19970901T1300Z
761 DTSTART:19970401T163000Z
762 DTEND:19970402T010000Z
763 SUMMARY:Laurel is in sensitivity awareness class.
764 CLASS:PUBLIC
765 CATEGORIES:BUSINESS,HUMAN RESOURCES
766 TRANSP:TRANSPARENT
767 END:VEVENT
769 Figure 13
771 Example 3: The following is an example of the "VEVENT" calendar
772 component used to represent an anniversary that will occur annually.
773 Since it takes up no time, it will not appear as opaque in a search
774 for busy time; no matter what the value of the "TRANSP" property
775 indicates:
777 BEGIN:VEVENT
778 UID:19970901T130000Z-123403@host.com
779 DTSTAMP:19970901T1300Z
780 DTSTART:19971102
781 SUMMARY:Our Blissful Anniversary
782 CLASS:CONFIDENTIAL
783 CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION
784 RRULE:FREQ=YEARLY
785 END:VEVENT
787 Figure 14
789 7.2. To-do Component
791 Component Name: VTODO
793 Purpose: Provide a grouping of calendar properties that describe a
794 to-do.
796 Formal Definition: A "VTODO" calendar component is defined by the
797 following notation:
799 todoc = "BEGIN" ":" "VTODO" CRLF
800 todoprop *alarmc
801 "END" ":" "VTODO" CRLF
803 todoprop = *(
805 ; the following are optional,
806 ; but MUST NOT occur more than once
808 class / completed / created / description / dtstamp /
809 dtstart / geo / last-mod / location / organizer /
810 percent / priority / recurid / seq / status /
811 summary / uid / url /
813 ; either 'due' or 'duration' may appear in
814 ; a 'todoprop', but 'due' and 'duration'
815 ; MUST NOT occur in the same 'todoprop'
817 due / duration /
819 ; the following are optional,
820 ; and MAY occur more than once
821 attach / attendee / categories / comment / contact /
822 exdate / exrule / rstatus / related / resources /
823 rdate / rrule / x-prop
825 )
827 Figure 15
829 Description: A "VTODO" calendar component is a grouping of component
830 properties and possibly "VALARM" calendar components that represent
831 an action-item or assignment. For example, it can be used to
832 represent an item of work assigned to an individual; such as "turn in
833 travel expense today".
835 The "VTODO" calendar component cannot be nested within another
836 calendar component. However, "VTODO" calendar components can be
837 related to each other or to a "VTODO" or to a "VJOURNAL" calendar
838 component with the "RELATED-TO" property.
840 A "VTODO" calendar component without the "DTSTART" and "DUE" (or
841 "DURATION") properties specifies a to-do that will be associated with
842 each successive calendar date, until it is completed.
844 Example: The following is an example of a "VTODO" calendar component:
846 BEGIN:VTODO
847 UID:19970901T130000Z-123404@host.com
848 DTSTAMP:19970901T1300Z
849 DTSTART:19970415T133000Z
850 DUE:19970416T045959Z
851 SUMMARY:1996 Income Tax Preparation
852 CLASS:CONFIDENTIAL
853 CATEGORIES:FAMILY,FINANCE
854 PRIORITY:1
855 STATUS:NEEDS-ACTION
856 END:VTODO
858 Figure 16
860 7.3. Journal Component
862 Component Name: VJOURNAL
864 Purpose: Provide a grouping of component properties that describe a
865 journal entry.
867 Formal Definition: A "VJOURNAL" calendar component is defined by the
868 following notation:
870 journalc = "BEGIN" ":" "VJOURNAL" CRLF
871 jourprop
872 "END" ":" "VJOURNAL" CRLF
874 jourprop = *(
876 ; the following are optional,
877 ; but MUST NOT occur more than once
879 class / created / description / dtstart / dtstamp /
880 last-mod / organizer / recurid / seq / status /
881 summary / uid / url /
883 ; the following are optional,
884 ; and MAY occur more than once
886 attach / attendee / categories / comment /
887 contact / exdate / exrule / related / rdate /
888 rrule / rstatus / x-prop
890 )
892 Figure 17
894 Description: A "VJOURNAL" calendar component is a grouping of
895 component properties that represent one or more descriptive text
896 notes associated with a particular calendar date. The "DTSTART"
897 property is used to specify the calendar date that the journal entry
898 is associated with. Generally, it will have a DATE value data type,
899 but it can also be used to specify a DATE-TIME value data type.
900 Examples of a journal entry include a daily record of a legislative
901 body or a journal entry of individual telephone contacts for the day
902 or an ordered list of accomplishments for the day. The "VJOURNAL"
903 calendar component can also be used to associate a document with a
904 calendar date.
906 The "VJOURNAL" calendar component does not take up time on a
907 calendar. Hence, it does not play a role in free or busy time
908 searches - - it is as though it has a time transparency value of
909 TRANSPARENT. It is transparent to any such searches.
911 The "VJOURNAL" calendar component cannot be nested within another
912 calendar component. However, "VJOURNAL" calendar components can be
913 related to each other or to a "VEVENT" or to a "VTODO" calendar
914 component, with the "RELATED-TO" property.
916 Example: The following is an example of the "VJOURNAL" calendar
917 component:
919 BEGIN:VJOURNAL
920 UID:19970901T130000Z-123405@host.com
921 DTSTAMP:19970901T1300Z
922 DTSTART;VALUE=DATE:19970317
923 SUMMARY:Staff meeting minutes
924 DESCRIPTION:1. Staff meeting: Participants include Joe\, Lisa
925 and Bob. Aurora project plans were reviewed. There is currently
926 no budget reserves for this project. Lisa will escalate to
927 management. Next meeting on Tuesday.\n
928 2. Telephone Conference: ABC Corp. sales representative called
929 to discuss new printer. Promised to get us a demo by Friday.\n
930 3. Henry Miller (Handsoff Insurance): Car was totaled by tree.
931 Is looking into a loaner car. 654-2323 (tel).
932 END:VJOURNAL
934 Figure 18
936 7.4. Free/Busy Component
938 Component Name: VFREEBUSY
940 Purpose: Provide a grouping of component properties that describe
941 either a request for free/busy time, describe a response to a request
942 for free/busy time or describe a published set of busy time.
944 Formal Definition: A "VFREEBUSY" calendar component is defined by the
945 following notation:
947 freebusyc = "BEGIN" ":" "VFREEBUSY" CRLF
948 fbprop
949 "END" ":" "VFREEBUSY" CRLF
951 fbprop = *(
953 ; the following are optional,
954 ; but MUST NOT occur more than once
956 contact / dtstart / dtend / duration / dtstamp /
957 organizer / uid / url /
959 ; the following are optional,
960 ; and MAY occur more than once
962 attendee / comment / freebusy / rstatus / x-prop
964 )
966 Figure 19
968 Description: A "VFREEBUSY" calendar component is a grouping of
969 component properties that represents either a request for, a reply to
970 a request for free or busy time information or a published set of
971 busy time information.
973 When used to request free/busy time information, the "ATTENDEE"
974 property specifies the calendar users whose free/busy time is being
975 requested; the "ORGANIZER" property specifies the calendar user who
976 is requesting the free/busy time; the "DTSTART" and "DTEND"
977 properties specify the window of time for which the free/busy time is
978 being requested; the "UID" and "DTSTAMP" properties are specified to
979 assist in proper sequencing of multiple free/busy time requests.
981 When used to reply to a request for free/busy time, the "ATTENDEE"
982 property specifies the calendar user responding to the free/busy time
983 request; the "ORGANIZER" property specifies the calendar user that
984 originally requested the free/busy time; the "FREEBUSY" property
985 specifies the free/busy time information (if it exists); and the
987 "UID" and "DTSTAMP" properties are specified to assist in proper
988 sequencing of multiple free/busy time replies.
990 When used to publish busy time, the "ORGANIZER" property specifies
991 the calendar user associated with the published busy time; the
992 "DTSTART" and "DTEND" properties specify an inclusive time window
993 that surrounds the busy time information; the "FREEBUSY" property
994 specifies the published busy time information; and the "DTSTAMP"
995 property specifies the date/time that iCalendar object was created.
997 The "VFREEBUSY" calendar component cannot be nested within another
998 calendar component. Multiple "VFREEBUSY" calendar components can be
999 specified within an iCalendar object. This permits the grouping of
1000 Free/Busy information into logical collections, such as monthly
1001 groups of busy time information.
1003 The "VFREEBUSY" calendar component is intended for use in iCalendar
1004 object methods involving requests for free time, requests for busy
1005 time, requests for both free and busy, and the associated replies.
1007 Free/Busy information is represented with the "FREEBUSY" property.
1008 This property provides a terse representation of time periods. One
1009 or more "FREEBUSY" properties can be specified in the "VFREEBUSY"
1010 calendar component.
1012 When present in a "VFREEBUSY" calendar component, the "DTSTART" and
1013 "DTEND" properties SHOULD be specified prior to any "FREEBUSY"
1014 properties. In a free time request, these properties can be used in
1015 combination with the "DURATION" property to represent a request for a
1016 duration of free time within a specified window of time.
1018 The recurrence properties ("RRULE", "EXRULE", "RDATE", "EXDATE") are
1019 not permitted within a "VFREEBUSY" calendar component. Any recurring
1020 events are resolved into their individual busy time periods using the
1021 "FREEBUSY" property.
1023 Example 1: The following is an example of a "VFREEBUSY" calendar
1024 component used to request free or busy time information:
1026 BEGIN:VFREEBUSY
1027 ORGANIZER:MAILTO:jane_doe@host1.com
1028 ATTENDEE:MAILTO:john_public@host2.com
1029 DTSTART:19971015T050000Z
1030 DTEND:19971016T050000Z
1031 DTSTAMP:19970901T083000Z
1032 END:VFREEBUSY
1034 Figure 20
1035 Example 2: A "VFREEBUSY" calendar component used to reply to the
1036 request with busy time information.
1038 BEGIN:VFREEBUSY
1039 ORGANIZER:MAILTO:jane_doe@host1.com
1040 ATTENDEE:MAILTO:john_public@host2.com
1041 DTSTAMP:19970901T100000Z
1042 FREEBUSY;VALUE=PERIOD:19971015T050000Z/PT8H30M,
1043 19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M
1044 URL:http://host2.com/pub/busy/jpublic-01.ifb
1045 COMMENT:This iCalendar file contains busy time information for
1046 the next three months.
1047 END:VFREEBUSY
1049 Figure 21
1051 Example 3: a "VFREEBUSY" calendar component used to publish busy time
1052 information.
1054 BEGIN:VFREEBUSY
1055 ORGANIZER:jsmith@host.com
1056 DTSTART:19980313T141711Z
1057 DTEND:19980410T141711Z
1058 FREEBUSY:19980314T233000Z/19980315T003000Z
1059 FREEBUSY:19980316T153000Z/19980316T163000Z
1060 FREEBUSY:19980318T030000Z/19980318T040000Z
1061 URL:http://www.host.com/calendar/busytime/jsmith.ifb
1062 END:VFREEBUSY
1064 Figure 22
1066 7.5. Time Zone Component
1068 Component Name: VTIMEZONE
1070 Purpose: Provide a grouping of component properties that defines a
1071 time zone.
1073 Formal Definition: A "VTIMEZONE" calendar component is defined by the
1074 following notation:
1076 timezonec = "BEGIN" ":" "VTIMEZONE" CRLF
1078 2*(
1080 ; 'tzid' is required, but MUST NOT occur more
1081 ; than once
1083 tzid /
1085 ; 'last-mod' and 'tzurl' are optional,
1086 but MUST NOT occur more than once
1088 last-mod / tzurl /
1090 ; one of 'standardc' or 'daylightc' MUST occur
1091 ..; and each MAY occur more than once.
1093 standardc / daylightc /
1095 ; the following is optional,
1096 ; and MAY occur more than once
1098 x-prop
1100 )
1102 "END" ":" "VTIMEZONE" CRLF
1104 standardc = "BEGIN" ":" "STANDARD" CRLF
1106 tzprop
1108 "END" ":" "STANDARD" CRLF
1110 daylightc = "BEGIN" ":" "DAYLIGHT" CRLF
1112 tzprop
1114 "END" ":" "DAYLIGHT" CRLF
1116 tzprop = 3*(
1118 ; the following are each REQUIRED,
1119 ; but MUST NOT occur more than once
1121 dtstart / tzoffsetto / tzoffsetfrom /
1123 ; the following are optional,
1124 ; and MAY occur more than once
1126 comment / rdate / rrule / tzname / x-prop
1128 )
1130 Figure 23
1132 Description: A time zone is unambiguously defined by the set of time
1133 measurement rules determined by the governing body for a given
1134 geographic area. These rules describe at a minimum the base offset
1135 from UTC for the time zone, often referred to as the Standard Time
1136 offset. Many locations adjust their Standard Time forward or
1137 backward by one hour, in order to accommodate seasonal changes in
1138 number of daylight hours, often referred to as Daylight Saving Time.
1139 Some locations adjust their time by a fraction of an hour. Standard
1140 Time is also known as Winter Time. Daylight Saving Time is also
1141 known as Advanced Time, Summer Time, or Legal Time in certain
1142 countries. The following table shows the changes in time zone rules
1143 in effect for New York City starting from 1967. Each line represents
1144 a description or rule for a particular observance.
1146 Effective Observance Rule
1148 +-----------+-------------------------+--------+--------------+
1149 | Date | (Date/Time) | Offset | Abbreviation |
1150 +-----------+-------------------------+--------+--------------+
1151 | 1967-* | last Sun in Oct, 02:00 | -0500 | EST |
1152 | | | | |
1153 | 1967-1973 | last Sun in Apr, 02:00 | -0400 | EDT |
1154 | | | | |
1155 | 1974-1974 | Jan 6, 02:00 | -0400 | EDT |
1156 | | | | |
1157 | 1975-1975 | Feb 23, 02:00 | -0400 | EDT |
1158 | | | | |
1159 | 1976-1986 | last Sun in Apr, 02:00 | -0400 | EDT |
1160 | | | | |
1161 | 1987-* | first Sun in Apr, 02:00 | -0400 | EDT |
1162 +-----------+-------------------------+--------+--------------+
1164 Note: The specification of a global time zone registry is not
1165 addressed by this document and is left for future study. However,
1166 implementers may find the Olson time zone database [TZ] a useful
1167 reference. It is an informal, public-domain collection of time zone
1168 information, which is currently being maintained by volunteer
1169 Internet participants, and is used in several operating systems.
1170 This database contains current and historical time zone information
1171 for a wide variety of locations around the globe; it provides a time
1172 zone identifier for every unique time zone rule set in actual use
1173 since 1970, with historical data going back to the introduction of
1174 standard time.
1176 Interoperability between two calendaring and scheduling applications,
1177 especially for recurring events, to-dos or journal entries, is
1178 dependent on the ability to capture and convey date and time
1179 information in an unambiguous format. The specification of current
1180 time zone information is integral to this behavior.
1182 If present, the "VTIMEZONE" calendar component defines the set of
1183 Standard Time and Daylight Saving Time observances (or rules) for a
1184 particular time zone for a given interval of time. The "VTIMEZONE"
1185 calendar component cannot be nested within other calendar components.
1186 Multiple "VTIMEZONE" calendar components can exist in an iCalendar
1187 object. In this situation, each "VTIMEZONE" MUST represent a unique
1188 time zone definition. This is necessary for some classes of events,
1189 such as airline flights, that start in one time zone and end in
1190 another.
1192 The "VTIMEZONE" calendar component MUST be present if the iCalendar
1193 object contains an RRULE that generates dates on both sides of a time
1194 zone shift (e.g. both in Standard Time and Daylight Saving Time)
1195 unless the iCalendar object intends to convey a floating time (See
1196 Section 13.13 for proper interpretation of floating time). It can be
1197 present if the iCalendar object does not contain such a RRULE. In
1198 addition, if a RRULE is present, there MUST be valid time zone
1199 information for all recurrence instances.
1201 The "VTIMEZONE" calendar component MUST include the "TZID" property
1202 and at least one definition of a standard or daylight component. The
1203 standard or daylight component MUST include the "DTSTART",
1204 "TZOFFSETFROM" and "TZOFFSETTO" properties.
1206 An individual "VTIMEZONE" calendar component MUST be specified for
1207 each unique "TZID" parameter value specified in the iCalendar object.
1209 Each "VTIMEZONE" calendar component consists of a collection of one
1210 or more sub-components that describe the rule for a particular
1211 observance (either a Standard Time or a Daylight Saving Time
1212 observance). The "STANDARD" sub-component consists of a collection
1213 of properties that describe Standard Time. The "DAYLIGHT" sub-
1214 component consists of a collection of properties that describe
1215 Daylight Saving Time. In general this collection of properties
1216 consists of:
1218 the first onset date-time for the observance
1220 the last onset date-time for the observance, if a last onset is
1221 known.
1223 the offset to be applied for the observance
1224 a rule that describes the day and time when the observance takes
1225 effect
1227 an optional name for the observance
1229 For a given time zone, there may be multiple unique definitions of
1230 the observances over a period of time. Each observance is described
1231 using either a "STANDARD" or "DAYLIGHT" sub-component. The
1232 collection of these sub-components is used to describe the time zone
1233 for a given period of time. The offset to apply at any given time is
1234 found by locating the observance that has the last onset date and
1235 time before the time in question, and using the offset value from
1236 that observance.
1238 The top-level properties in a "VTIMEZONE" calendar component are:
1240 The mandatory "TZID" property is a text value that uniquely
1241 identifies the VTIMZONE calendar component within the scope of an
1242 iCalendar object.
1244 The optional "LAST-MODIFIED" property is a UTC value that specifies
1245 the date and time that this time zone definition was last updated.
1247 The optional "TZURL" property is url value that points to a published
1248 VTIMEZONE definition. TZURL SHOULD refer to a resource that is
1249 accessible by anyone who might need to interpret the object. This
1250 SHOULD NOT normally be a file: URL or other URL that is not widely-
1251 accessible.
1253 The collection of properties that are used to define the STANDARD and
1254 DAYLIGHT sub-components include:
1256 The mandatory "DTSTART" property gives the effective onset date and
1257 local time for the time zone sub-component definition. "DTSTART" in
1258 this usage MUST be specified as a local DATE-TIME value.
1260 The mandatory "TZOFFSETFROM" property gives the UTC offset which is
1261 in use when the onset of this time zone observance begins.
1262 "TZOFFSETFROM" is combined with "DTSTART" to define the effective
1263 onset for the time zone sub-component definition. For example, the
1264 following represents the time at which the observance of Standard
1265 Time took effect in Fall 1967 for New York City:
1267 DTSTART:19671029T020000
1269 TZOFFSETFROM:-0400
1271 Figure 24
1272 The mandatory "TZOFFSETTO " property gives the UTC offset for the
1273 time zone sub-component (Standard Time or Daylight Saving Time) when
1274 this observance is in use.
1276 The optional "TZNAME" property is the customary name for the time
1277 zone. It may be specified multiple times, to allow for specifying
1278 multiple language variants of the time zone names. This could be
1279 used for displaying dates.
1281 If specified, the onset for the observance defined by the time zone
1282 sub-component is defined by either the "RRULE" or "RDATE" property.
1283 If neither is specified, only one sub-component can be specified in
1284 the "VTIMEZONE" calendar component and it is assumed that the single
1285 observance specified is always in effect.
1287 The "RRULE" property defines the recurrence rule for the onset of the
1288 observance defined by this time zone sub-component. Some specific
1289 requirements for the usage of RRULE for this purpose include:
1291 If observance is known to have an effective end date, the "UNTIL"
1292 recurrence rule parameter MUST be used to specify the last valid
1293 onset of this observance (i.e., the UNTIL date-time will be equal
1294 to the last instance generated by the recurrence pattern). It
1295 MUST be specified in UTC time.
1297 The "DTSTART" and the "TZOFFSETTO" properties MUST be used when
1298 generating the onset date-time values (instances) from the RRULE.
1300 Alternatively, the "RDATE" property can be used to define the onset
1301 of the observance by giving the individual onset date and times.
1302 "RDATE" in this usage MUST be specified as a local DATE-TIME value in
1303 UTC time.
1305 The optional "COMMENT" property is also allowed for descriptive
1306 explanatory text.
1308 Example: The following are examples of the "VTIMEZONE" calendar
1309 component:
1311 Example 1: Time zone information for the Eastern United States using
1312 "RDATE" property. Note that this is only suitable for a recurring
1313 event that starts on or later than April 6, 1997 at 03:00:00 EDT
1314 (i.e., the earliest effective transition date and time) and ends no
1315 later than April 7, 1998 02:00:00 EST (i.e., latest valid date and
1316 time for EST in this scenario). For example, this can be used for a
1317 recurring event that occurs every Friday, 8am-9:00 AM, starting June
1318 1, 1997, ending December 31, 1997.
1320 BEGIN:VTIMEZONE
1321 TZID:US-Eastern
1322 LAST-MODIFIED:19870101T000000Z
1323 BEGIN:STANDARD
1324 DTSTART:19971026T020000
1325 RDATE:19971026T020000
1326 TZOFFSETFROM:-0400
1327 TZOFFSETTO:-0500
1328 TZNAME:EST
1329 END:STANDARD
1330 BEGIN:DAYLIGHT
1331 DTSTART:19970406T020000
1332 RDATE:19970406T020000
1333 TZOFFSETFROM:-0500
1334 TZOFFSETTO:-0400
1335 TZNAME:EDT
1336 END:DAYLIGHT
1337 END:VTIMEZONE
1339 Figure 25
1340 Example 2: Current time zone rules for the Eastern United States
1341 using a RRULE recurrence pattern. Note that there is no effective
1342 end date to either of the Standard Time or Daylight Time rules. This
1343 information would be valid for a recurring event starting today and
1344 continuing indefinitely.
1346 BEGIN:VTIMEZONE
1347 TZID:US-Eastern
1348 LAST-MODIFIED:19870101T000000Z
1349 TZURL:http://zones.stds_r_us.net/tz/US-Eastern
1350 BEGIN:STANDARD
1351 DTSTART:19671029T020000
1352 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
1353 TZOFFSETFROM:-0400
1354 TZOFFSETTO:-0500
1355 TZNAME:EST
1356 END:STANDARD
1357 BEGIN:DAYLIGHT
1358 DTSTART:19870405T020000
1359 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
1360 TZOFFSETFROM:-0500
1361 TZOFFSETTO:-0400
1362 TZNAME:EDT
1363 END:DAYLIGHT
1364 END:VTIMEZONE
1366 Figure 26
1367 Example 3: A fictitious set of rules for the Eastern United States,
1368 where the Daylight Time rule has an effective end date (i.e., after
1369 that date, Daylight Time is no longer observed).
1371 BEGIN:VTIMEZONE
1372 TZID:US- -Fictitious-Eastern
1373 LAST-MODIFIED:19870101T000000Z
1374 BEGIN:STANDARD
1375 DTSTART:19671029T020000
1376 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
1377 TZOFFSETFROM:-0400
1378 TZOFFSETTO:-0500
1379 TZNAME:EST
1380 END:STANDARD
1381 BEGIN:DAYLIGHT
1382 DTSTART:19870405T020000
1383 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z
1384 TZOFFSETFROM:-0500
1385 TZOFFSETTO:-0400
1386 TZNAME:EDT
1387 END:DAYLIGHT
1388 END:VTIMEZONE
1390 Figure 27
1391 Example 4: A fictitious set of rules for the Eastern United States,
1392 where the first Daylight Time rule has an effective end date. There
1393 is a second Daylight Time rule that picks up where the other left
1394 off.
1396 BEGIN:VTIMEZONE
1397 TZID:US- -Fictitious-Eastern
1398 LAST-MODIFIED:19870101T000000Z
1399 BEGIN:STANDARD
1400 DTSTART:19671029T020000
1401 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
1402 TZOFFSETFROM:-0400
1403 TZOFFSETTO:-0500
1404 TZNAME:EST
1405 END:STANDARD
1406 BEGIN:DAYLIGHT
1407 DTSTART:19870405T020000
1408 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z
1409 TZOFFSETFROM:-0500
1410 TZOFFSETTO:-0400
1411 TZNAME:EDT
1412 END:DAYLIGHT
1413 BEGIN:DAYLIGHT
1414 DTSTART:19990424T020000
1415 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=4
1416 TZOFFSETFROM:-0500
1417 TZOFFSETTO:-0400
1418 TZNAME:EDT
1419 END:DAYLIGHT
1420 END:VTIMEZONE
1422 Figure 28
1424 7.6. Alarm Component
1426 Component Name: VALARM
1428 Purpose: Provide a grouping of component properties that define an
1429 alarm.
1431 Formal Definition: A "VALARM" calendar component is defined by the
1432 following notation:
1434 alarmc = "BEGIN" ":" "VALARM" CRLF
1435 (audioprop / dispprop / emailprop / procprop)
1436 "END" ":" "VALARM" CRLF
1438 audioprop = 2*(
1439 ; 'action' and 'trigger' are both REQUIRED,
1440 ; but MUST NOT occur more than once
1442 action / trigger /
1444 ; 'duration' and 'repeat' are both optional,
1445 ; and MUST NOT occur more than once each,
1446 ; but if one occurs, so MUST the other
1448 duration / repeat /
1450 ; the following is optional,
1451 ; but MUST NOT occur more than once
1453 attach /
1455 ; the following is optional,
1456 ; and MAY occur more than once
1458 x-prop
1460 )
1462 dispprop = 3*(
1464 ; the following are all REQUIRED,
1465 ; but MUST NOT occur more than once
1467 action / description / trigger /
1469 ; 'duration' and 'repeat' are both optional,
1470 ; and MUST NOT occur more than once each,
1471 ; but if one occurs, so MUST the other
1473 duration / repeat /
1475 ; the following is optional,
1477 ; and MAY occur more than once
1479 *x-prop
1481 )
1483 emailprop = 5*(
1485 ; the following are all REQUIRED,
1486 ; but MUST NOT occur more than once
1488 action / description / trigger / summary
1490 ; the following is REQUIRED,
1491 ; and MAY occur more than once
1493 attendee /
1495 ; 'duration' and 'repeat' are both optional,
1496 ; and MUST NOT occur more than once each,
1497 ; but if one occurs, so MUST the other
1499 duration / repeat /
1501 ; the following are optional,
1502 ; and MAY occur more than once
1504 attach / x-prop
1506 )
1508 procprop = 3*(
1510 ; the following are all REQUIRED,
1511 ; but MUST NOT occur more than once
1513 action / attach / trigger /
1515 ; 'duration' and 'repeat' are both optional,
1516 ; and MUST NOT occur more than once each,
1517 ; but if one occurs, so MUST the other
1519 duration / repeat /
1521 ; 'description' is optional,
1522 ; and MUST NOT occur more than once
1524 description /
1526 ; the following is optional,
1527 ; and MAY occur more than once
1528 x-prop
1530 )
1532 Figure 29
1534 Description: A "VALARM" calendar component is a grouping of component
1535 properties that is a reminder or alarm for an event or a to-do. For
1536 example, it may be used to define a reminder for a pending event or
1537 an overdue to-do.
1539 The "VALARM" calendar component MUST include the "ACTION" and
1540 "TRIGGER" properties. The "ACTION" property further constrains the
1541 "VALARM" calendar component in the following ways:
1543 When the action is "AUDIO", the alarm can also include one and only
1544 one "ATTACH" property, which MUST point to a sound resource, which is
1545 rendered when the alarm is triggered.
1547 When the action is "DISPLAY", the alarm MUST also include a
1548 "DESCRIPTION" property, which contains the text to be displayed when
1549 the alarm is triggered.
1551 When the action is "EMAIL", the alarm MUST include a "DESCRIPTION"
1552 property, which contains the text to be used as the message body, a
1553 "SUMMARY" property, which contains the text to be used as the message
1554 subject, and one or more "ATTENDEE" properties, which contain the
1555 email address of attendees to receive the message. It can also
1556 include one or more "ATTACH" properties, which are intended to be
1557 sent as message attachments. When the alarm is triggered, the email
1558 message is sent.
1560 When the action is "PROCEDURE", the alarm MUST include one and only
1561 one "ATTACH" property, which MUST point to a procedure resource,
1562 which is invoked when the alarm is triggered.
1564 The "VALARM" calendar component MUST only appear within either a
1565 "VEVENT" or "VTODO" calendar component. "VALARM" calendar components
1566 cannot be nested. Multiple mutually independent "VALARM" calendar
1567 components can be specified for a single "VEVENT" or "VTODO" calendar
1568 component.
1570 The "TRIGGER" property specifies when the alarm will be triggered.
1571 The "TRIGGER" property specifies a duration prior to the start of an
1572 event or a to-do. The "TRIGGER" edge may be explicitly set to be
1573 relative to the "START" or "END" of the event or to-do with the
1574 "RELATED" parameter of the "TRIGGER" property. The "TRIGGER"
1575 property value type can alternatively be set to an absolute calendar
1576 date and time of day value.
1578 In an alarm set to trigger on the "START" of an event or to-do, the
1579 "DTSTART" property MUST be present in the associated event or to-do.
1580 In an alarm in a "VEVENT" calendar component set to trigger on the
1581 "END" of the event, either the "DTEND" property MUST be present, or
1582 the "DTSTART" and "DURATION" properties MUST both be present. In an
1583 alarm in a "VTODO" calendar component set to trigger on the "END" of
1584 the to-do, either the "DUE" property MUST be present, or the
1585 "DTSTART" and "DURATION" properties MUST both be present.
1587 The alarm can be defined such that it triggers repeatedly. A
1588 definition of an alarm with a repeating trigger MUST include both the
1589 "DURATION" and "REPEAT" properties. The "DURATION" property
1590 specifies the delay period, after which the alarm will repeat. The
1591 "REPEAT" property specifies the number of additional repetitions that
1592 the alarm will triggered. This repitition count is in addition to
1593 the initial triggering of the alarm. Both of these properties MUST
1594 be present in order to specify a repeating alarm. If one of these
1595 two properties is absent, then the alarm will not repeat beyond the
1596 initial trigger.
1598 The "ACTION" property is used within the "VALARM" calendar component
1599 to specify the type of action invoked when the alarm is triggered.
1600 The "VALARM" properties provide enough information for a specific
1601 action to be invoked. It is typically the responsibility of a
1602 "Calendar User Agent" (CUA) to deliver the alarm in the specified
1603 fashion. An "ACTION" property value of AUDIO specifies an alarm that
1604 causes a sound to be played to alert the user; DISPLAY specifies an
1605 alarm that causes a text message to be displayed to the user; EMAIL
1606 specifies an alarm that causes an electronic email message to be
1607 delivered to one or more email addresses; and PROCEDURE specifies an
1608 alarm that causes a procedure to be executed. The "ACTION" property
1609 MUST specify one and only one of these values.
1611 In an AUDIO alarm, if the optional "ATTACH" property is included, it
1612 MUST specify an audio sound resource. The intention is that the
1613 sound will be played as the alarm effect. If an "ATTACH" property is
1614 specified that does not refer to a sound resource, or if the
1615 specified sound resource cannot be rendered (because its format is
1616 unsupported, or because it cannot be retrieved), then the CUA or
1617 other entity responsible for playing the sound may choose a fallback
1618 action, such as playing a built-in default sound, or playing no sound
1619 at all.
1621 In a DISPLAY alarm, the intended alarm effect is for the text value
1622 of the "DESCRIPTION" property to be displayed to the user.
1624 In an EMAIL alarm, the intended alarm effect is for an email message
1625 to be composed and delivered to all the addresses specified by the
1626 "ATTENDEE" properties in the "VALARM" calendar component. The
1627 "DESCRIPTION" property of the "VALARM" calendar component MUST be
1628 used as the body text of the message, and the "SUMMARY" property MUST
1629 be used as the subject text. Any "ATTACH" properties in the "VALARM"
1630 calendar component SHOULD be sent as attachments to the message.
1632 In a PROCEDURE alarm, the "ATTACH" property in the "VALARM" calendar
1633 component MUST specify a procedure or program that is intended to be
1634 invoked as the alarm effect. If the procedure or program is in a
1635 format that cannot be rendered, then no procedure alarm will be
1636 invoked. If the "DESCRIPTION" property is present, its value
1637 specifies the argument string to be passed to the procedure or
1638 program. "Calendar User Agents" that receive an iCalendar object
1639 with this category of alarm, can disable or allow the "Calendar User"
1640 to disable, or otherwise ignore this type of alarm. While a very
1641 useful alarm capability, the PROCEDURE type of alarm SHOULD be
1642 treated by the "Calendar User Agent" as a potential security risk.
1644 Example 1: A "VALARM" calendar component that specifies an audio
1645 alarm that will sound at a precise time and repeat 4 more times at 15
1646 minute intervals.
1648 BEGIN:VALARM
1649 TRIGGER;VALUE=DATE-TIME:19970317T133000Z
1650 REPEAT:4
1651 DURATION:PT15M
1652 ACTION:AUDIO
1653 ATTACH;FMTTYPE=audio/basic:ftp://host.com/pub/sounds/bell-01.aud
1654 END:VALARM
1656 Figure 30
1658 Example 2: A "VALARM" calendar component that specifies a display
1659 alarm that will trigger 30 minutes before the scheduled start of the
1660 event or the due date/time of the to-do it is associated with and
1661 will repeat 2 more times at 15 minute intervals:
1663 BEGIN:VALARM
1664 TRIGGER:-PT30M
1665 REPEAT:2
1666 DURATION:PT15M
1667 ACTION:DISPLAY
1668 DESCRIPTION:Breakfast meeting with executive\n
1669 team at 8:30 AM EST.
1670 END:VALARM
1672 Figure 31
1674 Example 3: A "VALARM" calendar component that specifies an email
1675 alarm that will trigger 2 days before the scheduled due date/time of
1676 a to-do it is associated with. It does not repeat. The email has a
1677 subject, body and attachment link.
1679 BEGIN:VALARM
1680 TRIGGER:-P2D
1681 ACTION:EMAIL
1682 ATTENDEE:MAILTO:john_doe@host.com
1683 SUMMARY:*** REMINDER: SEND AGENDA FOR WEEKLY STAFF MEETING ***
1684 DESCRIPTION:A draft agenda needs to be sent out to the attendees
1685 to the weekly managers meeting (MGR-LIST). Attached is a
1686 pointer the document template for the agenda file.
1687 ATTACH;FMTTYPE=application/msword:http://host.com/templates/agen
1688 da.doc
1689 END:VALARM
1691 Figure 32
1693 Example 4: A "VALARM" calendar component that specifies a procedural
1694 alarm that will trigger at a precise date/time and will repeat 23
1695 more times at one hour intervals. The alarm will invoke a procedure
1696 file.
1698 BEGIN:VALARM
1699 TRIGGER;VALUE=DATE-TIME:19980101T050000Z
1700 REPEAT:23
1701 DURATION:PT1H
1702 ACTION:PROCEDURE
1703 ATTACH;FMTTYPE=application/octet-stream:ftp://host.com/novo-
1704 procs/felizano.exe
1705 END:VALARM
1707 Figure 33
1709 8. Properties
1711 A property is the definition of an individual attribute describing a
1712 calendar or a calendar component. A property takes the form defined
1713 by the "contentline" notation defined in section 4.1.1.
1715 The following is an example of a property:
1717 DTSTART:19960415T133000Z
1719 This memo imposes no ordering of properties within an iCalendar
1720 object.
1722 Property names, parameter names and enumerated parameter values are
1723 case insensitive. For example, the property name "DUE" is the same
1724 as "due" and "Due", DTSTART;TZID=US-Eastern:19980714T120000 is the
1725 same as DtStart;TzID=US-Eastern:19980714T120000.
1727 8.1. Calendar Properties
1729 The Calendar Properties are attributes that apply to the iCalendar
1730 object, as a whole. These properties do not appear within a calendar
1731 component. They SHOULD be specified after the "BEGIN:VCALENDAR"
1732 property and prior to any calendar component.
1734 8.1.1. Calendar Scale
1736 Property Name: CALSCALE
1738 Purpose: This property defines the calendar scale used for the
1739 calendar information specified in the iCalendar object.
1741 Value Type: TEXT
1743 do Property Parameters: Non-standard property parameters can be
1744 specified on this property.
1746 Conformance: Property can be specified in an iCalendar object. The
1747 default value is "GREGORIAN".
1749 Description: This memo is based on the Gregorian calendar scale. The
1750 Gregorian calendar scale is assumed if this property is not specified
1751 in the iCalendar object. It is expected that other calendar scales
1752 will be defined in other specifications or by future versions of this
1753 memo.
1755 Formal Definition: The property is defined by the following notation:
1757 calscale = "CALSCALE" calparam ":" calvalue CRLF
1759 calparam = *(";" xparam)
1761 calvalue = "GREGORIAN" / iana-token
1763 Figure 35
1765 Example: The following is an example of this property:
1767 CALSCALE:GREGORIAN
1769 Figure 36
1771 8.1.2. Method
1773 Property Name: METHOD
1775 Purpose: This property defines the iCalendar object method associated
1776 with the calendar object.
1778 Value Type: TEXT
1780 Property Parameters: Non-standard property parameters can be
1781 specified on this property.
1783 Conformance: The property can be specified in an iCalendar object.
1785 Description: When used in a MIME message entity, the value of this
1786 property MUST be the same as the Content-Type "method" parameter
1787 value. This property can only appear once within the iCalendar
1788 object. If either the "METHOD" property or the Content-Type "method"
1789 parameter is specified, then the other MUST also be specified.
1791 No methods are defined by this specification. This is the subject of
1792 other specifications, such as the iCalendar Transport-independent
1793 Interoperability Protocol (iTIP) defined by [ITIP].
1795 If this property is not present in the iCalendar object, then a
1796 scheduling transaction MUST NOT be assumed. In such cases, the
1797 iCalendar object is merely being used to transport a snapshot of some
1798 calendar information; without the intention of conveying a scheduling
1799 semantic.
1801 Formal Definition: The property is defined by the following notation:
1803 method = "METHOD" metparam ":" metvalue CRLF
1805 metparam = *(";" xparam)
1807 metvalue = iana-token
1809 Example: The following is a hypothetical example of this property to
1810 convey that the iCalendar object is a request for a meeting:
1812 METHOD:REQUEST
1814 Figure 38
1816 8.1.3. Product Identifier
1818 Property Name: PRODID
1820 Purpose: This property specifies the identifier for the product that
1821 created the iCalendar object.
1823 Value Type: TEXT
1825 Property Parameters: Non-standard property parameters can be
1826 specified on this property.
1828 Conformance: The property MUST be specified once in an iCalendar
1829 object.
1831 Description: The vendor of the implementation SHOULD assure that this
1832 is a globally unique identifier; using some technique such as an FPI
1833 value, as defined in [ISO 9070].
1835 This property SHOULD not be used to alter the interpretation of an
1836 iCalendar object beyond the semantics specified in this memo. For
1837 example, it is not to be used to further the understanding of non-
1838 standard properties.
1840 Formal Definition: The property is defined by the following notation:
1842 prodid = "PRODID" pidparam ":" pidvalue CRLF
1843 pidparam = *(";" xparam)
1845 pidvalue = text
1846 ;Any text that describes the product and version
1847 ;and that is generally assured of being unique.
1849 Figure 39
1851 Example: The following is an example of this property. It does not
1852 imply that English is the default language.
1854 PRODID:-//ABC Corporation//NONSGML My Product//EN
1856 Figure 40
1858 8.1.4. Version
1860 Property Name: VERSION
1862 Purpose: This property specifies the identifier corresponding to the
1863 highest version number or the minimum and maximum range of the
1864 iCalendar specification that is required in order to interpret the
1865 iCalendar object.
1867 Value Type: TEXT
1869 Property Parameters: Non-standard property parameters can be
1870 specified on this property.
1872 Conformance: This property MUST be specified by an iCalendar object,
1873 but MUST only be specified once.
1875 Description: A value of "2.0" corresponds to this memo.
1877 Formal Definition: The property is defined by the following notation:
1879 version = "VERSION" verparam ":" vervalue CRLF
1881 verparam = *(";" xparam)
1883 vervalue = "2.0" ;This memo
1884 / maxver
1885 / (minver ";" maxver)
1887 minver = [A IANA registered iCalendar version identifier]
1888 ;Minimum iCalendar version needed to parse the iCalendar object
1890 maxver = [A IANA registered iCalendar version identifier]
1891 ;Maximum iCalendar version needed to parse the iCalendar object
1893 Example: The following is an example of this property:
1895 VERSION:2.0
1897 8.2. Descriptive Component Properties
1899 The following properties can appear within calendar components, as
1900 specified by each component property definition. These specify
1901 descriptive information about calendar components.
1903 8.2.1. Attachment
1905 Property Name: ATTACH
1907 Purpose: The property provides the capability to associate a document
1908 object with a calendar component.
1910 Value Type: The default value type for this property is URI. The
1911 value type can also be set to BINARY to indicate inline binary
1912 encoded content information.
1914 Property Parameters: Non-standard, inline encoding, format type and
1915 value data type property parameters can be specified on this
1916 property.
1918 Conformance: The property can be specified in a "VEVENT", "VTODO",
1919 "VJOURNAL" or "VALARM" calendar components.
1921 Description: The property can be specified within "VEVENT", "VTODO",
1922 "VJOURNAL", or "VALARM" calendar components. This property can be
1923 specified multiple times within an iCalendar object.
1925 Format Definition: The property is defined by the following notation:
1927 attach = "ATTACH" attparam ":" uri CRLF
1929 attach =/ "ATTACH" attparam ";" "ENCODING" "=" "BASE64"
1930 ";" "VALUE" "=" "BINARY" ":" binary
1932 attparam = *(
1934 ; the following is optional,
1935 ; but MUST NOT occur more than once
1937 (";" fmttypeparam) /
1939 ; the following is optional,
1940 ; and MAY occur more than once
1942 (";" xparam)
1944 )
1946 Example: The following are examples of this property:
1948 ATTACH:CID:jsmith.part3.960817T083000.xyzMail@host1.com
1950 ATTACH;FMTTYPE=application/postscript:ftp://xyzCorp.com/pub/
1951 reports/r-960812.ps
1953 8.2.2. Categories
1955 Property Name: CATEGORIES
1957 Purpose: This property defines the categories for a calendar
1958 component.
1960 Value Type: TEXT
1962 Property Parameters: Non-standard and language property parameters
1963 can be specified on this property.
1965 Conformance: The property can be specified within "VEVENT", "VTODO"
1966 or "VJOURNAL" calendar components.
1968 Description: This property is used to specify categories or subtypes
1969 of the calendar component. The categories are useful in searching
1970 for a calendar component of a particular type and category. Within
1971 the "VEVENT", "VTODO" or "VJOURNAL" calendar components, more than
1972 one category can be specified as a list of categories separated by
1973 the COMMA character (US-ASCII decimal 44).
1975 categories = "CATEGORIES" catparam ":" text *("," text)
1976 CRLF
1978 catparam = *(
1980 ; the following is optional,
1981 ; but MUST NOT occur more than once
1983 (";" languageparam ) /
1985 ; the following is optional,
1986 ; and MAY occur more than once
1988 (";" xparam)
1990 )
1992 The following are examples of categories.
1994 CATEGORIES:APPOINTMENT,EDUCATION
1996 CATEGORIES:MEETING
1998 8.2.3. Classification
2000 Property Name: CLASS
2002 Purpose: This property defines the access classification for a
2003 calendar component.
2005 Value Type: TEXT
2007 Property Parameters: Non-standard property parameters can be
2008 specified on this property.
2010 Conformance: The property can be specified once in a "VEVENT",
2011 "VTODO" or "VJOURNAL" calendar components.
2013 Description: An access classification is only one component of the
2014 general security system within a calendar application. It provides a
2015 method of capturing the scope of the access the calendar owner
2016 intends for information within an individual calendar entry. The
2017 access classification of an individual iCalendar component is useful
2018 when measured along with the other security components of a calendar
2019 system (e.g., calendar user authentication, authorization, access
2020 rights, access role, etc.). Hence, the semantics of the individual
2021 access classifications cannot be completely defined by this memo
2022 alone. Additionally, due to the "blind" nature of most exchange
2023 processes using this memo, these access classifications cannot serve
2024 as an enforcement statement for a system receiving an iCalendar
2025 object. Rather, they provide a method for capturing the intention of
2026 the calendar owner for the access to the calendar component.
2028 Formal Definition: The property is defined by the following notation:
2030 class = "CLASS" classparam ":" classvalue CRLF
2032 classparam = *(";" xparam)
2034 classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token
2035 / x-name
2036 ;Default is PUBLIC
2038 Example: The following is an example of this property:
2040 CLASS:PUBLIC
2042 8.2.4. Comment
2044 Property Name: COMMENT
2046 Purpose: This property specifies non-processing information intended
2047 to provide a comment to the calendar user.
2049 Value Type: TEXT
2051 Property Parameters: Non-standard, alternate text representation and
2052 language property parameters can be specified on this property.
2054 Conformance: This property can be specified in "VEVENT", "VTODO",
2055 "VJOURNAL", "VTIMEZONE" or "VFREEBUSY" calendar components.
2057 Description: The property can be specified multiple times.
2059 Formal Definition: The property is defined by the following notation:
2061 comment = "COMMENT" commparam ":" text CRLF
2063 commparam = *(
2065 ; the following are optional,
2066 ; but MUST NOT occur more than once
2068 (";" altrepparam) / (";" languageparam) /
2070 ; the following is optional,
2071 ; and MAY occur more than once
2073 (";" xparam)
2075 )
2077 Example: The following is an example of this property:
2079 COMMENT:The meeting really needs to include both ourselves
2080 and the customer. We can't hold this meeting without them.
2081 As a matter of fact\, the venue for the meeting ought to be at
2082 their site. - - John
2084 8.2.5. Description
2086 Property Name: DESCRIPTION
2088 Purpose: This property provides a more complete description of the
2089 calendar component, than that provided by the "SUMMARY" property.
2091 Value Type: TEXT
2093 Property Parameters: Non-standard, alternate text representation and
2094 language property parameters can be specified on this property.
2096 Conformance: The property can be specified in the "VEVENT", "VTODO",
2097 "VJOURNAL" or "VALARM" calendar components. The property can be
2098 specified multiple times only within a "VJOURNAL" calendar component.
2100 Description: This property is used in the "VEVENT" and "VTODO" to
2101 capture lengthy textual decriptions associated with the activity.
2103 This property is used in the "VJOURNAL" calendar component to capture
2104 one more textual journal entries.
2106 This property is used in the "VALARM" calendar component to capture
2107 the display text for a DISPLAY category of alarm, to capture the body
2108 text for an EMAIL category of alarm and to capture the argument
2109 string for a PROCEDURE category of alarm.
2111 Formal Definition: The property is defined by the following notation:
2113 description = "DESCRIPTION" descparam ":" text CRLF
2115 descparam = *(
2117 ; the following are optional,
2118 ; but MUST NOT occur more than once
2120 (";" altrepparam) / (";" languageparam) /
2122 ; the following is optional,
2123 ; and MAY occur more than once
2125 (";" xparam)
2127 )
2129 Example: The following is an example of the property with formatted
2130 line breaks in the property value:
2132 DESCRIPTION:Meeting to provide technical review for "Phoenix"
2133 design.\n Happy Face Conference Room. Phoenix design team
2134 MUST attend this meeting.\n RSVP to team leader.
2136 The following is an example of the property with folding of long
2137 lines:
2139 DESCRIPTION:Last draft of the new novel is to be completed
2140 for the editor's proof today.
2142 8.2.6. Geographic Position
2144 Property Name: GEO
2146 Purpose: This property specifies information related to the global
2147 position for the activity specified by a calendar component.
2149 Value Type: FLOAT. The value MUST be two SEMICOLON separated FLOAT
2150 values.
2152 Property Parameters: Non-standard property parameters can be
2153 specified on this property.
2155 Conformance: This property can be specified in "VEVENT" or "VTODO"
2156 calendar components.
2158 Description: The property value specifies latitude and longitude, in
2159 that order (i.e., "LAT LON" ordering). The longitude represents the
2160 location east or west of the prime meridian as a positive or negative
2161 real number, respectively. The longitude and latitude values MAY be
2162 specified up to six decimal places, which will allow for accuracy to
2163 within one meter of geographical position. Receiving applications
2164 MUST accept values of this precision and MAY truncate values of
2165 greater precision.
2167 Values for latitude and longitude shall be expressed as decimal
2168 fractions of degrees. Whole degrees of latitude shall be represented
2169 by a two-digit decimal number ranging from 0 through 90. Whole
2170 degrees of longitude shall be represented by a decimal number ranging
2171 from 0 through 180. When a decimal fraction of a degree is
2172 specified, it shall be separated from the whole number of degrees by
2173 a decimal point.
2175 Latitudes north of the equator shall be specified by a plus sign (+),
2176 or by the absence of a minus sign (-), preceding the digits
2177 designating degrees. Latitudes south of the Equator shall be
2178 designated by a minus sign (-) preceding the digits designating
2179 degrees. A point on the Equator shall be assigned to the Northern
2180 Hemisphere.
2182 Longitudes east of the prime meridian shall be specified by a plus
2183 sign (+), or by the absence of a minus sign (-), preceding the digits
2184 designating degrees. Longitudes west of the meridian shall be
2185 designated by minus sign (-) preceding the digits designating
2186 degrees. A point on the prime meridian shall be assigned to the
2187 Eastern Hemisphere. A point on the 180th meridian shall be assigned
2188 to the Western Hemisphere. One exception to this last convention is
2189 permitted. For the special condition of describing a band of
2190 latitude around the earth, the East Bounding Coordinate data element
2191 shall be assigned the value +180 (180) degrees.
2193 Any spatial address with a latitude of +90 (90) or -90 degrees will
2194 specify the position at the North or South Pole, respectively. The
2195 component for longitude may have any legal value.
2197 With the exception of the special condition described above, this
2198 form is specified in Department of Commerce, 1986, Representation of
2199 geographic point locations for information interchange (Federal
2200 Information Processing Standard 70-1): Washington, Department of
2201 Commerce, National Institute of Standards and Technology.
2203 The simple formula for converting degrees-minutes-seconds into
2204 decimal degrees is:
2206 decimal = degrees + minutes/60 + seconds/3600.
2208 Formal Definition: The property is defined by the following notation:
2210 geo = "GEO" geoparam ":" geovalue CRLF
2212 geoparam = *(";" xparam)
2214 geovalue = float ";" float
2215 ;Latitude and Longitude components
2217 Example: The following is an example of this property:
2219 GEO:37.386013;-122.082932
2221 8.2.7. Location
2223 Property Name: LOCATION
2225 Purpose: The property defines the intended venue for the activity
2226 defined by a calendar component.
2228 Value Type: TEXT
2230 Property Parameters: Non-standard, alternate text representation and
2231 language property parameters can be specified on this property.
2233 Conformance: This property can be specified in "VEVENT" or "VTODO"
2234 calendar component.
2236 Description: Specific venues such as conference or meeting rooms may
2237 be explicitly specified using this property. An alternate
2238 representation may be specified that is a URI that points to
2239 directory information with more structured specification of the
2240 location. For example, the alternate representation may specify
2241 either an LDAP URI pointing to an LDAP server entry or a CID URI
2242 pointing to a MIME body part containing a vCard [RFC 2426] for the
2243 location.
2245 Format Definition: The property is defined by the following notation:
2247 location = "LOCATION locparam ":" text CRLF
2249 locparam = *(
2251 ; the following are optional,
2252 ; but MUST NOT occur more than once
2254 (";" altrepparam) / (";" languageparam) /
2256 ; the following is optional,
2257 ; and MAY occur more than once
2259 (";" xparam)
2261 )
2263 Example: The following are some examples of this property:
2265 LOCATION:Conference Room - F123, Bldg. 002
2267 LOCATION;ALTREP="http://xyzcorp.com/conf-rooms/f123.vcf":
2268 Conference Room - F123, Bldg. 002
2270 8.2.8. Percent Complete
2272 Property Name: PERCENT-COMPLETE
2274 Purpose: This property is used by an assignee or delegatee of a to-do
2275 to convey the percent completion of a to-do to the Organizer.
2277 Value Type: INTEGER
2279 Property Parameters: Non-standard property parameters can be
2280 specified on this property.
2282 Conformance: This property can be specified in a "VTODO" calendar
2283 component.
2285 Description: The property value is a positive integer between zero
2286 and one hundred. A value of "0" indicates the to-do has not yet been
2287 started. A value of "100" indicates that the to-do has been
2288 completed. Integer values in between indicate the percent partially
2289 complete.
2291 When a to-do is assigned to multiple individuals, the property value
2292 indicates the percent complete for that portion of the to-do assigned
2293 to the assignee or delegatee. For example, if a to-do is assigned to
2294 both individuals "A" and "B". A reply from "A" with a percent
2295 complete of "70" indicates that "A" has completed 70% of the to-do
2296 assigned to them. A reply from "B" with a percent complete of "50"
2297 indicates "B" has completed 50% of the to-do assigned to them.
2299 Format Definition: The property is defined by the following notation:
2301 percent = "PERCENT-COMPLETE" pctparam ":" integer CRLF
2303 pctparam = *(";" xparam)
2305 Example: The following is an example of this property to show 39%
2306 completion:
2308 PERCENT-COMPLETE:39
2310 8.2.9. Priority
2312 Property Name: PRIORITY
2314 Purpose: The property defines the relative priority for a calendar
2315 component.
2317 Value Type: INTEGER
2319 Property Parameters: Non-standard property parameters can be
2320 specified on this property.
2322 Conformance: The property can be specified in a "VEVENT" or "VTODO"
2323 calendar component.
2325 Description: The priority is specified as an integer in the range
2326 zero to nine. A value of zero (US-ASCII decimal 48) specifies an
2327 undefined priority. A value of one (US-ASCII decimal 49) is the
2328 highest priority. A value of two (US-ASCII decimal 50) is the second
2329 highest priority. Subsequent numbers specify a decreasing ordinal
2330 priority. A value of nine (US-ASCII decimal 58) is the lowest
2331 priority.
2333 A CUA with a three-level priority scheme of "HIGH", "MEDIUM" and
2334 "LOW" is mapped into this property such that a property value in the
2335 range of one (US-ASCII decimal 49) to four (US-ASCII decimal 52)
2336 specifies "HIGH" priority. A value of five (US-ASCII decimal 53) is
2337 the normal or "MEDIUM" priority. A value in the range of six (US-
2338 ASCII decimal 54) to nine (US-ASCII decimal 58) is "LOW" priority.
2340 A CUA with a priority schema of "A1", "A2", "A3", "B1", "B2", ...,
2341 "C3" is mapped into this property such that a property value of one
2342 (US-ASCII decimal 49) specifies "A1", a property value of two (US-
2343 ASCII decimal 50) specifies "A2", a property value of three (US-ASCII
2344 decimal 51) specifies "A3", and so forth up to a property value of 9
2345 (US-ASCII decimal 58) specifies "C3".
2347 Other integer values are reserved for future use.
2349 Within a "VEVENT" calendar component, this property specifies a
2350 priority for the event. This property may be useful when more than
2351 one event is scheduled for a given time period.
2353 Within a "VTODO" calendar component, this property specified a
2354 priority for the to-do. This property is useful in prioritizing
2355 multiple action items for a given time period.
2357 Format Definition: The property is specified by the following
2358 notation:
2360 priority = "PRIORITY" prioparam ":" privalue CRLF
2361 ;Default is zero
2363 prioparam = *(";" xparam)
2365 privalue = integer ;Must be in the range [0..9]
2366 ; All other values are reserved for future use
2368 The following is an example of a property with the highest priority:
2370 PRIORITY:1
2372 The following is an example of a property with a next highest
2373 priority:
2375 PRIORITY:2
2377 Example: The following is an example of a property with no priority.
2378 This is equivalent to not specifying the "PRIORITY" property:
2380 PRIORITY:0
2382 8.2.10. Resources
2384 Property Name: RESOURCES
2386 Purpose: This property defines the equipment or resources anticipated
2387 for an activity specified by a calendar entity..
2389 Value Type: TEXT
2391 Property Parameters: Non-standard, alternate text representation and
2392 language property parameters can be specified on this property.
2394 Conformance: This property can be specified in "VEVENT" or "VTODO"
2395 calendar component.
2397 Description: The property value is an arbitrary text. More than one
2398 resource can be specified as a list of resources separated by the
2399 COMMA character (US-ASCII decimal 44).
2401 Format Definition: The property is defined by the following notation:
2403 resources = "RESOURCES" resrcparam ":" text *("," text) CRLF
2405 resrcparam = *(
2407 ; the following are optional,
2408 ; but MUST NOT occur more than once
2410 (";" altrepparam) / (";" languageparam) /
2412 ; the following is optional,
2413 ; and MAY occur more than once
2415 (";" xparam)
2417 )
2419 Example: The following is an example of this property:
2421 RESOURCES:EASEL,PROJECTOR,VCR
2423 RESOURCES;LANGUAGE=fr:1 raton-laveur
2425 8.2.11. Free/Busy Time Type
2427 Parameter Name: FBTYPE
2429 Purpose: To specify the free or busy time type.
2431 Description: The parameter specifies the free or busy time type. The
2432 value FREE indicates that the time interval is free for scheduling.
2433 The value BUSY indicates that the time interval is busy because one
2434 or more events have been scheduled for that interval. The value
2435 BUSY-UNAVAILABLE indicates that the time interval is busy and that
2436 the interval can not be scheduled. The value BUSY-TENTATIVE
2437 indicates that the time interval is busy because one or more events
2438 have been tentatively scheduled for that interval. If not specified
2439 on a property that allows this parameter, the default is BUSY.
2441 Format Definition: The property parameter is defined by the following
2442 notation:
2444 fbtypeparam = "FBTYPE" "=" ("FREE" / "BUSY"
2445 / "BUSY-UNAVAILABLE" / "BUSY-TENTATIVE"
2446 / x-name
2447 ; Some experimental iCalendar data type.
2448 / iana-token)
2450 ; Some other IANA registered iCalendar data type.
2452 Example: The following is an example of this parameter on a FREEBUSY
2453 property.
2455 FREEBUSY;FBTYPE=BUSY:19980415T133000Z/19980415T170000Z
2457 8.2.12. Participation Status
2459 Parameter Name: PARTSTAT
2461 Purpose: To specify the participation status for the calendar user
2462 specified by the property.
2464 Description: This parameter can be specified on properties with a
2465 CAL-ADDRESS value type. The parameter identifies the participation
2466 status for the calendar user specified by the property value. The
2467 parameter values differ depending on whether they are associated with
2468 a group scheduled "VEVENT", "VTODO" or "VJOURNAL". The values MUST
2469 match one of the values allowed for the given calendar component. If
2470 not specified on a property that allows this parameter, the default
2471 value is NEEDS-ACTION.
2473 Format Definition: The property parameter is defined by the following
2474 notation:
2476 partstatparam = "PARTSTAT" "="
2477 ("NEEDS-ACTION" ; Event needs action
2478 / "ACCEPTED" ; Event accepted
2479 / "DECLINED" ; Event declined
2481 / "TENTATIVE" ; Event tentatively
2482 ; accepted
2483 / "DELEGATED" ; Event delegated
2484 / x-name ; Experimental status
2485 / iana-token) ; Other IANA registered
2486 ; status
2487 ; These are the participation statuses for a "VEVENT".
2488 ; Default is NEEDS-ACTION
2489 partstatparam /= "PARTSTAT" "="
2490 ("NEEDS-ACTION" ; To-do needs action
2491 / "ACCEPTED" ; To-do accepted
2492 / "DECLINED" ; To-do declined
2493 / "TENTATIVE" ; To-do tentatively
2494 ; accepted
2495 / "DELEGATED" ; To-do delegated
2496 / "COMPLETED" ; To-do completed.
2497 ; COMPLETED property has
2498 ;date/time completed.
2499 / "IN-PROCESS" ; To-do in process of
2500 ; being completed
2501 / x-name ; Experimental status
2502 / iana-token) ; Other IANA registered
2503 ; status
2504 ; These are the participation statuses for a "VTODO". Default is
2505 ; NEEDS-ACTION
2507 partstatparam /= "PARTSTAT" "="
2508 ("NEEDS-ACTION" ; Journal needs action
2509 / "ACCEPTED" ; Journal accepted
2510 / "DECLINED" ; Journal declined
2511 / x-name ; Experimental status
2512 / iana-token) ; Other IANA registered
2513 ; status
2514 ; These are the participation statuses for a "VJOURNAL".
2515 ; Default is NEEDS-ACTION
2517 Example:
2519 ATTENDEE;PARTSTAT=DECLINED:MAILTO:jsmith@host.com
2521 8.2.13. Status
2523 Property Name: STATUS
2525 Purpose: This property defines the overall status or confirmation for
2526 the calendar component.
2528 Value Type: TEXT
2530 Property Parameters: Non-standard property parameters can be
2531 specified on this property.
2533 Conformance: This property can be specified in "VEVENT", "VTODO" or
2534 "VJOURNAL" calendar components.
2536 Description: In a group scheduled calendar component, the property is
2537 used by the "Organizer" to provide a confirmation of the event to the
2538 "Attendees". For example in a "VEVENT" calendar component, the
2539 "Organizer" can indicate that a meeting is tentative, confirmed or
2540 cancelled. In a "VTODO" calendar component, the "Organizer" can
2541 indicate that an action item needs action, is completed, is in
2542 process or being worked on, or has been cancelled. In a "VJOURNAL"
2543 calendar component, the "Organizer" can indicate that a journal entry
2544 is draft, final or has been cancelled or removed.
2546 Format Definition: The property is defined by the following notation:
2548 status = "STATUS" statparam] ":" statvalue CRLF
2550 statparam = *(";" xparam)
2552 statvalue = "TENTATIVE" ;Indicates event is
2553 ;tentative.
2554 / "CONFIRMED" ;Indicates event is
2555 ;definite.
2556 / "CANCELLED" ;Indicates event was
2557 ;cancelled.
2558 ;Status values for a "VEVENT"
2560 statvalue =/ "NEEDS-ACTION" ;Indicates to-do needs action.
2561 / "COMPLETED" ;Indicates to-do completed.
2562 / "IN-PROCESS" ;Indicates to-do in process of
2563 / "CANCELLED" ;Indicates to-do was cancelled.
2564 ;Status values for "VTODO".
2566 statvalue =/ "DRAFT" ;Indicates journal is draft.
2567 / "FINAL" ;Indicates journal is final.
2568 / "CANCELLED" ;Indicates journal is removed.
2569 ;Status values for "VJOURNAL".
2571 Example: The following is an example of this property for a "VEVENT"
2572 calendar component:
2574 STATUS:TENTATIVE
2576 The following is an example of this property for a "VTODO" calendar
2577 component:
2579 STATUS:NEEDS-ACTION
2581 The following is an example of this property for a "VJOURNAL"
2582 calendar component:
2584 STATUS:DRAFT
2586 8.2.14. Summary
2588 Property Name: SUMMARY
2590 Purpose: This property defines a short summary or subject for the
2591 calendar component.
2593 Value Type: TEXT
2594 Property Parameters: Non-standard, alternate text representation and
2595 language property parameters can be specified on this property.
2597 Conformance: The property can be specified in "VEVENT", "VTODO",
2598 "VJOURNAL" or "VALARM" calendar components.
2600 Description: This property is used in the "VEVENT", "VTODO" and
2601 "VJOURNAL" calendar components to capture a short, one line summary
2602 about the activity or journal entry.
2604 This property is used in the "VALARM" calendar component to capture
2605 the subject of an EMAIL category of alarm.
2607 Format Definition: The property is defined by the following notation:
2609 summary = "SUMMARY" summparam ":" text CRLF
2611 summparam = *(
2613 ; the following are optional,
2614 ; but MUST NOT occur more than once
2616 (";" altrepparam) / (";" languageparam) /
2618 ; the following is optional,
2619 ; and MAY occur more than once
2621 (";" xparam)
2623 )
2625 Example: The following is an example of this property:
2627 SUMMARY:Department Party
2629 8.2.15. Date and Time Component Properties
2631 The following properties specify date and time related information in
2632 calendar components.
2634 8.2.15.1. Date/Time Completed
2636 Property Name: COMPLETED
2638 Purpose: This property defines the date and time that a to-do was
2639 actually completed.
2641 Value Type: DATE-TIME
2642 Property Parameters: Non-standard property parameters can be
2643 specified on this property.
2645 Conformance: The property can be specified in a "VTODO" calendar
2646 component.
2648 Description: The date and time MUST be in a UTC format.
2650 Format Definition: The property is defined by the following notation:
2652 completed = "COMPLETED" compparam ":" date-time CRLF
2654 compparam = *(";" xparam)
2656 Example: The following is an example of this property:
2658 COMPLETED:19960401T235959Z
2660 8.2.15.2. Date/Time End
2662 Property Name: DTEND
2664 Purpose: This property specifies the date and time that a calendar
2665 component ends.
2667 Value Type: The default value type is DATE-TIME. The value type can
2668 be set to a DATE value type.
2670 Property Parameters: Non-standard, value data type, time zone
2671 identifier property parameters can be specified on this property.
2673 Conformance: This property can be specified in "VEVENT" or
2674 "VFREEBUSY" calendar components.
2676 Description: Within the "VEVENT" calendar component, this property
2677 defines the date and time by which the event ends. The value MUST be
2678 later in time than the value of the "DTSTART" property.
2680 Within the "VFREEBUSY" calendar component, this property defines the
2681 end date and time for the free or busy time information. The time
2682 MUST be specified in the UTC time format. The value MUST be later in
2683 time than the value of the "DTSTART" property.
2685 Format Definition: The property is defined by the following notation:
2687 dtend = "DTEND" dtendparam":" dtendval CRLF
2689 dtendparam = *(
2691 ; the following are optional,
2692 ; but MUST NOT occur more than once
2694 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
2695 (";" tzidparam) /
2697 ; the following is optional,
2698 ; and MAY occur more than once
2700 (";" xparam)
2702 )
2704 dtendval = date-time / date
2705 ;Value MUST match value type
2707 Example: The following is an example of this property:
2709 DTEND:19960401T235959Z
2711 DTEND;VALUE=DATE:19980704
2713 8.2.15.3. Date/Time Due
2715 Property Name: DUE
2717 Purpose: This property defines the date and time that a to-do is
2718 expected to be completed.
2720 Value Type: The default value type is DATE-TIME. The value type can
2721 be set to a DATE value type.
2723 Property Parameters: Non-standard, value data type, time zone
2724 identifier property parameters can be specified on this property.
2726 Conformance: The property can be specified once in a "VTODO" calendar
2727 component.
2729 Description: The value MUST be a date/time equal to or after the
2730 DTSTART value, if specified.
2732 Format Definition: The property is defined by the following notation:
2734 due = "DUE" dueparam":" dueval CRLF
2736 dueparam = *(
2737 ; the following are optional,
2738 ; but MUST NOT occur more than once
2740 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
2741 (";" tzidparam) /
2743 ; the following is optional,
2744 ; and MAY occur more than once
2746 *(";" xparam)
2748 )
2750 dueval = date-time / date
2751 ;Value MUST match value type
2753 Example: The following is an example of this property:
2755 DUE:19980430T235959Z
2757 8.2.15.4. Date/Time Start
2759 Property Name: DTSTART
2761 Purpose: This property specifies when the calendar component begins.
2763 Value Type: The default value type is DATE-TIME. The time value MUST
2764 be one of the forms defined for the DATE-TIME value type. The value
2765 type can be set to a DATE value type.
2767 Property Parameters: Non-standard, value data type, time zone
2768 identifier property parameters can be specified on this property.
2770 Conformance: This property can be specified in the "VEVENT", "VTODO",
2771 "VFREEBUSY", or "VTIMEZONE" calendar components.
2773 Description: Within the "VEVENT" calendar component, this property
2774 defines the start date and time for the event. The property is
2775 REQUIRED in "VEVENT" calendar components. Events can have a start
2776 date/time but no end date/time. In that case, the event does not
2777 take up any time.
2779 Within the "VFREEBUSY" calendar component, this property defines the
2780 start date and time for the free or busy time information. The time
2781 MUST be specified in UTC time.
2783 Within the "VTIMEZONE" calendar component, this property defines the
2784 effective start date and time for a time zone specification. This
2785 property is REQUIRED within each STANDARD and DAYLIGHT part included
2786 in "VTIMEZONE" calendar components and MUST be specified as a local
2787 DATE-TIME without the "TZID" property parameter.
2789 Format Definition: The property is defined by the following notation:
2791 dtstart = "DTSTART" dtstparam ":" dtstval CRLF
2793 dtstparam = *(
2795 ; the following are optional,
2796 ; but MUST NOT occur more than once
2798 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
2799 (";" tzidparam) /
2801 ; the following is optional,
2802 ; and MAY occur more than once
2804 *(";" xparam)
2806 )
2808 dtstval = date-time / date
2809 ;Value MUST match value type
2811 Example: The following is an example of this property:
2813 DTSTART:19980118T073000Z
2815 8.2.15.5. Duration
2817 Property Name: DURATION
2819 Purpose: The property specifies a positive duration of time.
2821 Value Type: DURATION
2822 Property Parameters: Non-standard property parameters can be
2823 specified on this property.
2825 Conformance: The property can be specified in "VEVENT", "VTODO",
2826 "VFREEBUSY" or "VALARM" calendar components.
2828 Description: In a "VEVENT" calendar component the property may be
2829 used to specify a duration of the event, instead of an explicit end
2830 date/time. In a "VTODO" calendar component the property may be used
2831 to specify a duration for the to-do, instead of an explicit due date/
2832 time. In a "VFREEBUSY" calendar component the property may be used
2833 to specify the interval of free time being requested. In a "VALARM"
2834 calendar component the property may be used to specify the delay
2835 period prior to repeating an alarm.
2837 Format Definition: The property is defined by the following notation:
2839 duration = "DURATION" durparam ":" dur-value CRLF
2840 ;consisting of a positive duration of time.
2842 durparam = *(";" xparam)
2844 Example: The following is an example of this property that specifies
2845 an interval of time of 1 hour and zero minutes and zero seconds:
2847 DURATION:PT1H0M0S
2849 The following is an example of this property that specifies an
2850 interval of time of 15 minutes.
2852 DURATION:PT15M
2854 8.2.15.6. Free/Busy Time
2856 Property Name: FREEBUSY
2858 Purpose: The property defines one or more free or busy time
2859 intervals.
2861 Value Type: PERIOD. The date and time values MUST be in an UTC time
2862 format.
2864 Property Parameters: Non-standard or free/busy time type property
2865 parameters can be specified on this property.
2867 Conformance: The property can be specified in a "VFREEBUSY" calendar
2868 component.
2870 Property Parameter: "FBTYPE" and non-standard parameters can be
2871 specified on this property.
2873 Description: These time periods can be specified as either a start
2874 and end date-time or a start date-time and duration. The date and
2875 time MUST be a UTC time format.
2877 "FREEBUSY" properties within the "VFREEBUSY" calendar component
2878 SHOULD be sorted in ascending order, based on start time and then end
2879 time, with the earliest periods first.
2881 The "FREEBUSY" property can specify more than one value, separated by
2882 the COMMA character (US-ASCII decimal 44). In such cases, the
2883 "FREEBUSY" property values SHOULD all be of the same "FBTYPE"
2884 property parameter type (e.g., all values of a particular "FBTYPE"
2885 listed together in a single property).
2887 Format Definition: The property is defined by the following notation:
2889 freebusy = "FREEBUSY" fbparam ":" fbvalue
2890 CRLF
2892 fbparam = *(
2893 ; the following is optional,
2894 ; but MUST NOT occur more than once
2896 (";" fbtypeparam) /
2898 ; the following is optional,
2899 ; and MAY occur more than once
2901 (";" xparam)
2903 )
2905 fbvalue = period *["," period]
2906 ;Time value MUST be in the UTC time format.
2908 Example: The following are some examples of this property:
2910 FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M
2912 FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H
2914 FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H,
2915 19970308T230000Z/19970309T000000Z
2917 8.2.15.7. Time Transparency
2919 Property Name: TRANSP
2921 Purpose: This property defines whether an event is transparent or not
2922 to busy time searches.
2924 Value Type: TEXT
2926 Property Parameters: Non-standard property parameters can be
2927 specified on this property.
2929 Conformance: This property can be specified once in a "VEVENT"
2930 calendar component.
2932 Description: Time Transparency is the characteristic of an event that
2933 determines whether it appears to consume time on a calendar. Events
2934 that consume actual time for the individual or resource associated
2936 with the calendar SHOULD be recorded as OPAQUE, allowing them to be
2937 detected by free-busy time searches. Other events, which do not take
2938 up the individual's (or resource's) time SHOULD be recorded as
2939 TRANSPARENT, making them invisible to free-busy time searches.
2941 Format Definition: The property is specified by the following
2942 notation:
2944 transp = "TRANSP" tranparam ":" transvalue CRLF
2946 tranparam = *(";" xparam)
2948 transvalue = "OPAQUE" ;Blocks or opaque on busy time searches.
2949 / "TRANSPARENT" ;Transparent on busy time searches.
2950 ;Default value is OPAQUE
2952 Example: The following is an example of this property for an event
2953 that is transparent or does not block on free/busy time searches:
2955 TRANSP:TRANSPARENT
2957 The following is an example of this property for an event that is
2958 opaque or blocks on free/busy time searches:
2960 TRANSP:OPAQUE
2962 8.2.16. Time Zone Component Properties
2964 The following properties specify time zone information in calendar
2965 components.
2967 8.2.16.1. Time Zone Identifier
2969 Property Name: TZID
2971 Purpose: This property specifies the text value that uniquely
2972 identifies the "VTIMEZONE" calendar component.
2974 Value Type: TEXT
2976 Property Parameters: Non-standard property parameters can be
2977 specified on this property.
2979 Conformance: This property MUST be specified in a "VTIMEZONE"
2980 calendar component.
2982 Description: This is the label by which a time zone calendar
2983 component is referenced by any iCalendar properties whose data type
2984 is either DATE-TIME or TIME and not intended to specify a UTC or a
2985 "floating" time. The presence of the SOLIDUS character (US-ASCII
2986 decimal 47) as a prefix, indicates that this TZID represents an
2987 unique ID in a globally defined time zone registry (when such
2988 registry is defined).
2990 Note: This document does not define a naming convention for time zone
2991 identifiers. Implementers may want to use the naming conventions
2992 defined in existing time zone specifications such as the public-
2993 domain Olson database [TZ]. The specification of globally unique
2994 time zone identifiers is not addressed by this document and is left
2995 for future study.
2997 Format Definition: This property is defined by the following
2998 notation:
3000 tzid = "TZID" tzidpropparam ":" [tzidprefix] text CRLF
3002 tzidpropparam = *(";" xparam)
3004 ;tzidprefix = "/"
3005 ; Defined previously. Just listed here for reader convenience.
3007 Example: The following are examples of non-globally unique time zone
3008 identifiers:
3010 TZID:US-Eastern
3012 TZID:California-Los_Angeles
3014 The following is an example of a fictitious globally unique time zone
3015 identifier:
3017 TZID:/US-New_York-New_York
3019 8.2.16.2. Time Zone Name
3021 Property Name: TZNAME
3023 Purpose: This property specifies the customary designation for a time
3024 zone description.
3026 Value Type: TEXT
3028 Property Parameters: Non-standard and language property parameters
3029 can be specified on this property.
3031 Conformance: This property can be specified in a "VTIMEZONE" calendar
3032 component.
3034 Description: This property may be specified in multiple languages; in
3035 order to provide for different language requirements.
3037 Format Definition: This property is defined by the following
3038 notation:
3040 tzname = "TZNAME" tznparam ":" text CRLF
3042 tznparam = *(
3044 ; the following is optional,
3045 ; but MUST NOT occur more than once
3047 (";" languageparam) /
3049 ; the following is optional,
3050 ; and MAY occur more than once
3052 (";" xparam)
3054 )
3056 Example: The following are example of this property:
3058 TZNAME:EST
3060 Figure 97
3062 The following is an example of this property when two different
3063 languages for the time zone name are specified:
3065 TZNAME;LANGUAGE=en:EST
3066 TZNAME;LANGUAGE=fr-CA:HNE
3068 8.2.16.3. Time Zone Offset From
3070 Property Name: TZOFFSETFROM
3072 Purpose: This property specifies the offset which is in use prior to
3073 this time zone observance.
3075 Value Type: UTC-OFFSET
3077 Property Parameters: Non-standard property parameters can be
3078 specified on this property.
3080 Conformance: This property MUST be specified in a "VTIMEZONE"
3081 calendar component.
3083 Description: This property specifies the offset which is in use prior
3084 to this time observance. It is used to calculate the absolute time
3085 at which the transition to a given observance takes place. This
3086 property MUST only be specified in a "VTIMEZONE" calendar component.
3087 A "VTIMEZONE" calendar component MUST include this property. The
3088 property value is a signed numeric indicating the number of hours and
3089 possibly minutes from UTC. Positive numbers represent time zones
3090 east of the prime meridian, or ahead of UTC. Negative numbers
3091 represent time zones west of the prime meridian, or behind UTC.
3093 Format Definition: The property is defined by the following notation:
3095 tzoffsetfrom = "TZOFFSETFROM" frmparam ":" utc-offset
3096 CRLF
3098 frmparam = *(";" xparam)
3100 Example: The following are examples of this property:
3102 TZOFFSETFROM:-0500
3104 TZOFFSETFROM:+1345
3106 Figure 100
3108 8.2.16.4. Time Zone Offset To
3110 Property Name: TZOFFSETTO
3112 Purpose: This property specifies the offset which is in use in this
3113 time zone observance.
3115 Value Type: UTC-OFFSET
3117 Property Parameters: Non-standard property parameters can be
3118 specified on this property.
3120 Conformance: This property MUST be specified in a "VTIMEZONE"
3121 calendar component.
3123 Description: This property specifies the offset which is in use in
3124 this time zone observance. It is used to calculate the absolute time
3125 for the new observance. The property value is a signed numeric
3126 indicating the number of hours and possibly minutes from UTC.
3127 Positive numbers represent time zones east of the prime meridian, or
3128 ahead of UTC. Negative numbers represent time zones west of the
3129 prime meridian, or behind UTC.
3131 Format Definition: The property is defined by the following notation:
3133 tzoffsetto = "TZOFFSETTO" toparam ":" utc-offset CRLF
3135 toparam = *(";" xparam)
3137 Example: The following are examples of this property:
3139 TZOFFSETTO:-0400
3141 TZOFFSETTO:+1245
3143 Figure 102
3145 8.2.16.5. Time Zone URL
3147 Property Name: TZURL
3149 Purpose: The TZURL provides a means for a VTIMEZONE component to
3150 point to a network location that can be used to retrieve an up-to-
3151 date version of itself.
3153 Value Type: URI
3155 Property Parameters: Non-standard property parameters can be
3156 specified on this property.
3158 Conformance: This property can be specified in a "VTIMEZONE" calendar
3159 component.
3161 Description: The TZURL provides a means for a VTIMEZONE component to
3162 point to a network location that can be used to retrieve an up-to-
3163 date version of itself. This provides a hook to handle changes
3164 government bodies impose upon time zone definitions. Retrieval of
3165 this resource results in an iCalendar object containing a single
3166 VTIMEZONE component and a METHOD property set to PUBLISH.
3168 Format Definition: The property is defined by the following notation:
3170 tzurl = "TZURL" tzurlparam ":" uri CRLF
3172 tzurlparam = *(";" xparam)
3174 Example: The following is an example of this property:
3176 TZURL:http://timezones.r.us.net/tz/US-California-Los_Angeles.ics
3178 8.2.17. Relationship Component Properties
3180 The following properties specify relationship information in calendar
3181 components.
3183 8.2.17.1. Attendee
3185 Property Name: ATTENDEE
3187 Purpose: The property defines an "Attendee" within a calendar
3188 component.
3190 Value Type: CAL-ADDRESS
3192 Property Parameters: Non-standard, language, calendar user type,
3193 group or list membership, participation role, participation status,
3194 RSVP expectation, delegatee, delegator, sent by, common name or
3195 directory entry reference property parameters can be specified on
3196 this property.
3198 Conformance: This property MUST be specified in an iCalendar object
3199 that specifies a group scheduled calendar entity. This property MUST
3200 NOT be specified in an iCalendar object when publishing the calendar
3201 information (e.g., NOT in an iCalendar object that specifies the
3202 publication of a calendar user's busy time, event, to-do or journal).
3203 This property is not specified in an iCalendar object that specifies
3204 only a time zone definition or that defines calendar entities that
3205 are not group scheduled entities, but are entities only on a single
3206 user's calendar.
3208 Description: The property MUST only be specified within calendar
3209 components to specify participants, non-participants and the chair of
3210 a group scheduled calendar entity. The property is specified within
3211 an "EMAIL" category of the "VALARM" calendar component to specify an
3212 email address that is to receive the email type of iCalendar alarm.
3214 The property parameter CN is for the common or displayable name
3215 associated with the calendar address; ROLE, for the intended role
3216 that the attendee will have in the calendar component; PARTSTAT, for
3217 the status of the attendee's participation; RSVP, for indicating
3218 whether the favor of a reply is requested; CUTYPE, to indicate the
3219 type of calendar user; MEMBER, to indicate the groups that the
3220 attendee belongs to; DELEGATED-TO, to indicate the calendar users
3221 that the original request was delegated to; and DELEGATED-FROM, to
3222 indicate whom the request was delegated from; SENT-BY, to indicate
3223 whom is acting on behalf of the ATTENDEE; and DIR, to indicate the
3224 URI that points to the directory information corresponding to the
3225 attendee. These property parameters can be specified on an
3226 "ATTENDEE"
3228 property in either a "VEVENT", "VTODO" or "VJOURNAL" calendar
3229 component. They MUST not be specified in an "ATTENDEE" property in a
3230 "VFREEBUSY" or "VALARM" calendar component. If the LANGUAGE property
3231 parameter is specified, the identified language applies to the CN
3232 parameter.
3234 A recipient delegated a request MUST inherit the RSVP and ROLE values
3235 from the attendee that delegated the request to them.
3237 Multiple attendees can be specified by including multiple "ATTENDEE"
3238 properties within the calendar component.
3240 Format Definition: The property is defined by the following notation:
3242 attendee = "ATTENDEE" attparam ":" cal-address CRLF
3244 attparam = *(
3246 ; the following are optional,
3247 ; but MUST NOT occur more than once
3249 (";" cutypeparam) / (";"memberparam) /
3250 (";" roleparam) / (";" partstatparam) /
3251 (";" rsvpparam) / (";" deltoparam) /
3252 (";" delfromparam) / (";" sentbyparam) /
3253 (";"cnparam) / (";" dirparam) /
3254 (";" languageparam) /
3256 ; the following is optional,
3257 ; and MAY occur more than once
3259 (";" xparam)
3261 )
3263 Example: The following are examples of this property's use for a to-
3264 do:
3266 ORGANIZER:MAILTO:jsmith@host1.com
3267 ATTENDEE;MEMBER="MAILTO:DEV-GROUP@host2.com":
3268 MAILTO:joecool@host2.com
3269 ATTENDEE;DELEGATED-FROM="MAILTO:immud@host3.com":
3270 MAILTO:janedoe@host1.com
3272 The following is an example of this property used for specifying
3273 multiple attendees to an event:
3275 ORGANIZER:MAILTO:jsmith@host1.com
3276 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Henry Cabot
3277 :MAILTO:hcabot@host2.com
3278 ATTENDEE;ROLE=REQ-PARTICIPANT;DELEGATED-FROM=
3279 "MAILTO:bob@host.com"
3280 ;PARTSTAT=ACCEPTED;CN=Jane Doe:MAILTO:jdoe@host1.com
3282 The following is an example of this property with a URI to the
3283 directory information associated with the attendee:
3285 ATTENDEE;CN=John Smith;DIR="ldap://host.com:6666/o=eDABC%
3286 20Industries,c=3DUS??(cn=3DBJim%20Dolittle)":MAILTO:jimdo@
3287 host1.com
3289 The following is an example of this property with "delegatee" and
3290 "delegator" information for an event:
3292 ORGANIZER;CN=John Smith:MAILTO:jsmith@host.com
3293 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;DELEGATED-FROM=
3294 "MAILTO:iamboss@host2.com";CN=Henry Cabot:MAILTO:hcabot@
3295 host2.com
3296 ATTENDEE;ROLE=NON-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO=
3297 "MAILTO:hcabot@host2.com";CN=The Big Cheese:MAILTO:iamboss
3298 @host2.com
3299 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Jane Doe
3300 :MAILTO:jdoe@host1.com
3302 Example: The following is an example of this property's use when
3303 another calendar user is acting on behalf of the "Attendee":
3305 ATTENDEE;SENT-BY=MAILTO:jan_doe@host1.com;CN=John Smith:MAILTO:
3306 jsmith@host1.com
3308 8.2.17.2. Contact
3310 Property Name: CONTACT
3312 Purpose: The property is used to represent contact information or
3313 alternately a reference to contact information associated with the
3314 calendar component.
3316 Value Type: TEXT
3318 Property Parameters: Non-standard, alternate text representation and
3319 language property parameters can be specified on this property.
3321 Conformance: The property can be specified in a "VEVENT", "VTODO",
3322 "VJOURNAL" or "VFREEBUSY" calendar component.
3324 Description: The property value consists of textual contact
3325 information. An alternative representation for the property value
3326 can also be specified that refers to a URI pointing to an alternate
3327 form, such as a vCard [RFC 2426], for the contact information.
3329 Format Definition: The property is defined by the following notation:
3331 contact = "CONTACT" contparam ":" text CRLF
3333 contparam = *(
3334 ; the following are optional,
3335 ; but MUST NOT occur more than once
3337 (";" altrepparam) / (";" languageparam) /
3339 ; the following is optional,
3340 ; and MAY occur more than once
3342 (";" xparam)
3344 )
3346 Example: The following is an example of this property referencing
3347 textual contact information:
3349 CONTACT:Jim Dolittle\, ABC Industries\, +1-919-555-1234
3351 The following is an example of this property with an alternate
3352 representation of a LDAP URI to a directory entry containing the
3353 contact information:
3355 CONTACT;ALTREP="ldap://host.com:6666/o=3DABC%20Industries\,
3356 c=3DUS??(cn=3DBJim%20Dolittle)":Jim Dolittle\, ABC Industries\,
3357 +1-919-555-1234
3359 The following is an example of this property with an alternate
3360 representation of a MIME body part containing the contact
3361 information, such as a vCard [RFC 2426] embedded in a [MIME-DIR]
3362 content-type:
3364 CONTACT;ALTREP="CID:part3.msg970930T083000SILVER@host.com":Jim
3365 Dolittle\, ABC Industries\, +1-919-555-1234
3367 The following is an example of this property referencing a network
3368 resource, such as a vCard [RFC 2426] object containing the contact
3369 information:
3371 CONTACT;ALTREP="http://host.com/pdi/jdoe.vcf":Jim
3372 Dolittle\, ABC Industries\, +1-919-555-1234
3374 8.2.17.3. Organizer
3376 Property Name: ORGANIZER
3378 Purpose: The property defines the organizer for a calendar component.
3380 Value Type: CAL-ADDRESS
3382 Property Parameters: Non-standard, language, common name, directory
3383 entry reference, sent by property parameters can be specified on this
3384 property.
3386 Conformance: This property MUST be specified in an iCalendar object
3387 that specifies a group scheduled calendar entity. This property MUST
3388 be specified in an iCalendar object that specifies the publication of
3389 a calendar user's busy time. This property MUST NOT be specified in
3390 an iCalendar object that specifies only a time zone definition or
3391 that defines calendar entities that are not group scheduled entities,
3392 but are entities only on a single user's calendar.
3394 Description: The property is specified within the "VEVENT", "VTODO",
3395 "VJOURNAL calendar components to specify the organizer of a group
3396 scheduled calendar entity. The property is specified within the
3397 "VFREEBUSY" calendar component to specify the calendar user
3398 requesting the free or busy time. When publishing a "VFREEBUSY"
3399 calendar component, the property is used to specify the calendar that
3400 the published busy time came from.
3402 The property has the property parameters CN, for specifying the
3403 common or display name associated with the "Organizer", DIR, for
3404 specifying a pointer to the directory information associated with the
3405 "Organizer", SENT-BY, for specifying another calendar user that is
3406 acting on behalf of the "Organizer". The non-standard parameters may
3407 also be specified on this property. If the LANGUAGE property
3408 parameter is specified, the identified language applies to the CN
3409 parameter value.
3411 Format Definition: The property is defined by the following notation:
3413 organizer = "ORGANIZER" orgparam ":"
3414 cal-address CRLF
3416 orgparam = *(
3418 ; the following are optional,
3420 ; but MUST NOT occur more than once
3422 (";" cnparam) / (";" dirparam) / (";" sentbyparam) /
3423 (";" languageparam) /
3425 ; the following is optional,
3426 ; and MAY occur more than once
3428 (";" xparam)
3430 )
3432 Example: The following is an example of this property:
3434 ORGANIZER;CN=John Smith:MAILTO:jsmith@host1.com
3436 The following is an example of this property with a pointer to the
3437 directory information associated with the organizer:
3439 ORGANIZER;CN=JohnSmith;DIR="ldap://host.com:6666/o=3DDC%20Associ
3440 ates,c=3DUS??(cn=3DJohn%20Smith)":MAILTO:jsmith@host1.com
3442 The following is an example of this property used by another calendar
3443 user who is acting on behalf of the organizer, with responses
3444 intended to be sent back to the organizer, not the other calendar
3445 user:
3447 ORGANIZER;SENT-BY="MAILTO:jane_doe@host.com":
3448 MAILTO:jsmith@host1.com
3450 8.2.17.4. Participation Role
3452 Parameter Name: ROLE
3454 Purpose: To specify the participation role for the calendar user
3455 specified by the property.
3457 Description: This parameter can be specified on properties with a
3458 CAL-ADDRESS value type. The parameter specifies the participation
3459 role for the calendar user specified by the property in the group
3460 schedule calendar component. If not specified on a property that
3461 allows this parameter, the default value is REQ-PARTICIPANT.
3463 Format Definition: The property parameter is defined by the following
3464 notation:
3466 roleparam = "ROLE" "="
3467 ("CHAIR" ; Indicates chair of the
3468 ; calendar entity
3469 / "REQ-PARTICIPANT" ; Indicates a participant whose
3470 ; participation is required
3471 / "OPT-PARTICIPANT" ; Indicates a participant whose
3472 ; participation is optional
3473 / "NON-PARTICIPANT" ; Indicates a participant who is
3474 ; copied for information
3475 ; purposes only
3476 / x-name ; Experimental role
3477 / iana-token) ; Other IANA role
3478 ; Default is REQ-PARTICIPANT
3480 Example:
3482 ATTENDEE;ROLE=CHAIR:MAILTO:mrbig@host.com
3484 Figure 121
3486 8.2.17.5. Sent By
3488 Parameter Name: SENT-BY
3490 Purpose: To specify the calendar user that is acting on behalf of the
3491 calendar user specified by the property.
3493 Description: This parameter can be specified on properties with a
3494 CAL-ADDRESS value type. The parameter specifies the calendar user
3495 that is acting on behalf of the calendar user specified by the
3496 property. The parameter value MUST be a MAILTO URI as defined in
3497 [RFC 1738]. The individual calendar address parameter values MUST
3498 each be specified in a quoted-string.
3500 Format Definition: The property parameter is defined by the following
3501 notation:
3503 sentbyparam = "SENT-BY" "=" DQUOTE cal-address DQUOTE
3505 Example:
3507 ORGANIZER;SENT-BY:"MAILTO:sray@host.com":MAILTO:jsmith@host.com
3509 Figure 123
3511 8.2.17.6. Delegators
3513 Parameter Name: DELEGATED-FROM
3515 Purpose: To specify the calendar users that have delegated their
3516 participation to the calendar user specified by the property.
3518 Description: This parameter can be specified on properties with a
3519 CAL-ADDRESS value type. This parameter can be specified on a
3520 property that has a value type of calendar address. This parameter
3521 specifies those calendar uses that have delegated their participation
3522 in a group scheduled event or to-do to the calendar user specified by
3523 the property. The value MUST be a MAILTO URI as defined in [RFC
3524 1738]. The individual calendar address parameter values MUST each be
3525 specified in a quoted-string.
3527 Format Definition: The property parameter is defined by the following
3528 notation:
3530 delfromparam = "DELEGATED-FROM" "="
3531 DQUOTE cal-address DQUOTE
3532 *("," DQUOTE cal-address DQUOTE)
3534 Example:
3536 ATTENDEE;DELEGATED-FROM="MAILTO:jsmith@host.com":MAILTO:
3537 jdoe@host.com
3539 Figure 125
3541 8.2.17.7. Delegatees
3543 Parameter Name: DELEGATED-TO
3545 Purpose: To specify the calendar users to whom the calendar user
3546 specified by the property has delegated participation.
3548 Description: This parameter can be specified on properties with a
3549 CAL-ADDRESS value type. This parameter specifies those calendar
3550 users whom have been delegated participation in a group scheduled
3551 event or to-do by the calendar user specified by the property. The
3552 value MUST be a MAILTO URI as defined in [RFC 1738]. The individual
3553 calendar address parameter values MUST each be specified in a quoted-
3554 string.
3556 Format Definition: The property parameter is defined by the following
3557 notation:
3559 deltoparam = "DELEGATED-TO" "=" DQUOTE cal-address DQUOTE
3560 *("," DQUOTE cal-address DQUOTE)
3562 Example:
3564 ATTENDEE;DELEGATED-TO="MAILTO:jdoe@host.com","MAILTO:jqpublic@
3565 host.com":MAILTO:jsmith@host.com
3567 8.2.17.8. Common Name
3569 Parameter Name: CN
3571 Purpose: To specify the common name to be associated with the
3572 calendar user specified by the property.
3574 Description: This parameter can be specified on properties with a
3575 CAL-ADDRESS value type. The parameter specifies the common name to
3576 be associated with the calendar user specified by the property. The
3577 parameter value is text. The parameter value can be used for display
3578 text to be associated with the calendar address specified by the
3579 property.
3581 Format Definition: The property parameter is defined by the following
3582 notation:
3584 cnparam = "CN" "=" param-value
3586 Example:
3588 ORGANIZER;CN="John Smith":MAILTO:jsmith@host.com
3590 8.2.18. Calendar User Type
3592 Parameter Name: CUTYPE
3594 Purpose: To specify the type of calendar user specified by the
3595 property.
3597 Description: This parameter can be specified on properties with a
3598 CAL-ADDRESS value type. The parameter identifies the type of
3599 calendar user specified by the property. If not specified on a
3600 property that allows this parameter, the default is INDIVIDUAL.
3602 Format Definition: The property parameter is defined by the following
3603 notation:
3605 cutypeparam = "CUTYPE" "="
3606 ("INDIVIDUAL" ; An individual
3607 / "GROUP" ; A group of individuals
3608 / "RESOURCE" ; A physical resource
3609 / "ROOM" ; A room resource
3610 / "UNKNOWN" ; Otherwise not known
3611 / x-name ; Experimental type
3612 / iana-token) ; Other IANA registered
3613 ; type
3614 ; Default is INDIVIDUAL
3616 Example:
3618 ATTENDEE;CUTYPE=GROUP:MAILTO:ietf-calsch@imc.org
3620 8.2.19. Directory Entry Reference
3622 Parameter Name: DIR
3624 Purpose: To specify reference to a directory entry associated with
3625 the calendar user specified by the property.
3627 Description: This parameter can be specified on properties with a
3628 CAL-ADDRESS value type. The parameter specifies a reference to the
3629 directory entry associated with the calendar user specified by the
3630 property. The parameter value is a URI. The individual URI
3631 parameter values MUST each be specified in a quoted-string.
3633 Format Definition: The property parameter is defined by the following
3634 notation:
3636 dirparam = "DIR" "=" DQUOTE uri DQUOTE
3638 Example:
3640 ORGANIZER;DIR="ldap://host.com:6666/o=eDABC%20Industries,
3641 c=3DUS??(cn=3DBJim%20Dolittle)":MAILTO:jimdo@host1.com
3643 8.2.20. Recurrence ID
3645 Property Name: RECURRENCE-ID
3647 Purpose: This property is used in conjunction with the "UID" and
3648 "SEQUENCE" property to identify a specific instance of a recurring
3649 "VEVENT", "VTODO" or "VJOURNAL" calendar component. The property
3650 value is the effective value of the "DTSTART" property of the
3651 recurrence instance.
3653 Value Type: The default value type for this property is DATE-TIME.
3654 The time format can be any of the valid forms defined for a DATE-TIME
3655 value type. See DATE-TIME value type definition for specific
3656 interpretations of the various forms. The value type can be set to
3657 DATE.
3659 Property Parameters: Non-standard property, value data type, time
3660 zone identifier and recurrence identifier range parameters can be
3661 specified on this property.
3663 Conformance: This property can be specified in an iCalendar object
3664 containing a recurring calendar component.
3666 Description: The full range of calendar components specified by a
3667 recurrence set is referenced by referring to just the "UID" property
3668 value corresponding to the calendar component. The "RECURRENCE-ID"
3669 property allows the reference to an individual instance within the
3670 recurrence set.
3672 If the value of the "DTSTART" property is a DATE type value, then the
3673 value MUST be the calendar date for the recurrence instance.
3675 The date/time value is set to the time when the original recurrence
3676 instance would occur; meaning that if the intent is to change a
3677 Friday meeting to Thursday, the date/time is still set to the
3678 original Friday meeting.
3680 The "RECURRENCE-ID" property is used in conjunction with the "UID"
3681 and "SEQUENCE" property to identify a particular instance of a
3682 recurring event, to-do or journal. For a given pair of "UID" and
3683 "SEQUENCE" property values, the "RECURRENCE-ID" value for a
3684 recurrence instance is fixed. When the definition of the recurrence
3685 set for a calendar component changes, and hence the "SEQUENCE"
3686 property value changes, the "RECURRENCE-ID" for a given recurrence
3687 instance might also change.The "RANGE" parameter is used to specify
3688 the effective range of recurrence instances from the instance
3689 specified by the "RECURRENCE-ID" property value. The default value
3690 for the range parameter is the single recurrence instance only. The
3691 value can also be "THISANDPRIOR" to indicate a range defined by the
3692 given recurrence instance and all prior instances or the value can be
3693 "THISANDFUTURE" to indicate a range defined by the given recurrence
3694 instance and all subsequent instances.
3696 Format Definition: The property is defined by the following notation:
3698 recurid = "RECURRENCE-ID" ridparam ":" ridval CRLF
3700 ridparam = *(
3702 ; the following are optional,
3703 ; but MUST NOT occur more than once
3705 (";" "VALUE" "=" ("DATE-TIME" / "DATE)) /
3706 (";" tzidparam) / (";" rangeparam) /
3707 ; the following is optional,
3708 ; and MAY occur more than once
3710 (";" xparam)
3712 )
3714 ridval = date-time / date
3715 ;Value MUST match value type
3717 Example: The following are examples of this property:
3719 RECURRENCE-ID;VALUE=DATE:19960401
3721 RECURRENCE-ID;RANGE=THISANDFUTURE:19960120T120000Z
3723 Figure 135
3725 8.2.21. Related To
3727 Property Name: RELATED-TO
3729 Purpose: The property is used to represent a relationship or
3730 reference between one calendar component and another.
3732 Value Type: TEXT
3734 Property Parameters: Non-standard and relationship type property
3735 parameters can be specified on this property.
3737 Conformance: The property can be specified one or more times in the
3738 "VEVENT", "VTODO" or "VJOURNAL" calendar components.
3740 Description: The property value consists of the persistent, globally
3741 unique identifier of another calendar component. This value would be
3742 represented in a calendar component by the "UID" property.
3744 By default, the property value points to another calendar component
3745 that has a PARENT relationship to the referencing object. The
3746 "RELTYPE" property parameter is used to either explicitly state the
3747 default PARENT relationship type to the referenced calendar component
3748 or to override the default PARENT relationship type and specify
3749 either a CHILD or SIBLING relationship. The PARENT relationship
3750 indicates that the calendar component is a subordinate of the
3751 referenced calendar component. The CHILD relationship indicates that
3752 the calendar component is a superior of the referenced calendar
3753 component. The SIBLING relationship indicates that the calendar
3754 component is a peer of the referenced calendar component.
3756 Changes to a calendar component referenced by this property can have
3757 an implicit impact on the related calendar component. For example,
3758 if a group event changes its start or end date or time, then the
3759 related, dependent events will need to have their start and end dates
3760 changed in a corresponding way. Similarly, if a PARENT calendar
3761 component is canceled or deleted, then there is an implied impact to
3762 the related CHILD calendar components. This property is intended
3763 only to provide information on the relationship of calendar
3764 components. It is up to the target calendar system to maintain any
3765 property implications of this relationship.
3767 Format Definition: The property is defined by the following notation:
3769 related = "RELATED-TO" [relparam] ":" text CRLF
3771 relparam = *(
3773 ; the following is optional,
3774 ; but MUST NOT occur more than once
3776 (";" reltypeparam) /
3778 ; the following is optional,
3779 ; and MAY occur more than once
3781 (";" xparm)
3783 )
3785 The following is an example of this property:
3787 RELATED-TO:jsmith.part7.19960817T083000.xyzMail@host3.com
3789 RELATED-TO:19960401-080045-4000F192713-0052@host1.com
3791 Figure 137
3793 8.2.22. Uniform Resource Locator
3795 Property Name: URL
3797 Purpose: This property defines a Uniform Resource Locator (URL)
3798 associated with the iCalendar object.
3800 Value Type: URI
3802 Property Parameters: Non-standard property parameters can be
3803 specified on this property.
3805 Conformance: This property can be specified once in the "VEVENT",
3806 "VTODO", "VJOURNAL" or "VFREEBUSY" calendar components.
3808 Description: This property may be used in a calendar component to
3809 convey a location where a more dynamic rendition of the calendar
3810 information associated with the calendar component can be found.
3811 This memo does not attempt to standardize the form of the URI, nor
3812 the format of the resource pointed to by the property value. If the
3813 URL property and Content-Location MIME header are both specified,
3814 they MUST point to the same resource.
3816 Format Definition: The property is defined by the following notation:
3818 url = "URL" urlparam ":" uri CRLF
3820 urlparam = *(";" xparam)
3822 Example: The following is an example of this property:
3824 URL:http://abc.com/pub/calendars/jsmith/mytime.ics
3826 Figure 139
3828 8.2.23. Unique Identifier
3830 Property Name: UID
3832 Purpose: This property defines the persistent, globally unique
3833 identifier for the calendar component.
3835 Value Type: TEXT
3837 Property Parameters: Non-standard property parameters can be
3838 specified on this property.
3840 Conformance: The property MUST be specified in the "VEVENT", "VTODO",
3841 "VJOURNAL" or "VFREEBUSY" calendar components.
3843 Description: The UID itself MUST be a globally unique identifier.
3844 The generator of the identifier MUST guarantee that the identifier is
3845 unique. There are several algorithms that can be used to accomplish
3846 this. The identifier is RECOMMENDED to be the identical syntax to
3847 the [RFC 822] addr-spec. A good method to assure uniqueness is to
3848 put the domain name or a domain literal IP address of the host on
3849 which the identifier was created on the right hand side of the "@",
3850 and on the left hand side, put a combination of the current calendar
3851 date and time of day (i.e., formatted in as a DATE-TIME value) along
3852 with some other currently unique (perhaps sequential) identifier
3853 available on the system (for example, a process id number). Using a
3854 date/time value on the left hand side and a domain name or domain
3855 literal on the right hand side makes it possible to guarantee
3856 uniqueness since no two hosts should be using the same domain name or
3857 IP address at the same time. Though other algorithms will work, it
3858 is RECOMMENDED that the right hand side contain some domain
3859 identifier (either of the host itself or otherwise) such that the
3860 generator of the message identifier can guarantee the uniqueness of
3861 the left hand side within the scope of that domain.
3863 This is the method for correlating scheduling messages with the
3864 referenced "VEVENT", "VTODO", or "VJOURNAL" calendar component.
3866 The full range of calendar components specified by a recurrence set
3867 is referenced by referring to just the "UID" property value
3868 corresponding to the calendar component. The "RECURRENCE-ID"
3869 property allows the reference to an individual instance within the
3870 recurrence set.
3872 This property is an important method for group scheduling
3873 applications to match requests with later replies, modifications or
3874 deletion requests. Calendaring and scheduling applications MUST
3875 generate this property in "VEVENT", "VTODO" and "VJOURNAL" calendar
3876 components to assure interoperability with other group scheduling
3877 applications. This identifier is created by the calendar system that
3878 generates an iCalendar object.
3880 Implementations MUST be able to receive and persist values of at
3881 least 255 characters for this property.
3883 Format Definition: The property is defined by the following notation:
3885 uid = "UID" uidparam ":" text CRLF
3887 uidparam = *(";" xparam)
3889 Example: The following is an example of this property:
3891 UID:19960401T080045Z-4000F192713-0052@host1.com
3893 Figure 141
3895 8.2.24. Relationship Type
3897 Parameter Name: RELTYPE
3899 Purpose: To specify the type of hierarchical relationship associated
3900 with the calendar component specified by the property.
3902 Description: This parameter can be specified on a property that
3903 references another related calendar. The parameter specifies the
3904 hierarchical relationship type of the calendar component referenced
3905 by the property. The parameter value can be PARENT, to indicate that
3906 the referenced calendar component is a superior of calendar
3907 component; CHILD to indicate that the referenced calendar component
3908 is a subordinate of the calendar component; SIBLING to indicate that
3909 the referenced calendar component is a peer of the calendar
3910 component. If this parameter is not specified on an allowable
3911 property, the default relationship type is PARENT.
3913 Format Definition: The property parameter is defined by the following
3914 notation:
3916 reltypeparam = "RELTYPE" "="
3917 ("PARENT" ; Parent relationship. Default.
3918 / "CHILD" ; Child relationship
3919 / "SIBLING ; Sibling relationship
3920 / iana-token ; Some other IANA registered
3921 ; iCalendar relationship type
3922 / x-name) ; A non-standard, experimental
3923 ; relationship type
3925 Example:
3927 RELATED-TO;RELTYPE=SIBLING:<19960401-080045-4000F192713
3928 @host.com>
3930 Figure 143
3932 8.3. Recurrence Component Properties
3934 The following properties specify recurrence information in calendar
3935 components.
3937 8.3.1. Exception Date/Times
3939 Property Name: EXDATE
3941 Purpose: This property defines the list of date/time exceptions for a
3942 recurring calendar component.
3944 Value Type: The default value type for this property is DATE-TIME.
3945 The value type can be set to DATE.
3947 Property Parameters: Non-standard, value data type and time zone
3948 identifier property parameters can be specified on this property.
3950 Conformance: This property can be specified in an iCalendar object
3951 that includes a recurring calendar component.
3953 Description: The exception dates, if specified, are used in computing
3954 the recurrence set. The recurrence set is the complete set of
3955 recurrence instances for a calendar component. The recurrence set is
3956 generated by considering the initial "DTSTART" property along with
3957 the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained
3958 within the iCalendar object. The "DTSTART" property defines the
3959 first instance in the recurrence set. Multiple instances of the
3960 "RRULE" and "EXRULE" properties can also be specified to define more
3961 sophisticated recurrence sets. The final recurrence set is generated
3962 by gathering all of the start date-times generated by any of the
3963 specified "RRULE" and "RDATE" properties, and then excluding any
3964 start date and times which fall within the union of start date and
3965 times generated by any specified "EXRULE" and "EXDATE" properties.
3966 This implies that start date and times within exclusion related
3967 properties (i.e., "EXDATE" and "EXRULE") take precedence over those
3968 specified by inclusion properties (i.e., "RDATE" and "RRULE"). Where
3969 duplicate instances are generated by the "RRULE" and "RDATE"
3970 properties, only one recurrence is considered. Duplicate instances
3971 are ignored.
3973 The "EXDATE" property can be used to exclude the value specified in
3974 "DTSTART". However, in such cases the original "DTSTART" date MUST
3975 still be maintained by the calendaring and scheduling system because
3976 the original "DTSTART" value has inherent usage dependencies by other
3977 properties such as the "RECURRENCE-ID".
3979 Format Definition: The property is defined by the following notation:
3981 exdate = "EXDATE" exdtparam ":" exdtval *("," exdtval) CRLF
3983 exdtparam = *(
3985 ; the following are optional,
3986 ; but MUST NOT occur more than once
3988 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
3990 (";" tzidparam) /
3992 ; the following is optional,
3993 ; and MAY occur more than once
3995 (";" xparam)
3997 )
3999 exdtval = date-time / date
4000 ;Value MUST match value type
4002 Example: The following is an example of this property:
4004 EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z
4006 Figure 145
4008 8.3.2. Exception Rule
4010 Property Name: EXRULE
4012 Purpose: This property defines a rule or repeating pattern for an
4013 exception to a recurrence set.
4015 Value Type: RECUR
4017 Property Parameters: Non-standard property parameters can be
4018 specified on this property.
4020 Conformance: This property can be specified in "VEVENT", "VTODO" or
4021 "VJOURNAL" calendar components.
4023 Description: The exception rule, if specified, is used in computing
4024 the recurrence set. The recurrence set is the complete set of
4025 recurrence instances for a calendar component. The recurrence set is
4026 generated by considering the initial "DTSTART" property along with
4027 the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained
4028 within the iCalendar object. The "DTSTART" defines the first
4029 instance in the recurrence set. Multiple instances of the "RRULE"
4030 and "EXRULE" properties can also be specified to define more
4031 sophisticated recurrence sets. The final recurrence set is generated
4032 by gathering all of the start date-times generated by any of the
4033 specified "RRULE" and "RDATE" properties, and excluding any start
4034 date and times which fall within the union of start date and times
4035 generated by any specified "EXRULE" and "EXDATE" properties. This
4036 implies that start date and times within exclusion related properties
4037 (i.e., "EXDATE" and "EXRULE") take precedence over those specified by
4038 inclusion
4040 properties (i.e., "RDATE" and "RRULE"). Where duplicate instances
4041 are generated by the "RRULE" and "RDATE" properties, only one
4042 recurrence is considered. Duplicate instances are ignored.
4044 The "EXRULE" property can be used to exclude the value specified in
4045 "DTSTART". However, in such cases the original "DTSTART" date MUST
4046 still be maintained by the calendaring and scheduling system because
4047 the original "DTSTART" value has inherent usage dependencies by other
4048 properties such as the "RECURRENCE-ID".
4050 Format Definition: The property is defined by the following notation:
4052 exrule = "EXRULE" exrparam ":" recur CRLF
4054 exrparam = *(";" xparam)
4056 Example: The following are examples of this property. Except every
4057 other week, on Tuesday and Thursday for 4 occurrences:
4059 EXRULE:FREQ=WEEKLY;COUNT=4;INTERVAL=2;BYDAY=TU,TH
4061 Figure 147
4062 Except daily for 10 occurrences:
4064 EXRULE:FREQ=DAILY;COUNT=10
4066 Except yearly in June and July for 8 occurrences:
4068 EXRULE:FREQ=YEARLY;COUNT=8;BYMONTH=6,7
4070 8.3.3. Recurrence Date/Times
4072 Property Name: RDATE
4074 Purpose: This property defines the list of date/times for a
4075 recurrence set.
4077 Value Type: The default value type for this property is DATE-TIME.
4078 The value type can be set to DATE or PERIOD.
4080 Property Parameters: Non-standard, value data type and time zone
4081 identifier property parameters can be specified on this property.
4083 Conformance: The property can be specified in "VEVENT", "VTODO",
4084 "VJOURNAL" or "VTIMEZONE" calendar components.
4086 Description: This property can appear along with the "RRULE" property
4087 to define an aggregate set of repeating occurrences. When they both
4088 appear in an iCalendar object, the recurring events are defined by
4089 the union of occurrences defined by both the "RDATE" and "RRULE".
4091 The recurrence dates, if specified, are used in computing the
4092 recurrence set. The recurrence set is the complete set of recurrence
4093 instances for a calendar component. The recurrence set is generated
4094 by considering the initial "DTSTART" property along with the "RRULE",
4095 "RDATE", "EXDATE" and "EXRULE" properties contained within the
4096 iCalendar object. The "DTSTART" property defines the first instance
4097 in the recurrence set. Multiple instances of the "RRULE" and
4098 "EXRULE" properties can also be specified to define more
4099 sophisticated recurrence sets. The final recurrence set is generated
4100 by gathering all of the start date/times generated by any of the
4101 specified "RRULE" and "RDATE" properties, and excluding any start
4102 date/times which fall within the union of start date/times generated
4103 by any specified "EXRULE" and "EXDATE" properties. This implies that
4104 start date/times within exclusion related properties (i.e., "EXDATE"
4105 and "EXRULE") take precedence over those specified by inclusion
4106 properties (i.e., "RDATE" and "RRULE"). Where duplicate instances
4107 are generated by the "RRULE" and "RDATE" properties, only one
4108 recurrence is considered. Duplicate instances are ignored.
4110 Format Definition: The property is defined by the following notation:
4112 rdate = "RDATE" rdtparam ":" rdtval *("," rdtval) CRLF
4114 rdtparam = *(
4116 ; the following are optional,
4117 ; but MUST NOT occur more than once
4119 (";" "VALUE" "=" ("DATE-TIME" / "DATE" / "PERIOD")) /
4120 (";" tzidparam) /
4122 ; the following is optional,
4123 ; and MAY occur more than once
4125 (";" xparam)
4127 )
4129 rdtval = date-time / date / period
4130 ;Value MUST match value type
4132 Example: The following are examples of this property:
4134 RDATE:19970714T123000Z
4136 RDATE;TZID=US-EASTERN:19970714T083000
4138 RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z,
4139 19960404T010000Z/PT3H
4141 RDATE;VALUE=DATE:19970101,19970120,19970217,19970421
4142 19970526,19970704,19970901,19971014,19971128,19971129,19971225
4144 Figure 151
4146 8.3.4. Recurrence Identifier Range
4148 Parameter Name: RANGE
4150 Purpose: To specify the effective range of recurrence instances from
4151 the instance specified by the recurrence identifier specified by the
4152 property.
4154 Description: The parameter can be specified on a property that
4155 specifies a recurrence identifier. The parameter specifies the
4156 effective range of recurrence instances that is specified by the
4157 property. The effective range is from the recurrence identified
4158 specified by the property. If this parameter is not specified an
4159 allowed property, then the default range is the single instance
4160 specified by the recurrence identifier value of the property. The
4161 parameter value can be "THISANDPRIOR" to indicate a range defined by
4162 the recurrence identified value of the property and all prior
4163 instances. The parameter value can also be "THISANDFUTURE" to
4164 indicate a range defined by the recurrence identifier and all
4165 subsequent instances.
4167 Format Definition: The property parameter is defined by the following
4169 rangeparam = "RANGE" "=" ("THISANDPRIOR"
4170 ; To specify all instances prior to the recurrence identifier
4171 / "THISANDFUTURE")
4172 ; To specify the instance specified by the recurrence identifier
4173 ; and all subsequent recurrence instances
4175 Example:
4177 RECURRENCE-ID;RANGE=THISANDPRIOR:19980401T133000Z
4179 Figure 153
4181 8.3.5. Recurrence Rule
4183 Property Name: RRULE
4185 Purpose: This property defines a rule or repeating pattern for
4186 recurring events, to-dos, or time zone definitions.
4188 Value Type: RECUR
4190 Property Parameters: Non-standard property parameters can be
4191 specified on this property.
4193 Conformance: This property can be specified one or more times in
4194 recurring "VEVENT", "VTODO" and "VJOURNAL" calendar components. It
4195 can also be specified once in each STANDARD or DAYLIGHT sub-component
4196 of the "VTIMEZONE" calendar component.
4198 Description: The recurrence rule, if specified, is used in computing
4199 the recurrence set. The recurrence set is the complete set of
4200 recurrence instances for a calendar component. The recurrence set is
4201 generated by considering the initial "DTSTART" property along with
4202 the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained
4203 within the iCalendar object. The "DTSTART" property defines the
4204 first instance in the recurrence set. Multiple instances of the
4205 "RRULE" and "EXRULE" properties can also be specified to define more
4206 sophisticated recurrence sets. The final recurrence set is generated
4207 by gathering all of the start date/times generated by any of the
4208 specified "RRULE" and "RDATE" properties, and excluding any start
4209 date/times which fall within the union of start date/times generated
4210 by any specified "EXRULE" and "EXDATE" properties. This implies that
4211 start date/times within exclusion related properties (i.e., "EXDATE"
4212 and "EXRULE") take precedence over those specified by inclusion
4213 properties (i.e., "RDATE" and "RRULE"). Where duplicate instances
4214 are generated by the "RRULE" and "RDATE" properties, only one
4215 recurrence is considered. Duplicate instances are ignored.
4217 The "DTSTART" and "DTEND" property pair or "DTSTART" and "DURATION"
4218 property pair, specified within the iCalendar object defines the
4219 first instance of the recurrence. When used with a recurrence rule,
4220 the "DTSTART" and "DTEND" properties MUST be specified in local time
4221 and the appropriate set of "VTIMEZONE" calendar components MUST be
4222 included. For detail on the usage of the "VTIMEZONE" calendar
4223 component, see the "VTIMEZONE" calendar component definition.
4225 Any duration associated with the iCalendar object applies to all
4226 members of the generated recurrence set. Any modified duration for
4227 specific recurrences MUST be explicitly specified using the "RDATE"
4228 property.
4230 Format Definition: This property is defined by the following
4231 notation:
4233 rrule = "RRULE" rrulparam ":" recur CRLF
4235 rrulparam = *(";" xparam)
4237 Example: All examples assume the Eastern United States time zone.
4239 Daily for 10 occurrences:
4241 DTSTART;TZID=US-Eastern:19970902T090000
4242 RRULE:FREQ=DAILY;COUNT=10
4244 ==> (1997 9:00 AM EDT)September 2-11
4246 Daily until December 24, 1997:
4248 DTSTART;TZID=US-Eastern:19970902T090000
4249 RRULE:FREQ=DAILY;UNTIL=19971224T000000Z
4251 ==> (1997 9:00 AM EDT)September 2-30;October 1-25
4252 (1997 9:00 AM EST)October 26-31;November 1-30;December 1-23
4254 Every other day - forever:
4256 DTSTART;TZID=US-Eastern:19970902T090000
4257 RRULE:FREQ=DAILY;INTERVAL=2
4258 ==> (1997 9:00 AM EDT)September2,4,6,8...24,26,28,30;
4259 October 2,4,6...20,22,24
4260 (1997 9:00 AM EST)October 26,28,30;November
4261 1,3,5,7...25,27,29; Dec 1,3,...
4263 Every 10 days, 5 occurrences:
4265 DTSTART;TZID=US-Eastern:19970902T090000
4266 RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5
4268 ==> (1997 9:00 AM EDT)September 2,12,22;
4269 October 2,12
4271 Everyday in January, for 3 years:
4273 DTSTART;TZID=US-Eastern:19980101T090000
4274 RRULE:FREQ=YEARLY;UNTIL=20000131T090000Z;
4275 BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA
4276 or
4277 RRULE:FREQ=DAILY;UNTIL=20000131T090000Z;
4278 BYMONTH=1
4280 ==> (1998 9:00 AM EDT)January 1-31
4281 (1999 9:00 AM EDT)January 1-31
4282 (2000 9:00 AM EDT)January 1-31
4284 Weekly for 10 occurrences
4286 DTSTART;TZID=US-Eastern:19970902T090000
4287 RRULE:FREQ=WEEKLY;COUNT=10
4289 ==> (1997 9:00 AM EDT)September 2,9,16,23,30;
4290 October 7,14,21
4291 (1997 9:00 AM EST)October 28;November 4
4293 Weekly until December 24, 1997
4295 DTSTART;TZID=US-Eastern:19970902T090000
4296 RRULE:FREQ=WEEKLY;UNTIL=19971224T000000Z
4298 ==> (1997 9:00 AM EDT)September 2,9,16,23,30;
4299 October 7,14,21(1997 9:00 AM EST)October 28;
4300 November 4,11,18,25;
4301 December 2,9,16,23
4303 Every other week - forever:
4305 DTSTART;TZID=US-Eastern:19970902T090000
4306 RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=SU
4308 ==> (1997 9:00 AM EDT)September 2,16,30;October 14
4309 (1997 9:00 AM EST)October 28;November 11,25;
4310 December 9,23(1998 9:00 AM EST)January 6,20;February
4311 ...
4313 Weekly on Tuesday and Thursday for 5 weeks:
4315 DTSTART;TZID=US-Eastern:19970902T090000
4316 RRULE:FREQ=WEEKLY;UNTIL=19971007T000000Z;
4317 WKST=SU;BYDAY=TU,TH
4319 or
4321 RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH
4323 ==> (1997 9:00 AM EDT)September 2,4,9,11,16,18,23,25,30;
4324 October 2
4326 Every other week on Monday, Wednesday and Friday until
4327 December 24, 1997, but starting on Tuesday,
4328 September 2, 1997:
4330 DTSTART;TZID=US-Eastern:19970902T090000
4331 RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;
4332 WKST=SU;BYDAY=MO,WE,FR
4333 ==> (1997 9:00 AM EDT)September 2,3,5,15,17,19,29;October
4334 1,3,13,15,17
4335 (1997 9:00 AM EST)October 27,29,31;
4336 November 10,12,14,24,26,28;
4337 December 8,10,12,22
4339 Every other week on Tuesday and Thursday, for 8 occurrences:
4341 DTSTART;TZID=US-Eastern:19970902T090000
4342 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;
4343 BYDAY=TU,TH
4345 ==> (1997 9:00 AM EDT)September 2,4,16,18,30;
4346 October 2,14,16
4348 Monthly on the 1st Friday for ten occurrences:
4350 DTSTART;TZID=US-Eastern:19970905T090000
4351 RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR
4353 ==> (1997 9:00 AM EDT)September 5;October 3
4354 (1997 9:00 AM EST)November 7;Dec 5
4355 (1998 9:00 AM EST)January 2;February 6;
4356 March 6;April 3
4357 (1998 9:00 AM EDT)May 1;June 5
4359 Monthly on the 1st Friday until December 24, 1997:
4361 DTSTART;TZID=US-Eastern:19970905T090000
4362 RRULE:FREQ=MONTHLY;UNTIL=19971224T000000Z;
4363 BYDAY=1FR
4365 ==> (1997 9:00 AM EDT)September 5;October 3
4366 (1997 9:00 AM EST)November 7;December 5
4368 Every other month on the 1st and last Sunday of the month for 10
4369 occurrences:
4371 DTSTART;TZID=US-Eastern:19970907T090000
4372 RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=10;
4373 BYDAY=1SU,-1SU
4375 ==> (1997 9:00 AM EDT)September 7,28
4376 (1997 9:00 AM EST)November 2,30
4378 (1998 9:00 AM EST)January 4,25;March 1,29
4379 (1998 9:00 AM EDT)May 3,31
4381 Monthly on the second to last Monday of the month for 6 months:
4383 DTSTART;TZID=US-Eastern:19970922T090000
4384 RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO
4386 ==> (1997 9:00 AM EDT)September 22;October 20
4387 (1997 9:00 AM EST)November 17;December 22
4388 (1998 9:00 AM EST)January 19;February 16
4390 Monthly on the third to the last day of the month, forever:
4392 DTSTART;TZID=US-Eastern:19970928T090000
4393 RRULE:FREQ=MONTHLY;BYMONTHDAY=-3
4395 ==> (1997 9:00 AM EDT)September 28
4396 (1997 9:00 AM EST)October 29;November 28;
4397 December 29(1998 9:00 AM EST)January 29;
4398 February 26
4399 ...
4401 Monthly on the 2nd and 15th of the month for 10 occurrences:
4403 DTSTART;TZID=US-Eastern:19970902T090000
4404 RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15
4406 ==> (1997 9:00 AM EDT)September 2,15;October 2,15
4407 (1997 9:00 AM EST)November 2,15;December 2,15
4408 (1998 9:00 AM EST)January 2,15
4410 Monthly on the first and last day of the month for 10 occurrences:
4412 DTSTART;TZID=US-Eastern:19970930T090000
4413 RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1
4415 ==> (1997 9:00 AM EDT)September 30;October 1
4416 (1997 9:00 AM EST)October 31;November 1,30;
4417 December 1,31(1998 9:00 AM EST)January 1,31;
4418 February 1
4420 Every 18 months on the 10th thru 15th of the month for 10
4421 occurrences:
4423 DTSTART;TZID=US-Eastern:19970910T090000
4424 RRULE:FREQ=MONTHLY;INTERVAL=18;COUNT=10;
4425 BYMONTHDAY=10,11,12,13,14,
4426 15
4428 ==> (1997 9:00 AM EDT)September 10,11,12,13,14,15
4430 (1999 9:00 AM EST)March 10,11,12,13
4432 Every Tuesday, every other month:
4434 DTSTART;TZID=US-Eastern:19970902T090000
4435 RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU
4437 ==> (1997 9:00 AM EDT)September 2,9,16,23,30
4438 (1997 9:00 AM EST)November 4,11,18,25
4439 (1998 9:00 AM EST)January 6,13,20,27;
4440 March 3,10,17,24,31
4441 ...
4443 Yearly in June and July for 10 occurrences:
4445 DTSTART;TZID=US-Eastern:19970610T090000
4447 RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7
4448 ==> (1997 9:00 AM EDT)June 10;July 10
4449 (1998 9:00 AM EDT)June 10;July 10
4450 (1999 9:00 AM EDT)June 10;July 10
4451 (2000 9:00 AM EDT)June 10;July 10
4452 (2001 9:00 AM EDT)June 10;July 10
4453 Note: Since none of the BYDAY, BYMONTHDAY or
4454 BYYEARDAY components are specified, the day is
4455 gotten from DTSTART
4457 Every other year on January, February, and March
4458 for 10 occurrences:
4460 DTSTART;TZID=US-Eastern:19970310T090000
4461 RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10;
4462 BYMONTH=1,2,3
4464 ==> (1997 9:00 AM EST)March 10
4465 (1999 9:00 AM EST)January 10;February 10;March 10
4466 (2001 9:00 AM EST)January 10;February 10;March 10
4467 (2003 9:00 AM EST)January 10;February 10;March 10
4469 Every 3rd year on the 1st, 100th and 200th day
4470 for 10 occurrences:
4472 DTSTART;TZID=US-Eastern:19970101T090000
4473 RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10;
4474 BYYEARDAY=1,100,200
4476 ==> (1997 9:00 AM EST)January 1
4477 (1997 9:00 AM EDT)April 10;July 19
4478 (2000 9:00 AM EST)January 1
4479 (2000 9:00 AM EDT)April 9;July 18
4480 (2003 9:00 AM EST)January 1
4481 (2003 9:00 AM EDT)April 10;July 19
4482 (2006 9:00 AM EST)January 1
4484 Every 20th Monday of the year, forever:
4486 DTSTART;TZID=US-Eastern:19970519T090000
4487 RRULE:FREQ=YEARLY;BYDAY=20MO
4489 ==> (1997 9:00 AM EDT)May 19
4490 (1998 9:00 AM EDT)May 18
4491 (1999 9:00 AM EDT)May 17
4492 ...
4494 Monday of week number 20 (where the default start
4495 of the week is Monday), forever:
4497 DTSTART;TZID=US-Eastern:19970512T090000
4498 RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO
4500 ==> (1997 9:00 AM EDT)May 12
4501 (1998 9:00 AM EDT)May 11
4502 (1999 9:00 AM EDT)May 17
4503 ...
4505 Every Thursday in March, forever:
4507 DTSTART;TZID=US-Eastern:19970313T090000
4508 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH
4510 ==> (1997 9:00 AM EST)March 13,20,27
4511 (1998 9:00 AM EST)March 5,12,19,26
4512 (1999 9:00 AM EST)March 4,11,18,25
4513 ...
4515 Every Thursday, but only during June, July, and August,
4516 forever:
4518 DTSTART;TZID=US-Eastern:19970605T090000
4519 RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8
4521 ==> (1997 9:00 AM EDT)June 5,12,19,26;July 3,10,17,24,31;
4522 August 7,14,21,28
4523 (1998 9:00 AM EDT)June 4,11,18,25;July 2,9,16,23,30;
4524 August 6,13,20,27
4525 (1999 9:00 AM EDT)June 3,10,17,24;July 1,8,15,22,29;
4526 August 5,12,19,26
4527 ...
4529 Every Friday the 13th, forever:
4531 DTSTART;TZID=US-Eastern:19970902T090000
4532 EXDATE;TZID=US-Eastern:19970902T090000
4533 RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13
4535 ==> (1998 9:00 AM EST)February 13;March 13;
4536 November 13(1999 9:00 AM EDT)August 13
4537 (2000 9:00 AM EDT)October 13
4538 ...
4540 The first Saturday that follows the first Sunday of the month,
4541 forever:
4543 DTSTART;TZID=US-Eastern:19970913T090000
4544 RRULE:FREQ=MONTHLY;BYDAY=SA;
4545 BYMONTHDAY=7,8,9,10,11,12,13
4547 ==> (1997 9:00 AM EDT)September 13;October 11
4548 (1997 9:00 AM EST)November 8;December 13
4549 (1998 9:00 AM EST)January 10;February 7;March 7
4550 (1998 9:00 AM EDT)April 11;May 9;June 13...
4551 ...
4553 Every four years, the first Tuesday after a Monday in November,
4554 forever (U.S. Presidential Election day):
4556 DTSTART;TZID=US-Eastern:19961105T090000
4557 RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;
4558 BYDAY=TU;BYMONTHDAY=2,3,4,
4559 5,6,7,8
4561 ==> (1996 9:00 AM EST)November 5
4562 (2000 9:00 AM EST)November 7
4563 (2004 9:00 AM EST)November 2
4564 ...
4566 The 3rd instance into the month of one of Tuesday, Wednesday or
4567 Thursday, for the next 3 months:
4569 DTSTART;TZID=US-Eastern:19970904T090000
4570 RRULE:FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;
4571 BYSETPOS=3
4573 ==> (1997 9:00 AM EDT)September 4;October 7
4574 (1997 9:00 AM EST)November 6
4576 The 2nd to last weekday of the month:
4578 DTSTART;TZID=US-Eastern:19970929T090000
4579 RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;
4580 BYSETPOS=-2
4582 ==> (1997 9:00 AM EDT)September 29
4583 (1997 9:00 AM EST)October 30;November 27;December 30
4584 (1998 9:00 AM EST)January 29;February 26;March 30
4586 ...
4588 Every 3 hours from 9:00 AM to 5:00 PM on a specific day:
4590 DTSTART;TZID=US-Eastern:19970902T090000
4591 RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z
4593 ==> (September 2, 1997 EDT)09:00,12:00,15:00
4595 Every 15 minutes for 6 occurrences:
4597 DTSTART;TZID=US-Eastern:19970902T090000
4598 RRULE:FREQ=MINUTELY;INTERVAL=15;COUNT=6
4600 ==> (September 2, 1997 EDT)09:00,09:15,09:30,09:45,10:00,10:15
4602 Every hour and a half for 4 occurrences:
4604 DTSTART;TZID=US-Eastern:19970902T090000
4605 RRULE:FREQ=MINUTELY;INTERVAL=90;COUNT=4
4607 ==> (September 2, 1997 EDT)09:00,10:30;12:00;13:30
4609 Every 20 minutes from 9:00 AM to 4:40 PM every day:
4611 DTSTART;TZID=US-Eastern:19970902T090000
4612 RRULE:FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40
4613 or
4614 RRULE:FREQ=MINUTELY;INTERVAL=20;BYHOUR=9,10,11,12,13,14,15,16
4616 ==> (September 2, 1997 EDT)9:00,9:20,9:40,10:00,10:20,
4617 ... 16:00,16:20,16:40
4618 (September 3, 1997 EDT)9:00,9:20,9:40,10:00,10:20,
4619 ...16:00,16:20,16:40
4620 ...
4622 An example where the days generated makes a difference because of
4623 WKST:
4625 DTSTART;TZID=US-Eastern:19970805T090000
4626 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO
4627 ==> (1997 EDT)Aug 5,10,19,24
4629 changing only WKST from MO to SU, yields different results...
4631 DTSTART;TZID=US-Eastern:19970805T090000
4632 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU
4633 ==> (1997 EDT)August 5,17,19,31
4635 8.4. Alarm Component Properties
4637 The following properties specify alarm information in calendar
4638 components.
4640 8.4.1. Action
4642 Property Name: ACTION
4644 Purpose: This property defines the action to be invoked when an alarm
4645 is triggered.
4647 Value Type: TEXT
4649 Property Parameters: Non-standard property parameters can be
4650 specified on this property.
4652 Conformance: This property MUST be specified once in a "VALARM"
4653 calendar component.
4655 Description: Each "VALARM" calendar component has a particular type
4656 of action associated with it. This property specifies the type of
4657 action
4659 Format Definition: The property is defined by the following notation:
4661 action = "ACTION" actionparam ":" actionvalue CRLF
4663 actionparam = *(";" xparam)
4665 actionvalue = "AUDIO" / "DISPLAY" / "EMAIL" / "PROCEDURE"
4666 / iana-token / x-name
4668 Example: The following are examples of this property in a "VALARM"
4669 calendar component:
4671 ACTION:AUDIO
4673 ACTION:DISPLAY
4675 ACTION:PROCEDURE
4677 8.4.2. Alarm Repeat Count
4679 Property Name: REPEAT
4681 Purpose: This property defines the number of time the alarm should be
4682 repeated, after the initial trigger.
4684 Value Type: INTEGER
4686 Property Parameters: Non-standard property parameters can be
4687 specified on this property.
4689 Conformance: This property can be specified in a "VALARM" calendar
4690 component.
4692 Description: If the alarm triggers more than once, then this property
4693 MUST be specified along with the "DURATION" property.
4695 Format Definition: The property is defined by the following notation:
4697 repeatcnt = "REPEAT" repparam ":" integer CRLF
4698 ;Default is "0", zero.
4700 repparam = *(";" xparam)
4702 Example: The following is an example of this property for an alarm
4703 that repeats 4 additional times with a 5 minute delay after the
4704 initial triggering of the alarm:
4706 REPEAT:4
4707 DURATION:PT5M
4709 8.4.3. Alarm Trigger
4711 Property Name: TRIGGER
4713 Purpose: This property specifies when an alarm will trigger.
4715 Value Type: The default value type is DURATION. The value type can
4716 be set to a DATE-TIME value type, in which case the value MUST
4717 specify a UTC formatted DATE-TIME value.
4719 Property Parameters: Non-standard, value data type, time zone
4720 identifier or trigger relationship property parameters can be
4721 specified on this property. The trigger relationship property
4722 parameter MUST only be specified when the value type is DURATION.
4724 Conformance: This property MUST be specified in the "VALARM" calendar
4725 component.
4727 Description: Within the "VALARM" calendar component, this property
4728 defines when the alarm will trigger. The default value type is
4729 DURATION, specifying a relative time for the trigger of the alarm.
4730 The default duration is relative to the start of an event or to-do
4731 that the alarm is associated with. The duration can be explicitly
4732 set to trigger from either the end or the start of the associated
4733 event or to-do with the "RELATED" parameter. A value of START will
4734 set the alarm to trigger off the start of the associated event or
4735 to-do. A value of END will set the alarm to trigger off the end of
4736 the associated event or to-do.
4738 Either a positive or negative duration may be specified for the
4739 "TRIGGER" property. An alarm with a positive duration is triggered
4740 after the associated start or end of the event or to-do. An alarm
4741 with a negative duration is triggered before the associated start or
4742 end of the event or to-do.
4744 The "RELATED" property parameter is not valid if the value type of
4745 the property is set to DATE-TIME (i.e., for an absolute date and time
4746 alarm trigger). If a value type of DATE-TIME is specified, then the
4747 property value MUST be specified in the UTC time format. If an
4748 absolute trigger is specified on an alarm for a recurring event or
4749 to-do, then the alarm will only trigger for the specified absolute
4750 date/time, along with any specified repeating instances.
4752 If the trigger is set relative to START, then the "DTSTART" property
4753 MUST be present in the associated "VEVENT" or "VTODO" calendar
4754 component. If an alarm is specified for an event with the trigger
4755 set relative to the END, then the "DTEND" property or the "DSTART"
4756 and "DURATION' properties MUST be present in the associated "VEVENT"
4757 calendar component. If the alarm is specified for a to-do with a
4758 trigger set relative to the END, then either the "DUE" property or
4759 the "DSTART" and "DURATION' properties MUST be present in the
4760 associated "VTODO" calendar component.
4762 Alarms specified in an event or to-do which is defined in terms of a
4763 DATE value type will be triggered relative to 00:00:00 UTC on the
4764 specified date. For example, if "DTSTART:19980205, then the duration
4765 trigger will be relative to19980205T000000Z.
4767 Format Definition: The property is defined by the following notation:
4769 trigger = "TRIGGER" (trigrel / trigabs)
4771 trigrel = *(
4773 ; the following are optional,
4774 ; but MUST NOT occur more than once
4776 (";" "VALUE" "=" "DURATION") /
4777 (";" trigrelparam) /
4779 ; the following is optional,
4781 ; and MAY occur more than once
4783 (";" xparam)
4784 ) ":" dur-value
4786 trigabs = 1*(
4788 ; the following is REQUIRED,
4789 ; but MUST NOT occur more than once
4791 (";" "VALUE" "=" "DATE-TIME") /
4793 ; the following is optional,
4794 ; and MAY occur more than once
4796 (";" xparam)
4798 ) ":" date-time
4800 Example: A trigger set 15 minutes prior to the start of the event or
4801 to-do.
4803 TRIGGER:-P15M
4805 A trigger set 5 minutes after the end of the event or to-do.
4807 TRIGGER;RELATED=END:P5M
4809 A trigger set to an absolute date/time.
4811 TRIGGER;VALUE=DATE-TIME:19980101T050000Z
4813 8.5. Alarm Trigger Relationship
4815 Parameter Name: RELATED
4817 Purpose: To specify the relationship of the alarm trigger with
4818 respect to the start or end of the calendar component.
4820 Description: The parameter can be specified on properties that
4821 specify an alarm trigger with a DURATION value type. The parameter
4822 specifies whether the alarm will trigger relative to the start or end
4823 of the calendar component. The parameter value START will set the
4824 alarm to trigger off the start of the calendar component; the
4825 parameter value END will set the alarm to trigger off the end of the
4826 calendar component. If the parameter is not specified on an
4827 allowable property, then the default is START.
4829 Format Definition: The property parameter is defined by the following
4830 notation:
4832 trigrelparam = "RELATED" "="
4833 ("START" ; Trigger off of start
4834 / "END") ; Trigger off of end
4836 Example:
4838 TRIGGER;RELATED=END:PT5M
4840 Figure 202
4842 8.6. Change Management Component Properties
4844 The following properties specify change management information in
4845 calendar components.
4847 8.6.1. Date/Time Created
4849 Property Name: CREATED
4851 Purpose: This property specifies the date and time that the calendar
4852 information was created by the calendar user agent in the calendar
4853 store.
4855 Note: This is analogous to the creation date and time for a file in
4856 the file system.
4858 Value Type: DATE-TIME
4860 Property Parameters: Non-standard property parameters can be
4861 specified on this property.
4863 Conformance: The property can be specified once in "VEVENT", "VTODO"
4864 or "VJOURNAL" calendar components.
4866 Description: The date and time is a UTC value.
4868 Format Definition: The property is defined by the following notation:
4870 created = "CREATED" creaparam ":" date-time CRLF
4872 creaparam = *(";" xparam)
4874 Example: The following is an example of this property:
4876 CREATED:19960329T133000Z
4878 Figure 204
4880 8.6.2. Date/Time Stamp
4882 Property Name: DTSTAMP
4884 Purpose: The property indicates the date/time that the instance of
4885 the iCalendar object was created.
4887 Value Type: DATE-TIME
4889 Property Parameters: Non-standard property parameters can be
4890 specified on this property.
4892 Conformance: This property MUST be included in the "VEVENT", "VTODO",
4893 "VJOURNAL" or "VFREEBUSY" calendar components.
4895 Description: The value MUST be specified in the UTC time format.
4897 This property is also useful to protocols such as [IMIP] that have
4898 inherent latency issues with the delivery of content. This property
4899 will assist in the proper sequencing of messages containing iCalendar
4900 objects.
4902 This property is different than the "CREATED" and "LAST-MODIFIED"
4903 properties. These two properties are used to specify when the
4904 particular calendar data in the calendar store was created and last
4905 modified. This is different than when the iCalendar object
4906 representation of the calendar service information was created or
4907 last modified.
4909 Format Definition: The property is defined by the following notation:
4911 dtstamp = "DTSTAMP" stmparam ":" date-time CRLF
4913 stmparam = *(";" xparam)
4915 Example:
4917 DTSTAMP:19971210T080000Z
4919 Figure 206
4921 8.6.3. Last Modified
4923 Property Name: LAST-MODIFIED
4925 Purpose: The property specifies the date and time that the
4926 information associated with the calendar component was last revised
4927 in the calendar store.
4929 Note: This is analogous to the modification date and time for a file
4930 in the file system.
4932 Value Type: DATE-TIME
4934 Property Parameters: Non-standard property parameters can be
4935 specified on this property.
4937 Conformance: This property can be specified in the "EVENT", "VTODO",
4938 "VJOURNAL" or "VTIMEZONE" calendar components.
4940 Description: The property value MUST be specified in the UTC time
4941 format.
4943 Format Definition: The property is defined by the following notation:
4945 last-mod = "LAST-MODIFIED" lstparam ":" date-time CRLF
4947 lstparam = *(";" xparam)
4949 Example: The following is are examples of this property:
4951 LAST-MODIFIED:19960817T133000Z
4953 Figure 208
4955 8.6.4. Sequence Number
4957 Property Name: SEQUENCE
4959 Purpose: This property defines the revision sequence number of the
4960 calendar component within a sequence of revisions.
4962 Value Type: integer
4964 Property Parameters: Non-standard property parameters can be
4965 specified on this property.
4967 Conformance: The property can be specified in "VEVENT", "VTODO" or
4968 "VJOURNAL" calendar component.
4970 Description: When a calendar component is created, its sequence
4971 number is zero (US-ASCII decimal 48). It is monotonically
4972 incremented by the "Organizer's" CUA each time the "Organizer" makes
4973 a significant revision to the calendar component. When the
4974 "Organizer" makes changes to one of the following properties, the
4975 sequence number MUST be incremented: . "DTSTART" . "DTEND" . "DUE"
4976 . "RDATE" . "RRULE" . "EXDATE" . "EXRULE" . "STATUS"
4978 In addition, changes made by the "Organizer" to other properties can
4979 also force the sequence number to be incremented. The "Organizer"
4980 CUA MUST increment the sequence number when ever it makes changes to
4981 properties in the calendar component that the "Organizer" deems will
4982 jeopardize the validity of the participation status of the
4983 "Attendees". For example, changing the location of a meeting from
4984 one locale to another distant locale could effectively impact the
4985 participation status of the "Attendees".
4987 The "Organizer" includes this property in an iCalendar object that it
4988 sends to an "Attendee" to specify the current version of the calendar
4989 component.
4991 The "Attendee" includes this property in an iCalendar object that it
4992 sends to the "Organizer" to specify the version of the calendar
4993 component that the "Attendee" is referring to.
4995 A change to the sequence number is not the mechanism that an
4996 "Organizer" uses to request a response from the "Attendees". The
4997 "RSVP" parameter on the "ATTENDEE" property is used by the
4998 "Organizer" to indicate that a response from the "Attendees" is
4999 requested.
5001 Format Definition: This property is defined by the following
5002 notation:
5004 seq = "SEQUENCE" seqparam ":" integer CRLF
5005 ; Default is "0"
5007 seqparam = *(";" xparam)
5009 Example: The following is an example of this property for a calendar
5010 component that was just created by the "Organizer".
5012 SEQUENCE:0
5014 The following is an example of this property for a calendar component
5015 that has been revised two different times by the "Organizer".
5017 SEQUENCE:2
5019 8.7. Miscellaneous Component Properties
5021 The following properties specify information about a number of
5022 miscellaneous features of calendar components.
5024 8.7.1. RSVP Expectation
5026 Parameter Name: RSVP
5028 Purpose: To specify whether there is an expectation of a favor of a
5029 reply from the calendar user specified by the property value.
5031 Description: This parameter can be specified on properties with a
5032 CAL-ADDRESS value type. The parameter identifies the expectation of
5033 a reply from the calendar user specified by the property value. This
5034 parameter is used by the "Organizer" to request a participation
5035 status reply from an "Attendee" of a group scheduled event or to-do.
5036 If not specified on a property that allows this parameter, the
5037 default value is FALSE.
5039 Format Definition: The property parameter is defined by the following
5040 notation:
5042 rsvpparam = "RSVP" "=" ("TRUE" / "FALSE")
5043 ; Default is FALSE
5045 Example:
5047 ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host.com
5049 Figure 213
5051 8.7.2. Language
5053 Parameter Name: LANGUAGE
5055 Purpose: To specify the language for text values in a property or
5056 property parameter.
5058 Description: This parameter can be specified on properties with a
5059 text value type. The parameter identifies the language of the text
5060 in the property or property parameter value. The value of the
5061 "language" property parameter is that defined in [RFC 1766].
5063 For transport in a MIME entity, the Content-Language header field can
5064 be used to set the default language for the entire body part.
5065 Otherwise, no default language is assumed.
5067 Format Definition: The property parameter is defined by the following
5068 notation:
5070 languageparam = "LANGUAGE" "=" language
5072 language = Project XYZ Review Meeting will include the following
5155 agenda items: