idnits 2.17.1
draft-ietf-calsch-ical-11.txt:
Checking boilerplate required by RFC 5378 and the IETF Trust (see
https://trustee.ietf.org/license-info):
----------------------------------------------------------------------------
** Looks like you're using RFC 2026 boilerplate. This must be updated to
follow RFC 3978/3979, as updated by RFC 4748.
Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt:
----------------------------------------------------------------------------
** Missing expiration date. The document expiration date should appear on
the first and last page.
** The document seems to lack a 1id_guidelines paragraph about
Internet-Drafts being working documents.
** The document seems to lack a 1id_guidelines paragraph about 6 months
document validity -- however, there's a paragraph with a matching
beginning. Boilerplate error?
** The document seems to lack a 1id_guidelines paragraph about the list of
current Internet-Drafts.
** The document seems to lack a 1id_guidelines paragraph about the list of
Shadow Directories.
== No 'Intended status' indicated for this document; assuming Proposed
Standard
== The page length should not exceed 58 lines per page, but there was 132
longer pages, the longest (page 1) being 62 lines
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.)
** The document seems to lack an Authors' Addresses Section.
** The document seems to lack separate sections for Informative/Normative
References. All references will be assumed normative when checking for
downward references.
** There are 7 instances of too long lines in the document, the longest one
being 5 characters in excess of 72.
** The abstract seems to contain references ([ICMS], [RFC2048], [ITIP]),
which it shouldn't. Please replace those with straight textual mentions
of the documents in question.
== 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 2893 has weird spacing: '...he base offse...'
== Line 3799 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:
The property parameter CN is for the common or displayable name
associated with the calendar address; ROLE, for the intended role that
the attendee will have in the calendar component; PARTSTAT, for the
status of the attendee's participation; RSVP, for indicating whether the
favor of a reply is requested; CUTYPE, to indicate the type of calendar
user; MEMBER, to indicate the groups that the attendee belongs to;
DELEGATED-TO, to indicate the calendar users that the original request
was delegated to; and DELEGATED-FROM, to indicate whom the request was
delegated from; SENT-BY, to indicate whom is acting on behalf of the
ATTENDEE; and DIR, to indicate the URI that points to the directory
information corresponding to the attendee. These property parameters can
be specified on an "ATTENDEE" 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 (September 15, 1998) is 9355 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)
== Missing Reference: 'ICAL' is mentioned on line 347, but not defined
== Missing Reference: 'MIME-DIR' is mentioned on line 4971, but not defined
== Unused Reference: 'RFC 2047' is defined on line 6858, but no explicit
reference was found in the text
== Unused Reference: 'RFC 2111' is defined on line 6866, but no explicit
reference was found in the text
== Unused Reference: 'VCARD' is defined on line 6881, but no explicit
reference was found in the text
== Unused Reference: 'XAPIA' is defined on line 6889, but no explicit
reference was found in the text
-- Possible downref: Non-RFC (?) normative reference: ref. 'ICMS'
-- Possible downref: Non-RFC (?) normative reference: ref. 'IMIP'
-- Possible downref: Non-RFC (?) normative reference: ref. 'ITIP'
-- Possible downref: Non-RFC (?) normative reference: ref. 'ISO 8601'
-- Possible downref: Non-RFC (?) normative reference: ref. 'ISO 9070'
-- Possible downref: Non-RFC (?) normative reference: ref. 'MIME DIR'
** Obsolete normative reference: RFC 822 (Obsoleted by RFC 2822)
** Obsolete normative reference: RFC 1738 (Obsoleted by RFC 4248, RFC 4266)
** Obsolete normative reference: RFC 1766 (Obsoleted by RFC 3066, RFC 3282)
** Obsolete normative reference: RFC 2048 (Obsoleted by RFC 4288, RFC 4289)
** Obsolete normative reference: RFC 2111 (Obsoleted by RFC 2392)
** Obsolete normative reference: RFC 2234 (Obsoleted by RFC 4234)
** Obsolete normative reference: RFC 2279 (Obsoleted by RFC 3629)
-- Possible downref: Non-RFC (?) normative reference: ref. 'TZ'
-- Possible downref: Non-RFC (?) normative reference: ref. 'VCARD'
-- Possible downref: Non-RFC (?) normative reference: ref. 'VCAL'
-- Possible downref: Non-RFC (?) normative reference: ref. 'XAPIA'
Summary: 18 errors (**), 0 flaws (~~), 15 warnings (==), 12 comments
(--).
Run idnits with the --verbose option for more detailed information about
the items above.
--------------------------------------------------------------------------------
2 Network Working Group Frank Dawson, Lotus
3 Internet Draft Derik Stenerson, Microsoft
4
5 Expires six months after: September 15, 1998
7 Internet Calendaring and Scheduling Core Object Specification
8 (iCalendar)
10 Status of this Memo
12 This memo is an Internet-Draft. Internet-Drafts are working documents
13 of the Internet Engineering Task Force (IETF), its areas, and its
14 working groups. Note that other groups can also distribute working
15 documents as Internet-Drafts.
17 Internet-Drafts are draft documents valid for a maximum of six
18 months. Internet-Drafts can be updated, replaced, or made obsolete by
19 other documents at any time. It is not appropriate to use Internet-
20 Drafts as reference material or to cite them other than as a "working
21 draft" or "work in progress".
23 To view the entire list of current Internet-Drafts, please check the
24 "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
25 Directories on ftp.is.co.za (Africa), ftp.nordu.net (Northern
26 Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au (Pacific
27 Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast).
29 Distribution of this memo is unlimited.
31 Copyright (C) The Internet Society 1998. All Rights Reserved.
33 Abstract
35 There is a clear need to provide and deploy interoperable calendaring
36 and scheduling services for the Internet. Current group scheduling
37 and Personal Information Management (PIM) products are being extended
38 for use across the Internet, today, in proprietary ways. This memo
39 has been defined to provide the definition of a common format for
40 openly exchanging calendaring and scheduling information across the
41 Internet.
43 This memo is formatted as a registration for a MIME media type per
44 [RFC 2048]. However, the format in this memo is equally applicable
45 for use outside of a MIME message content type.
47 The proposed media type value is 'text/calendar'. This string would
48 label a media type containing calendaring and scheduling information
49 encoded as text characters formatted in a manner outlined below.
51 This MIME media type provides a standard content type for capturing
52 calendar event, to-do and journal entry information. It also can be
53 used to convey free/busy time information. The content type is
54 suitable as a MIME message entity that can be transferred over MIME
55 based email systems, using HTTP or some other Internet transport. In
56 addition, the content type is useful as an object for interactions
57 between desktop applications using the operating system clipboard,
58 drag/drop or file systems capabilities.
60 This memo is based on the earlier work of the vCalendar specification
61 for the exchange of personal calendaring and scheduling information.
62 In order to avoid confusion with this referenced work, this memo is
63 to be known as the iCalendar specification.
65 Readers may also refer to the calendaring and scheduling model
66 defined in [ICMS] for a description of this Internet application.
68 This memo defines the format for specifying iCalendar object methods.
69 An iCalendar object method is a set of usage constraints for the
70 iCalendar object. For example, these methods might define scheduling
71 messages that request an event be scheduled, reply to an event
72 request, send a cancellation notice for an event, modify or replace
73 the definition of an event, provide a counter proposal for an
74 original event request, delegate an event request to another
75 individual, request free or busy time, reply to a free or busy time
76 request, or provide similar scheduling messages for a to-do or
77 journal entry calendar component. The iCalendar Transport-indendent
78 Interoperability Protocol (iTIP) defined in [ITIP] is one such
79 scheduling protocol.
81 Table of Contents
83 1 Introduction.........................................................6
84 2 Basic Grammar and Conventions........................................6
85 2.1 Formatting Conventions ...........................................7
86 2.2 Related Memos ....................................................8
87 2.3 International Considerations .....................................8
88 3 Registration Information.............................................8
89 3.1 Content Type .....................................................9
90 3.2 Parameters .......................................................9
91 3.3 Content Header Fields ...........................................10
92 3.4 Encoding Considerations .........................................10
93 3.5 Security Considerations .........................................10
94 3.6 Interoperability Considerations .................................11
95 3.7 Applications Which Use This Media Type ..........................11
96 3.8 Additional Information ..........................................11
97 3.9 Magic Numbers ...................................................11
98 3.10 File Extensions ................................................11
99 3.11 Contact for Further Information: ...............................12
100 3.12 Intended Usage .................................................12
101 3.13 Authors/Change Controllers .....................................12
102 4 iCalendar Object Specification......................................12
103 4.1 Content Lines ...................................................12
104 4.1.1 List and Field Separators ....................................15
105 4.1.2 Multiple Values ..............................................15
106 4.1.3 Binary Content ...............................................16
107 4.1.4 Character Set ................................................16
108 4.2 Property Parameters .............................................16
109 4.2.1 Alternate Text Representation ................................17
110 4.2.2 Common Name ..................................................18
111 4.2.3 Calendar User Type ...........................................18
112 4.2.4 Delegators ...................................................19
113 4.2.5 Delegatees ...................................................20
114 4.2.6 Directory Entry Reference ....................................20
115 4.2.7 Inline Encoding ..............................................20
116 4.2.8 Format Type ..................................................21
117 4.2.9 Free/Busy Time Type ..........................................22
118 4.2.10 Language ....................................................22
119 4.2.11 Group or List Membership ....................................23
120 4.2.12 Participation Status ........................................23
121 4.2.13 Recurrence Identifier Range .................................25
122 4.2.14 Alarm Trigger Relationship ..................................25
123 4.2.15 Relationship Type ...........................................26
124 4.2.16 Participation Role ..........................................26
125 4.2.17 RSVP Expectation ............................................27
126 4.2.18 Sent By .....................................................27
127 4.2.19 Time Zone Identifier ........................................28
128 4.2.20 Value Data Types ............................................29
129 4.3 Property Value Data Types .......................................30
130 4.3.1 Binary .......................................................30
131 4.3.2 Boolean ......................................................31
132 4.3.3 Calendar User Address ........................................31
133 4.3.4 Date .........................................................31
134 4.3.5 Date-Time ....................................................32
135 4.3.6 Duration .....................................................34
136 4.3.7 Float ........................................................34
137 4.3.8 Integer ......................................................35
138 4.3.9 Period of Time ...............................................35
139 4.3.10 Recurrence Rule .............................................36
140 4.3.11 Text ........................................................41
141 4.3.12 Time ........................................................42
142 4.3.13 URI .........................................................44
143 4.3.14 UTC Offset ..................................................45
144 4.4 iCalendar Object ................................................45
145 4.5 Property ........................................................46
146 4.6 Calendar Components .............................................46
147 4.6.1 Event Component ..............................................47
148 4.6.2 To-do Component ..............................................49
149 4.6.3 Journal Component ............................................51
150 4.6.4 Free/Busy Component ..........................................52
151 4.6.5 Time Zone Component ..........................................54
152 4.6.6 Alarm Component ..............................................61
153 4.7 Calendar Properties .............................................66
154 4.7.1 Calendar Scale ...............................................66
155 4.7.2 Method .......................................................67
156 4.7.3 Product Identifier ...........................................68
157 4.7.4 Version ......................................................68
158 4.8 Component Properties ............................................69
159 4.8.1 Descriptive Component Properties .............................69
160 4.8.1.1 Attachment ...............................................69
161 4.8.1.2 Categories ...............................................70
162 4.8.1.3 Classification ...........................................71
163 4.8.1.4 Comment ..................................................72
164 4.8.1.5 Description ..............................................73
165 4.8.1.6 Geographic Position ......................................74
166 4.8.1.7 Location .................................................75
167 4.8.1.8 Percent Complete .........................................76
168 4.8.1.9 Priority .................................................77
169 4.8.1.10 Resources ...............................................78
170 4.8.1.11 Status ..................................................79
171 4.8.1.12 Summary .................................................80
172 4.8.2 Date and Time Component Properties ...........................81
173 4.8.2.1 Date/Time Completed ......................................81
174 4.8.2.2 Date/Time End ............................................82
175 4.8.2.3 Date/Time Due ............................................83
176 4.8.2.4 Date/Time Start ..........................................84
177 4.8.2.5 Duration .................................................85
178 4.8.2.6 Free/Busy Time ...........................................85
179 4.8.2.7 Time Transparency ........................................87
180 4.8.3 Time Zone Component Properties ...............................87
181 4.8.3.1 Time Zone Identifier .....................................88
182 4.8.3.2 Time Zone Name ...........................................89
183 4.8.3.3 Time Zone Offset From ....................................89
184 4.8.3.4 Time Zone Offset To ......................................90
185 4.8.3.5 Time Zone URL ............................................91
186 4.8.4 Relationship Component Properties ............................91
187 4.8.4.1 Attendee .................................................91
188 4.8.4.2 Contact ..................................................94
189 4.8.4.3 Organizer ................................................95
190 4.8.4.4 Recurrence ID ............................................96
191 4.8.4.5 Related To ...............................................98
192 4.8.4.6 Uniform Resource Locator .................................99
193 4.8.4.7 Unique Identifier .......................................100
194 4.8.5 Recurrence Component Properties .............................101
195 4.8.5.1 Exception Date/Times ....................................101
196 4.8.5.2 Exception Rule ..........................................102
197 4.8.5.3 Recurrence Date/Times ...................................103
198 4.8.5.4 Recurrence Rule .........................................105
199 4.8.6 Alarm Component Properties ..................................112
200 4.8.6.1 Action ..................................................113
201 4.8.6.2 Repeat Count ............................................113
202 4.8.6.3 Trigger .................................................114
203 4.8.7 Change Management Component Properties ......................116
204 4.8.7.1 Date/Time Created .......................................116
205 4.8.7.2 Date/Time Stamp .........................................116
206 4.8.7.3 Last Modified ...........................................117
207 4.8.7.4 Sequence Number .........................................118
208 4.8.8 Miscellaneous Component Properties ..........................119
209 4.8.8.1 Non-standard Properties .................................119
210 4.8.8.2 Request Status ..........................................120
211 5 iCalendar Object Examples..........................................122
212 6 Recommended Practices..............................................125
213 7 Registration of Content Type Elements..............................126
214 7.1 Registration of New and Modified iCalendar Object Methods ......127
215 7.2 Registration of New Properties .................................127
216 7.2.1 Define the property .........................................127
217 7.2.2 Post the Property definition ................................128
218 7.2.3 Allow a comment period ......................................128
219 7.2.4 Submit the property for approval ............................128
220 7.3 Property Change Control ........................................129
221 8 References.........................................................129
222 9 Acknowledgments....................................................131
223 10 Authors' and Chairs' Addresses....................................131
224 11 Full Copyright Statement..........................................132
225 1 Introduction
227 The use of calendaring and scheduling has grown considerably in the
228 last decade. Enterprise and inter-enterprise business has become
229 dependent on rapid scheduling of events and actions using this
230 information technology. However, the longer term growth of
231 calendaring and scheduling, is currently limited by the lack of
232 Internet standards for the message content types that are central to
233 these knowledgeware applications. This memo is intended to progress
234 the level of interoperability possible between dissimilar calendaring
235 and scheduling applications. This memo defines a MIME content type
236 for exchanging electronic calendaring and scheduling information. The
237 Internet Calendaring and Scheduling Core Object Specification, or
238 iCalendar, allows for the capture and exchange of information
239 normally stored within a calendaring and scheduling application; such
240 as a Personal Information Manager (PIM) or a Group Scheduling
241 product.
243 The calendaring and scheduling model, defined in the [ICMS], is a
244 useful reference to terms and the general framework of this Internet
245 application.
247 The iCalendar format is suitable as an exchange format between
248 applications or systems. The format is defined in terms of a MIME
249 content type. This will enable the object to be exchanged using
250 several transports, including but not limited to SMTP, HTTP, a file
251 system, desktop interactive protocols such as the use of a memory-
252 based clipboard or drag/drop interactions, point-to-point
253 asynchronous communication, wired-network transport, or some form of
254 unwired transport such as infrared might also be used.
256 The memo also provides for the definition of iCalendar object methods
257 that will map this content type to a set of messages for supporting
258 calendaring and scheduling operations such as requesting, replying
259 to, modifying, and canceling meetings or appointments, to-dos and
260 journal entries. The iCalendar object methods can be used to define
261 other calendaring and scheduling operations such a requesting for and
262 replying with free/busy time data. Such a scheduling protocol is
263 defined in the iCalendar Transport-independent Interoperability
264 Protocol (iTIP) defined in [ITIP].
266 The memo also includes a formal grammar for the content type based on
267 the Internet ABNF defined in [RFC 2234]. This ABNF is required for
268 the implementation of parsers and to serve as the definitive
269 reference when ambiguities or questions arise in interpreting the
270 descriptive prose definition of the memo.
272 2 Basic Grammar and Conventions
274 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
275 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" and
276 "OPTIONAL" in this document are to be interoperated as described in
277 [RFC 2119].
279 This memo makes use of both a descriptive prose and a more formal
280 notation for defining the calendaring and scheduling format.
282 The notation used in this memo is the ABNF notation of [RFC 2234].
283 Readers intending on implementing this format defined in this memo
284 should be familiar with this notation in order to properly interpret
285 the specifications of this memo.
287 All numeric and hexadecimal values used in this memo are given in
288 decimal notation.
290 All names of properties, property parameters, enumerated property
291 values and property parameter values are case-insensitive. However,
292 all other property values are case-sensitive, unless otherwise
293 stated.
295 Note: All indented editorial notes, such as this one, are
296 intended to provide the reader with additional information. The
297 information is not essential to the building of an
298 implementation conformant with this memo. The information is
299 provided to highlight a particular feature or characteristic of
300 the memo.
302 The format for the iCalendar object is based on the syntax of the
303 [MIME DIR] content type. While the iCalendar object is not a profile
304 of the [MIME DIR] content type, it does reuse a number of the
305 elements from the [MIME DIR] specification.
307 2.1 Formatting Conventions
309 The mechanisms defined in this memo are defined in prose. Many of the
310 terms used to describe these have common usage that is different than
311 the standards usage of this memo. In order to reference within this
312 memo elements of the calendaring and scheduling model [ICMS], core
313 object (this memo) or interoperability protocol [ITIP] some
314 formatting conventions have been used. Calendaring and scheduling
315 roles defined by [ICMS] are referred to in quoted-strings of text
316 with the first character of each word in upper case. For example,
317 "Organizer" refers to a role of a "Calendar User" within the
318 scheduling protocol defined by [ITIP]. Calendar components defined by
319 this memo are referred to with capitalized, quoted-strings of text.
320 All calendar components start with the letter "V". For example,
321 "VEVENT" refers to the event calendar component, "VTODO" refers to
322 the to-do calendar component and "VJOURNAL" refers to the daily
323 journal calendar component. Scheduling methods defined by [ITIP] are
324 referred to with capitalized, quoted-strings of text. For example,
325 "REQUEST" refers to the method for requesting a scheduling calendar
326 component be created or modified, "REPLY" refers to the method a
327 recipient of a request uses to update their status with the
328 "Organizer" of the calendar component.
330 The properties defined by this memo are referred to with capitalized,
331 quoted-strings of text, followed by the word "property". For example,
332 "ATTENDEE" property refers to the iCalendar property used to convey
333 the calendar address of a calendar user. Property parameters defined
334 by this memo are referred to with lowercase, quoted-strings of text,
335 followed by the word "parameter". For example, "value" parameter
336 refers to the iCalendar property parameter used to override the
337 default data type for a property value. Enumerated values defined by
338 this memo are referred to with capitalized text, either alone or
339 followed by the word "value". For example, the "MINUTELY" value can
340 be used with the "FREQ" component of the "RECUR" data type to specify
341 repeating components based on an interval of one minute or more.
343 2.2 Related Memos
345 Implementers will need to be familiar with several other memos that,
346 along with this memo, form a framework for Internet calendaring and
347 scheduling standards. This memo, [ICAL], specifies a core
348 specification of objects, data types, properties and property
349 parameters.
351 [ICMS] - specifies a common terminology and abstract model;
353 [ITIP] - specifies an interoperability protocol for scheduling
354 between different implementations;
356 [IMIP] specifies an Internet email binding for [ITIP].
358 This memo does not attempt to repeat the specification of concepts or
359 definitions from these other memos. Where possible, references are
360 made to the memo that provides for the specification of these
361 concepts or definitions.
363 2.3 International Considerations
365 In the rest of this document, descriptions of characters are of the
366 form "character name (codepoint)", where "codepoint" is from the US-
367 ASCII character set. The "character name" is the authoritative
368 description; (codepoint) is a reference to that character in US-
369 ASCII or US-ASCII compatible sets (for example the ISO-8859-x family,
370 UTF-8, ISO-2022-xx, KOI8-R). If a non-US-ASCII compatible character
371 set is used, appropriate code-point from that character set MUST be
372 chosen instead. Use of non-US-ASCII-compatible character sets is NOT
373 recommended.
375 3 Registration Information
377 The Calendaring and Scheduling Core Object Specification is intended
378 for use as a MIME content type. However, the implementation of the
379 memo is in no way limited solely as a MIME content type.
381 3.1 Content Type
383 The following text is intended to register this memo as the MIME
384 content type "text/calendar".
386 To: ietf-types@uninett.no
388 Subject: Registration of MIME content type text/calendar.
390 MIME media type name: text
392 MIME subtype name: calendar
394 3.2 Parameters
396 Required parameters: none
398 Optional parameters: charset, method, component and optinfo
400 The "charset" parameter is defined in [RFC 2046] for other body
401 parts. It is used to identify the default character set used within
402 the body part.
404 The "method" parameter is used to convey the iCalendar object method
405 or transaction semantics for the calendaring and scheduling
406 information. It also is an identifier for the restricted set of
407 properties and values that the iCalendar object consists of. The
408 parameter is to be used as a guide for applications interpreting the
409 information contained within the body part. It SHOULD NOT be used to
410 exclude or require particular pieces of information unless the
411 identified method definition specifically calls for this behavior.
412 Unless specifically forbidden by a particular method definition, a
413 text/calendar content type can contain any set of properties
414 permitted by the Calendaring and Scheduling Core Object
415 Specification. The "method" parameter MUST be the same value as that
416 specified in the "METHOD" component property in the iCalendar object.
417 If one is present, the other MUST also be present.
419 The value for the "method" parameter is defined as follows:
421 method = 1*(ALPHA / DIGIT / "-")
422 ; IANA registered iCalendar object method
424 The "component" parameter conveys the type of iCalendar calendar
425 component within the body part. If the iCalendar object contains more
426 than one calendar component type, then multiple component parameters
427 MUST be specified.
429 The value for the "component" parameter is defined as follows:
431 component = ("VEVENT" / "VTODO" / "VJOURNAL" / "VFREEBUSY"
432 / "VTIMEZONE" / x-name / iana-token)
433 The "optinfo" parameter conveys optional information about the
434 iCalendar object within the body part. This parameter can only
435 specify semantics already specified by the iCalendar object and that
436 can be otherwise determined by parsing the body part. In addition,
437 the optional information specified by this parameter MUST be
438 consistent with that information specified by the iCalendar object.
439 For example, it can be used to convey the "Attendee" response status
440 to a meeting request. The parameter value consists of a string value.
441 The parameter can be specified multiple times.
443 This parameter MAY only specify semantics already specified by the
444 iCalendar object and that can be otherwise determined by parsing the
445 body part.
447 The value for the "optinfo" parameter is defined as follows:
449 optinfo = infovalue / qinfovalue
451 infovalue = iana-token / x-name
453 qinfovalue = DQUOTE (infovalue) DQUOTE
455 3.3 Content Header Fields
457 Optional content header fields: Any header fields defined by [RFC
458 2045].
460 3.4 Encoding Considerations
462 This MIME content type can contain 8bit characters, so the use of
463 quoted-printable or BASE64 MIME content-transfer-encodings might be
464 necessary when iCalendar objects are transferred across protocols
465 restricted to the 7bit repertoire. Note that a text valued property
466 in the content entity can also have content encoding of special
467 characters using a BACKSLASH character (US-ASCII decimal 92)
468 escapement technique. This means that content values can end up
469 encoded twice.
471 3.5 Security Considerations
473 SPOOFING - - In this memo, the "Organizer" is the only person
474 authorized to make changes to an existing "VEVENT", "VTODO",
475 "VJOURNAL" calendar component and redistribute the updates to the
476 "Attendees". An iCalendar object that maliciously changes or cancels
477 an existing "VEVENT", "VTODO" or "VJOURNAL" or "VFREEBUSY" calendar
478 component might be constructed by someone other than the "Organizer"
479 and sent to the "Attendees". In addition in this memo, other than the
480 "Organizer", an "Attendee" of a "VEVENT", "VTODO", "VJOURNAL"
481 calendar component is the only other person authorized to update any
482 parameter associated with their "ATTENDEE" property and send it to
483 the "Organizer". An iCalendar object that maliciously changes the
484 "ATTENDEE" parameters can be constructed by someone other than the
485 real "Attendee" and sent to the "Organizer".
487 PROCEDURAL ALARMS - - An iCalendar object can be created that
488 contains a "VEVENT" and "VTODO" calendar component with "VALARM"
489 calendar components. The "VALARM" calendar component can be of type
490 PROCEDURE and can have an attachment containing some sort of
491 executable program. Implementations that incorporate these types of
492 alarms are subject to any virus or malicious attack that might occur
493 as a result of executing the attachment.
495 ATTACHMENTS - - An iCalendar object can include references to Uniform
496 Resource Locators that can be programmed resources.
498 Implementers and users of this memo should be aware of the network
499 security implications of accepting and parsing such information. In
500 addition, the security considerations observed by implementations of
501 electronic mail systems should be followed for this memo.
503 3.6 Interoperability Considerations
505 This MIME content type is intended to define a common format for
506 conveying calendaring and scheduling information between different
507 systems. It is heavily based on the earlier [VCAL] industry
508 specification.
510 3.7 Applications Which Use This Media Type
512 This content-type is designed for widespread use by Internet
513 calendaring and scheduling applications. In addition, applications in
514 the workflow and document management area might find this content-
515 type applicable. The [ITIP] and [IMIP] Internet protocols directly
516 use this content-type also. Future work on an Internet calendar
517 access protocol will utilize this content-type too.
519 3.8 Additional Information
521 This memo defines this content-type.
523 3.9 Magic Numbers
525 None.
527 3.10 File Extensions
529 The file extension of "ics" is to be used to designate a file
530 containing (an arbitrary set of) calendaring and scheduling
531 information consistent with this MIME content type.
533 The file extension of "ifb" is to be used to designate a file
534 containing free or busy time information consistent with this MIME
535 content type.
537 Macintosh file type codes: The file type code of "iCal" is to be used
538 in Apple MacIntosh operating system environments to designate a file
539 containing calendaring and scheduling information consistent with
540 this MIME media type.
542 The file type code of "iFBf" is to be used in Apple MacIntosh
543 operating system environments to designate a file containing free or
544 busy time information consistent with this MIME media type.
546 3.11 Contact for Further Information:
548 Frank Dawson
549 6544 Battleford Drive
550 Raleigh, NC 27613-3502
551 919-676-9515 (Telephone)
552 919-676-9564 (Data/Facsimile)
553 Frank_Dawson@Lotus.com (Internet Mail)
555 Derik Stenerson
556 One Microsoft Way
557 Redmond, WA 98052-6399
558 425-936-5522 (Telephone)
559 425-936-7329 (Facsimile)
560 deriks@microsoft.com (Internet Mail)
562 3.12 Intended Usage
564 COMMON
566 3.13 Authors/Change Controllers
568 Frank Dawson
569 6544 Battleford Drive
570 Raleigh, NC 27613-3502
571 919-676-9515 (Telephone)
572 919-676-9564 (Data/Facsimile)
573 Frank_Dawson@Lotus.com (Internet Mail)
575 Derik Stenerson
576 One Microsoft Way
577 Redmond, WA 98052-6399
578 425-936-5522 (Telephone)
579 425-936-7329 (Facsimile)
580 deriks@microsoft.com (Internet Mail)
582 4 iCalendar Object Specification
584 The following sections define the details of a Calendaring and
585 Scheduling Core Object Specification. This information is intended to
586 be an integral part of the MIME content type registration. In
587 addition, this information can be used independent of such content
588 registration. In particular, this memo has direct applicability for
589 use as a calendaring and scheduling exchange format in file-, memory-
590 or network-based transport mechanisms.
592 4.1 Content Lines
594 The iCalendar object is organized into individual lines of text,
595 called content lines. Content lines are delimited by a line break,
596 which is a CRLF sequence (US-ASCII decimal 13, followed by US-ASCII
597 decimal 10).
599 Lines of text SHOULD NOT be longer than 75 octets, excluding the line
600 break. Long content lines SHOULD be split into a multiple line
601 representations using a line "folding" technique. That is, a long
602 line can be split between any two characters by inserting a CRLF
603 immediately followed by a single linear white space character (i.e.,
604 SPACE, US-ASCII decimal 32 or HTAB, US-ASCII decimal 9). Any sequence
605 of CRLF followed immediately by a single linear white space character
606 is ignored (i.e., removed) when processing the content type.
608 For example the line:
610 DESCRIPTION:This is a long description that exists on a long line.
612 Can be represented as:
614 DESCRIPTION:This is a lo
615 ng description
616 that exists on a long line.
618 The process of moving from this folded multiple line representation
619 to its single line representation is called "unfolding". Unfolding is
620 accomplished by removing the CRLF character and the linear white
621 space character that immediately follows.
623 When parsing a content line, folded lines MUST first be unfolded
624 according to the unfolding procedure described above. When generating
625 a content line, lines longer than 75 octets SHOULD be folded
626 according to the folding procedure described above.
628 The content information associated with an iCalendar object is
629 formatted using a syntax similar to that defined by [MIME DIR]. That
630 is, the content information consists of CRLF-separated content lines.
632 The following notation defines the lines of content in an iCalendar
633 object:
635 contentline = name *(";" param ) ":" value CRLF
636 ; This ABNF is just a general definition for an initial parsing
637 ; of the content line into its property name, parameter list,
638 ; and value string
640 ; When parsing a content line, folded lines MUST first
641 ; be unfolded according to the unfolding procedure
642 ; described above. When generating a content line, lines
643 ; longer than 75 octets SHOULD be folded according to
644 ; the folding procedure described above.
646 name = x-name / iana-token
648 iana-token = 1*(ALPHA / DIGIT / "-")
649 ; iCalendar identifier registered with IANA
650 x-name = "X-" [vendorid "-"] 1*(ALPHA / DIGIT / "-")
651 ; Reservered for experimental use. Not intended for use in
652 ; released products.
654 vendorid = 3*(ALPHA / DIGIT) ;Vendor identification
656 param = param-name "=" param-value
657 *("," param-value)
658 ; Each property defines the specific ABNF for the parameters
659 ; allowed on the property. Refer to specific properties for
660 ; precise parameter ABNF.
662 param-name = iana-token / x-token
664 param-value = paramtext / quoted-string
666 paramtext = *SAFE-CHAR
668 value = *VALUE-CHAR
670 quoted-string = DQUOTE *QSAFE-CHAR DQUOTE
672 NON-US-ASCII = %x80-F8
673 ; Use restricted by charset parameter
674 ; on outer MIME object (UTF-8 preferred)
676 QSAFE-CHAR = WSP / %x21 / %x23-7E / NON-US-ASCII
677 ; Any character except CTLs and DQUOTE
679 SAFE-CHAR = WSP / %x21 / %x23-2B / %x2D-39 / %x3C-7E
680 / NON-US-ASCII
681 ; Any character except CTLs, DQUOTE, ";", ":", ","
683 VALUE-CHAR = WSP / %x21-7E / NON-US-ASCII
684 ; Any textual character
686 CR = %x0D
687 ; carriage return
689 LF = %x0A
690 ; line feed
692 CRLF = CR LF
693 ; Internet standard newline
695 CTL = %x00-08 / %x0A-1F / %x7F
696 ; Controls
698 ALPHA = %x41-5A / %x61-7A ; A-Z / a-z
700 DIGIT = %x30-39
701 ; 0-9
702 DQUOTE = %x22
703 ; Quotation Mark
705 WSP = SPACE / HTAB
707 SPACE = %x20
709 HTAB = %x09
711 The property value component of a content line has a format that is
712 property specific. Refer to the section describing each property for
713 a definition of this format.
715 All names of properties, property parameters, enumerated property
716 values and property parameter values are case-insensitive. However,
717 all other property values are case-sensitive, unless otherwise
718 stated.
720 4.1.1 List and Field Separators
722 Some properties and parameters allow a list of values. Values in a
723 list of values MUST be separated by a COMMA character (US-ASCII
724 decimal 44). There is no significance to the order of values in a
725 list. For those parameter values (such as those that specify URI
726 values) that are specified in quoted-strings, the individual quoted-
727 strings are separated by a COMMA character (US-ASCII decimal 44).
729 Some property values are defined in terms of multiple parts. These
730 structured property values MUST have their value parts separated by a
731 SEMICOLON character (US-ASCII decimal 59).
733 Some properties allow a list of parameters. Each property parameter
734 in a list of property parameters MUST be separated by a SEMICOLON
735 character (US-ASCII decimal 59).
737 Property parameters with values containing a COLON, a SEMICOLON or a
738 COMMA character MUST be placed in quoted text.
740 For example, in the following properties a SEMICOLON is used to
741 separate property parameters from each other, and a COMMA is used to
742 separate property values in a value list.
744 ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT:MAILTO:
745 jsmith@host.com
747 RDATE;VALUE=DATE:19970304,19970504,19970704,19970904
749 4.1.2 Multiple Values
751 Some properties defined in the iCalendar object can have multiple
752 values. The general rule for encoding multi-valued items is to simply
753 create a new content line for each value, including the property
754 name. However, it should be noted that some properties support
755 encoding multiple values in a single property by separating the
756 values with a COMMA character (US-ASCII decimal 44). Individual
757 property definitions should be consulted for determining whether a
758 specific property allows multiple values and in which of these two
759 forms.
761 4.1.3 Binary Content
763 Binary content information in an iCalendar object SHOULD be
764 referenced using a URI within a property value. That is the binary
765 content information SHOULD be placed in an external MIME entity that
766 can be referenced by a URI from within the iCalendar object. In
767 applications where this is not feasible, binary content information
768 can be included within an iCalendar object, but only after first
769 encoding it into text using the "BASE64" encoding method defined in
770 [RFC 2045]. Inline binary contact SHOULD only be used in applications
771 whose special circumstances demand that an iCalendar object be
772 expressed as a single entity. A property containing inline binary
773 content information MUST specify the "ENCODING" property parameter.
774 Binary content information placed external to the iCalendar object
775 MUST be referenced by a uniform resource identifier (URI).
777 The following example specifies an "ATTACH" property that references
778 an attachment external to the iCalendar object with a URI reference:
780 ATTACH:http://xyz.com/public/quarterly-report.doc
782 The following example specifies an "ATTACH" property with inline
783 binary encoded content information:
785 ATTACH;FMTTYPE=image/basic;ENCODING=BASE64;VALUE=BINARY:
786 MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1U
787 EBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bmljYXRpb25zIE
788 <...remainder of "BASE64" encoded binary data...>
790 4.1.4 Character Set
792 There is not a property parameter to declare the character set used
793 in a property value. The default character set for an iCalendar
794 object is UTF-8 as defined in [RFC 2279].
796 The "charset" Content-Type parameter can be used in MIME transports
797 to specify any other IANA registered character set.
799 4.2 Property Parameters
801 A property can have attributes associated with it. These "property
802 parameters" contain meta-information about the property or the
803 property value. Property parameters are provided to specify such
804 information as the location of an alternate text representation for a
805 property value, the language of a text property value, the data type
806 of the property value and other attributes.
808 Property parameter values that contain the COLON (US-ASCII decimal
809 58), SEMICOLON (US-ASCII decimal 59) or COMMA (US-ASCII decimal 44)
810 character separators MUST be specified as quoted-string text values.
811 Property parameter values MUST NOT contain the DOUBLE-QUOTE (US-ASCII
812 decimal 22) character. The DOUBLE-QUOTE (US-ASCII decimal 22)
813 character is used as a delimiter for parameter values that contain
814 restricted characters or URI text. For example:
816 DESCRIPTION;ALTREP="http://www.wiz.org":The Fall'98 Wild Wizards
817 Conference - - Las Vegas, NV, USA
819 Property parameter values that are not in quoted strings are case
820 insensitive.
822 The general property parameters defined by this memo are defined by
823 the following notation:
825 parameter = altrepparam ; Alternate text representation
826 / cnparam ; Common name
827 / cutypeparam ; Calendar user type
828 / delfromparam ; Delegator
829 / deltoparam ; Delegatee
830 / dirparam ; Directory entry
831 / encodingparam ; Inline encoding
832 / fmttypeparam ; Format type
833 / fbtypeparam ; Free/busy time type
834 / languageparam ; Language for text
835 / memberparam ; Group or list membership
836 / partstatparam ; Participation status
837 / rangeparam ; Recurrence identifier range
838 / trigrelparam ; Alarm trigger relationship
839 / reltypeparam ; Relationship type
840 / roleparam ; Participation role
841 / rsvpparam ; RSVP expectation
842 / sentbyparam ; Sent by
843 / tzidparam ; Reference to time zone object
844 / valuetypeparam ; Property value data type
845 / ianaparam
846 ; Some other IANA registered iCalendar parameter.
847 / xparam
848 ; A non-standard, experimental parameter.
850 ianaparam = iana-token "=" param-value *("," param-value)
852 xparam =x-name "=" param-value *("," param-value)
854 4.2.1 Alternate Text Representation
856 Parameter Name: ALTREP
858 Purpose: To specify an alternate text representation for the property
859 value.
861 Format Definition: The property parameter is defined by the following
862 notation:
864 altrepparam = "ALTREP" "=" DQUOTE uri DQUOTE
866 Description: The parameter specifies a URI that points to an
867 alternate representation for a textual property value. A property
868 specifying this parameter MUST also include a value that reflects the
869 default representation of the text value. The individual URI
870 parameter values MUST each be specified in a quoted-string.
872 Example:
874 DESCRIPTION;ALTREP="CID:":Project
875 XYZ Review Meeting will include the following agenda items: (a)
876 Market Overview, (b) Finances, (c) Project Management
878 The "ALTREP" property parameter value might point to a "text/html"
879 content portion.
881 Content-Type:text/html
882 Content-Id:
884
885 Project XYZ Review Meeting will include the following
886 agenda items:
- Market
887 Overview
- Finances
- Project Management
888
890 4.2.2 Common Name
892 Parameter Name: CN
894 Purpose: To specify the common name to be associated with the
895 calendar user specified by the property.
897 Format Definition: The property parameter is defined by the following
898 notation:
900 cnparam = "CN" "=" param-value
902 Description: This parameter can be specified on properties with a
903 CAL-ADDRESS value type. The parameter specifies the common name to be
904 associated with the calendar user specified by the property. The
905 parameter value is text. The parameter value can be used for display
906 text to be associated with the calendar address specified by the
907 property.
909 Example:
911 ORGANIZER;CN="John Smith":MAILTO:jsmith@host.com
913 4.2.3 Calendar User Type
915 Parameter Name: CUTYPE
916 Purpose: To specify the type of calendar user specified by the
917 property.
919 Format Definition: The property parameter is defined by the following
920 notation:
922 cutypeparam = "CUTYPE" "="
923 ("INDIVIDUAL" ; An individual
924 / "GROUP" ; A group of individuals
925 / "RESOURCE" ; A physical resource
926 / "ROOM" ; A room resource
927 / "UNKNOWN" ; Otherwise not known
928 / x-name ; Experimental type
929 / iana-token) ; Other IANA registered
930 ; type
931 ; Default is INDIVIDUAL
933 Description: This parameter can be specified on properties with a
934 CAL-ADDRESS value type. The parameter identifies the type of calendar
935 user specified by the property. If not specified on a property that
936 allows this parameter, the default is INDIVIDUAL.
938 Example:
940 ATTENDEE;CUTYPE=GROUP:MAILTO:ietf-calsch@imc.org
942 4.2.4 Delegators
944 Parameter Name: DELEGATED-FROM
946 Purpose: To specify the calendar users that have delegated their
947 participation to the calendar user specified by the property.
949 Format Definition: The property parameter is defined by the following
950 notation:
952 delfromparam = "DELEGATED-FROM" "=" DQUOTE cal-address DQUOTE
953 *("," DQUOTE cal-address DQUOTE)
955 Description: This parameter can be specified on properties with a
956 CAL-ADDRESS value type. This parameter can be specified on a property
957 that has a value type of calendar address. This parameter specifies
958 those calendar uses that have delegated their participation in a
959 group scheduled event or to-do to the calendar user specified by the
960 property. The value MUST be a MAILTO URI as defined in [RFC 1738].
961 The individual calendar address parameter values MUST each be
962 specified in a quoted-string.
964 Example:
966 ATTENDEE;DELEGATED-FROM="MAILTO:jsmith@host.com":MAILTO:
967 jdoe@host.com
968 4.2.5 Delegatees
970 Parameter Name: DELEGATED-TO
972 Purpose: To specify the calendar users to whom the calendar user
973 specified by the property has delegated participation.
975 Format Definition: The property parameter is defined by the following
976 notation:
978 deltoparam = "DELEGATED-TO" "=" DQUOTE cal-address DQUOTE
979 *("," DQUOTE cal-address DQUOTE)
981 Description: This parameter can be specified on properties with a
982 CAL-ADDRESS value type. This parameter specifies those calendar users
983 whom have been delegated participation in a group scheduled event or
984 to-do by the calendar user specified by the property. The value MUST
985 be a MAILTO URI as defined in [RFC 1738]. The individual calendar
986 address parameter values MUST each be specified in a quoted-string.
988 Example:
990 ATTENDEE;DELEGATED-TO="MAILTO:jdoe@host.com","MAILTO:jqpublic@
991 host.com":MAILTO:jsmith@host.com
993 4.2.6 Directory Entry Reference
995 Parameter Name: DIR
997 Purpose: To specify reference to a directory entry associated with
998 the calendar user specified by the property.
1000 Format Definition: The property parameter is defined by the following
1001 notation:
1003 dirparam = "DIR" "=" DQUOTE uri DQUOTE
1005 Description: This parameter can be specified on properties with a
1006 CAL-ADDRESS value type. The parameter specifies a reference to the
1007 directory entry associated with the calendar user specified by the
1008 property. The parameter value is a URI. The individual URI parameter
1009 values MUST each be specified in a quoted-string.
1011 Example:
1013 ORGANIZER;DIR="ldap://host.com:6666/o=eDABC%20Industries,c=3DUS??
1014 (cn=3DBJim%20Dolittle)":MAILTO:jimdo@host1.com
1016 4.2.7 Inline Encoding
1018 Parameter Name: ENCODING
1020 Purpose: To specify an alternate inline encoding for the property
1021 value.
1023 Format Definition: The property parameter is defined by the following
1024 notation:
1026 encodingparam = "ENCODING" "="
1027 ("8BIT"
1028 ; "8bit" text encoding is defined in [RFC 2045]
1029 / "BASE64"
1030 ; "BASE64" binary encoding format is defined in [RFC 2045]
1031 / iana-token
1032 ; Some other IANA registered iCalendar encoding type
1033 / x-name)
1034 ; A non-standard, experimental encoding type
1036 Description: The property parameter identifies the inline encoding
1037 used in a property value. The default encoding is "8BIT",
1038 corresponding to a property value consisting of text. The "BASE64"
1039 encoding type corresponds to a property value encoded using the
1040 "BASE64" encoding defined in [RFC 2045].
1042 If the value type parameter is ";VALUE=BINARY", then the inline
1043 encoding parameter MUST be specified with the value
1044 ";ENCODING=BASE64".
1046 Example:
1048 ATTACH;FMTYPE=IMAGE/JPEG;ENCODING=BASE64;VALUE=BINARY:MIICajC
1049 CAdOgAwIBAgICBEUwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDA
1050 qBgNVBAoTI05ldHNjYXBlIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uMRw
1051 <...remainder of "BASE64" encoded binary data...>
1053 4.2.8 Format Type
1055 Parameter Name: FMTTYPE
1057 Purpose: To specify the content type of a referenced object.
1059 Format Definition: The property parameter is defined by the following
1060 notation:
1062 fmttypeparam = "FMTTYPE" "=" iana-token
1063 ; A IANA registered content type
1064 / x-name
1065 ; A non-standard content type
1067 Description: This parameter can be specified on properties that are
1068 used to reference an object. The parameter specifies the content type
1069 of the referenced object. For example, on the "ATTACH" property, a
1070 FTP type URI value does not, by itself, necessarily convey the type
1071 of content associated with the resource. The parameter value MUST be
1072 the TEXT for either an IANA registered content type or a non-standard
1073 content type.
1075 Example:
1077 ATTACH;FMTTYPE=application/binary:ftp://domain.com/pub/docs/
1078 agenda.doc
1080 4.2.9 Free/Busy Time Type
1082 Parameter Name: FBTYPE
1084 Purpose: To specify the free or busy time type.
1086 Format Definition: The property parameter is defined by the following
1087 notation:
1089 fbtypeparam = "FBTYPE" "=" ("FREE" / "BUSY"
1090 / "BUSY-UNAVAILABLE" / "BUSY-TENTATIVE"
1091 / x-name
1092 ; Some experimental iCalendar data type.
1093 / iana-token)
1094 ; Some other IANA registered iCalendar data type.
1096 Description: The parameter specifies the free or busy time type. The
1097 value FREE indicates that the time interval is free for scheduling.
1098 The value BUSY indicates that the time interval is busy because one
1099 or more events have been scheduled for that interval. The value BUSY-
1100 UNAVAILABLE indicates that the time interval is busy and that the
1101 interval can not be scheduled. The value BUSY-TENTATIVE indicates
1102 that the time interval is busy because one or more events have been
1103 tentatively scheduled for that interval. If not specified on a
1104 property that allows this parameter, the default is BUSY.
1106 Example: The following is an example of this parameter on a FREEBUSY
1107 property.
1109 FREEBUSY;FBTYPE=BUSY:19980415T133000Z/19980415T170000Z
1111 4.2.10 Language
1113 Parameter Name: LANGUAGE
1115 Purpose: To specify the language for text values in a property or
1116 property parameter.
1118 Format Definition: The property parameter is defined by the following
1119 notation:
1121 languageparam = "LANGUAGE" "=" language
1123 language =
1125 Description: This parameter can be specified on properties with a
1126 text value type. The parameter identifies the language of the text in
1127 the property or property parameter value. The value of the "language"
1128 property parameter is that defined in [RFC 1766].
1130 For transport in a MIME entity, the Content-Language header field can
1131 be used to set the default language for the entire body part.
1132 Otherwise, no default language is assumed.
1134 Example:
1136 SUMMARY;LANGUAGE=us-EN:Company Holiday Party
1138 LOCATION;LANGUAGE=en:Germany
1139 LOCATION;LANGUAGE=no:Tyskland
1141 The following example makes use of the Quoted-Printable encoding in
1142 order to represent non-ASCII characters.
1144 LOCATION;LANGUAGE=da:K=F8benhavn
1145 LOCATION;LANGUAGE=en:Copenhagen
1147 4.2.11 Group or List Membership
1149 Parameter Name: MEMBER
1151 Purpose: To specify the group or list membership of the calendar user
1152 specified by the property.
1154 Format Definition: The property parameter is defined by the following
1155 notation:
1157 memberparam = "MEMBER" "=" DQUOTE cal-address DQUOTE
1158 *("," DQUOTE cal-address DQUOTE)
1160 Description: This parameter can be specified on properties with a
1161 CAL-ADDRESS value type. The parameter identifies the groups or list
1162 membership for the calendar user specified by the property. The
1163 parameter value either a single calendar address in a quoted-string
1164 or a COMMA character (US-ASCII decimal 44) list of calendar
1165 addresses, each in a quoted-string. The individual calendar address
1166 parameter values MUST each be specified in a quoted-string.
1168 Example:
1170 ATTENDEE;MEMBER="MAILTO:ietf-calsch@imc.org":MAILTO:jsmith@host.com
1172 ATTENDEE;MEMBER="MAILTO:projectA@host.com","MAILTO:projectB@host.
1173 com":MAILTO:janedoe@host.com
1175 4.2.12 Participation Status
1177 Parameter Name: PARTSTAT
1179 Purpose: To specify the participation status for the calendar user
1180 specified by the property.
1182 Format Definition: The property parameter is defined by the following
1183 notation:
1185 partstatparam = "PARTSTAT" "="
1186 ("NEEDS-ACTION" ; Event needs action
1187 / "ACCEPTED" ; Event accepted
1188 / "DECLINED" ; Event declined
1189 / "TENTATIVE" ; Event tentatively
1190 ; accepted
1191 / "DELEGATED" ; Event delegated
1192 / x-name ; Experimental status
1193 / iana-token) ; Other IANA registered
1194 ; status
1195 ; These are the participation statuses for a "VEVENT". Default is
1196 ; NEEDS-ACTION
1198 partstatparam /= "PARTSTAT" "="
1199 ("NEEDS-ACTION" ; To-do needs action
1200 / "ACCEPTED" ; To-do accepted
1201 / "DECLINED" ; To-do declined
1202 / "TENTATIVE" ; To-do tentatively
1203 ; accepted
1204 / "DELEGATED" ; To-do delegated
1205 / "COMPLETED" ; To-do completed.
1206 ; COMPLETED property has
1207 ;date/time completed.
1208 / "IN-PROCESS" ; To-do in process of
1209 ; being completed
1210 / x-name ; Experimental status
1211 / iana-token) ; Other IANA registered
1212 ; status
1213 ; These are the participation statuses for a "VTODO". Default is
1214 ; NEEDS-ACTION
1216 partstatparam /= "PARTSTAT" "="
1217 ("NEEDS-ACTION" ; Journal needs action
1218 / "ACCEPTED" ; Journal accepted
1219 / "DECLINED" ; Journal declined
1220 / x-name ; Experimental status
1221 / iana-token) ; Other IANA registered
1222 ; status
1223 ; These are the participation statuses for a "VJOURNAL". Default is
1224 ; NEEDS-ACTION
1226 Description: This parameter can be specified on properties with a
1227 CAL-ADDRESS value type. The parameter identifies the participation
1228 status for the calendar user specified by the property value. The
1229 parameter values differ depending on whether they are associated with
1230 a group scheduled "VEVENT", "VTODO" or "VJOURNAL". The values MUST
1231 match one of the values allowed for the given calendar component. If
1232 not specified on a property that allows this parameter, the default
1233 value is NEEDS-ACTION.
1235 Example:
1237 ATTENDEE;PARTSTAT=DECLINED:MAILTO:jsmith@host.com
1238 4.2.13 Recurrence Identifier Range
1240 Parameter Name: RANGE
1242 Purpose: To specify the effective range of recurrence instances from
1243 the instance specified by the recurrence identifier specified by the
1244 property.
1246 Format Definition: The property parameter is defined by the following
1247 notation:
1249 rangeparam = "RANGE" "=" ("THISANDPRIOR"
1250 ; To specify all instances prior to the recurrence identifier
1251 / "THISANDFUTURE")
1252 ; To specify the instance specified by the recurrence identifier
1253 ; and all subsequent recurrence instances
1255 Description: The parameter can be specified on a property that
1256 specifies a recurrence identifier. The parameter specifies the
1257 effective range of recurrence instances that is specified by the
1258 property. The effective range is from the recurrence identified
1259 specified by the property. If this parameter is not specified an
1260 allowed property, then the default range is the single instance
1261 specified by the recurrence identifier value of the property. The
1262 parameter value can be "THISANDPRIOR" to indicate a range defined by
1263 the recurrence identified value of the property and all prior
1264 instances. The parameter value can also be "THISANDFUTURE" to
1265 indicate a range defined by the recurrence identifier and all
1266 subsequent instances.
1268 Example:
1270 RECURRENCE-ID;RANGE=THISANDPRIOR:19980401T133000Z
1272 4.2.14 Alarm Trigger Relationship
1274 Parameter Name: RELATED
1276 Purpose: To specify the relationship of the alarm trigger with
1277 respect to the start or end of the calendar component.
1279 Format Definition: The property parameter is defined by the following
1280 notation:
1282 trigrelparam = "RELATED" "="
1283 ("START" ; Trigger off of start
1284 / "END") ; Trigger off of end
1286 Description: The parameter can be specified on properties that
1287 specify an alarm trigger with a DURATION value type. The parameter
1288 specifies whether the alarm will trigger relative to the start or end
1289 of the calendar component. The parameter value START will set the
1290 alarm to trigger off the start of the calendar component; the
1291 parameter value END will set the alarm to trigger off the end of the
1292 calendar component. If the parameter is not specified on an allowable
1293 property, then the default is START.
1295 Example:
1297 TRIGGER;RELATED=END:PT5M
1299 4.2.15 Relationship Type
1301 Parameter Name: RELTYPE
1303 Purpose: To specify the type of hierarchical relationship associated
1304 with the calendar component specified by the property.
1306 Format Definition: The property parameter is defined by the following
1307 notation:
1309 reltypeparam = "RELTYPE" "="
1310 ("PARENT" ; Parent relationship. Default.
1311 / "CHILD" ; Child relationship
1312 / "SIBLING ; Sibling relationship
1313 / iana-token ; Some other IANA registered
1314 ; iCalendar relationship type
1315 / x-name) ; A non-standard, experimental
1316 ; relationship type
1318 Description: This parameter can be specified on a property that
1319 references another related calendar. The parameter specifies the
1320 hierarchical relationship type of the calendar component referenced
1321 by the property. The parameter value can be PARENT, to indicate that
1322 the referenced calendar component is a superior of calendar
1323 component; CHILD to indicate that the referenced calendar component
1324 is a subordinate of the calendar component; SIBLING to indicate that
1325 the referenced calendar component is a peer of the calendar
1326 component. If this parameter is not specified on an allowable
1327 property, the default relationship type is PARENT.
1329 Example:
1331 RELATED-TO;RELTYPE=SIBLING:<19960401-080045-4000F192713@host.com>
1333 4.2.16 Participation Role
1335 Parameter Name: ROLE
1337 Purpose: To specify the participation role for the calendar user
1338 specified by the property.
1340 Format Definition: The property parameter is defined by the following
1341 notation:
1343 roleparam = "ROLE" "="
1344 ("CHAIR" ; Indicates chair of the
1345 ; calendar entity
1346 / "REQ-PARTICIPANT" ; Indicates a participant whose
1347 ; participation is required
1348 / "OPT-PARTICIPANT" ; Indicates a participant whose
1349 ; participation is optional
1350 / "NON-PARTICIPANT" ; Indicates a participant who is
1351 ; copied for information
1352 ; purposes only
1353 / x-name ; Experimental role
1354 / iana-token) ; Other IANA role
1355 ; Default is REQ-PARTICIPANT
1357 Description: This parameter can be specified on properties with a
1358 CAL-ADDRESS value type. The parameter specifies the participation
1359 role for the calendar user specified by the property in the group
1360 schedule calendar component. If not specified on a property that
1361 allows this parameter, the default value is REQ-PARTICIPANT.
1363 Example:
1365 ATTENDEE;ROLE=CHAIR:MAILTO:mrbig@host.com
1367 4.2.17 RSVP Expectation
1369 Parameter Name: RSVP
1371 Purpose: To specify whether there is an expectation of a favor of a
1372 reply from the calendar user specified by the property value.
1374 Format Definition: The property parameter is defined by the following
1375 notation:
1377 rsvpparam = "RSVP" "=" ("TRUE" / "FALSE")
1378 ; Default is FALSE
1380 Description: This parameter can be specified on properties with a
1381 CAL-ADDRESS value type. The parameter identifies the expectation of a
1382 reply from the calendar user specified by the property value. This
1383 parameter is used by the "Organizer" to request a participation
1384 status reply from an "Attendee" of a group scheduled event or to-do.
1385 If not specified on a property that allows this parameter, the
1386 default value is FALSE.
1388 Example:
1390 ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host.com
1392 4.2.18 Sent By
1394 Parameter Name: SENT-BY
1396 Purpose: To specify the calendar user that is acting on behalf of the
1397 calendar user specified by the property.
1399 Format Definition: The property parameter is defined by the following
1400 notation:
1402 sentbyparam = "SENT-BY" "=" DQUOTE cal-address DQUOTE
1404 Description: This parameter can be specified on properties with a
1405 CAL-ADDRESS value type. The parameter specifies the calendar user
1406 that is acting on behalf of the calendar user specified by the
1407 property. The parameter value MUST be a MAILTO URI as defined in [RFC
1408 1738]. The individual calendar address parameter values MUST each be
1409 specified in a quoted-string.
1411 Example:
1413 ORGANIZER;SENT-BY:"MAILTO:sray@host.com":MAILTO:jsmith@host.com
1415 4.2.19 Time Zone Identifier
1417 Parameter Name: TZID
1419 Purpose: To specify the identifier for the time zone definition for a
1420 time component in the property value.
1422 Format Definition: This property parameter is defined by the
1423 following notation:
1425 tzidparam = "TZID" "=" [tzidprefix] paramtext CRLF
1427 tzidprefix = "/"
1429 Description: The parameter MUST be specified on the "DTSTART",
1430 "DTEND", "DUE", "EXDATE" and "RDATE" properties when either a DATE-
1431 TIME or TIME value type is specified and when the value is not either
1432 a UTC or a "floating" time. Refer to the DATE-TIME or TIME value type
1433 definition for a description of UTC and "floating time" formats. This
1434 property parameter specifies a text value which uniquely identifies
1435 the "VTIMEZONE" calendar component to be used when evaluating the
1436 time portion of the property. The value of the TZID property
1437 parameter will be equal to the value of the TZID property for the
1438 matching time zone definition. An individual "VTIMEZONE" calendar
1439 component MUST be specified for each unique "TZID" parameter value
1440 specified in the iCalendar object.
1442 The parameter MUST be specified on properties with a DATE-TIME value
1443 if the DATE-TIME is not either a UTC or a "floating" time.
1445 The presence of the SOLIDUS character (US-ASCII decimal 47) as a
1446 prefix, indicates that this TZID represents a unique ID in a globally
1447 defined time zone registry (when such registry is defined).
1449 Note: This document does not define a naming convention for time
1450 zone identifiers. Implementers may want to use the naming
1451 conventions defined in existing time zone specifications such as
1452 the public-domain Olson database [TZ]. The specification of
1453 globally unique time zone identifiers is not addressed by this
1454 document and is left for future study.
1456 The following are examples of this property parameter:
1458 DTSTART;TZID=US-Eastern:19980119T020000
1460 DTEND;TZID=US-Eastern:19980119T030000
1462 The TZID property parameter MUST NOT be applied to DATE-TIME or TIME
1463 properties whose time values are specified in UTC.
1465 The use of local time in a DATE-TIME or TIME value without the TZID
1466 property parameter is to be interpreted as a local time value,
1467 regardless of the existence of "VTIMEZONE" calendar components in the
1468 iCalendar object.
1470 For more information see the sections on the data types DATE-TIME and
1471 TIME.
1473 4.2.20 Value Data Types
1475 Parameter Name: VALUE
1477 Purpose: To explicitly specify the data type format for a property
1478 value.
1480 Format Definition: The "VALUE" property parameter is defined by the
1481 following notation:
1483 valuetypeparam = "VALUE" "=" valuetype
1485 valuetype = ("BINARY"
1486 / "BOOLEAN"
1487 / "CAL-ADDRESS"
1488 / "DATE"
1489 / "DATE-TIME"
1490 / "DURATION"
1491 / "FLOAT"
1492 / "INTEGER"
1493 / "PERIOD"
1494 / "RECUR"
1495 / "TEXT"
1496 / "TIME"
1497 / "URI"
1498 / "UTC-OFFSET"
1499 / x-name
1500 ; Some experimental iCalendar data type.
1501 / iana-token)
1502 ; Some other IANA registered iCalendar data type.
1504 Description: The parameter specifies the data type and format of the
1505 property value. The property values MUST be of a single value type.
1507 For example, a "RDATE" property cannot have a combination of DATE-
1508 TIME and TIME value types.
1510 If the property's value is the default value type, then this
1511 parameter need not be specified. However, if the property's default
1512 value type is overridden by some other allowable value type, then
1513 this parameter MUST be specified.
1515 4.3 Property Value Data Types
1517 The properties in an iCalendar object are strongly typed. The
1518 definition of each property restricts the value to be one of the
1519 value data types, or simply value types, defined in this section. The
1520 value type for a property will either be specified implicitly as the
1521 default value type or will be explicitly specified with the "VALUE"
1522 parameter. If the value type of a property is one of the alternate
1523 valid types, then it MUST be explicitly specified with the "VALUE"
1524 parameter.
1526 4.3.1 Binary
1528 Value Name: BINARY
1530 Purpose: This value type is used to identify properties that contain
1531 a character encoding of inline binary data. For example, an inline
1532 attachment of an object code might be included in an iCalendar
1533 object.
1535 Formal Definition: The value type is defined by the following
1536 notation:
1538 binary = *(4b-char) [b-end]
1539 ; A "BASE64" encoded character string, as defined by [RFC 2045].
1541 b-end = (2b-char "==") / (3b-char "=")
1543 b-char = ALPHA / DIGIT / "+" / "/"
1545 Description: Property values with this value type MUST also include
1546 the inline encoding parameter sequence of ";ENCODING=BASE64". That
1547 is, all inline binary data MUST first be character encoded using the
1548 "BASE64" encoding method defined in [RFC 2045]. No additional content
1549 value encoding (i.e., BACKSLASH character encoding) is defined for
1550 this value type.
1552 Example: The following is an abridged example of a "BASE64" encoded
1553 binary value data.
1555 ATTACH;VALUE=BINARY;ENCODING=BASE64:MIICajCCAdOgAwIBAgICBEUwDQY
1556 JKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlI
1557 ENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZv
1558 <...remainder of "BASE64" encoded binary data...>
1559 4.3.2 Boolean
1561 Value Name: BOOLEAN
1563 Purpose: This value type is used to identify properties that contain
1564 either a "TRUE" or "FALSE" Boolean value.
1566 Formal Definition: The value type is defined by the following
1567 notation:
1569 boolean = "TRUE" / "FALSE"
1571 Description: These values are case insensitive text. No additional
1572 content value encoding (i.e., BACKSLASH character encoding) is
1573 defined for this value type.
1575 Example: The following is an example of a hypothetical property that
1576 has a BOOLEAN value type:
1578 GIBBERISH:TRUE
1580 4.3.3 Calendar User Address
1582 Value Name: CAL-ADDRESS
1584 Purpose: This value type is used to identify properties that contain
1585 a calendar user address.
1587 Formal Definition: The value type is as defined by the following
1588 notation:
1590 cal-address = uri
1592 Description: The value is a URI as defined by [RFC 1738] or any other
1593 IANA registered form for a URI. When used to address an Internet
1594 email transport address for a calendar user, the value MUST be a
1595 MAILTO URI, as defined by [RFC 1738]. No additional content value
1596 encoding (i.e., BACKSLASH character encoding) is defined for this
1597 value type.
1599 Example:
1601 ATTENDEE:MAILTO:jane_doe@host.com
1603 4.3.4 Date
1605 Value Name: DATE
1607 Purpose: This value type is used to identify values that contain a
1608 calendar date.
1610 Formal Definition: The value type is defined by the following
1611 notation:
1613 date = date-value
1615 date-value = date-fullyear date-month date-mday
1616 date-fullyear = 4DIGIT
1617 date-month = 2DIGIT ;01-12
1618 date-mday = 2DIGIT ;01-28, 01-29, 01-30, 01-31
1619 ;based on month/year
1621 Description: If the property permits, multiple "date" values are
1622 specified as a COMMA character (US-ASCII decimal 44) separated list
1623 of values. The format for the value type is expressed as the [ISO
1624 8601] complete representation, basic format for a calendar date. The
1625 textual format specifies a four-digit year, two-digit month, and two-
1626 digit day of the month. There are no separator characters between the
1627 year, month and day component text.
1629 No additional content value encoding (i.e., BACKSLASH character
1630 encoding) is defined for this value type.
1632 Example: The following represents July 14, 1997:
1634 19970714
1636 4.3.5 Date-Time
1638 Value Name: DATE-TIME
1640 Purpose: This value type is used to identify values that specify a
1641 precise calendar date and time of day.
1643 Formal Definition: The value type is defined by the following
1644 notation:
1646 date-time = date "T" time ;As specified in the date and time
1647 ;value definitions
1649 Description: If the property permits, multiple "date-time" values are
1650 specified as a COMMA character (US-ASCII decimal 44) separated list
1651 of values. No additional content value encoding (i.e., BACKSLASH
1652 character encoding) is defined for this value type.
1654 The "DATE-TIME" data type is used to identify values that contain a
1655 precise calendar date and time of day. The format is based on the
1656 [ISO 8601] complete representation, basic format for a calendar date
1657 and time of day. The text format is a concatenation of the "date",
1658 followed by the LATIN CAPITAL LETTER T character (US-ASCII decimal
1659 84) time designator, followed by the "time" format.
1661 The "DATE-TIME" data type expresses time values in three forms:
1663 The form of date and time with UTC offset MUST NOT be used. For
1664 example, the following is not valid for a date-time value:
1666 DTSTART:19980119T230000-0800 ;Invalid time format
1667 FORM #1: DATE WITH LOCAL TIME
1669 The date with local time form is simply a date-time value that does
1670 not contain the UTC designator nor does it reference a time zone. For
1671 example, the following represents Janurary 18, 1998, at 11 PM:
1673 DTSTART:19980118T230000
1675 Date-time values of this type are said to be "floating" and are not
1676 bound to any time zone in particular. They are used to represent the
1677 same hour, minute, and second value regardless of which time zone is
1678 currently being observed. For example, an event can be defined that
1679 indicates that an individual will be busy from 11:00 AM to 1:00 PM
1680 every day, no matter which time zone the person is in. In these
1681 cases, a local time can be specified. The recipient of an iCalendar
1682 object with a property value consisting of a local time, without any
1683 relative time zone information, SHOULD interpret the value as being
1684 fixed to whatever time zone the ATTENDEE is in at any given moment.
1685 This means that two ATTENDEEs, in different time zones, receiving the
1686 same event definition as a floating time, may be participating in the
1687 event at different actual times. Floating time SHOULD only be used
1688 where that is the reasonable behavior.
1690 In most cases, a fixed time is desired. To properly communicate a
1691 fixed time in a property value, either UTC time or local time with
1692 time zone reference MUST be specified.
1694 The use of local time in a DATE-TIME value without the TZID property
1695 parameter is to be interpreted as floating time, regardless of the
1696 existence of "VTIMEZONE" calendar components in the iCalendar object.
1698 FORM #2: DATE WITH UTC TIME
1700 The date with UTC time, or absolute time, is identified by a LATIN
1701 CAPITAL LETTER Z suffix character (US-ASCII decimal 90), the UTC
1702 designator, appended to the time value. For example, the following
1703 represents January 19, 1998, at 0700 UTC:
1705 DTSTART:19980119T070000Z
1707 The TZID property parameter MUST NOT be applied to DATE-TIME
1708 properties whose time values are specified in UTC.
1710 FORM #3: DATE WITH LOCAL TIME AND TIME ZONE REFERENCE
1712 The date and local time with reference to time zone information is
1713 identified by the use the TZID property parameter to reference the
1714 appropriate time zone definition. TZID is discussed in detail in the
1715 section on Time Zone. For example, the following represents 2 AM in
1716 New York on Janurary 19, 1998:
1718 DTSTART;TZID=US-Eastern:19980119T020000
1719 Example: The following represents July 14, 1997, at 1:30 PM in New
1720 York City in each of the three time formats, using the "DTSTART"
1721 property.
1723 DTSTART:19970714T133000 ;Local time
1724 DTSTART:19970714T173000Z ;UTC time
1725 DTSTART;TZID=US-Eastern:19970714T133000 ;Local time and time
1726 ; zone reference
1728 A time value MUST ONLY specify 60 seconds when specifying the
1729 periodic "leap second" in the time value. For example:
1731 COMPLETED:19970630T235960Z
1733 4.3.6 Duration
1735 Value Name: DURATION
1737 Purpose: This value type is used to identify properties that contain
1738 a duration of time.
1740 Formal Definition: The value type is defined by the following
1741 notation:
1743 dur-value = (["+"] / "-") "P" (dur-date / dur-time / dur-week)
1745 dur-date = dur-day [dur-time]
1746 dur-time = "T" (dur-hour / dur-minute / dur-second)
1747 dur-week = 1*DIGIT "W"
1748 dur-hour = 1*DIGIT "H" [dur-minute]
1749 dur-minute = 1*DIGIT "M" [dur-second]
1750 dur-second = 1*DIGIT "S"
1751 dur-day = 1*DIGIT "D"
1753 Description: If the property permits, multiple "duration" values are
1754 specified by a COMMA character (US-ASCII decimal 44) separated list
1755 of values. The format is expressed as the [ISO 8601] basic format for
1756 the duration of time. The format can represent durations in terms of
1757 weeks, days, hours, minutes, and seconds.
1759 No additional content value encoding (i.e., BACKSLASH character
1760 encoding) are defined for this value type.
1762 Example: A duration of 15 days, 5 hours and 20 seconds would be:
1764 P15DT5H0M20S
1766 A duration of 7 weeks would be:
1768 P7W
1770 4.3.7 Float
1772 Value Name: FLOAT
1773 Purpose: This value type is used to identify properties that contain
1774 a real number value.
1776 Formal Definition: The value type is defined by the following
1777 notation:
1779 float = (["+"] / "-") 1*DIGIT ["." 1*DIGIT]
1781 Description: If the property permits, multiple "float" values are
1782 specified by a COMMA character (US-ASCII decimal 44) separated list
1783 of values.
1785 No additional content value encoding (i.e., BACKSLASH character
1786 encoding) is defined for this value type.
1788 Example:
1790 1000000.0000001
1791 1.333
1792 -3.14
1794 4.3.8 Integer
1796 Value Name:INTEGER
1798 Purpose: This value type is used to identify properties that contain
1799 a signed integer value.
1801 Formal Definition: The value type is defined by the following
1802 notation:
1804 integer = (["+"] / "-") 1*DIGIT
1806 Description: If the property permits, multiple "integer" values are
1807 specified by a COMMA character (US-ASCII decimal 44) separated list
1808 of values. The valid range for "integer" is -2147483648 to
1809 2147483647. If the sign is not specified, then the value is assumed
1810 to be positive.
1812 No additional content value encoding (i.e., BACKSLASH character
1813 encoding) is defined for this value type.
1815 Example:
1817 1234567890
1818 -1234567890
1819 +1234567890
1820 432109876
1822 4.3.9 Period of Time
1824 Value Name: PERIOD
1825 Purpose: This value type is used to identify values that contain a
1826 precise period of time.
1828 Formal Definition: The data type is defined by the following
1829 notation:
1831 period = period-explicit / period-start
1833 period-explicit = date-time "/" date-time
1834 ; [ISO 8601] complete representation basic format for a period of
1835 ; time consisting of a start and end. The start MUST be before the
1836 ; end.
1838 period-start = date-time "/" dur-value
1839 ; [ISO 8601] complete representation basic format for a period of
1840 ; time consisting of a start and positive duration of time.
1842 Description: If the property permits, multiple "period" values are
1843 specified by a COMMA character (US-ASCII decimal 44) separated list
1844 of values. There are two forms of a period of time. First, a period
1845 of time is identified by its start and its end. This format is
1846 expressed as the [ISO 8601] complete representation, basic format for
1847 "DATE-TIME" start of the period, followed by a SOLIDUS character (US-
1848 ASCII decimal 47), followed by the "DATE-TIME" of the end of the
1849 period. The start of the period MUST be before the end of the period.
1850 Second, a period of time can also be defined by a start and a
1851 positive duration of time. The format is expressed as the [ISO 8601]
1852 complete representation, basic format for the "DATE-TIME" start of
1853 the period, followed by a SOLIDUS character (US-ASCII decimal 47),
1854 followed by the [ISO 8601] basic format for "DURATION" of the period.
1856 Example: The period starting at 18:00:00 UTC, on January 1, 1997 and
1857 ending at 07:00:00 UTC on January 2, 1997 would be:
1859 19970101T180000Z/19970102T070000Z
1861 The period start at 18:00:00 on January 1, 1997 and lasting 5 hours
1862 and 30 minutes would be:
1864 19970101T180000Z/PT5H30M
1866 No additional content value encoding (i.e., BACKSLASH character
1867 encoding) is defined for this value type.
1869 4.3.10 Recurrence Rule
1871 Value Name: RECUR
1873 Purpose: This value type is used to identify properties that contain
1874 a recurrence rule specification.
1876 Formal Definition: The value type is defined by the following
1877 notation:
1879 recur = "FREQ"=freq *(
1881 ; either UNTIL or COUNT may appear in a 'recur',
1882 ; but UNTIL and COUNT MUST NOT occur in the same 'recur'
1884 ( ";" "UNTIL" "=" enddate ) /
1885 ( ";" "COUNT" "=" 1*DIGIT ) /
1887 ; the rest of these keywords are optional,
1888 ; but MUST NOT occur more than once
1890 ( ";" "INTERVAL" "=" 1*DIGIT ) /
1891 ( ";" "BYSECOND" "=" byseclist ) /
1892 ( ";" "BYMINUTE" "=" byminlist ) /
1893 ( ";" "BYHOUR" "=" byhrlist ) /
1894 ( ";" "BYDAY" "=" bywdaylist ) /
1895 ( ";" "BYMONTHDAY" "=" bymodaylist ) /
1896 ( ";" "BYYEARDAY" "=" byyrdaylist ) /
1897 ( ";" "BYWEEKNO" "=" bywknolist ) /
1898 ( ";" "BYMONTH" "=" bymolist ) /
1899 ( ";" "BYSETPOS" "=" bysplist ) /
1900 ( ";" "WKST" "=" weekday ) /
1901 ( ";" x-name "=" text )
1902 )
1904 freq = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY"
1905 / "WEEKLY" / "MONTHLY" / "YEARLY"
1907 enddate = date
1908 enddate =/ date-time ;An UTC value
1910 byseclist = seconds / ( seconds *("," seconds) )
1912 seconds = 1DIGIT / 2DIGIT ;0 to 59
1914 byminlist = minutes / ( minutes *("," minutes) )
1916 minutes = 1DIGIT / 2DIGIT ;0 to 59
1918 byhrlist = hour / ( hour *("," hour) )
1920 hour = 1DIGIT / 2DIGIT ;0 to 23
1922 bywdaylist = weekdaynum / ( weekdaynum *("," weekdaynum) )
1924 weekdaynum = [([plus] ordwk / minus ordwk)] weekday
1926 plus = "+"
1928 minus = "-"
1930 ordwk = 1DIGIT / 2DIGIT ;1 to 53
1931 weekday = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA"
1932 ;Corresponding to SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY,
1933 ;FRIDAY, SATURDAY and SUNDAY days of the week.
1935 bymodaylist = monthdaynum / ( monthdaynum *("," monthdaynum) )
1937 monthdaynum = ([plus] ordmoday) / (minus ordmoday)
1939 ordmoday = 1DIGIT / 2DIGIT ;1 to 31
1941 byyrdaylist = yeardaynum / ( yeardaynum *("," yeardaynum) )
1943 yeardaynum = ([plus] ordyrday) / (minus ordyrday)
1945 ordyrday = 1DIGIT / 2DIGIT / 3DIGIT ;1 to 366
1947 bywknolist = weeknum / ( weeknum *("," weeknum) )
1949 weeknum = ([plus] ordwk) / (minus ordwk)
1951 bymolist = monthnum / ( monthnum *("," monthnum) )
1953 monthnum = 1DIGIT / 2DIGIT ;1 to 12
1955 bysplist = setposday / ( setposday *("," setposday) )
1957 setposday = yeardaynum
1959 Description: If the property permits, multiple "recur" values are
1960 specified by a COMMA character (US-ASCII decimal 44) separated list
1961 of values. The value type is a structured value consisting of a list
1962 of one or more recurrence grammar parts. Each rule part is defined by
1963 a NAME=VALUE pair. The rule parts are separated from each other by
1964 the SEMICOLON character (US-ASCII decimal 59). The rule parts are not
1965 ordered in any particular sequence. Individual rule parts MUST only
1966 be specified once.
1968 The FREQ rule part identifies the type of recurrence rule. This rule
1969 part MUST be specified in the recurrence rule. Valid values include
1970 SECONDLY, to specify repeating events based on an interval of a
1971 second or more; MINUTELY, to specify repeating events based on an
1972 interval of a minute or more; HOURLY, to specify repeating events
1973 based on an interval of an hour or more; DAILY, to specify repeating
1974 events based on an interval of a day or more; WEEKLY, to specify
1975 repeating events based on an interval of a week or more; MONTHLY, to
1976 specify repeating events based on an interval of a month or more; and
1977 YEARLY, to specify repeating events based on an interval of a year or
1978 more.
1980 The INTERVAL rule part contains a positive integer representing how
1981 often the recurrence rule repeats. The default value is "1", meaning
1982 every second for a SECONDLY rule, or every minute for a MINUTELY
1983 rule, every hour for an HOURLY rule, every day for a DAILY rule,
1984 every week for a WEEKLY rule, every month for a MONTHLY rule and
1985 every year for a YEARLY rule.
1987 The UNTIL rule part defines a date-time value which bounds the
1988 recurrence rule in an inclusive manner. If the value specified by
1989 UNTIL is synchronized with the specified recurrence, this date or
1990 date-time becomes the last instance of the recurrence. If specified
1991 as a date-time value, then it MUST be specified in an UTC time
1992 format. If not present, and the COUNT rule part is also not present,
1993 the RRULE is considered to repeat forever.
1995 The COUNT rule part defines the number of occurrences at which to
1996 range-bound the recurrence. The "DTSTART" property value, if
1997 specified, counts as the first occurrence.
1999 The BYSECOND rule part specifies a COMMA character (US-ASCII decimal
2000 44) separated list of seconds within a minute. Valid values are 0 to
2001 59. The BYMINUTE rule part specifies a COMMA character (US-ASCII
2002 decimal 44) separated list of minutes within an hour. Valid values
2003 are 0 to 59. The BYHOUR rule part specifies a COMMA character (US-
2004 ASCII decimal 44) separated list of hours of the day. Valid values
2005 are 0 to 23.
2007 The BYDAY rule part specifies a COMMA character (US-ASCII decimal 44)
2008 separated list of days of the week; MO indicates Monday; TU indicates
2009 Tuesday; WE indicates Wednesday; TH indicates Thursday; FR indicates
2010 Friday; SA indicates Saturday; SU indicates Sunday.
2012 Each BYDAY value can also be preceded by a positive (+n) or negative
2013 (-n) integer. If present, this indicates the nth occurrence of the
2014 specific day within the MONTHLY or YEARLY RRULE. For example, within
2015 a MONTHLY rule, +1MO (or simply 1MO) represents the first Monday
2016 within the month, whereas -1MO represents the last Monday of the
2017 month. If an integer modifier is not present, it means all days of
2018 this type within the specified frequency. For example, within a
2019 MONTHLY rule, MO represents all Mondays within the month.
2021 The BYMONTHDAY rule part specifies a COMMA character (ASCII decimal
2022 44) separated list of days of the month. Valid values are 1 to 31 or
2023 -31 to -1. For example, -10 represents the tenth to the last day of
2024 the month.
2026 The BYYEARDAY rule part specifies a COMMA character (US-ASCII
2027 decimal 44) separated list of days of the year. Valid values are 1 to
2028 366 or -366 to -1. For example, -1 represents the last day of the
2029 year (December 31st) and -306 represents the 306th to the last day of
2030 the year (March 1st).
2032 The BYWEEKNO rule part specifies a COMMA character (US-ASCII decimal
2033 44) separated list of ordinals specifying weeks of the year. Valid
2034 values are 1 to 53 or -53 to -1. This corresponds to weeks according
2035 to week numbering as defined in [ISO 8601]. A week is defined as a
2036 seven day period, starting on the day of the week defined to be the
2037 week start (see WKST). Week number one of the calendar year is the
2038 first week which contains at least four (4) days in that calendar
2039 year. This rule part is only valid for YEARLY rules. For example, 3
2040 represents the third week of the year.
2042 Note: Assuming a Monday week start, week 53 can only occur when
2043 Thursday is January 1 or if it is a leap year and Wednesday is
2044 January 1.
2046 The BYMONTH rule part specifies a COMMA character (US-ASCII decimal
2047 44) separated list of months of the year. Valid values are 1 to 12.
2049 The WKST rule part specifies the day on which the workweek starts.
2050 Valid values are MO, TU, WE, TH, FR, SA and SU. This is significant
2051 when a WEEKLY RRULE has an interval greater than 1, and a BYDAY rule
2052 part is specified. This is also significant when in a YEARLY RRULE
2053 when a BYWEEKNO rule part is specified. The default value is MO.
2055 The BYSETPOS rule part specifies a COMMA character (US-ASCII decimal
2056 44) separated list of values which corresponds to the nth occurrence
2057 within the set of events specified by the rule. Valid values are 1 to
2058 366 or -366 to -1. It MUST only be used in conjunction with another
2059 BYxxx rule part. For example "the last work day of the month" could
2060 be represented as:
2062 RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
2064 Each BYSETPOS value can include a positive (+n) or negative (-n)
2065 integer. If present, this indicates the nth occurrence of the
2066 specific occurrence within the set of events specified by the rule.
2068 If BYxxx rule part values are found which are beyond the available
2069 scope (ie, BYMONTHDAY=30 in February), they are simply ignored.
2071 Information, not contained in the rule, necessary to determine the
2072 various recurrence instance start time and dates are derived from the
2073 Start Time (DTSTART) entry attribute. For example,
2074 "FREQ=YEARLY;BYMONTH=1" doesn't specify a specific day within the
2075 month or a time. This information would be the same as what is
2076 specified for DTSTART.
2078 BYxxx rule parts modify the recurrence in some manner. BYxxx rule
2079 parts for a period of time which is the same or greater than the
2080 frequency generally reduce or limit the number of occurrences of the
2081 recurrence generated. For example, "FREQ=DAILY;BYMONTH=1" reduces the
2082 number of recurrence instances from all days (if BYMONTH tag is not
2083 present) to all days in January. BYxxx rule parts for a period of
2084 time less than the frequency generally increase or expand the number
2085 of occurrences of the recurrence. For example,
2086 "FREQ=YEARLY;BYMONTH=1,2" increases the number of days within the
2087 yearly recurrence set from 1 (if BYMONTH tag is not present) to 2.
2089 If multiple BYxxx rule parts are specified, then after evaluating the
2090 specified FREQ and INTERVAL rule parts, the BYxxx rule parts are
2091 applied to the current set of evaluated occurrences in the following
2092 order: BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY, BYHOUR,
2093 BYMINUTE, BYSECOND and BYSETPOS; then COUNT and UNTIL are evaluated.
2095 Here is an example of evaluating multiple BYxxx rule parts.
2097 DTSTART;TZID=US-Eastern:19970105T083000
2098 RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;
2099 BYMINUTE=30
2101 First, the "INTERVAL=2" would be applied to "FREQ=YEARLY" to arrive
2102 at "every other year". Then, "BYMONTH=1" would be applied to arrive
2103 at "every January, every other year". Then, "BYDAY=SU" would be
2104 applied to arrive at "every Sunday in January, every other year".
2105 Then, "BYHOUR=8,9" would be applied to arrive at "every Sunday in
2106 January at 8 AM and 9 AM, every other year". Then, "BYMINUTE=30"
2107 would be applied to arrive at "every Sunday in January at 8:30 AM and
2108 9:30 AM, every other year". Then, lacking information from RRULE, the
2109 second is derived from DTSTART, to end up in "every Sunday in January
2110 at 8:30:00 AM and 9:30:00 AM, every other year". Similarly, if the
2111 BYMINUTE, BYHOUR, BYDAY, BYMONTHDAY or BYMONTH rule part were
2112 missing, the appropriate minute, hour, day or month would have been
2113 retrieved from the "DTSTART" property.
2115 No additional content value encoding (i.e., BACKSLASH character
2116 encoding) is defined for this value type.
2118 Example: The following is a rule which specifies 10 meetings which
2119 occur every other day:
2121 FREQ=DAILY;COUNT=10;INTERVAL=2
2123 There are other examples specified in the "RRULE" specification.
2125 4.3.11 Text
2127 Value Name: TEXT
2129 Purpose This value type is used to identify values that contain human
2130 readable text.
2132 Formal Definition: The character sets supported by this revision of
2133 iCalendar are UTF-8 and US ASCII thereof. The applicability to other
2134 character sets is for future work. The value type is defined by the
2135 following notation.
2137 text = *(TSAFE-CHAR / ":" / DQUOTE / ESCAPED-CHAR)
2138 ; Folded according to description above
2140 ESCAPED-CHAR = "\\" / "\;" / "\," / "\N" / "\n")
2141 ; \\ encodes \, \N or \n encodes newline
2142 ; \; encodes ;, \, encodes ,
2144 TSAFE-CHAR = %x20-21 / %x23-2B / %x2D-39 / %x3C-5B
2145 %x5D-7E / NON-US-ASCII
2146 ; Any character except CTLs not needed by the current
2147 ; character set, DQUOTE, ";", ":", "\", ","
2149 Note: Certain other character sets may require modification of the
2150 above definitions, but this is beyond the scope of this document.
2152 Description: If the property permits, multiple "text" values are
2153 specified by a COMMA character (US-ASCII decimal 44) separated list
2154 of values.
2156 The language in which the text is represented can be controlled by
2157 the "LANGUAGE" property parameter.
2159 An intentional formatted text line break MUST only be included in a
2160 "TEXT" property value by representing the line break with the
2161 character sequence of BACKSLASH (US-ASCII decimal 92), followed by a
2162 LATIN SMALL LETTER N (US-ASCII decimal 110) or a LATIN CAPITAL LETTER
2163 N (US-ASCII decimal 78), that is "\n" or "\N".
2165 The "TEXT" property values may also contain special characters that
2166 are used to signify delimiters, such as a COMMA character for lists
2167 of values or a SEMICOLON character for structured values. In order to
2168 support the inclusion of these special characters in "TEXT" property
2169 values, they MUST be escaped with a BACKSLASH character. A BACKSLASH
2170 character (US-ASCII decimal 92) in a "TEXT" property value MUST be
2171 escaped with another BACKSLASH character. A COMMA character in a
2172 "TEXT" property value MUST be escaped with a BACKSLASH character (US-
2173 ASCII decimal 92). A SEMICOLON character in a "TEXT" property value
2174 MUST be escaped with a BACKSLASH character (US-ASCII decimal 92).
2175 However, a COLON character in a "TEXT" property value SHALL NOT be
2176 escaped with a BACKSLASH character.Example: A multiple line value of:
2178 Project XYZ Final Review
2179 Conference Room - 3B
2180 Come Prepared.
2182 would be represented as:
2184 Project XYZ Final Review\nConference Room - 3B\nCome Prepared.
2186 4.3.12 Time
2188 Value Name: TIME
2190 Purpose: This value type is used to identify values that contain a
2191 time of day.
2193 Formal Definition: The data type is defined by the following
2194 notation:
2196 time = time-hour time-minute time-second [time-utc]
2198 time-hour = 2DIGIT ;00-23
2199 time-minute = 2DIGIT ;00-59
2200 time-second = 2DIGIT ;00-60
2201 ;The "60" value is used to account for "leap" seconds.
2203 time-utc = "Z"
2205 Description: If the property permits, multiple "time" values are
2206 specified by a COMMA character (US-ASCII decimal 44) separated list
2207 of values. No additional content value encoding (i.e., BACKSLASH
2208 character encoding) is defined for this value type.
2210 The "TIME" data type is used to identify values that contain a time
2211 of day. The format is based on the [ISO 8601] complete
2212 representation, basic format for a time of day. The text format
2213 consists of a two-digit 24-hour of the day (i.e., values 0-23), two-
2214 digit minute in the hour (i.e., values 0-59), and two-digit seconds
2215 in the minute (i.e., values 0-60). The seconds value of 60 MUST only
2216 to be used to account for "leap" seconds. Fractions of a second are
2217 not supported by this format.
2219 In parallel to the "DATE-TIME" definition above, the "TIME" data type
2220 expresses time values in three forms:
2222 The form of time with UTC offset MUST NOT be used. For example, the
2223 following is NOT VALID for a time value:
2225 230000-0800 ;Invalid time format
2227 FORM #1 LOCAL TIME
2229 The local time form is simply a time value that does not contain the
2230 UTC designator nor does it reference a time zone. For example, 11:00
2231 PM:
2233 230000
2235 Time values of this type are said to be "floating" and are not bound
2236 to any time zone in particular. They are used to represent the same
2237 hour, minute, and second value regardless of which time zone is
2238 currently being observed. For example, an event can be defined that
2239 indicates that an individual will be busy from 11:00 AM to 1:00 PM
2240 every day, no matter which time zone the person is in. In these
2241 cases, a local time can be specified. The recipient of an iCalendar
2242 object with a property value consisting of a local time, without any
2243 relative time zone information, SHOULD interpret the value as being
2244 fixed to whatever time zone the ATTENDEE is in at any given moment.
2245 This means that two ATTENDEEs may participate in the same event at
2246 different UTC times; floating time SHOULD only be used where that is
2247 reasonable behavior.
2249 In most cases, a fixed time is desired. To properly communicate a
2250 fixed time in a property value, either UTC time or local time with
2251 time zone reference MUST be specified.
2253 The use of local time in a TIME value without the TZID property
2254 parameter is to be interpreted as a local time value, regardless of
2255 the existence of "VTIMEZONE" calendar components in the iCalendar
2256 object.
2258 FORM #2: UTC TIME
2260 UTC time, or absolute time, is identified by a LATIN CAPITAL LETTER Z
2261 suffix character (US-ASCII decimal 90), the UTC designator, appended
2262 to the time value. For example, the following represents 07:00 AM
2263 UTC:
2265 070000Z
2267 The TZID property parameter MUST NOT be applied to TIME properties
2268 whose time values are specified in UTC.
2270 FORM #3: LOCAL TIME AND TIME ZONE REFERENCE
2272 The local time with reference to time zone information form is
2273 identified by the use the TZID property parameter to reference the
2274 appropriate time zone definition. TZID is discussed in detail in the
2275 section on Time Zone.
2277 Example: The following represents 8:30 AM in New York in Winter, five
2278 hours behind UTC, in each of the three formats using the "X-
2279 TIMEOFDAY" non-standard property:
2281 X-TIMEOFDAY:083000
2283 X-TIMEOFDAY:133000Z
2285 X-TIMEOFDAY;TZID=US-Eastern:083000
2287 4.3.13 URI
2289 Value Name: URI
2291 Purpose: This value type is used to identify values that contain a
2292 uniform resource identifier (URI) type of reference to the property
2293 value.
2295 Formal Definition: The data type is defined by the following
2296 notation:
2298 uri =
2300 Description: This data type might be used to reference binary
2301 information, for values that are large, or otherwise undesirable to
2302 include directly in the iCalendar object.
2304 The URI value formats in RFC 1738, RFC 2111 and any other IETF
2305 registered value format can be specified.
2307 Any IANA registered URI format can be used. These include, but are
2308 not limited to, those defined in RFC 1738 and RFC 2111.
2310 When a property parameter value is a URI value type, the URI MUST be
2311 specified as a quoted-string value.
2313 No additional content value encoding (i.e., BACKSLASH character
2314 encoding) is defined for this value type.
2316 Example: The following is a URI for a network file:
2318 http://host1.com/my-report.txt
2320 4.3.14 UTC Offset
2322 Value Name: UTC-OFFSET
2324 Purpose: This value type is used to identify properties that contain
2325 an offset from UTC to local time.
2327 Formal Definition: The data type is defined by the following
2328 notation:
2330 utc-offset = time-numzone ;As defined above in time data type
2332 time-numzone = ("+" / "-") time-hour time-minute [time-
2333 second]
2335 Description: The PLUS SIGN character MUST be specified for positive
2336 UTC offsets (i.e., ahead of UTC). The value of "-0000" and "-000000"
2337 are not allowed. The time-second, if present, may not be 60; if
2338 absent, it defaults to zero.
2340 No additional content value encoding (i.e., BACKSLASH character
2341 encoding) is defined for this value type.
2343 Example: The following UTC offsets are given for standard time for
2344 New York (five hours behind UTC) and Geneva (one hour ahead of UTC):
2346 -0500
2348 +0100
2350 4.4 iCalendar Object
2352 The Calendaring and Scheduling Core Object is a collection of
2353 calendaring and scheduling information. Typically, this information
2354 will consist of a single iCalendar object. However, multiple
2355 iCalendar objects can be sequentially grouped together. The first
2356 line and last line of the iCalendar object MUST contain a pair of
2357 iCalendar object delimiter strings. The syntax for an iCalendar
2358 object is as follows:
2360 icalobject = 1*("BEGIN" ":" "VCALENDAR" CRLF
2361 icalbody
2362 "END" ":" "VCALENDAR" CRLF)
2364 The following is a simple example of an iCalendar object:
2366 BEGIN:VCALENDAR
2367 VERSION:2.0
2368 PRODID:-//hacksw/handcal//NONSGML v1.0//EN
2369 BEGIN:VEVENT
2370 DTSTART:19970714T170000Z
2371 DTEND:19970715T035959Z
2372 SUMMARY:Bastille Day Party
2373 END:VEVENT
2374 END:VCALENDAR
2376 4.5 Property
2378 A property is the definition of an individual attribute describing a
2379 calendar or a calendar component. A property takes the form defined
2380 by the "contentline" notation defined in section 4.1.1.
2382 The following is an example of a property:
2384 DTSTART:19960415T133000Z
2386 This memo imposes no ordering of properties within an iCalendar
2387 object.
2389 Property names, parameter names and enumerated parameter values are
2390 case insensitive. For example, the property name "DUE" is the same as
2391 "due" and "Due", DTSTART;TZID=US-Eastern:19980714T120000 is the same
2392 as DtStart;TzID=US-Eastern:19980714T120000.
2394 4.6 Calendar Components
2396 The body of the iCalendar object consists of a sequence of calendar
2397 properties and one or more calendar components. The calendar
2398 properties are attributes that apply to the calendar as a whole. The
2399 calendar components are collections of properties that express a
2400 particular calendar semantic. For example, the calendar component can
2401 specify an event, a to-do, a journal entry, time zone information, or
2402 free/busy time information, or an alarm.
2404 The body of the iCalendar object is defined by the following
2405 notation:
2407 icalbody = calprops component
2409 calprops = 2*(
2411 ; 'prodid' and 'version' are both REQUIRED,
2412 ; but MUST NOT occur more than once
2413 prodid /version /
2415 ; 'calscale' and 'method' are optional,
2416 ; but MUST NOT occur more than once
2418 calscale /
2419 method /
2421 x-prop
2423 )
2425 component = 1*(eventc / todoc / journalc / freebusyc /
2426 / timezonec / iana-comp / x-comp)
2428 iana-comp = "BEGIN" ":" iana-token CRLF
2430 1*contentline
2432 "END" ":" iana-token CRLF
2434 x-comp = "BEGIN" ":" x-name CRLF
2436 1*contentline
2438 "END" ":" x-name CRLF
2440 An iCalendar object MUST include the "PRODID" and "VERSION" calendar
2441 properties. In addition, it MUST include at least one calendar
2442 component. Special forms of iCalendar objects are possible to publish
2443 just busy time (i.e., only a "VFREEBUSY" calendar component) or time
2444 zone (i.e., only a "VTIMEZONE" calendar component) information. In
2445 addition, a complex iCalendar object is possible that is used to
2446 capture a complete snapshot of the contents of a calendar (e.g.,
2447 composite of many different calendar components). More commonly, an
2448 iCalendar object will consist of just a single "VEVENT", "VTODO" or
2449 "VJOURNAL" calendar component.
2451 4.6.1 Event Component
2453 Component Name: "VEVENT"
2455 Purpose: Provide a grouping of component properties that describe an
2456 event.
2458 Format Definition: A "VEVENT" calendar component is defined by the
2459 following notation:
2461 eventc = "BEGIN" ":" "VEVENT" CRLF
2462 eventprop *alarmc
2463 "END" ":" "VEVENT" CRLF
2465 eventprop = *(
2466 ; the following are optional,
2467 ; but MUST NOT occur more than once
2469 class / created / description / dtstart / geo /
2470 last-mod / location / organizer / priority /
2471 dtstamp / seq / status / summary / transp /
2472 uid / url / recurid /
2474 ; either 'dtend' or 'duration' may appear in
2475 ; a 'eventprop', but 'dtend' and 'duration'
2476 ; MUST NOT occur in the same 'eventprop'
2478 dtend / duration /
2480 ; the following are optional,
2481 ; and MAY occur more than once
2483 attach / attendee / categories / comment /
2484 contact / exdate / exrule / rstatus / related /
2485 resources / rdate / rrule / x-prop
2487 )
2489 Description: A "VEVENT" calendar component is a grouping of component
2490 properties, and possibly including "VALARM" calendar components, that
2491 represents a scheduled amount of time on a calendar. For example, it
2492 can be an activity; such as a one-hour long, department meeting from
2493 8:00 AM to 9:00 AM, tomorrow. Generally, an event will take up time
2494 on an individual calendar. Hence, the event will appear as an opaque
2495 interval in a search for busy time. Alternately, the event can have
2496 its Time Transparency set to "TRANSPARENT" in order to prevent
2497 blocking of the event in searches for busy time.
2499 The "VEVENT" is also the calendar component used to specify an
2500 anniversary or daily reminder within a calendar. These events have a
2501 DATE value type for the "DTSTART" property instead of the default
2502 data type of DATE-TIME. If such a "VEVENT" has a "DTEND" property, it
2503 MUST be specified as a DATE value also. The anniversary type of
2504 "VEVENT" can span more than one date (i.e, "DTEND" property value is
2505 set to a calendar date after the "DTSTART" property value).
2507 The "DTSTART" property for a "VEVENT" specifies the inclusive start
2508 of the event. For recurring events, it also specifies the very first
2509 instance in the recurrence set. The "DTEND" property for a "VEVENT"
2510 calendar component specifies the non-inclusive end of the event. For
2511 cases where a "VEVENT" calendar component specifies a "DTSTART"
2512 property with a DATE data type but no "DTEND" property, the events
2513 non-inclusive end is the end of the calendar date specified by the
2514 "DTSTART" property. For cases where a "VEVENT" calendar component
2515 specifies a "DTSTART" property with a DATE-TIME data type but no
2516 "DTEND" property, the event ends on the same calendar date and time
2517 of day specified by the "DTSTART" property.
2519 The "VEVENT" calendar component cannot be nested within another
2520 calendar component. However, "VEVENT" calendar components can be
2521 related to each other or to a "VTODO" or to a "VJOURNAL" calendar
2522 component with the "RELATED-TO" property.
2524 Example: The following is an example of the "VEVENT" calendar
2525 component used to represent a meeting that will also be opaque to
2526 searches for busy time:
2528 BEGIN:VEVENT
2529 UID:19970901T130000Z-123401@host.com
2530 DTSTAMP:19970901T1300Z
2531 DTSTART:19970903T163000Z
2532 DTEND:19970903T190000Z
2533 SUMMARY:Annual Employee Review
2534 CLASS:PRIVATE
2535 CATEGORIES:BUSINESS,HUMAN RESOURCES
2536 END:VEVENT
2538 The following is an example of the "VEVENT" calendar component used
2539 to represent a reminder that will not be opaque, but rather
2540 transparent, to searches for busy time:
2542 BEGIN:VEVENT
2543 UID:19970901T130000Z-123402@host.com
2544 DTSTAMP:19970901T1300Z
2545 DTSTART:19970401T163000Z
2546 DTEND:19970402T010000Z
2547 SUMMARY:Laurel is in sensitivity awareness class.
2548 CLASS:PUBLIC
2549 CATEGORIES:BUSINESS,HUMAN RESOURCES
2550 TRANSP:TRANSPARENT
2551 END:VEVENT
2553 The following is an example of the "VEVENT" calendar component used
2554 to represent an anniversary that will occur annually. Since it takes
2555 up no time, it will not appear as opaque in a search for busy time;
2556 no matter what the value of the "TRANSP" property indicates:
2558 BEGIN:VEVENT
2559 UID:19970901T130000Z-123403@host.com
2560 DTSTAMP:19970901T1300Z
2561 DTSTART:19971102
2562 SUMMARY:Our Blissful Anniversary
2563 CLASS:CONFIDENTIAL
2564 CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION
2565 RRULE:FREQ=YEARLY
2566 END:VEVENT
2568 4.6.2 To-do Component
2570 Component Name: VTODO
2571 Purpose: Provide a grouping of calendar properties that describe a
2572 to-do.
2574 Formal Definition: A "VTODO" calendar component is defined by the
2575 following notation:
2577 todoc = "BEGIN" ":" "VTODO" CRLF
2578 todoprop *alarmc
2579 "END" ":" "VTODO" CRLF
2581 todoprop = *(
2583 ; the following are optional,
2584 ; but MUST NOT occur more than once
2586 class / completed / created / description / dtstamp /
2587 dtstart / geo / last-mod / location / organizer /
2588 percent / priority / recurid / seq / status /
2589 summary / uid / url /
2591 ; either 'due' or 'duration' may appear in
2592 ; a 'todoprop', but 'due' and 'duration'
2593 ; MUST NOT occur in the same 'todoprop'
2595 due / duration /
2597 ; the following are optional,
2598 ; and MAY occur more than once
2600 attach / attendee / categories / comment / contact /
2601 exdate / exrule / rstatus / related / resources /
2602 rdate / rrule / x-prop
2604 )
2606 Description: A "VTODO" calendar component is a grouping of component
2607 properties and possibly "VALARM" calendar components that represent
2608 an action-item or assignment. For example, it can be used to
2609 represent an item of work assigned to an individual; such as "turn in
2610 travel expense today".
2612 The "VTODO" calendar component cannot be nested within another
2613 calendar component. However, "VTODO" calendar components can be
2614 related to each other or to a "VTODO" or to a "VJOURNAL" calendar
2615 component with the "RELATED-TO" property.
2617 A "VTODO" calendar component without the "DTSTART" and "DUE" (or
2618 "DURATION") properties specifies a to-do that will be associated with
2619 each successive calendar date, until it is completed.
2621 Example: The following is an example of a "VTODO" calendar component:
2623 BEGIN:VTODO
2624 UID:19970901T130000Z-123404@host.com
2625 DTSTAMP:19970901T1300Z
2626 DTSTART:19970415T133000Z
2627 DUE:19970416T045959Z
2628 SUMMARY:1996 Income Tax Preparation
2629 CLASS:CONFIDENTIAL
2630 CATEGORIES:FAMILY,FINANCE
2631 PRIORITY:1
2632 STATUS:NEEDS-ACTION
2633 END:VTODO
2635 4.6.3 Journal Component
2637 Component Name: VJOURNAL
2639 Purpose: Provide a grouping of component properties that describe a
2640 journal entry.
2642 Formal Definition: A "VJOURNAL" calendar component is defined by the
2643 following notation:
2645 journalc = "BEGIN" ":" "VJOURNAL" CRLF
2646 jourprop
2647 "END" ":" "VJOURNAL" CRLF
2649 jourprop = *(
2651 ; the following are optional,
2652 ; but MUST NOT occur more than once
2654 class / created / description / dtstart / dtstamp /
2655 last-mod / organizer / recurid / seq / status /
2656 summary / uid / url /
2658 ; the following are optional,
2659 ; and MAY occur more than once
2661 attach / attendee / categories / comment /
2662 contact / exdate / exrule / related / rdate /
2663 rrule / rstatus / x-prop
2665 )
2667 Description: A "VJOURNAL" calendar component is a grouping of
2668 component properties that represent one or more descriptive text
2669 notes associated with a particular calendar date. The "DTSTART"
2670 property is used to specify the calendar date that the journal entry
2671 is associated with. Generally, it will have a DATE value data type,
2672 but it can also be used to specify a DATE-TIME value data type.
2673 Examples of a journal entry include a daily record of a legislative
2674 body or a journal entry of individual telephone contacts for the day
2675 or an ordered list of accomplishments for the day. The "VJOURNAL"
2676 calendar component can also be used to associate a document with a
2677 calendar date.
2679 The "VJOURNAL" calendar component does not take up time on a
2680 calendar. Hence, it does not play a role in free or busy time
2681 searches - - it is as though it has a time transparency value of
2682 TRANSPARENT. It is transparent to any such searches.
2684 The "VJOURNAL" calendar component cannot be nested within another
2685 calendar component. However, "VJOURNAL" calendar components can be
2686 related to each other or to a "VEVENT" or to a "VTODO" calendar
2687 component, with the "RELATED-TO" property.
2689 Example: The following is an example of the "VJOURNAL" calendar
2690 component:
2692 BEGIN:VJOURNAL
2693 UID:19970901T130000Z-123405@host.com
2694 DTSTAMP:19970901T1300Z
2695 DTSTART;VALUE=DATE:19970317
2696 SUMMARY:Staff meeting minutes
2697 DESCRIPTION:1. Staff meeting: Participants include Joe\, Lisa
2698 and Bob. Aurora project plans were reviewed. There is currently
2699 no budget reserves for this project. Lisa will escalate to
2700 management. Next meeting on Tuesday.\n
2701 2. Telephone Conference: ABC Corp. sales representative called
2702 to discuss new printer. Promised to get us a demo by Friday.\n
2703 3. Henry Miller (Handsoff Insurance): Car was totaled by tree.
2704 Is looking into a loaner car. 654-2323 (tel).
2705 END:VJOURNAL
2707 4.6.4 Free/Busy Component
2709 Component Name: VFREEBUSY
2711 Purpose: Provide a grouping of component properties that describe
2712 either a request for free/busy time, describe a response to a request
2713 for free/busy time or describe a published set of busy time.
2715 Formal Definition: A "VFREEBUSY" calendar component is defined by the
2716 following notation:
2718 freebusyc = "BEGIN" ":" "VFREEBUSY" CRLF
2719 fbprop
2720 "END" ":" "VFREEBUSY" CRLF
2722 fbprop = *(
2724 ; the following are optional,
2725 ; but MUST NOT occur more than once
2727 contact / dtstart / dtend / duration / dtstamp /
2728 organizer / uid / url /
2730 ; the following are optional,
2731 ; and MAY occur more than once
2732 attendee / comment / freebusy / rstatus / x-prop
2734 )
2736 Description: A "VFREEBUSY" calendar component is a grouping of
2737 component properties that represents either a request for, a reply to
2738 a request for free or busy time information or a published set of
2739 busy time information.
2741 When used to request free/busy time information, the "ATTENDEE"
2742 property specifies the calendar users whose free/busy time is being
2743 requested; the "ORGANIZER" property specifies the calendar user who
2744 is requesting the free/busy time; the "DTSTART" and "DTEND"
2745 properties specify the window of time for which the free/busy time is
2746 being requested; the "UID" and "DTSTAMP" properties are specified to
2747 assist in proper sequencing of multiple free/busy time requests.
2749 When used to reply to a request for free/busy time, the "ATTENDEE"
2750 property specifies the calendar user responding to the free/busy time
2751 request; the "ORGANIZER" property specifies the calendar user that
2752 originally requested the free/busy time; the "FREEBUSY" property
2753 specifies the free/busy time information (if it exists); and the
2754 "UID" and "DTSTAMP" properties are specified to assist in proper
2755 sequencing of multiple free/busy time replies.
2757 When used to publish busy time, the "ORGANIZER" property specifies
2758 the calendar user associated with the published busy time; the
2759 "DTSTART" and "DTEND" properties specify an inclusive time window
2760 that surrounds the busy time information; the "FREEBUSY" property
2761 specifies the published busy time information; and the "DTSTAMP"
2762 property specifies the date/time that iCalendar object was created.
2764 The "VFREEBUSY" calendar component cannot be nested within another
2765 calendar component. Multiple "VFREEBUSY" calendar components can be
2766 specified within an iCalendar object. This permits the grouping of
2767 Free/Busy information into logical collections, such as monthly
2768 groups of busy time information.
2770 The "VFREEBUSY" calendar component is intended for use in iCalendar
2771 object methods involving requests for free time, requests for busy
2772 time, requests for both free and busy, and the associated replies.
2774 Free/Busy information is represented with the "FREEBUSY" property.
2775 This property provides a terse representation of time periods. One or
2776 more "FREEBUSY" properties can be specified in the "VFREEBUSY"
2777 calendar component.
2779 When present in a "VFREEBUSY" calendar component, the "DTSTART" and
2780 "DTEND" properties SHOULD be specified prior to any "FREEBUSY"
2781 properties. In a free time request, these properties can be used in
2782 combination with the "DURATION" property to represent a request for a
2783 duration of free time within a specified window of time.
2785 The recurrence properties ("RRULE", "EXRULE", "RDATE", "EXDATE") are
2786 not permitted within a "VFREEBUSY" calendar component. Any recurring
2787 events are resolved into their individual busy time periods using the
2788 "FREEBUSY" property.
2790 Example: The following is an example of a "VFREEBUSY" calendar
2791 component used to request free or busy time information:
2793 BEGIN:VFREEBUSY
2794 ORGANIZER:MAILTO:jane_doe@host1.com
2795 ATTENDEE:MAILTO:john_public@host2.com
2796 DTSTART:19971015T050000Z
2797 DTEND:19971016T050000Z
2798 DTSTAMP:19970901T083000Z
2799 END:VFREEBUSY
2801 The following is an example of a "VFREEBUSY" calendar component used
2802 to reply to the request with busy time information:
2804 BEGIN:VFREEBUSY
2805 ORGANIZER:MAILTO:jane_doe@host1.com
2806 ATTENDEE:MAILTO:john_public@host2.com
2807 DTSTAMP:19970901T100000Z
2808 FREEBUSY;VALUE=PERIOD:19971015T050000Z/PT8H30M,
2809 19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M
2810 URL:http://host2.com/pub/busy/jpublic-01.ifb
2811 COMMENT:This iCalendar file contains busy time information for
2812 the next three months.
2813 END:VFREEBUSY
2815 The following is an example of a "VFREEBUSY" calendar component used
2816 to publish busy time information.
2818 BEGIN:VFREEBUSY
2819 ORGANIZER:jsmith@host.com
2820 DTSTART:19980313T141711Z
2821 DTEND:19980410T141711Z
2822 FREEBUSY:19980314T233000Z/19980315T003000Z
2823 FREEBUSY:19980316T153000Z/19980316T163000Z
2824 FREEBUSY:19980318T030000Z/19980318T040000Z
2825 URL:http://www.host.com/calendar/busytime/jsmith.ifb
2826 END:VFREEBUSY
2828 4.6.5 Time Zone Component
2830 Component Name: VTIMEZONE
2832 Purpose: Provide a grouping of component properties that defines a
2833 time zone.
2835 Formal Definition: A "VTIMEZONE" calendar component is defined by the
2836 following notation:
2838 timezonec = "BEGIN" ":" "VTIMEZONE" CRLF
2839 2*(
2841 ; 'tzid' is required, but MUST NOT occur more
2842 ; than once
2844 tzid /
2846 ; 'last-mod' and 'tzurl' are optional,
2847 but MUST NOT occur more than once
2849 last-mod / tzurl /
2851 ; one of 'standardc' or 'daylightc' MUST occur
2852 ..; and each MAY occur more than once.
2854 standardc / daylightc /
2856 ; the following is optional,
2857 ; and MAY occur more than once
2859 x-prop
2861 )
2863 "END" ":" "VTIMEZONE" CRLF
2865 standardc = "BEGIN" ":" "STANDARD" CRLF
2867 tzprop
2869 "END" ":" "STANDARD" CRLF
2871 daylightc = "BEGIN" ":" "DAYLIGHT" CRLF
2873 tzprop
2875 "END" ":" "DAYLIGHT" CRLF
2877 tzprop = 3*(
2879 ; the following are each REQUIRED,
2880 ; but MUST NOT occur more than once
2882 dtstart / tzoffsetto / tzoffsetfrom /
2884 ; the following are optional,
2885 ; and MAY occur more than once
2887 comment / rdate / rrule / tzname / x-prop
2889 )
2891 Description: A time zone is unambiguously defined by the set of time
2892 measurement rules determined by the governing body for a given
2893 geographic area. These rules describe at a minimum the base offset
2894 from UTC for the time zone, often referred to as the Standard Time
2895 offset. Many locations adjust their Standard Time forward or backward
2896 by one hour, in order to accommodate seasonal changes in number of
2897 daylight hours, often referred to as Daylight Saving Time. Some
2898 locations adjust their time by a fraction of an hour. Standard Time
2899 is also known as Winter Time. Daylight Saving Time is also known as
2900 Advanced Time, Summer Time, or Legal Time in certain countries. The
2901 following table shows the changes in time zone rules in effect for
2902 New York City starting from 1967. Each line represents a description
2903 or rule for a particular observance.
2905 Effective Observance Rule
2907 Date (Date/Time) Offset Abbreviation
2909 1967-* last Sun in Oct, 02:00 -0500 EST
2911 1967-1973 last Sun in Apr, 02:00 -0400 EDT
2913 1974-1974 Jan 6, 02:00 -0400 EDT
2915 1975-1975 Feb 23, 02:00 -0400 EDT
2917 1976-1986 last Sun in Apr, 02:00 -0400 EDT
2919 1987-* first Sun in Apr, 02:00 -0400 EDT
2921 Note: The specification of a global time zone registry is not
2922 addressed by this document and is left for future study.
2923 However, implementers may find the Olson time zone database [TZ]
2924 a useful reference. It is an informal, public-domain collection
2925 of time zone information, which is currently being maintained by
2926 volunteer Internet participants, and is used in several
2927 operating systems. This database contains current and historical
2928 time zone information for a wide variety of locations around the
2929 globe; it provides a time zone identifier for every unique time
2930 zone rule set in actual use since 1970, with historical data
2931 going back to the introduction of standard time.
2933 Interoperability between two calendaring and scheduling applications,
2934 especially for recurring events, to-dos or journal entries, is
2935 dependent on the ability to capture and convey date and time
2936 information in an unambiguous format. The specification of current
2937 time zone information is integral to this behavior.
2939 If present, the "VTIMEZONE" calendar component defines the set of
2940 Standard Time and Daylight Saving Time observances (or rules) for a
2941 particular time zone for a given interval of time. The "VTIMEZONE"
2942 calendar component cannot be nested within other calendar components.
2943 Multiple "VTIMEZONE" calendar components can exist in an iCalendar
2944 object. In this situation, each "VTIMEZONE" MUST represent a unique
2945 time zone definition. This is necessary for some classes of events,
2946 such as airline flights, that start in one time zone and end in
2947 another.
2949 The "VTIMEZONE" calendar component MUST be present if the iCalendar
2950 object contains an RRULE that generates dates on both sides of a time
2951 zone shift (e.g. both in Standard Time and Daylight Saving Time)
2952 unless the iCalendar object intends to convey a floating time (See
2953 the section "4.1.10.11 Time" for proper interpretation of floating
2954 time). It can be present if the iCalendar object does not contain
2955 such a RRULE. In addition, if a RRULE is present, there MUST be valid
2956 time zone information for all recurrence instances.
2958 The "VTIMEZONE" calendar component MUST include the "TZID" property
2959 and at least one definition of a standard or daylight component. The
2960 standard or daylight component MUST include the "DTSTART",
2961 "TZOFFSETFROM" and "TZOFFSETTO" properties.
2963 An individual "VTIMEZONE" calendar component MUST be specified for
2964 each unique "TZID" parameter value specified in the iCalendar object.
2966 Each "VTIMEZONE" calendar component consists of a collection of one
2967 or more sub-components that describe the rule for a particular
2968 observance (either a Standard Time or a Daylight Saving Time
2969 observance). The "STANDARD" sub-component consists of a collection of
2970 properties that describe Standard Time. The "DAYLIGHT" sub-component
2971 consists of a collection of properties that describe Daylight Saving
2972 Time. In general this collection of properties consists of:
2974 - the first onset date-time for the observance
2976 - the last onset date-time for the observance, if a last onset
2977 is known.
2979 - the offset to be applied for the observance
2981 - a rule that describes the day and time when the observance
2982 takes effect
2984 - an optional name for the observance
2986 For a given time zone, there may be multiple unique definitions of
2987 the observances over a period of time. Each observance is described
2988 using either a "STANDARD" or "DAYLIGHT" sub-component. The collection
2989 of these sub-components is used to describe the time zone for a given
2990 period of time. The offset to apply at any given time is found by
2991 locating the observance that has the last onset date and time before
2992 the time in question, and using the offset value from that
2993 observance.
2995 The top-level properties in a "VTIMEZONE" calendar component are:
2997 The mandatory "TZID" property is a text value that uniquely
2998 identifies the VTIMZONE calendar component within the scope of an
2999 iCalendar object.
3001 The optional "LAST-MODIFIED" property is a UTC value that specifies
3002 the date and time that this time zone definition was last updated.
3004 The optional "TZURL" property is url value that points to a published
3005 VTIMEZONE definition. TZURL SHOULD refer to a resource that is
3006 accessible by anyone who might need to interpret the object. This
3007 SHOULD NOT normally be a file: URL or other URL that is not widely-
3008 accessible.
3010 The collection of properties that are used to define the STANDARD and
3011 DAYLIGHT sub-components include:
3013 The mandatory "DTSTART" property gives the effective onset date and
3014 local time for the time zone sub-component definition. "DTSTART" in
3015 this usage MUST be specified as a local DATE-TIME value.
3017 The mandatory "TZOFFSETFROM" property gives the UTC offset which is
3018 in use when the onset of this time zone observance begins.
3019 "TZOFFSETFROM" is combined with "DTSTART" to define the effective
3020 onset for the time zone sub-component definition. For example, the
3021 following represents the time at which the observance of Standard
3022 Time took effect in Fall 1967 for New York City:
3024 DTSTART:19671029T020000
3026 TZOFFSETFROM:-0400
3028 The mandatory "TZOFFSETTO " property gives the UTC offset for the
3029 time zone sub-component (Standard Time or Daylight Saving Time) when
3030 this observance is in use.
3032 The optional "TZNAME" property is the customary name for the time
3033 zone. It may be specified multiple times, to allow for specifying
3034 multiple language variants of the time zone names. This could be used
3035 for displaying dates.
3037 If specified, the onset for the observance defined by the time zone
3038 sub-component is defined by either the "RRULE" or "RDATE" property.
3039 If neither is specified, only one sub-component can be specified in
3040 the "VTIMEZONE" calendar component and it is assumed that the single
3041 observance specified is always in effect.
3043 The "RRULE" property defines the recurrence rule for the onset of the
3044 observance defined by this time zone sub-component. Some specific
3045 requirements for the usage of RRULE for this purpose include:
3047 - If observance is known to have an effective end date, the
3048 "UNTIL" recurrence rule parameter MUST be used to specify the
3049 last valid onset of this observance (i.e., the UNTIL date-time
3050 will be equal to the last instance generated by the recurrence
3051 pattern). It MUST be specified in UTC time.
3053 - The "DTSTART" and the "TZOFFSETTO" properties MUST be used
3054 when generating the onset date-time values (instances) from the
3055 RRULE.
3057 Alternatively, the "RDATE" property can be used to define the onset
3058 of the observance by giving the individual onset date and times.
3059 "RDATE" in this usage MUST be specified as a local DATE-TIME value in
3060 UTC time.
3062 The optional "COMMENT" property is also allowed for descriptive
3063 explanatory text.
3065 Example: The following are examples of the "VTIMEZONE" calendar
3066 component:
3068 This is an example showing time zone information for the Eastern
3069 United States using "RDATE" property. Note that this is only suitable
3070 for a recurring event that starts on or later than April 6, 1997 at
3071 03:00:00 EDT (i.e., the earliest effective transition date and time)
3072 and ends no later than April 7, 1998 02:00:00 EST (i.e., latest valid
3073 date and time for EST in this scenario). For example, this can be
3074 used for a recurring event that occurs every Friday, 8am-9:00 AM,
3075 starting June 1, 1997, ending December 31, 1997.
3077 BEGIN:VTIMEZONE
3078 TZID:US-Eastern
3079 LAST-MODIFIED:19870101T000000Z
3080 BEGIN:STANDARD
3081 DTSTART:19971026T020000
3082 RDATE:19971026T020000
3083 TZOFFSETFROM:-0400
3084 TZOFFSETTO:-0500
3085 TZNAME:EST
3086 END:STANDARD
3087 BEGIN:DAYLIGHT
3088 DTSTART:19971026T020000
3089 RDATE:19970406T020000
3090 TZOFFSETFROM:-0500
3091 TZOFFSETTO:-0400
3092 TZNAME:EDT
3093 END:DAYLIGHT
3094 END:VTIMEZONE
3096 This is a simple example showing the current time zone rules for the
3097 Eastern United States using a RRULE recurrence pattern. Note that
3098 there is no effective end date to either of the Standard Time or
3099 Daylight Time rules. This information would be valid for a recurring
3100 event starting today and continuing indefinitely.
3102 BEGIN:VTIMEZONE
3103 TZID:US-Eastern
3104 LAST-MODIFIED:19870101T000000Z
3105 TZURL:http://zones.stds_r_us.net/tz/US-Eastern
3106 BEGIN:STANDARD
3107 DTSTART:19671029T020000
3108 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
3109 TZOFFSETFROM:-0400
3110 TZOFFSETTO:-0500
3111 TZNAME:EST
3112 END:STANDARD
3113 BEGIN:DAYLIGHT
3114 DTSTART:19870405T020000
3115 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
3116 TZOFFSETFROM:-0500
3117 TZOFFSETTO:-0400
3118 TZNAME:EDT
3119 END:DAYLIGHT
3120 END:VTIMEZONE
3122 This is an example showing a fictitious set of rules for the Eastern
3123 United States, where the Daylight Time rule has an effective end date
3124 (i.e., after that date, Daylight Time is no longer observed).
3126 BEGIN:VTIMEZONE
3127 TZID:US--Fictitious-Eastern
3128 LAST-MODIFIED:19870101T000000Z
3129 BEGIN:STANDARD
3130 DTSTART:19671029T020000
3131 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
3132 TZOFFSETFROM:-0400
3133 TZOFFSETTO:-0500
3134 TZNAME:EST
3135 END:STANDARD
3136 BEGIN:DAYLIGHT
3137 DTSTART:19870405T020000
3138 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z
3139 TZOFFSETFROM:-0500
3140 TZOFFSETTO:-0400
3141 TZNAME:EDT
3142 END:DAYLIGHT
3143 END:VTIMEZONE
3145 This is an example showing a fictitious set of rules for the Eastern
3146 United States, where the first Daylight Time rule has an effective
3147 end date. There is a second Daylight Time rule that picks up where
3148 the other left off.
3150 BEGIN:VTIMEZONE
3151 TZID:US--Fictitious-Eastern
3152 LAST-MODIFIED:19870101T000000Z
3153 BEGIN:STANDARD
3154 DTSTART:19671029T020000
3155 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
3156 TZOFFSETFROM:-0400
3157 TZOFFSETTO:-0500
3158 TZNAME:EST
3159 END:STANDARD
3160 BEGIN:DAYLIGHT
3161 DTSTART:19870405T020000
3162 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z
3163 TZOFFSETFROM:-0500
3164 TZOFFSETTO:-0400
3165 TZNAME:EDT
3166 END:DAYLIGHT
3167 BEGIN:DAYLIGHT
3168 DTSTART:19990424T020000
3169 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=4
3170 TZOFFSETFROM:-0500
3171 TZOFFSETTO:-0400
3172 TZNAME:EDT
3173 END:DAYLIGHT
3174 END:VTIMEZONE
3176 4.6.6 Alarm Component
3178 Component Name: VALARM
3180 Purpose: Provide a grouping of component properties that define an
3181 alarm.
3183 Formal Definition: A "VALARM" calendar component is defined by the
3184 following notation:
3186 alarmc = "BEGIN" ":" "VALARM" CRLF
3187 (audioprop / dispprop / emailprop / procprop)
3188 "END" ":" "VALARM" CRLF
3190 audioprop = 2*(
3192 ; 'action' and 'trigger' are both REQUIRED,
3193 ; but MUST NOT occur more than once
3195 action / trigger /
3197 ; 'duration' and 'repeat' are both optional,
3198 ; and MUST NOT occur more than once each,
3199 ; but if one occurs, so MUST the other
3201 duration / repeat /
3203 ; the following is optional,
3204 ; but MUST NOT occur more than once
3206 attach /
3208 ; the following is optional,
3209 ; and MAY occur more than once
3211 x-prop
3213 )
3214 dispprop = 3*(
3216 ; the following are all REQUIRED,
3217 ; but MUST NOT occur more than once
3219 action / description / trigger /
3221 ; 'duration' and 'repeat' are both optional,
3222 ; and MUST NOT occur more than once each,
3223 ; but if one occurs, so MUST the other
3225 duration / repeat /
3227 ; the following is optional,
3228 ; and MAY occur more than once
3230 *x-prop
3232 )
3234 emailprop = 5*(
3236 ; the following are all REQUIRED,
3237 ; but MUST NOT occur more than once
3239 action / description / trigger / summary
3241 ; the following is REQUIRED,
3242 ; and MAY occur more than once
3244 attendee /
3246 ; 'duration' and 'repeat' are both optional,
3247 ; and MUST NOT occur more than once each,
3248 ; but if one occurs, so MUST the other
3250 duration / repeat /
3252 ; the following are optional,
3253 ; and MAY occur more than once
3255 attach / x-prop
3257 )
3259 procprop = 3*(
3260 ; the following are all REQUIRED,
3261 ; but MUST NOT occur more than once
3263 action / attach / trigger /
3265 ; 'duration' and 'repeat' are both optional,
3266 ; and MUST NOT occur more than once each,
3267 ; but if one occurs, so MUST the other
3269 duration / repeat /
3271 ; 'description' is optional,
3272 ; and MUST NOT occur more than once
3274 description /
3276 ; the following is optional,
3277 ; and MAY occur more than once
3279 x-prop
3281 )
3283 Description: A "VALARM" calendar component is a grouping of component
3284 properties that is a reminder or alarm for an event or a to-do. For
3285 example, it may be used to define a reminder for a pending event or
3286 an overdue to-do.
3288 The "VALARM" calendar component MUST include the "ACTION" and
3289 "TRIGGER" properties. The "ACTION" property further constrains the
3290 "VALARM" calendar component in the following ways:
3292 When the action is "AUDIO", the alarm can also include one and only
3293 one "ATTACH" property, which MUST point to a sound resource, which is
3294 rendered when the alarm is triggered.
3296 When the action is "DISPLAY", the alarm MUST also include a
3297 "DESCRIPTION" property, which contains the text to be displayed when
3298 the alarm is triggered.
3300 When the action is "EMAIL", the alarm MUST include a "DESCRIPTION"
3301 property, which contains the text to be used as the message body, a
3302 "SUMMARY" property, which contains the text to be used as the message
3303 subject, and one or more "ATTENDEE" properties, which contain the
3304 email address of attendees to receive the message. It can also
3305 include one or more "ATTACH" properties, which are intended to be
3306 sent as message attachments. When the alarm is triggered, the email
3307 message is sent.
3309 When the action is "PROCEDURE", the alarm MUST include one and only
3310 one "ATTACH" property, which MUST point to a procedure resource,
3311 which is invoked when the alarm is triggered.
3313 The "VALARM" calendar component MUST only appear within either a
3314 "VEVENT" or "VTODO" calendar component. "VALARM" calendar components
3315 cannot be nested. Multiple mutually independent "VALARM" calendar
3316 components can be specified for a single "VEVENT" or "VTODO" calendar
3317 component.
3319 The "TRIGGER" property specifies when the alarm will be triggered.
3320 The "TRIGGER" property specifies a duration prior to the start of an
3321 event or a to-do. The "TRIGGER" edge may be explicitly set to be
3322 relative to the "START" or "END" of the event or to-do with the
3323 "RELATED" parameter of the "TRIGGER" property. The "TRIGGER" property
3324 value type can alternatively be set to an absolute calendar date and
3325 time of day value.
3327 In an alarm set to trigger on the "START" of an event or to-do, the
3328 "DTSTART" property MUST be present in the associated event or to-do.
3329 In an alarm in a "VEVENT" calendar component set to trigger on the
3330 "END" of the event, either the "DTEND" property MUST be present, or
3331 the "DTSTART" and "DURATION" properties MUST both be present. In an
3332 alarm in a "VTODO" calendar component set to trigger on the "END" of
3333 the to-do, either the "DUE" property MUST be present, or the
3334 "DTSTART" and "DURATION" properties MUST both be present.
3336 The alarm can be defined such that it triggers repeatedly. A
3337 definition of an alarm with a repeating trigger MUST include both the
3338 "DURATION" and "REPEAT" properties. The "DURATION" property specifies
3339 the delay period, after which the alarm will repeat. The "REPEAT"
3340 property specifies the number of additional repetitions that the
3341 alarm will triggered. This repitition count is in addition to the
3342 initial triggering of the alarm. Both of these properties MUST be
3343 present in order to specify a repeating alarm. If one of these two
3344 properties is absent, then the alarm will not repeat beyond the
3345 initial trigger.
3347 The "ACTION" property is used within the "VALARM" calendar component
3348 to specify the type of action invoked when the alarm is triggered.
3349 The "VALARM" properties provide enough information for a specific
3350 action to be invoked. It is typically the responsibility of a
3351 "Calendar User Agent" (CUA) to deliver the alarm in the specified
3352 fashion. An "ACTION" property value of AUDIO specifies an alarm that
3353 causes a sound to be played to alert the user; DISPLAY specifies an
3354 alarm that causes a text message to be displayed to the user; EMAIL
3355 specifies an alarm that causes an electronic email message to be
3356 delivered to one or more email addresses; and PROCEDURE specifies an
3357 alarm that causes a procedure to be executed. The "ACTION" property
3358 MUST specify one and only one of these values.
3360 In an AUDIO alarm, if the optional "ATTACH" property is included, it
3361 MUST specify an audio sound resource. The intention is that the sound
3362 will be played as the alarm effect. If an "ATTACH" property is
3363 specified that does not refer to a sound resource, or if the
3364 specified sound resource cannot be rendered (because its format is
3365 unsupported, or because it cannot be retrieved), then the CUA or
3366 other entity responsible for playing the sound may choose a fallback
3367 action, such as playing a built-in default sound, or playing no sound
3368 at all.
3370 In a DISPLAY alarm, the intended alarm effect is for the text value
3371 of the "DESCRIPTION" property to be displayed to the user.
3373 In an EMAIL alarm, the intended alarm effect is for an email message
3374 to be composed and delivered to all the addresses specified by the
3375 "ATTENDEE" properties in the "VALARM" calendar component. The
3376 "DESCRIPTION" property of the "VALARM" calendar component MUST be
3377 used as the body text of the message, and the "SUMMARY" property MUST
3378 be used as the subject text. Any "ATTACH" properties in the "VALARM"
3379 calendar component SHOULD be sent as attachments to the message.
3381 In a PROCEDURE alarm, the "ATTACH" property in the "VALARM" calendar
3382 component MUST specify a procedure or program that is intended to be
3383 invoked as the alarm effect. If the procedure or program is in a
3384 format that cannot be rendered, then no procedure alarm will be
3385 invoked. If the "DESCRIPTION" property is present, its value
3386 specifies the argument string to be passed to the procedure or
3387 program. "Calendar User Agents" that receive an iCalendar object with
3388 this category of alarm, can disable or allow the "Calendar User" to
3389 disable, or otherwise ignore this type of alarm. While a very useful
3390 alarm capability, the PROCEDURE type of alarm SHOULD be treated by
3391 the "Calendar User Agent" as a potential security risk.
3393 Example: The following example is for a "VALARM" calendar component
3394 that specifies an audio alarm that will sound at a precise time and
3395 repeat 4 more times at 15 minute intervals:
3397 BEGIN:VALARM
3398 TRIGGER;VALUE=DATE-TIME:19970317T133000Z
3399 REPEAT:4
3400 DURATION:PT15M
3401 ACTION:AUDIO
3402 ATTACH;FMTTYPE=audio/basic:ftp://host.com/pub/sounds/bell-01.aud
3403 END:VALARM
3405 The following example is for a "VALARM" calendar component that
3406 specifies a display alarm that will trigger 30 minutes before the
3407 scheduled start of the event or the due date/time of the to-do it is
3408 associated with and will repeat 2 more times at 15 minute intervals:
3410 BEGIN:VALARM
3411 TRIGGER:-PT30M
3412 REPEAT:2
3413 DURATION:PT15M
3414 ACTION:DISPLAY
3415 DESCRIPTION:Breakfast meeting with executive\n
3416 team at 8:30 AM EST.
3417 END:VALARM
3419 The following example is for a "VALARM" calendar component that
3420 specifies an email alarm that will trigger 2 days before the
3421 scheduled due date/time of a to-do it is associated with. It does not
3422 repeat. The email has a subject, body and attachment link.
3424 BEGIN:VALARM
3425 TRIGGER:-P2D
3426 ACTION:EMAIL
3427 ATTENDEE:MAILTO:john_doe@host.com
3428 SUMMARY:*** REMINDER: SEND AGENDA FOR WEEKLY STAFF MEETING ***
3429 DESCRIPTION:A draft agenda needs to be sent out to the attendees
3430 to the weekly managers meeting (MGR-LIST). Attached is a
3431 pointer the document template for the agenda file.
3432 ATTACH;FMTTYPE=application/binary:http://host.com/templates/agen
3433 da.doc
3434 END:VALARM
3436 The following example is for a "VALARM" calendar component that
3437 specifies a procedural alarm that will trigger at a precise date/time
3438 and will repeat 23 more times at one hour intervals. The alarm will
3439 invoke a procedure file.
3441 BEGIN:VALARM
3442 TRIGGER;VALUE=DATE-TIME:19980101T050000Z
3443 REPEAT:23
3444 DURATION:PT1H
3445 ACTION:PROCEDURE
3446 ATTACH;FMTTYPE=application/binary:ftp://host.com/novo-
3447 procs/felizano.exe
3448 END:VALARM
3450 4.7 Calendar Properties
3452 The Calendar Properties are attributes that apply to the iCalendar
3453 object, as a whole. These properties do not appear within a calendar
3454 component. They SHOULD be specified after the "BEGIN:VCALENDAR"
3455 property and prior to any calendar component.
3457 4.7.1 Calendar Scale
3459 Property Name: CALSCALE
3461 Purpose: This property defines the calendar scale used for the
3462 calendar information specified in the iCalendar object.
3464 Value Type: TEXT
3466 Property Parameters: Non-standard property parameters can be
3467 specified on this property.
3469 Conformance: Property can be specified in an iCalendar object. The
3470 default value is "GREGORIAN".
3472 Description: This memo is based on the Gregorian calendar scale. The
3473 Gregorian calendar scale is assumed if this property is not specified
3474 in the iCalendar object. It is expected that other calendar scales
3475 will be defined in other specifications or by future versions of this
3476 memo.
3478 Format Definition: The property is defined by the following notation:
3480 calscale = "CALSCALE" calparam ":" calvalue CRLF
3482 calparam = *(";" xparam)
3484 calvalue = "GREGORIAN" / iana-token
3486 Example: The following is an example of this property:
3488 CALSCALE:GREGORIAN
3490 4.7.2 Method
3492 Property Name: METHOD
3494 Purpose: This property defines the iCalendar object method associated
3495 with the calendar object.
3497 Value Type: TEXT
3499 Property Parameters: Non-standard property parameters can be
3500 specified on this property.
3502 Conformance: The property can be specified in an iCalendar object.
3504 Description: When used in a MIME message entity, the value of this
3505 property MUST be the same as the Content-Type "method" parameter
3506 value. This property can only appear once within the iCalendar
3507 object. If either the "METHOD" property or the Content-Type "method"
3508 parameter is specified, then the other MUST also be specified.
3510 No methods are defined by this specification. This is the subject of
3511 other specifications, such as the iCalendar Transport-independent
3512 Interoperability Protocol (iTIP) defined by [ITIP].
3514 If this property is not present in the iCalendar object, then a
3515 scheduling transaction MUST NOT be assumed. In such cases, the
3516 iCalendar object is merely being used to transport a snapshot of some
3517 calendar information; without the intention of conveying a scheduling
3518 semantic.
3520 Format Definition: The property is defined by the following notation:
3522 method = "METHOD" metparam ":" metvalue CRLF
3524 metparam = *(";" xparam)
3526 metvalue = iana-token
3527 Example: The following is a hypothetical example of this property to
3528 convey that the iCalendar object is a request for a meeting:
3530 METHOD:REQUEST
3532 4.7.3 Product Identifier
3534 Property Name: PRODID
3536 Purpose: This property specifies the identifier for the product that
3537 created the iCalendar object.
3539 Value Type: TEXT
3541 Property Parameters: Non-standard property parameters can be
3542 specified on this property.
3544 Conformance: The property MUST be specified once in an iCalendar
3545 object.
3547 Description: The vendor of the implementation SHOULD assure that this
3548 is a globally unique identifier; using some technique such as an FPI
3549 value, as defined in [ISO 9070].
3551 This property SHOULD not be used to alter the interpretation of an
3552 iCalendar object beyond the semantics specified in this memo. For
3553 example, it is not to be used to further the understanding of non-
3554 standard properties.
3556 Format Definition: The property is defined by the following notation:
3558 prodid = "PRODID" pidparam ":" pidvalue CRLF
3560 pidparam = *(";" xparam)
3562 pidvalue = text
3563 ;Any text that describes the product and version
3564 ;and that is generally assured of being unique.
3566 Example: The following is an example of this property. It does not
3567 imply that English is the default language.
3569 PRODID:-//ABC Corporation//NONSGML My Product//EN
3571 4.7.4 Version
3573 Property Name: VERSION
3575 Purpose: This property specifies the identifier corresponding to the
3576 highest version number or the minimum and maximum range of the
3577 iCalendar specification that is required in order to interpret the
3578 iCalendar object.
3580 Value Type: TEXT
3581 Property Parameters: Non-standard property parameters can be
3582 specified on this property.
3584 Conformance: This property MUST be specified by an iCalendar object,
3585 but MUST only be specified once.
3587 Description: A value of "2.0" corresponds to this memo.
3589 Format Definition: The property is defined by the following notation:
3591 version = "VERSION" verparam ":" vervalue CRLF
3593 verparam = *(";" xparam)
3595 vervalue = "2.0" ;This memo
3596 / maxver
3597 / (minver ";" maxver)
3599 minver =
3600 ;Minimum iCalendar version needed to parse the iCalendar object
3602 maxver =
3603 ;Maximum iCalendar version needed to parse the iCalendar object
3605 Example: The following is an example of this property:
3607 VERSION:2.0
3609 4.8 Component Properties
3611 The following properties can appear within calendar components, as
3612 specified by each component property definition.
3614 4.8.1 Descriptive Component Properties
3616 The following properties specify descriptive information about
3617 calendar components.
3619 4.8.1.1 Attachment
3621 Property Name: ATTACH
3623 Purpose: The property provides the capability to associate a document
3624 object with a calendar component.
3626 Value Type: The default value type for this property is URI. The
3627 value type can also be set to BINARY to indicate inline binary
3628 encoded content information.
3630 Property Parameters: Non-standard, inline encoding, format type and
3631 value data type property parameters can be specified on this
3632 property.
3634 Conformance: The property can be specified in a "VEVENT", "VTODO",
3635 "VJOURNAL" or "VALARM" calendar components.
3637 Description: The property can be specified within "VEVENT", "VTODO",
3638 "VJOURNAL", or "VALARM" calendar components. This property can be
3639 specified multiple times within an iCalendar object.
3641 Format Definition: The property is defined by the following notation:
3643 attach = "ATTACH" attparam ":" uri CRLF
3645 attach =/ "ATTACH" attparam ";" "ENCODING" "=" "BASE64"
3646 ";" "VALUE" "=" "BINARY" ":" binary
3648 attparam = *(
3650 ; the following is optional,
3651 ; but MUST NOT occur more than once
3653 (";" fmttypeparam) /
3655 ; the following is optional,
3656 ; and MAY occur more than once
3658 (";" xparam)
3660 )
3662 Example: The following are examples of this property:
3664 ATTACH:CID:jsmith.part3.960817T083000.xyzMail@host1.com
3666 ATTACH;FMTTYPE=application/postscript:ftp://xyzCorp.com/pub/
3667 reports/r-960812.ps
3669 4.8.1.2 Categories
3671 Property Name: CATEGORIES
3673 Purpose: This property defines the categories for a calendar
3674 component.
3676 Value Type: TEXT
3678 Property Parameters: Non-standard and language property parameters
3679 can be specified on this property.
3681 Conformance: The property can be specified within "VEVENT", "VTODO"
3682 or "VJOURNAL" calendar components.
3684 Description: This property is used to specify categories or subtypes
3685 of the calendar component. The categories are useful in searching for
3686 a calendar component of a particular type and category. Within the
3687 "VEVENT", "VTODO" or "VJOURNAL" calendar components, more than one
3688 category can be specified as a list of categories separated by the
3689 COMMA character (US-ASCII decimal 44).
3691 Format Definition: The property is defined by the following notation:
3693 categories = "CATEGORIES" catparam ":" text *("," text)
3694 CRLF
3696 catparam = *(
3698 ; the following is optional,
3699 ; but MUST NOT occur more than once
3701 (";" languageparam ) /
3703 ; the following is optional,
3704 ; and MAY occur more than once
3706 (";" xparam)
3708 )
3710 Example: The following are examples of this property:
3712 CATEGORIES:APPOINTMENT,EDUCATION
3714 CATEGORIES:MEETING
3716 4.8.1.3 Classification
3718 Property Name: CLASS
3720 Purpose: This property defines the access classification for a
3721 calendar component.
3723 Value Type: TEXT
3725 Property Parameters: Non-standard property parameters can be
3726 specified on this property.
3728 Conformance: The property can be specified once in a "VEVENT",
3729 "VTODO" or "VJOURNAL" calendar components.
3731 Description: An access classification is only one component of the
3732 general security system within a calendar application. It provides a
3733 method of capturing the scope of the access the calendar owner
3734 intends for information within an individual calendar entry. The
3735 access classification of an individual iCalendar component is useful
3736 when measured along with the other security components of a calendar
3737 system (e.g., calendar user authentication, authorization, access
3738 rights, access role, etc.). Hence, the semantics of the individual
3739 access classifications cannot be completely defined by this memo
3740 alone. Additionally, due to the "blind" nature of most exchange
3741 processes using this memo, these access classifications cannot serve
3742 as an enforcement statement for a system receiving an iCalendar
3743 object. Rather, they provide a method for capturing the intention of
3744 the calendar owner for the access to the calendar component. The
3745 [ICMS] provides a broader description of the security system within a
3746 calendar application.
3748 Format Definition: The property is defined by the following notation:
3750 class = "CLASS" classparam ":" classvalue CRLF
3752 classparam = *(";" xparam)
3754 classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token
3755 / x-name
3756 ;Default is PUBLIC
3758 Example: The following is an example of this property:
3760 CLASS:PUBLIC
3762 4.8.1.4 Comment
3764 Property Name: COMMENT
3766 Purpose: This property specifies non-processing information intended
3767 to provide a comment to the calendar user.
3769 Value Type: TEXT
3771 Property Parameters: Non-standard, alternate text representation and
3772 language property parameters can be specified on this property.
3774 Conformance: This property can be specified in "VEVENT", "VTODO",
3775 "VJOURNAL", "VTIMEZONE" or "VFREEBUSY" calendar components.
3777 Description: The property can be specified multiple times.
3779 Format Definition: The property is defined by the following notation:
3781 comment = "COMMENT" commparam ":" text CRLF
3783 commparam = *(
3785 ; the following are optional,
3786 ; but MUST NOT occur more than once
3788 (";" altrepparam) / (";" languageparam) /
3790 ; the following is optional,
3791 ; and MAY occur more than once
3793 (";" xparam)
3795 )
3796 Example: The following is an example of this property:
3798 COMMENT:The meeting really needs to include both ourselves
3799 and the customer. We can't hold this meeting without them.
3800 As a matter of fact\, the venue for the meeting ought to be at
3801 their site. - - John
3803 The data type for this property is TEXT.
3805 4.8.1.5 Description
3807 Property Name: DESCRIPTION
3809 Purpose: This property provides a more complete description of the
3810 calendar component, than that provided by the "SUMMARY" property.
3812 Value Type: TEXT
3814 Property Parameters: Non-standard, alternate text representation and
3815 language property parameters can be specified on this property.
3817 Conformance: The property can be specified in the "VEVENT", "VTODO",
3818 "VJOURNAL" or "VALARM" calendar components. The property can be
3819 specified multiple times only within a "VJOURNAL" calendar component.
3821 Description: This property is used in the "VEVENT" and "VTODO" to
3822 capture lengthy textual decriptions associated with the activity.
3824 This property is used in the "VJOURNAL" calendar component to capture
3825 one more textual journal entries.
3827 This property is used in the "VALARM" calendar component to capture
3828 the display text for a DISPLAY category of alarm, to capture the body
3829 text for an EMAIL category of alarm and to capture the argument
3830 string for a PROCEDURE category of alarm.
3832 Format Definition: The property is defined by the following notation:
3834 description = "DESCRIPTION" descparam ":" text CRLF
3836 descparam = *(
3838 ; the following are optional,
3839 ; but MUST NOT occur more than once
3841 (";" altrepparam) / (";" languageparam) /
3843 ; the following is optional,
3844 ; and MAY occur more than once
3846 (";" xparam)
3848 )
3849 Example: The following is an example of the property with formatted
3850 line breaks in the property value:
3852 DESCRIPTION:Meeting to provide technical review for "Phoenix"
3853 design.\n Happy Face Conference Room. Phoenix design team
3854 MUST attend this meeting.\n RSVP to team leader.
3856 The following is an example of the property with folding of long
3857 lines:
3859 DESCRIPTION:Last draft of the new novel is to be completed
3860 for the editor's proof today.
3862 4.8.1.6 Geographic Position
3864 Property Name: GEO
3866 Purpose: This property specifies information related to the global
3867 position for the activity specified by a calendar component.
3869 Value Type: FLOAT. The value MUST be two SEMICOLON separated FLOAT
3870 values.
3872 Property Parameters: Non-standard property parameters can be
3873 specified on this property.
3875 Conformance: This property can be specified in "VEVENT" or "VTODO"
3876 calendar components..
3878 Description: The property value specifies latitude and longitude, in
3879 that order (i.e., "LAT LON" ordering). The longitude represents the
3880 location east or west of the prime meridian as a positive or negative
3881 real number, respectively. The longitude and latitude values MAY be
3882 specified up to six decimal places, which will allow for accuracy to
3883 within one meter of geographical position. Receiving applications
3884 MUST accept values of this precision and MAY truncate values of
3885 greater precision.
3887 Values for latitude and longitude shall be expressed as decimal
3888 fractions of degrees. Whole degrees of latitude shall be represented
3889 by a two-digit decimal number ranging from 0 through 90. Whole
3890 degrees of longitude shall be represented by a decimal number ranging
3891 from 0 through 180. When a decimal fraction of a degree is specified,
3892 it shall be separated from the whole number of degrees by a decimal
3893 point.
3895 Latitudes north of the equator shall be specified by a plus sign (+),
3896 or by the absence of a minus sign (-), preceding the digits
3897 designating degrees. Latitudes south of the Equator shall be
3898 designated by a minus sign (-) preceding the digits designating
3899 degrees. A point on the Equator shall be assigned to the Northern
3900 Hemisphere.
3902 Longitudes east of the prime meridian shall be specified by a plus
3903 sign (+), or by the absence of a minus sign (-), preceding the digits
3904 designating degrees. Longitudes west of the meridian shall be
3905 designated by minus sign (-) preceding the digits designating
3906 degrees. A point on the prime meridian shall be assigned to the
3907 Eastern Hemisphere. A point on the 180th meridian shall be assigned
3908 to the Western Hemisphere. One exception to this last convention is
3909 permitted. For the special condition of describing a band of latitude
3910 around the earth, the East Bounding Coordinate data element shall be
3911 assigned the value +180 (180) degrees.
3913 Any spatial address with a latitude of +90 (90) or -90 degrees will
3914 specify the position at the North or South Pole, respectively. The
3915 component for longitude may have any legal value.
3917 With the exception of the special condition described above, this
3918 form is specified in Department of Commerce, 1986, Representation of
3919 geographic point locations for information interchange (Federal
3920 Information Processing Standard 70-1): Washington, Department of
3921 Commerce, National Institute of Standards and Technology.
3923 The simple formula for converting degrees-minutes-seconds into
3924 decimal degrees is:
3926 decimal = degrees + minutes/60 + seconds/3600.
3928 Format Definition: The property is defined by the following notation:
3930 geo = "GEO" geoparam ":" geovalue CRLF
3932 geoparam = *(";" xparam)
3934 geovalue = float ";" float
3935 ;Latitude and Longitude components
3937 Example: The following is an example of this property:
3939 GEO:37.386013;-122.082932
3941 4.8.1.7 Location
3943 Property Name: LOCATION
3945 Purpose: The property defines the intended venue for the activity
3946 defined by a calendar component.
3948 Value Type: TEXT
3950 Property Parameters: Non-standard, alternate text representation and
3951 language property parameters can be specified on this property.
3953 Conformance: This property can be specified in "VEVENT" or "VTODO"
3954 calendar component.
3956 Description: Specific venues such as conference or meeting rooms may
3957 be explicitly specified using this property. An alternate
3958 representation may be specified that is a URI that points to
3959 directory information with more structured specification of the
3960 location. For example, the alternate representation may specify
3961 either an LDAP URI pointing to an LDAP server entry or a CID URI
3962 pointing to a MIME body part containing a vCard for the location.
3964 Format Definition: The property is defined by the following notation:
3966 location = "LOCATION locparam ":" text CRLF
3968 locparam = *(
3970 ; the following are optional,
3971 ; but MUST NOT occur more than once
3973 (";" altrepparam) / (";" languageparam) /
3975 ; the following is optional,
3976 ; and MAY occur more than once
3978 (";" xparam)
3980 )
3982 Example: The following are some examples of this property:
3984 LOCATION:Conference Room - F123, Bldg. 002
3986 LOCATION;ALTREP="http://xyzcorp.com/conf-rooms/f123.vcf":
3987 Conference Room - F123, Bldg. 002
3989 4.8.1.8 Percent Complete
3991 Property Name: PERCENT-COMPLETE
3993 Purpose: This property is used by an assignee or delegatee of a to-do
3994 to convey the percent completion of a to-do to the Organizer.
3996 Value Type: INTEGER
3998 Property Parameters: Non-standard property parameters can be
3999 specified on this property.
4001 Conformance: This property can be specified in a "VTODO" calendar
4002 component.
4004 Description: The property value is a positive integer between zero
4005 and one hundred. A value of "0" indicates the to-do has not yet been
4006 started. A value of "100" indicates that the to-do has been
4007 completed. Integer values in between indicate the percent partially
4008 complete.
4010 When a to-do is assigned to multiple individuals, the property value
4011 indicates the percent complete for that portion of the to-do assigned
4012 to the assignee or delegatee. For example, if a to-do is assigned to
4013 both individuals "A" and "B". A reply from "A" with a percent
4014 complete of "70" indicates that "A" has completed 70% of the to-do
4015 assigned to them. A reply from "B" with a percent complete of "50"
4016 indicates "B" has completed 50% of the to-do assigned to them.
4018 Format Definition: The property is defined by the following notation:
4020 percent = "PERCENT-COMPLETE" pctparam ":" integer CRLF
4022 pctparam = *(";" xparam)
4024 Example: The following is an example of this property to show 39%
4025 completion:
4027 PERCENT-COMPLETE:39
4029 4.8.1.9 Priority
4031 Property Name: PRIORITY
4033 Purpose: The property defines the relative priority for a calendar
4034 component.
4036 Value Type: INTEGER
4038 Property Parameters: Non-standard property parameters can be
4039 specified on this property.
4041 Conformance: The property can be specified in a "VEVENT" or "VTODO"
4042 calendar component.
4044 Description: The priority is specified as an integer in the range
4045 zero to nine. A value of zero (US-ASCII decimal 48) specifies an
4046 undefined priority. A value of one (US-ASCII decimal 49) is the
4047 highest priority. A value of two (US-ASCII decimal 50) is the second
4048 highest priority. Subsequent numbers specify a decreasing ordinal
4049 priority. A value of nine (US-ASCII decimal 58) is the lowest
4050 priority.
4052 A CUA with a three-level priority scheme of "HIGH", "MEDIUM" and
4053 "LOW" is mapped into this property such that a property value in the
4054 range of one (US-ASCII decimal 49) to four (US-ASCII decimal 52)
4055 specifies "HIGH" priority. A value of five (US-ASCII decimal 53) is
4056 the normal or "MEDIUM" priority. A value in the range of six (US-
4057 ASCII decimal 54) to nine (US-ASCII decimal 58) is "LOW" priority.
4059 A CUA with a priority schema of "A1", "A2", "A3", "B1", "B2", ...,
4060 "C3" is mapped into this property such that a property value of one
4061 (US-ASCII decimal 49) specifies "A1", a property value of two (US-
4062 ASCII decimal 50) specifies "A2", a property value of three (US-ASCII
4063 decimal 51) specifies "A3", and so forth up to a property value of 9
4064 (US-ASCII decimal 58) specifies "C3".
4066 Other integer values are reserved for future use.
4068 Within a "VEVENT" calendar component, this property specifies a
4069 priority for the event. This property may be useful when more than
4070 one event is scheduled for a given time period.
4072 Within a "VTODO" calendar component, this property specified a
4073 priority for the to-do. This property is useful in prioritizing
4074 multiple action items for a given time period.
4076 Format Definition: The property is specified by the following
4077 notation:
4079 priority = "PRIORITY" prioparam ":" privalue CRLF
4080 ;Default is zero
4082 prioparam = *(";" xparam)
4084 privalue = integer ;Must be in the range [0..9]
4085 ; All other values are reserved for future use
4087 The following is an example of a property with the highest priority:
4089 PRIORITY:1
4091 The following is an example of a property with a next highest
4092 priority:
4094 PRIORITY:2
4096 Example: The following is an example of a property with no priority.
4097 This is equivalent to not specifying the "PRIORITY" property:
4099 PRIORITY:0
4101 4.8.1.10 Resources
4103 Property Name: RESOURCES
4105 Purpose: This property defines the equipment or resources anticipated
4106 for an activity specified by a calendar entity..
4108 Value Type: TEXT
4110 Property Parameters: Non-standard, alternate text representation and
4111 language property parameters can be specified on this property.
4113 Conformance: This property can be specified in "VEVENT" or "VTODO"
4114 calendar component.
4116 Description: The property value is an arbitrary text. More than one
4117 resource can be specified as a list of resources separated by the
4118 COMMA character (US-ASCII decimal 44).
4120 Format Definition: The property is defined by the following notation:
4122 resources = "RESOURCES" resrcparam ":" text *("," text) CRLF
4124 resrcparam = *(
4126 ; the following are optional,
4127 ; but MUST NOT occur more than once
4129 (";" altrepparam) / (";" languageparam) /
4131 ; the following is optional,
4132 ; and MAY occur more than once
4134 (";" xparam)
4136 )
4138 Example: The following is an example of this property:
4140 RESOURCES:EASEL,PROJECTOR,VCR
4142 RESOURCES;LANGUAGE=fr:1 raton-laveur
4144 4.8.1.11 Status
4146 Property Name: STATUS
4148 Purpose: This property defines the overall status or confirmation for
4149 the calendar component.
4151 Value Type: TEXT
4153 Property Parameters: Non-standard property parameters can be
4154 specified on this property.
4156 Conformance: This property can be specified in "VEVENT", "VTODO" or
4157 "VJOURNAL" calendar components.
4159 Description: In a group scheduled calendar component, the property is
4160 used by the "Organizer" to provide a confirmation of the event to the
4161 "Attendees". For example in a "VEVENT" calendar component, the
4162 "Organizer" can indicate that a meeting is tentative, confirmed or
4163 cancelled. In a "VTODO" calendar component, the "Organizer" can
4164 indicate that an action item needs action, is completed, is in
4165 process or being worked on, or has been cancelled. In a "VJOURNAL"
4166 calendar component, the "Organizer" can indicate that a journal entry
4167 is draft, final or has been cancelled or removed.
4169 Format Definition: The property is defined by the following notation:
4171 status = "STATUS" statparam] ":" statvalue CRLF
4173 statparam = *(";" xparam)
4175 statvalue = "TENTATIVE" ;Indicates event is
4176 ;tentative.
4177 / "CONFIRMED" ;Indicates event is
4178 ;definite.
4179 / "CANCELLED" ;Indicates event was
4180 ;cancelled.
4181 ;Status values for a "VEVENT"
4183 statvalue =/ "NEEDS-ACTION" ;Indicates to-do needs action.
4184 / "COMPLETED" ;Indicates to-do completed.
4185 / "IN-PROCESS" ;Indicates to-do in process of
4186 / "CANCELLED" ;Indicates to-do was cancelled.
4187 ;Status values for "VTODO".
4189 statvalue =/ "DRAFT" ;Indicates journal is draft.
4190 / "FINAL" ;Indicates journal is final.
4191 / "CANCELLED" ;Indicates journal is removed.
4192 ;Status values for "VJOURNAL".
4194 Example: The following is an example of this property for a "VEVENT"
4195 calendar component:
4197 STATUS:TENTATIVE
4199 The following is an example of this property for a "VTODO" calendar
4200 component:
4202 STATUS:NEEDS-ACTION
4204 The following is an example of this property for a "VJOURNAL"
4205 calendar component:
4207 STATUS:DRAFT
4209 4.8.1.12 Summary
4211 Property Name: SUMMARY
4213 Purpose: This property defines a short summary or subject for the
4214 calendar component.
4216 Value Type: TEXT
4218 Property Parameters: Non-standard, alternate text representation and
4219 language property parameters can be specified on this property.
4221 Conformance: The property can be specified in "VEVENT", "VTODO",
4222 "VJOURNAL" or "VALARM" calendar components.
4224 Description: This property is used in the "VEVENT", "VTODO" and
4225 "VJOURNAL" calendar components to capture a short, one line summary
4226 about the activity or journal entry.
4228 This property is used in the "VALARM" calendar component to capture
4229 the subject of an EMAIL category of alarm.
4231 Format Definition: The property is defined by the following notation:
4233 summary = "SUMMARY" summparam ":" text CRLF
4235 summparam = *(
4237 ; the following are optional,
4238 ; but MUST NOT occur more than once
4240 (";" altrepparam) / (";" languageparam) /
4242 ; the following is optional,
4243 ; and MAY occur more than once
4245 (";" xparam)
4247 )
4249 Example: The following is an example of this property:
4251 SUMMARY:Department Party
4253 4.8.2 Date and Time Component Properties
4255 The following properties specify date and time related information in
4256 calendar components.
4258 4.8.2.1 Date/Time Completed
4260 Property Name: COMPLETED
4262 Purpose: This property defines the date and time that a to-do was
4263 actually completed.
4265 Value Type: DATE-TIME
4267 Property Parameters: Non-standard property parameters can be
4268 specified on this property.
4270 Conformance: The property can be specified in a "VTODO" calendar
4271 component.
4273 Description: The date and time MUST be in a UTC format.
4275 Format Definition: The property is defined by the following notation:
4277 completed = "COMPLETED" compparam ":" date-time CRLF
4278 compparam = *(";" xparam)
4280 Example: The following is an example of this property:
4282 COMPLETED:19960401T235959Z
4284 4.8.2.2 Date/Time End
4286 Property Name: DTEND
4288 Purpose: This property specifies the date and time that a calendar
4289 component ends.
4291 Value Type: The default value type is DATE-TIME. The value type can
4292 be set to a DATE value type.
4294 Property Parameters: Non-standard, value data type, time zone
4295 identifier property parameters can be specified on this property.
4297 Conformance: This property can be specified in "VEVENT" or
4298 "VFREEBUSY" calendar components.
4300 Description: Within the "VEVENT" calendar component, this property
4301 defines the date and time by which the event ends. The value MUST be
4302 later in time than the value of the "DTSTART" property.
4304 Within the "VFREEBUSY" calendar component, this property defines the
4305 end date and time for the free or busy time information. The time
4306 MUST be specified in the UTC time format. The value MUST be later in
4307 time than the value of the "DTSTART" property.
4309 Format Definition: The property is defined by the following notation:
4311 dtend = "DTEND" dtendparam":" dtendval CRLF
4313 dtendparam = *(
4315 ; the following are optional,
4316 ; but MUST NOT occur more than once
4318 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
4319 (";" tzidparam) /
4321 ; the following is optional,
4322 ; and MAY occur more than once
4324 (";" xparam)
4326 )
4328 dtendval = date-time / date
4329 ;Value MUST match value type
4330 Example: The following is an example of this property:
4332 DTEND:19960401T235959Z
4334 DTEND;VALUE=DATE:19980704
4336 4.8.2.3 Date/Time Due
4338 Property Name: DUE
4340 Purpose: This property defines the date and time that a to-do is
4341 expected to be completed.
4343 Value Type: The default value type is DATE-TIME. The value type can
4344 be set to a DATE value type.
4346 Property Parameters: Non-standard, value data type, time zone
4347 identifier property parameters can be specified on this property.
4349 Conformance: The property can be specified once in a "VTODO" calendar
4350 component.
4352 Description: The value MUST be a date/time equal to or after the
4353 DTSTART value, if specified.
4355 Format Definition: The property is defined by the following notation:
4357 due = "DUE" dueparam":" dueval CRLF
4359 dueparam = *(
4361 ; the following are optional,
4362 ; but MUST NOT occur more than once
4364 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
4365 (";" tzidparam) /
4367 ; the following is optional,
4368 ; and MAY occur more than once
4370 *(";" xparam)
4372 )
4374 dueval = date-time / date
4375 ;Value MUST match value type
4377 Example: The following is an example of this property:
4379 DUE:19980430T235959Z
4380 4.8.2.4 Date/Time Start
4382 Property Name: DTSTART
4384 Purpose: This property specifies when the calendar component begins.
4386 Value Type: The default value type is DATE-TIME. The time value MUST
4387 be one of the forms defined for the DATE-TIME value type. The value
4388 type can be set to a DATE value type.
4390 Property Parameters: Non-standard, value data type, time zone
4391 identifier property parameters can be specified on this property.
4393 Conformance: This property can be specified in the "VEVENT", "VTODO",
4394 "VFREEBUSY", or "VTIMEZONE" calendar components.
4396 Description: Within the "VEVENT" calendar component, this property
4397 defines the start date and time for the event. The property is
4398 REQUIRED in "VEVENT" calendar components. Events can have a start
4399 date/time but no end date/time. In that case, the event does not take
4400 up any time.
4402 Within the "VFREEBUSY" calendar component, this property defines the
4403 start date and time for the free or busy time information. The time
4404 MUST be specified in UTC time.
4406 Within the "VTIMEZONE" calendar component, this property defines the
4407 effective start date and time for a time zone specification. This
4408 property is REQUIRED within each STANDARD and DAYLIGHT part included
4409 in "VTIMEZONE" calendar components and MUST be specified as a local
4410 DATE-TIME without the "TZID" property parameter.
4412 Format Definition: The property is defined by the following notation:
4414 dtstart = "DTSTART" dtstparam ":" dtstval CRLF
4416 dtstparam = *(
4418 ; the following are optional,
4419 ; but MUST NOT occur more than once
4421 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
4422 (";" tzidparam) /
4424 ; the following is optional,
4425 ; and MAY occur more than once
4427 *(";" xparam)
4429 )
4430 dtstval = date-time / date
4431 ;Value MUST match value type
4433 Example: The following is an example of this property:
4435 DTSTART:19980118T073000Z
4437 4.8.2.5 Duration
4439 Property Name: DURATION
4441 Purpose: The property specifies a positive duration of time .
4443 Value Type: DURATION
4445 Property Parameters: Non-standard property parameters can be
4446 specified on this property.
4448 Conformance: The property can be specified in "VEVENT", "VTODO",
4449 "VFREEBUSY" or "VALARM" calendar components.
4451 Description: In a "VEVENT" calendar component the property may be
4452 used to specify a duration of the event, instead of an explicit end
4453 date/time. In a "VTODO" calendar component the property may be used
4454 to specify a duration for the to-do, instead of an explicit due
4455 date/time. In a "VFREEBUSY" calendar component the property may be
4456 used to specify the interval of free time being requested. In a
4457 "VALARM" calendar component the property may be used to specify the
4458 delay period prior to repeating an alarm.
4460 Format Definition: The property is defined by the following notation:
4462 duration = "DURATION" durparam ":" dur-value CRLF
4463 ;consisting of a positive duration of time.
4465 durparam = *(";" xparam)
4467 Example: The following is an example of this property that specifies
4468 an interval of time of 1 hour and zero minutes and zero seconds:
4470 DURATION:PT1H0M0S
4472 The following is an example of this property that specifies an
4473 interval of time of 15 minutes.
4475 DURATION:PT15M
4477 4.8.2.6 Free/Busy Time
4479 Property Name: FREEBUSY
4481 Purpose: The property defines one or more free or busy time
4482 intervals.
4484 Value Type: PERIOD. The date and time values MUST be in an UTC time
4485 format.
4487 Property Parameters: Non-standard or free/busy time type property
4488 parameters can be specified on this property.
4490 Conformance: The property can be specified in a "VFREEBUSY" calendar
4491 component.
4493 Property Parameter: "FBTYPE" and non-standard parameters can be
4494 specified on this property.
4496 Description: These time periods can be specified as either a start
4497 and end date-time or a start date-time and duration. The date and
4498 time MUST be a UTC time format.
4500 "FREEBUSY" properties within the "VFREEBUSY" calendar component
4501 SHOULD be sorted in ascending order, based on start time and then end
4502 time, with the earliest periods first.
4504 The "FREEBUSY" property can specify more than one value, separated by
4505 the COMMA character (US-ASCII decimal 44). In such cases, the
4506 "FREEBUSY" property values SHOULD all be of the same "FBTYPE"
4507 property parameter type (e.g., all values of a particular "FBTYPE"
4508 listed together in a single property).
4510 Format Definition: The property is defined by the following notation:
4512 freebusy = "FREEBUSY" fbparam ":" fbvalue
4513 CRLF
4515 fbparam = *(
4517 ; the following is optional,
4518 ; but MUST NOT occur more than once
4520 (";" fbtypeparam) /
4522 ; the following is optional,
4523 ; and MAY occur more than once
4525 (";" xparam)
4527 )
4529 fbvalue = period *["," period]
4530 ;Time value MUST be in the UTC time format.
4532 Example: The following are some examples of this property:
4534 FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M
4536 FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H
4537 FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H,
4538 19970308T230000Z/19970309T000000Z
4540 4.8.2.7 Time Transparency
4542 Property Name: TRANSP
4544 Purpose: This property defines whether an event is transparent or not
4545 to busy time searches.
4547 Value Type: TEXT
4549 Property Parameters: Non-standard property parameters can be
4550 specified on this property.
4552 Conformance: This property can be specified once in a "VEVENT"
4553 calendar component.
4555 Description: Time Transparency is the characteristic of an event that
4556 determines whether it appears to consume time on a calendar. Events
4557 that consume actual time for the individual or resource associated
4558 with the calendar SHOULD be recorded as OPAQUE, allowing them to be
4559 detected by free-busy time searches. Other events, which do not take
4560 up the individual's (or resource's) time SHOULD be recorded as
4561 TRANSPARENT, making them invisible to free-busy time searches.
4563 Format Definition: The property is specified by the following
4564 notation:
4566 transp = "TRANSP" tranparam ":" transvalue CRLF
4568 tranparam = *(";" xparam)
4570 transvalue = "OPAQUE" ;Blocks or opaque on busy time searches.
4571 / "TRANSPARENT" ;Transparent on busy time searches.
4572 ;Default value is OPAQUE
4574 Example: The following is an example of this property for an event
4575 that is transparent or does not block on free/busy time searches:
4577 TRANSP:TRANSPARENT
4579 The following is an example of this property for an event that is
4580 opaque or blocks on free/busy time searches:
4582 TRANSP:OPAQUE
4584 4.8.3 Time Zone Component Properties
4586 The following properties specify time zone information in calendar
4587 components.
4589 4.8.3.1 Time Zone Identifier
4591 Property Name: TZID
4593 Purpose: This property specifies the text value that uniquely
4594 identifies the "VTIMEZONE" calendar component.
4596 Value Type: TEXT
4598 Property Parameters: Non-standard property parameters can be
4599 specified on this property.
4601 Conformance: This property MUST be specified in a "VTIMEZONE"
4602 calendar component.
4604 Description: This is the label by which a time zone calendar
4605 component is referenced by any iCalendar properties whose data type
4606 is either DATE-TIME or TIME and not intended to specify a UTC or a
4607 "floating" time. The presence of the SOLIDUS character (US-ASCII
4608 decimal 47) as a prefix, indicates that this TZID represents an
4609 unique ID in a globally defined time zone registry (when such
4610 registry is defined).
4612 Note: This document does not define a naming convention for time
4613 zone identifiers. Implementers may want to use the naming
4614 conventions defined in existing time zone specifications such as
4615 the public-domain Olson database [TZ]. The specification of
4616 globally unique time zone identifiers is not addressed by this
4617 document and is left for future study.
4619 Format Definition: This property is defined by the following
4620 notation:
4622 tzid = "TZID" tzidpropparam ":" [tzidprefix] text CRLF
4624 tzidpropparam = *(";" xparam)
4626 ;tzidprefix = "/"
4627 ; Defined previously. Just listed here for reader convenience.
4629 Example: The following are examples of non-globally unique time zone
4630 identifiers:
4632 TZID:US-Eastern
4634 TZID:California-Los_Angeles
4636 The following is an example of a fictitious globally unique time zone
4637 identifier:
4639 TZID:/US-New_York-New_York
4640 4.8.3.2 Time Zone Name
4642 Property Name: TZNAME
4644 Purpose: This property specifies the customary designation for a time
4645 zone description.
4647 Value Type: TEXT
4649 Property Parameters: Non-standard and language property parameters
4650 can be specified on this property.
4652 Conformance: This property can be specified in a "VTIMEZONE" calendar
4653 component.
4655 Description: This property may be specified in multiple languages; in
4656 order to provide for different language requirements.
4658 Format Definition: This property is defined by the following
4659 notation:
4661 tzname = "TZNAME" tznparam ":" text CRLF
4663 tznparam = *(
4665 ; the following is optional,
4666 ; but MUST NOT occur more than once
4668 (";" languageparam) /
4670 ; the following is optional,
4671 ; and MAY occur more than once
4673 (";" xparam)
4675 )
4677 Example: The following are example of this property:
4679 TZNAME:EST
4681 The following is an example of this property when two different
4682 languages for the time zone name are specified:
4684 TZNAME;LANGUAGE=en:EST
4685 TZNAME;LANGUAGE=fr-CA:HNE
4687 4.8.3.3 Time Zone Offset From
4689 Property Name: TZOFFSETFROM
4691 Purpose: This property specifies the offset which is in use prior to
4692 this time zone observance.
4694 Value Type: UTC-OFFSET
4696 Property Parameters: Non-standard property parameters can be
4697 specified on this property.
4699 Conformance: This property MUST be specified in a "VTIMEZONE"
4700 calendar component.
4702 Description: This property specifies the offset which is in use prior
4703 to this time observance. It is used to calculate the absolute time at
4704 which the transition to a given observance takes place. This property
4705 MUST only be specified in a "VTIMEZONE" calendar component. A
4706 "VTIMEZONE" calendar component MUST include this property. The
4707 property value is a signed numeric indicating the number of hours and
4708 possibly minutes from UTC. Positive numbers represent time zones east
4709 of the prime meridian, or ahead of UTC. Negative numbers represent
4710 time zones west of the prime meridian, or behind UTC.
4712 Format Definition: The property is defined by the following notation:
4714 tzoffsetfrom = "TZOFFSETFROM" frmparam ":" utc-offset
4715 CRLF
4717 frmparam = *(";" xparam)
4719 Example: The following are examples of this property:
4721 TZOFFSETFROM:-0500
4723 TZOFFSETFROM:+1345
4725 4.8.3.4 Time Zone Offset To
4727 Property Name: TZOFFSETTO
4729 Purpose: This property specifies the offset which is in use in this
4730 time zone observance.
4732 Value Type: UTC-OFFSET
4734 Property Parameters: Non-standard property parameters can be
4735 specified on this property.
4737 Conformance: This property MUST be specified in a "VTIMEZONE"
4738 calendar component.
4740 Description: This property specifies the offset which is in use in
4741 this time zone observance. It is used to calculate the absolute time
4742 for the new observance. The property value is a signed numeric
4743 indicating the number of hours and possibly minutes from UTC.
4744 Positive numbers represent time zones east of the prime meridian, or
4745 ahead of UTC. Negative numbers represent time zones west of the prime
4746 meridian, or behind UTC.
4748 Format Definition: The property is defined by the following notation:
4750 tzoffsetto = "TZOFFSETTO" toparam ":" utc-offset CRLF
4752 toparam = *(";" xparam)
4754 Example: The following are examples of this property:
4756 TZOFFSETTO:-0400
4758 TZOFFSETTO:+1245
4760 4.8.3.5 Time Zone URL
4762 Property Name: TZURL
4764 Purpose: The TZURL provides a means for a VTIMEZONE component to
4765 point to a network location that can be used to retrieve an up-to-
4766 date version of itself.
4768 Value Type: URI
4770 Property Parameters: Non-standard property parameters can be
4771 specified on this property.
4773 Conformance: This property can be specified in a "VTIMEZONE" calendar
4774 component.
4776 Description: The TZURL provides a means for a VTIMEZONE component to
4777 point to a network location that can be used to retrieve an up-to-
4778 date version of itself. This provides a hook to handle changes
4779 government bodies impose upon time zone definitions. Retrieval of
4780 this resource results in an iCalendar object containing a single
4781 VTIMEZONE component and a METHOD property set to PUBLISH.
4783 Format Definition: The property is defined by the following notation:
4785 tzurl = "TZURL" tzurlparam ":" uri CRLF
4787 tzurlparam = *(";" xparam)
4789 Example: The following is an example of this property:
4791 TZURL:http://timezones.r.us.net/tz/US-California-Los_Angeles
4793 4.8.4 Relationship Component Properties
4795 The following properties specify relationship information in calendar
4796 components.
4798 4.8.4.1 Attendee
4800 Property Name: ATTENDEE
4801 Purpose: The property defines an "Attendee" within a calendar
4802 component.
4804 Value Type: CAL-ADDRESS
4806 Property Parameters: Non-standard, language, calendar user type,
4807 group or list membership, participation role, participation status,
4808 RSVP expectation, delegatee, delegator, sent by, common name or
4809 directory entry reference property parameters can be specified on
4810 this property.
4812 Conformance: This property MUST be specified in an iCalendar object
4813 that specifies a group scheduled calendar entity. This property MUST
4814 NOT be specified in an iCalendar object when publishing the calendar
4815 information (e.g., NOT in an iCalendar object that specifies the
4816 publication of a calendar user's busy time, event, to-do or journal).
4817 This property is not specified in an iCalendar object that specifies
4818 only a time zone definition or that defines calendar entities that
4819 are not group scheduled entities, but are entities only on a single
4820 user's calendar.
4822 Description: The property MUST only be specified within calendar
4823 components to specify participants, non-participants and the chair of
4824 a group scheduled calendar entity. The property is specified within
4825 an "EMAIL" category of the "VALARM" calendar component to specify an
4826 email address that is to receive the email type of iCalendar alarm.
4828 The property parameter CN is for the common or displayable name
4829 associated with the calendar address; ROLE, for the intended role
4830 that the attendee will have in the calendar component; PARTSTAT, for
4831 the status of the attendee's participation; RSVP, for indicating
4832 whether the favor of a reply is requested; CUTYPE, to indicate the
4833 type of calendar user; MEMBER, to indicate the groups that the
4834 attendee belongs to; DELEGATED-TO, to indicate the calendar users
4835 that the original request was delegated to; and DELEGATED-FROM, to
4836 indicate whom the request was delegated from; SENT-BY, to indicate
4837 whom is acting on behalf of the ATTENDEE; and DIR, to indicate the
4838 URI that points to the directory information corresponding to the
4839 attendee. These property parameters can be specified on an "ATTENDEE"
4840 property in either a "VEVENT", "VTODO" or "VJOURNAL" calendar
4841 component. They MUST not be specified in an "ATTENDEE" property in a
4842 "VFREEBUSY" or "VALARM" calendar component. If the LANGUAGE property
4843 parameter is specified, the identified language applies to the CN
4844 parameter.
4846 A recipient delegated a request MUST inherit the RSVP and ROLE values
4847 from the attendee that delegated the request to them.
4849 Multiple attendees can be specified by including multiple "ATTENDEE"
4850 properties within the calendar component.
4852 Format Definition: The property is defined by the following notation:
4854 attendee = "ATTENDEE" attparam ":" cal-address CRLF
4855 attparam = *(
4857 ; the following are optional,
4858 ; but MUST NOT occur more than once
4860 (";" cutypeparam) / (";"memberparam) /
4861 (";" roleparam) / (";" partstatparam) /
4862 (";" rsvpparam) / (";" deltoparam) /
4863 (";" delfromparam) / (";" sentbyparam) /
4864 (";"cnparam) / (";" dirparam) /
4865 (";" languageparam) /
4867 ; the following is optional,
4868 ; and MAY occur more than once
4870 (";" xparam)
4872 )
4874 Example: The following are examples of this property's use for a to-
4875 do:
4877 ORGANIZER:MAILTO:jsmith@host1.com
4878 ATTENDEE;MEMBER="MAILTO:DEV-GROUP@host2.com":
4879 MAILTO:joecool@host2.com
4880 ATTENDEE;DELEGATED-FROM="MAILTO:immud@host3.com":
4881 MAILTO:ildoit@host1.com
4883 The following is an example of this property used for specifying
4884 multiple attendees to an event:
4886 ORGANIZER:MAILTO:jsmith@host1.com
4887 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Henry Cabot
4888 :MAILTO:hcabot@host2.com
4889 ATTENDEE;ROLE=REQ-PARTICIPANT;DELEGATED-FROM="MAILTO:bob@host.com"
4890 ;PARTSTAT=ACCEPTED;CN=Jane Doe:MAILTO:jdoe@host1.com
4892 The following is an example of this property with a URI to the
4893 directory information associated with the attendee:
4895 ATTENDEE;CN=John Smith;DIR="ldap://host.com:6666/o=eDABC%
4896 20Industries,c=3DUS??(cn=3DBJim%20Dolittle)":MAILTO:jimdo@
4897 host1.com
4899 The following is an example of this property with "delegatee" and
4900 "delegator" information for an event:
4902 ORGANIZER;CN=John Smith:MAILTO:jsmith@host.com
4903 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;DELEGATED-FROM=
4904 "MAILTO:iamboss@host2.com";CN=Henry Cabot:MAILTO:hcabot@
4905 host2.com
4906 ATTENDEE;ROLE=NON-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO=
4907 "MAILTO:hcabot@host2.com";CN=The Big Cheese:MAILTO:iamboss
4908 @host2.com
4909 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Jane Doe
4910 :MAILTO:jdoe@host1.com
4912 Example: The following is an example of this property's use when
4913 another calendar user is acting on behalf of the "Attendee":
4915 ATTENDEE;SENT-BY=MAILTO:jan_doe@host1.com;CN=John Smith:MAILTO:
4916 jsmith@host1.com
4918 4.8.4.2 Contact
4920 Property Name: CONTACT
4922 Purpose: The property is used to represent contact information or
4923 alternately a reference to contact information associated with the
4924 calendar component.
4926 Value Type: TEXT
4928 Property Parameters: Non-standard, alternate text representation and
4929 language property parameters can be specified on this property.
4931 Conformance: The property can be specified in a "VEVENT", "VTODO",
4932 "VJOURNAL" or "VFREEBUSY" calendar component.
4934 Description: The property value consists of textual contact
4935 information. An alternative representation for the property value can
4936 also be specified that refers to a URI pointing to an alternate form,
4937 such as a vCard, for the contact information.
4939 Format Definition: The property is defined by the following notation:
4941 contact = "CONTACT" contparam ":" text CRLF
4943 contparam = *(
4945 ; the following are optional,
4946 ; but MUST NOT occur more than once
4948 (";" altrepparam) / (";" languageparam) /
4950 ; the following is optional,
4951 ; and MAY occur more than once
4953 (";" xparam)
4955 )
4957 Example: The following is an example of this property referencing
4958 textual contact information:
4960 CONTACT:Jim Dolittle\, ABC Industries\, +1-919-555-1234
4961 The following is an example of this property with an alternate
4962 representation of a LDAP URI to a directory entry containing the
4963 contact information:
4965 CONTACT;ALTREP="ldap://host.com:6666/o=3DABC%20Industries\,
4966 c=3DUS??(cn=3DBJim%20Dolittle)":Jim Dolittle\, ABC Industries\,
4967 +1-919-555-1234
4969 The following is an example of this property with an alternate
4970 representation of a MIME body part containing the contact
4971 information, such as a vCard embedded in a [MIME-DIR] content-type:
4973 CONTACT;ALTREP="CID=":Jim
4974 Dolittle\, ABC Industries\, +1-919-555-1234
4976 The following is an example of this property referencing a network
4977 resource, such as a vCard object containing the contact information:
4979 CONTACT;ALTREP="http://host.com/pdi/jdoe.vcf":Jim
4980 Dolittle\, ABC Industries\, +1-919-555-1234
4982 4.8.4.3 Organizer
4984 Property Name: ORGANIZER
4986 Purpose: The property defines the organizer for a calendar component.
4988 Value Type: CAL-ADDRESS
4990 Property Parameters: Non-standard, language, common name, directory
4991 entry reference, sent by property parameters can be specified on this
4992 property.
4994 Conformance: This property MUST be specified in an iCalendar object
4995 that specifies a group scheduled calendar entity. This property MUST
4996 be specified in an iCalendar object that specifies the publication of
4997 a calendar user's busy time. This property MUST NOT be specified in
4998 an iCalendar object that specifies only a time zone definition or
4999 that defines calendar entities that are not group scheduled entities,
5000 but are entities only on a single user's calendar.
5002 Description: The property is specified within the "VEVENT", "VTODO",
5003 "VJOURNAL calendar components to specify the organizer of a group
5004 scheduled calendar entity. The property is specified within the
5005 "VFREEBUSY" calendar component to specify the calendar user
5006 requesting the free or busy time. When publishing a "VFREEBUSY"
5007 calendar component, the property is used to specify the calendar that
5008 the published busy time came from.
5010 The property has the property parameters CN, for specifying the
5011 common or display name associated with the "Organizer", DIR, for
5012 specifying a pointer to the directory information associated with the
5013 "Organizer", SENT-BY, for specifying another calendar user that is
5014 acting on behalf of the "Organizer". The non-standard parameters may
5015 also be specified on this property. If the LANGUAGE property
5016 parameter is specified, the identified language applies to the CN
5017 parameter value.
5019 Format Definition: The property is defined by the following notation:
5021 organizer = "ORGANIZER" orgparam ":"
5022 cal-address CRLF
5024 orgparam = *(
5026 ; the following are optional,
5027 ; but MUST NOT occur more than once
5029 (";" cnparam) / (";" dirparam) / (";" sentbyparam) /
5030 (";" languageparam) /
5032 ; the following is optional,
5033 ; and MAY occur more than once
5035 (";" xparam)
5037 )
5039 Example: The following is an example of this property:
5041 ORGANIZER;CN=John Smith:MAILTO:jsmith@host1.com
5043 The following is an example of this property with a pointer to the
5044 directory information associated with the organizer:
5046 ORGANIZER;CN=JohnSmith;DIR="ldap://host.com:6666/o=3DDC%20Associ
5047 ates,c=3DUS??(cn=3DJohn%20Smith)":MAILTO:jsmith@host1.com
5049 The following is an example of this property used by another calendar
5050 user who is acting on behalf of the organizer, with responses
5051 intended to be sent back to the organizer, not the other calendar
5052 user:
5054 ORGANIZER;SENT-BY="MAILTO:jane_doe@host.com":
5055 MAILTO:jsmith@host1.com
5057 4.8.4.4 Recurrence ID
5059 Property Name: RECURRENCE-ID
5061 Purpose: This property is used in conjunction with the "UID" and
5062 "SEQUENCE" property to identify a specific instance of a recurring
5063 "VEVENT", "VTODO" or "VJOURNAL" calendar component. The property
5064 value is the effective value of the "DTSTART" property of the
5065 recurrence instance.
5067 Value Type: The default value type for this property is DATE-TIME.
5068 The time format can be any of the valid forms defined for a DATE-TIME
5069 value type. See DATE-TIME value type definition for specific
5070 interpretations of the various forms. The value type can be set to
5071 DATE.
5073 Property Parameters: Non-standard property, value data type, time
5074 zone identifier and recurrence identifier range parameters can be
5075 specified on this property.
5077 Conformance: This property can be specified in an iCalendar object
5078 containing a recurring calendar component.
5080 Description: The full range of calendar components specified by a
5081 recurrence set is referenced by referring to just the "UID" property
5082 value corresponding to the calendar component. The "RECURRENCE-ID"
5083 property allows the reference to an individual instance within the
5084 recurrence set.
5086 If the value of the "DTSTART" property is a DATE type value, then the
5087 value MUST be the calendar date for the recurrence instance.
5089 The date/time value is set to the time when the original recurrence
5090 instance would occur; meaning that if the intent is to change a
5091 Friday meeting to Thursday, the date/time is still set to the
5092 original Friday meeting.
5094 The "RECURRENCE-ID" property is used in conjunction with the "UID"
5095 and "SEQUENCE" property to identify a particular instance of a
5096 recurring event, to-do or journal. For a given pair of "UID" and
5097 "SEQUENCE" property values, the "RECURRENCE-ID" value for a
5098 recurrence instance is fixed. When the definition of the recurrence
5099 set for a calendar component changes, and hence the "SEQUENCE"
5100 property value changes, the "RECURRENCE-ID" for a given recurrence
5101 instance might also change.The "RANGE" parameter is used to specify
5102 the effective range of recurrence instances from the instance
5103 specified by the "RECURRENCE-ID" property value. The default value
5104 for the range parameter is the single recurrence instance only. The
5105 value can also be "THISANDPRIOR" to indicate a range defined by the
5106 given recurrence instance and all prior instances or the value can be
5107 "THISANDFUTURE" to indicate a range defined by the given recurrence
5108 instance and all subsequent instances.
5110 Format Definition: The property is defined by the following notation:
5112 recurid = "RECURRENCE-ID" ridparam ":" ridval CRLF
5114 ridparam = *(
5116 ; the following are optional,
5117 ; but MUST NOT occur more than once
5119 (";" "VALUE" "=" ("DATE-TIME" / "DATE)) /
5120 (";" tzidparam) / (";" rangeparam) /
5121 ; the following is optional,
5122 ; and MAY occur more than once
5124 (";" xparam)
5126 )
5128 ridval = date-time / date
5129 ;Value MUST match value type
5131 Example: The following are examples of this property:
5133 RECURRENCE-ID;VALUE=DATE:19960401
5135 RECURRENCE-ID;RANGE=THISANDFUTURE:19960120T120000Z
5137 4.8.4.5 Related To
5139 Property Name: RELATED-TO
5141 Purpose: The property is used to represent a relationship or
5142 reference between one calendar component and another.
5144 Value Type: TEXT
5146 Property Parameters: Non-standard and relationship type property
5147 parameters can be specified on this property.
5149 Conformance: The property can be specified once in the "VEVENT",
5150 "VTODO" or "VJOURNAL" calendar components.
5152 Description: The property value consists of the persistent, globally
5153 unique identifier of another calendar component. This value would be
5154 represented in a calendar component by the "UID" property.
5156 By default, the property value points to another calendar component
5157 that has a PARENT relationship to the referencing object. The
5158 "RELTYPE" property parameter is used to either explicitly state the
5159 default PARENT relationship type to the referenced calendar component
5160 or to override the default PARENT relationship type and specify
5161 either a CHILD or SIBLING relationship. The PARENT relationship
5162 indicates that the calendar component is a subordinate of the
5163 referenced calendar component. The CHILD relationship indicates that
5164 the calendar component is a superior of the referenced calendar
5165 component. The SIBLING relationship indicates that the calendar
5166 component is a peer of the referenced calendar component.
5168 Changes to a calendar component referenced by this property can have
5169 an implicit impact on the related calendar component. For example, if
5170 a group event changes its start or end date or time, then the
5171 related, dependent events will need to have their start and end dates
5172 changed in a corresponding way. Similarly, if a PARENT calendar
5173 component is canceled or deleted, then there is an implied impact to
5174 the related CHILD calendar components. This property is intended only
5175 to provide information on the relationship of calendar components. It
5176 is up to the target calendar system to maintain any property
5177 implications of this relationship.
5179 Format Definition: The property is defined by the following notation:
5181 related = "RELATED-TO" [relparam] ":" text CRLF
5183 relparam = *(
5185 ; the following is optional,
5186 ; but MUST NOT occur more than once
5188 (";" reltypeparam) /
5190 ; the following is optional,
5191 ; and MAY occur more than once
5193 (";" xparm)
5195 )
5197 The following is an example of this property:
5199 RELATED-TO:
5201 RELATED-TO:<19960401-080045-4000F192713-0052@host1.com>
5203 4.8.4.6 Uniform Resource Locator
5205 Property Name: URL
5207 Purpose: This property defines a Uniform Resource Locator (URL)
5208 associated with the iCalendar object.
5210 Value Type: URI
5212 Property Parameters: Non-standard property parameters can be
5213 specified on this property.
5215 Conformance: This property can be specified once in the "VEVENT",
5216 "VTODO", "VJOURNAL" or "VFREEBUSY" calendar components.
5218 Description: This property may be used in a calendar component to
5219 convey a location where a more dynamic rendition of the calendar
5220 information associated with the calendar component can be found. This
5221 memo does not attempt to standardize the form of the URI, nor the
5222 format of the resource pointed to by the property value. If the URL
5223 property and Content-Location MIME header are both specified, they
5224 MUST point to the same resource.
5226 Format Definition: The property is defined by the following notation:
5228 url = "URL" urlparam ":" uri CRLF
5229 urlparam = *(";" xparam)
5231 Example: The following is an example of this property:
5233 URL:http://abc.com/pub/calendars/jsmith/mytime.ics
5235 4.8.4.7 Unique Identifier
5237 Property Name: UID
5239 Purpose: This property defines the persistent, globally unique
5240 identifier for the calendar component.
5242 Value Type: TEXT
5244 Property Parameters: Non-standard property parameters can be
5245 specified on this property.
5247 Conformance: The property MUST be specified in the "VEVENT", "VTODO",
5248 "VJOURNAL" or "VFREEBUSY" calendar components.
5250 Description: The UID itself MUST be a globally unique identifier. The
5251 generator of the identifier MUST guarantee that the identifier is
5252 unique. There are several algorithms that can be used to accomplish
5253 this. The identifier is RECOMMENDED to be the identical syntax to the
5254 [RFC 822] addr-spec. A good method to assure uniqueness is to put the
5255 domain name or a domain literal IP address of the host on which the
5256 identifier was created on the right hand side of the "@", and on the
5257 left hand side, put a combination of the current calendar date and
5258 time of day (i.e., formatted in as a DATE-TIME value) along with some
5259 other currently unique (perhaps sequential) identifier available on
5260 the system (for example, a process id number). Using a date/time
5261 value on the left hand side and a domain name or domain literal on
5262 the right hand side makes it possible to guarantee uniqueness since
5263 no two hosts should be using the same domain name or IP address at
5264 the same time. Though other algorithms will work, it is RECOMMENDED
5265 that the right hand side contain some domain identifier (either of
5266 the host itself or otherwise) such that the generator of the message
5267 identifier can guarantee the uniqueness of the left hand side within
5268 the scope of that domain.
5270 This is the method for correlating scheduling messages with the
5271 referenced "VEVENT", "VTODO", or "VJOURNAL" calendar component.
5273 The full range of calendar components specified by a recurrence set
5274 is referenced by referring to just the "UID" property value
5275 corresponding to the calendar component. The "RECURRENCE-ID" property
5276 allows the reference to an individual instance within the recurrence
5277 set.
5279 This property is an important method for group scheduling
5280 applications to match requests with later replies, modifications or
5281 deletion requests. Calendaring and scheduling applications MUST
5282 generate this property in "VEVENT", "VTODO" and "VJOURNAL" calendar
5283 components to assure interoperability with other group scheduling
5284 applications. This identifier is created by the calendar system that
5285 generates an iCalendar object.
5287 Implementations MUST be able to receive and persist values of at
5288 least 255 characters for this property.
5290 Format Definition: The property is defined by the following notation:
5292 uid = "UID" uidparam ":" text CRLF
5294 uidparam = *(";" xparam)
5296 Example: The following is an example of this property:
5298 UID:19960401T080045Z-4000F192713-0052@host1.com
5300 4.8.5 Recurrence Component Properties
5302 The following properties specify recurrence information in calendar
5303 components.
5305 4.8.5.1 Exception Date/Times
5307 Property Name: EXDATE
5309 Purpose: This property defines the list of date/time exceptions for a
5310 recurring calendar component.
5312 Value Type: The default value type for this property is DATE-TIME.
5313 The value type can be set to DATE.
5315 Property Parameters: Non-standard, value data type and time zone
5316 identifier property parameters can be specified on this property.
5318 Conformance: This property can be specified in an iCalendar object
5319 that includes a recurring calendar component.
5321 Description: The exception dates, if specified, are used in computing
5322 the recurrence set. The recurrence set is the complete set of
5323 recurrence instances for a calendar component. The recurrence set is
5324 generated by considering the initial "DTSTART" property along with
5325 the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained
5326 within the iCalendar object. The "DTSTART" property defines the first
5327 instance in the recurrence set. Multiple instances of the "RRULE" and
5328 "EXRULE" properties can also be specified to define more
5329 sophisticated recurrence sets. The final recurrence set is generated
5330 by gathering all of the start date-times generated by any of the
5331 specified "RRULE" and "RDATE" properties, and then excluding any
5332 start date and times which fall within the union of start date and
5333 times generated by any specified "EXRULE" and "EXDATE" properties.
5334 This implies that start date and times within exclusion related
5335 properties (i.e., "EXDATE" and "EXRULE") take precedence over those
5336 specified by inclusion properties (i.e., "RDATE" and "RRULE"). Where
5337 duplicate instances are generated by the "RRULE" and "RDATE"
5338 properties, only one recurrence is considered. Duplicate instances
5339 are ignored.
5341 The "EXDATE" property can be used to exclude the value specified in
5342 "DTSTART". However, in such cases the original "DTSTART" date MUST
5343 still be maintained by the calendaring and scheduling system because
5344 the original "DTSTART" value has inherent usage dependencies by other
5345 properties such as the "RECURRENCE-ID".
5347 Format Definition: The property is defined by the following notation:
5349 exdate = "EXDATE" exdtparam ":" exdtval *("," exdtval) CRLF
5351 exdtparam = *(
5353 ; the following are optional,
5354 ; but MUST NOT occur more than once
5356 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
5357 (";" tzidparam) /
5359 ; the following is optional,
5360 ; and MAY occur more than once
5362 (";" xparam)
5364 )
5366 exdtval = date-time / date
5367 ;Value MUST match value type
5369 Example: The following is an example of this property:
5371 EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z
5373 4.8.5.2 Exception Rule
5375 Property Name: EXRULE
5377 Purpose: This property defines a rule or repeating pattern for an
5378 exception to a recurrence set.
5380 Value Type: RECUR
5382 Property Parameters: Non-standard property parameters can be
5383 specified on this property.
5385 Conformance: This property can be specified in "VEVENT", "VTODO" or
5386 "VJOURNAL" calendar components.
5388 Description: The exception rule, if specified, is used in computing
5389 the recurrence set. The recurrence set is the complete set of
5390 recurrence instances for a calendar component. The recurrence set is
5391 generated by considering the initial "DTSTART" property along with
5392 the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained
5393 within the iCalendar object. The "DTSTART" defines the first instance
5394 in the recurrence set. Multiple instances of the "RRULE" and "EXRULE"
5395 properties can also be specified to define more sophisticated
5396 recurrence sets. The final recurrence set is generated by gathering
5397 all of the start date-times generated by any of the specified "RRULE"
5398 and "RDATE" properties, and excluding any start date and times which
5399 fall within the union of start date and times generated by any
5400 specified "EXRULE" and "EXDATE" properties. This implies that start
5401 date and times within exclusion related properties (i.e., "EXDATE"
5402 and "EXRULE") take precedence over those specified by inclusion
5403 properties (i.e., "RDATE" and "RRULE"). Where duplicate instances are
5404 generated by the "RRULE" and "RDATE" properties, only one recurrence
5405 is considered. Duplicate instances are ignored.
5407 The "EXRULE" property can be used to exclude the value specified in
5408 "DTSTART". However, in such cases the original "DTSTART" date MUST
5409 still be maintained by the calendaring and scheduling system because
5410 the original "DTSTART" value has inherent usage dependencies by other
5411 properties such as the "RECURRENCE-ID".
5413 Format Definition: The property is defined by the following notation:
5415 exrule = "EXRULE" exrparam ":" recur CRLF
5417 exrparam = *(";" xparam)
5419 Example: The following are examples of this property. Except every
5420 other week, on Tuesday and Thursday for 4 occurrences:
5422 EXRULE:FREQ=WEEKLY;COUNT=4;INTERVAL=2;BYDAY=TU,TH
5424 Except daily for 10 occurrences:
5426 EXRULE:FREQ=DAILY;COUNT=10
5428 Except yearly in June and July for 8 occurrences:
5430 EXRULE:FREQ=YEARLY;COUNT=8;BYMONTH=6,7
5432 4.8.5.3 Recurrence Date/Times
5434 Property Name: RDATE
5436 Purpose: This property defines the list of date/times for a
5437 recurrence set.
5439 Value Type: The default value type for this property is DATE-TIME.
5440 The value type can be set to DATE or PERIOD.
5442 Property Parameters: Non-standard, value data type and time zone
5443 identifier property parameters can be specified on this property.
5445 Conformance: The property can be specified in "VEVENT", "VTODO",
5446 "VJOURNAL" or "VTIMEZONE" calendar components.
5448 Description: This property can appear along with the "RRULE" property
5449 to define an aggregate set of repeating occurrences. When they both
5450 appear in an iCalendar object, the recurring events are defined by
5451 the union of occurrences defined by both the "RDATE" and "RRULE".
5453 The recurrence dates, if specified, are used in computing the
5454 recurrence set. The recurrence set is the complete set of recurrence
5455 instances for a calendar component. The recurrence set is generated
5456 by considering the initial "DTSTART" property along with the "RRULE",
5457 "RDATE", "EXDATE" and "EXRULE" properties contained within the
5458 iCalendar object. The "DTSTART" property defines the first instance
5459 in the recurrence set. Multiple instances of the "RRULE" and "EXRULE"
5460 properties can also be specified to define more sophisticated
5461 recurrence sets. The final recurrence set is generated by gathering
5462 all of the start date/times generated by any of the specified "RRULE"
5463 and "RDATE" properties, and excluding any start date/times which fall
5464 within the union of start date/times generated by any specified
5465 "EXRULE" and "EXDATE" properties. This implies that start date/times
5466 within exclusion related properties (i.e., "EXDATE" and "EXRULE")
5467 take precedence over those specified by inclusion properties (i.e.,
5468 "RDATE" and "RRULE"). Where duplicate instances are generated by the
5469 "RRULE" and "RDATE" properties, only one recurrence is considered.
5470 Duplicate instances are ignored.
5472 Format Definition: The property is defined by the following notation:
5474 rdate = "RDATE" rdtparam ":" rdtval *("," rdtval) CRLF
5476 rdtparam = *(
5478 ; the following are optional,
5479 ; but MUST NOT occur more than once
5481 (";" "VALUE" "=" ("DATE-TIME" / "DATE" / "PERIOD")) /
5482 (";" tzidparam) /
5484 ; the following is optional,
5485 ; and MAY occur more than once
5487 (";" xparam)
5489 )
5491 rdtval = date-time / date / period
5492 ;Value MUST match value type
5494 Example: The following are examples of this property:
5496 RDATE:19970714T123000Z
5498 RDATE;TZID=US-EASTERN:19970714T083000
5499 RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z,
5500 19960404T010000Z/PT3H
5502 RDATE;VALUE=DATE:19970101,19970120,19970217,19970421
5503 19970526,19970704,19970901,19971014,19971128,19971129,19971225
5505 4.8.5.4 Recurrence Rule
5507 Property Name: RRULE
5509 Purpose: This property defines a rule or repeating pattern for
5510 recurring events, to-dos, or time zone definitions.
5512 Value Type: RECUR
5514 Property Parameters: Non-standard property parameters can be
5515 specified on this property.
5517 Conformance: This property can be specified one or more times in
5518 recurring "VEVENT", "VTODO" and "VJOURNAL" calendar components. It
5519 can also be specified once in each STANDARD or DAYLIGHT sub-component
5520 of the "VTIMEZONE" calendar component.
5522 Description: The recurrence rule, if specified, is used in computing
5523 the recurrence set. The recurrence set is the complete set of
5524 recurrence instances for a calendar component. The recurrence set is
5525 generated by considering the initial "DTSTART" property along with
5526 the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained
5527 within the iCalendar object. The "DTSTART" property defines the first
5528 instance in the recurrence set. Multiple instances of the "RRULE" and
5529 "EXRULE" properties can also be specified to define more
5530 sophisticated recurrence sets. The final recurrence set is generated
5531 by gathering all of the start date/times generated by any of the
5532 specified "RRULE" and "RDATE" properties, and excluding any start
5533 date/times which fall within the union of start date/times generated
5534 by any specified "EXRULE" and "EXDATE" properties. This implies that
5535 start date/times within exclusion related properties (i.e., "EXDATE"
5536 and "EXRULE") take precedence over those specified by inclusion
5537 properties (i.e., "RDATE" and "RRULE"). Where duplicate instances are
5538 generated by the "RRULE" and "RDATE" properties, only one recurrence
5539 is considered. Duplicate instances are ignored.
5541 The "DTSTART" and "DTEND" property pair or "DTSTART" and "DURATION"
5542 property pair, specified within the iCalendar object defines the
5543 first instance of the recurrence. When used with a recurrence rule,
5544 the "DTSTART" and "DTEND" properties MUST be specified in local time
5545 and the appropriate set of "VTIMEZONE" calendar components MUST be
5546 included. For detail on the usage of the "VTIMEZONE" calendar
5547 component, see the "VTIMEZONE" calendar component definition.
5549 Any duration associated with the iCalendar object applies to all
5550 members of the generated recurrence set. Any modified duration for
5551 specific recurrences MUST be explicitly specified using the "RDATE"
5552 property.
5554 Format Definition: This property is defined by the following
5555 notation:
5557 rrule = "RRULE" rrulparam ":" recur CRLF
5559 rrulparam = *(";" xparam)
5561 Example: All examples assume the Eastern United States time zone.
5563 Daily for 10 occurrences:
5565 DTSTART;TZID=US-Eastern:19970902T090000
5566 RRULE:FREQ=DAILY;COUNT=10
5568 ==> (1997 9:00 AM EDT)September 2-11
5570 Daily until December 24, 1997:
5572 DTSTART;TZID=US-Eastern:19970902T090000
5573 RRULE:FREQ=DAILY;UNTIL=19971224T000000Z
5575 ==> (1997 9:00 AM EDT)September 2-30;October 1-25
5576 (1997 9:00 AM EST)October 26-31;November 1-30;December 1-23
5578 Every other day - forever:
5580 DTSTART;TZID=US-Eastern:19970902T090000
5581 RRULE:FREQ=DAILY;INTERVAL=2
5582 ==> (1997 9:00 AM EDT)September2,4,6,8...24,26,28,30;
5583 October 2,4,6...20,22,24
5584 (1997 9:00 AM EST)October 26,28,30;November 1,3,5,7...25,27,29;
5585 Dec 1,3,...
5587 Every 10 days, 5 occurrences:
5589 DTSTART;TZID=US-Eastern:19970902T090000
5590 RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5
5592 ==> (1997 9:00 AM EDT)September 2,12,22;October 2,12
5594 Everyday in January, for 3 years:
5596 DTSTART;TZID=US-Eastern:19980101T090000
5597 RRULE:FREQ=YEARLY;UNTIL=20000131T090000Z;
5598 BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA
5599 or
5600 RRULE:FREQ=DAILY;UNTIL=20000131T090000Z;BYMONTH=1
5602 ==> (1998 9:00 AM EDT)January 1-31
5603 (1999 9:00 AM EDT)January 1-31
5604 (2000 9:00 AM EDT)January 1-31
5606 Weekly for 10 occurrences
5607 DTSTART;TZID=US-Eastern:19970902T090000
5608 RRULE:FREQ=WEEKLY;COUNT=10
5610 ==> (1997 9:00 AM EDT)September 2,9,16,23,30;October 7,14,21
5611 (1997 9:00 AM EST)October 28;November 4
5613 Weekly until December 24, 1997
5615 DTSTART;TZID=US-Eastern:19970902T090000
5616 RRULE:FREQ=WEEKLY;UNTIL=19971224T000000Z
5618 ==> (1997 9:00 AM EDT)September 2,9,16,23,30;October 7,14,21
5619 (1997 9:00 AM EST)October 28;November 4,11,18,25;
5620 December 2,9,16,23
5622 Every other week - forever:
5624 DTSTART;TZID=US-Eastern:19970902T090000
5625 RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=SU
5627 ==> (1997 9:00 AM EDT)September 2,16,30;October 14
5628 (1997 9:00 AM EST)October 28;November 11,25;December 9,23
5629 (1998 9:00 AM EST)January 6,20;February
5630 ...
5632 Weekly on Tuesday and Thursday for 5 weeks:
5634 DTSTART;TZID=US-Eastern:19970902T090000
5635 RRULE:FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH
5636 or
5637 RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH
5639 ==> (1997 9:00 AM EDT)September 2,4,9,11,16,18,23,25,30;October 2
5641 Every other week on Monday, Wednesday and Friday until December 24,
5642 1997, but starting on Tuesday, September 2, 1997:
5644 DTSTART;TZID=US-Eastern:19970902T090000
5645 RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;
5646 BYDAY=MO,WE,FR
5647 ==> (1997 9:00 AM EDT)September 2,3,5,15,17,19,29;October
5648 1,3,13,15,17
5649 (1997 9:00 AM EST)October 27,29,31;November 10,12,14,24,26,28;
5650 December 8,10,12,22
5652 Every other week on Tuesday and Thursday, for 8 occurrences:
5654 DTSTART;TZID=US-Eastern:19970902T090000
5655 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH
5657 ==> (1997 9:00 AM EDT)September 2,4,16,18,30;October 2,14,16
5659 Monthly on the 1st Friday for ten occurrences:
5661 DTSTART;TZID=US-Eastern:19970905T090000
5662 RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR
5664 ==> (1997 9:00 AM EDT)September 5;October 3
5665 (1997 9:00 AM EST)November 7;Dec 5
5666 (1998 9:00 AM EST)January 2;February 6;March 6;April 3
5667 (1998 9:00 AM EDT)May 1;June 5
5669 Monthly on the 1st Friday until December 24, 1997:
5671 DTSTART;TZID=US-Eastern:19970905T090000
5672 RRULE:FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR
5674 ==> (1997 9:00 AM EDT)September 5;October 3
5675 (1997 9:00 AM EST)November 7;December 5
5677 Every other month on the 1st and last Sunday of the month for 10
5678 occurrences:
5680 DTSTART;TZID=US-Eastern:19970907T090000
5681 RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU
5683 ==> (1997 9:00 AM EDT)September 7,28
5684 (1997 9:00 AM EST)November 2,30
5685 (1998 9:00 AM EST)January 4,25;March 1,29
5686 (1998 9:00 AM EDT)May 3,31
5688 Monthly on the second to last Monday of the month for 6 months:
5690 DTSTART;TZID=US-Eastern:19970922T090000
5691 RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO
5693 ==> (1997 9:00 AM EDT)September 22;October 20
5694 (1997 9:00 AM EST)November 17;December 22
5695 (1998 9:00 AM EST)January 19;February 16
5697 Monthly on the third to the last day of the month, forever:
5699 DTSTART;TZID=US-Eastern:19970928T090000
5700 RRULE:FREQ=MONTHLY;BYMONTHDAY=-3
5702 ==> (1997 9:00 AM EDT)September 28
5703 (1997 9:00 AM EST)October 29;November 28;December 29
5704 (1998 9:00 AM EST)January 29;February 26
5705 ...
5707 Monthly on the 2nd and 15th of the month for 10 occurrences:
5709 DTSTART;TZID=US-Eastern:19970902T090000
5710 RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15
5712 ==> (1997 9:00 AM EDT)September 2,15;October 2,15
5713 (1997 9:00 AM EST)November 2,15;December 2,15
5714 (1998 9:00 AM EST)January 2,15
5715 Monthly on the first and last day of the month for 10 occurrences:
5717 DTSTART;TZID=US-Eastern:19970930T090000
5718 RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1
5720 ==> (1997 9:00 AM EDT)September 30;October 1
5721 (1997 9:00 AM EST)October 31;November 1,30;December 1,31
5722 (1998 9:00 AM EST)January 1,31;February 1
5724 Every 18 months on the 10th thru 15th of the month for 10
5725 occurrences:
5727 DTSTART;TZID=US-Eastern:19970910T090000
5728 RRULE:FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,13,14,
5729 15
5731 ==> (1997 9:00 AM EDT)September 10,11,12,13,14,15
5732 (1999 9:00 AM EST)March 10,11,12,13
5734 Every Tuesday, every other month:
5736 DTSTART;TZID=US-Eastern:19970902T090000
5737 RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU
5739 ==> (1997 9:00 AM EDT)September 2,9,16,23,30
5740 (1997 9:00 AM EST)November 4,11,18,25
5741 (1998 9:00 AM EST)January 6,13,20,27;March 3,10,17,24,31
5742 ...
5744 Yearly in June and July for 10 occurrences:
5746 DTSTART;TZID=US-Eastern:19970610T090000
5747 RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7
5749 ==> (1997 9:00 AM EDT)June 10;July 10
5750 (1998 9:00 AM EDT)June 10;July 10
5751 (1999 9:00 AM EDT)June 10;July 10
5752 (2000 9:00 AM EDT)June 10;July 10
5753 (2001 9:00 AM EDT)June 10;July 10
5754 Note: Since none of the BYDAY, BYMONTHDAY or BYYEARDAY components
5755 are specified, the day is gotten from DTSTART
5757 Every other year on January, February, and March for 10 occurrences:
5759 DTSTART;TZID=US-Eastern:19970310T090000
5760 RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3
5762 ==> (1997 9:00 AM EST)March 10
5763 (1999 9:00 AM EST)January 10;February 10;March 10
5764 (2001 9:00 AM EST)January 10;February 10;March 10
5765 (2003 9:00 AM EST)January 10;February 10;March 10
5767 Every 3rd year on the 1st, 100th and 200th day for 10 occurrences:
5769 DTSTART;TZID=US-Eastern:19970101T090000
5770 RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200
5772 ==> (1997 9:00 AM EST)January 1
5773 (1997 9:00 AM EDT)April 10;July 19
5774 (2000 9:00 AM EST)January 1
5775 (2000 9:00 AM EDT)April 9;July 18
5776 (2003 9:00 AM EST)January 1
5777 (2003 9:00 AM EDT)April 10;July 19
5778 (2006 9:00 AM EST)January 1
5780 Every 20th Monday of the year, forever:
5782 DTSTART;TZID=US-Eastern:19970519T090000
5783 RRULE:FREQ=YEARLY;BYDAY=20MO
5785 ==> (1997 9:00 AM EDT)May 19
5786 (1998 9:00 AM EDT)May 18
5787 (1999 9:00 AM EDT)May 17
5788 ...
5790 Monday of week number 20 (where the default start of the week is
5791 Monday), forever:
5793 DTSTART;TZID=US-Eastern:19970512T090000
5794 RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO
5796 ==> (1997 9:00 AM EDT)May 12
5797 (1998 9:00 AM EDT)May 11
5798 (1999 9:00 AM EDT)May 17
5799 ...
5801 Every Thursday in March, forever:
5803 DTSTART;TZID=US-Eastern:19970313T090000
5804 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH
5806 ==> (1997 9:00 AM EST)March 13,20,27
5807 (1998 9:00 AM EST)March 5,12,19,26
5808 (1999 9:00 AM EST)March 4,11,18,25
5809 ...
5811 Every Thursday, but only during June, July, and August, forever:
5813 DTSTART;TZID=US-Eastern:19970605T090000
5814 RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8
5816 ==> (1997 9:00 AM EDT)June 5,12,19,26;July 3,10,17,24,31;
5817 August 7,14,21,28
5818 (1998 9:00 AM EDT)June 4,11,18,25;July 2,9,16,23,30;
5819 August 6,13,20,27
5820 (1999 9:00 AM EDT)June 3,10,17,24;July 1,8,15,22,29;
5821 August 5,12,19,26
5822 ...
5824 Every Friday the 13th, forever:
5826 DTSTART;TZID=US-Eastern:19970902T090000
5827 EXDATE;TZID=US-Eastern:19970902T090000
5828 RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13
5830 ==> (1998 9:00 AM EST)February 13;March 13;November 13
5831 (1999 9:00 AM EDT)August 13
5832 (2000 9:00 AM EDT)October 13
5833 ...
5835 The first Saturday that follows the first Sunday of the month,
5836 forever:
5838 DTSTART;TZID=US-Eastern:19970913T090000
5839 RRULE:FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13
5841 ==> (1997 9:00 AM EDT)September 13;October 11
5842 (1997 9:00 AM EST)November 8;December 13
5843 (1998 9:00 AM EST)January 10;February 7;March 7
5844 (1998 9:00 AM EDT)April 11;May 9;June 13...
5845 ...
5847 Every four years, the first Tuesday after a Monday in November,
5848 forever (U.S. Presidential Election day):
5850 DTSTART;TZID=US-Eastern:19961105T090000
5851 RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,
5852 5,6,7,8
5854 ==> (1996 9:00 AM EST)November 5
5855 (2000 9:00 AM EST)November 7
5856 (2004 9:00 AM EST)November 2
5857 ...
5859 The 3rd instance into the month of one of Tuesday, Wednesday or
5860 Thursday, for the next 3 months:
5862 DTSTART;TZID=US-Eastern:19970904T090000
5863 RRULE:FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3
5865 ==> (1997 9:00 AM EDT)September 4;October 7
5866 (1997 9:00 AM EST)November 6
5868 The 2nd to last weekday of the month:
5870 DTSTART;TZID=US-Eastern:19970929T090000
5871 RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2
5873 ==> (1997 9:00 AM EDT)September 29
5874 (1997 9:00 AM EST)October 30;November 27;December 30
5875 (1998 9:00 AM EST)January 29;February 26;March 30
5876 ...
5878 Every 3 hours from 9:00 AM to 5:00 PM on a specific day:
5880 DTSTART;TZID=US-Eastern:19970902T090000
5881 RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z
5883 ==> (September 2, 1997 EDT)09:00,12:00,15:00
5885 Every 15 minutes for 6 occurrences:
5887 DTSTART;TZID=US-Eastern:19970902T090000
5888 RRULE:FREQ=MINUTELY;INTERVAL=15;COUNT=6
5890 ==> (September 2, 1997 EDT)09:00,09:15,09:30,09:45,10:00,10:15
5892 Every hour and a half for 4 occurrences:
5894 DTSTART;TZID=US-Eastern:19970902T090000
5895 RRULE:FREQ=MINUTELY;INTERVAL=90;COUNT=4
5897 ==> (September 2, 1997 EDT)09:00,10:30;12:00;13:30
5899 Every 20 minutes from 9:00 AM to 4:40 PM every day:
5901 DTSTART;TZID=US-Eastern:19970902T090000
5902 RRULE:FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40
5903 or
5904 RRULE:FREQ=MINUTELY;INTERVAL=20;BYHOUR=9,10,11,12,13,14,15,16
5906 ==> (September 2, 1997 EDT)9:00,9:20,9:40,10:00,10:20,
5907 ... 16:00,16:20,16:40
5908 (September 3, 1997 EDT)9:00,9:20,9:40,10:00,10:20,
5909 ...16:00,16:20,16:40
5910 ...
5912 An example where the days generated makes a difference because of
5913 WKST:
5915 DTSTART;TZID=US-Eastern:19970805T090000
5916 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO
5918 ==> (1997 EDT)Aug 5,10,19,24
5920 changing only WKST from MO to SU, yields different results...
5922 DTSTART;TZID=US-Eastern:19970805T090000
5923 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU
5924 ==> (1997 EDT)August 5,17,19,31
5926 4.8.6 Alarm Component Properties
5928 The following properties specify alarm information in calendar
5929 components.
5931 4.8.6.1 Action
5933 Property Name: ACTION
5935 Purpose: This property defines the action to be invoked when an alarm
5936 is triggered.
5938 Value Type: TEXT
5940 Property Parameters: Non-standard property parameters can be
5941 specified on this property.
5943 Conformance: This property MUST be specified once in a "VALARM"
5944 calendar component.
5946 Description: Each "VALARM" calendar component has a particular type
5947 of action associated with it. This property specifies the type of
5948 action
5950 Format Definition: The property is defined by the following notation:
5952 action = "ACTION" actionparam ":" actionvalue CRLF
5954 actionparam = *(";" xparam)
5956 actionvalue = "AUDIO" / "DISPLAY" / "EMAIL" / "PROCEDURE"
5957 / iana-token / x-name
5959 Example: The following are examples of this property in a "VALARM"
5960 calendar component:
5962 ACTION:AUDIO
5964 ACTION:DISPLAY
5966 ACTION:PROCEDURE
5968 4.8.6.2 Repeat Count
5970 Property Name: REPEAT
5972 Purpose: This property defines the number of time the alarm should be
5973 repeated, after the initial trigger.
5975 Value Type: INTEGER
5977 Property Parameters: Non-standard property parameters can be
5978 specified on this property.
5980 Conformance: This property can be specified in a "VALARM" calendar
5981 component.
5983 Description: If the alarm triggers more than once, then this property
5984 MUST be specified along with the "DURATION" property.
5986 Format Definition: The property is defined by the following notation:
5988 repeatcnt = "REPEAT" repparam ":" integer CRLF
5989 ;Default is "0", zero.
5991 repparam = *(";" xparam)
5993 Example: The following is an example of this property for an alarm
5994 that repeats 4 additional times with a 5 minute delay after the
5995 initial triggering of the alarm:
5997 REPEAT:4
5998 DURATION:PT5M
6000 4.8.6.3 Trigger
6002 Property Name: TRIGGER
6004 Purpose: This property specifies when an alarm will trigger.
6006 Value Type: The default value type is DURATION. The value type can be
6007 set to a DATE-TIME value type, in which case the value MUST specify a
6008 UTC formatted DATE-TIME value.
6010 Property Parameters: Non-standard, value data type, time zone
6011 identifier or trigger relationship property parameters can be
6012 specified on this property. The trigger relationship property
6013 parameter MUST only be specified when the value type is DURATION.
6015 Conformance: This property MUST be specified in the "VALARM" calendar
6016 component.
6018 Description: Within the "VALARM" calendar component, this property
6019 defines when the alarm will trigger. The default value type is
6020 DURATION, specifying a relative time for the trigger of the alarm.
6021 The default duration is relative to the start of an event or to-do
6022 that the alarm is associated with. The duration can be explicitly set
6023 to trigger from either the end or the start of the associated event
6024 or to-do with the "RELATED" parameter. A value of START will set the
6025 alarm to trigger off the start of the associated event or to-do. A
6026 value of END will set the alarm to trigger off the end of the
6027 associated event or to-do.
6029 Either a positive or negative duration may be specified for the
6030 "TRIGGER" property. An alarm with a positive duration is triggered
6031 after the associated start or end of the event or to-do. An alarm
6032 with a negative duration is triggered before the associated start or
6033 end of the event or to-do.
6035 The "RELATED" property parameter is not valid if the value type of
6036 the property is set to DATE-TIME (i.e., for an absolute date and time
6037 alarm trigger). If a value type of DATE-TIME is specified, then the
6038 property value MUST be specified in the UTC time format. If an
6039 absolute trigger is specified on an alarm for a recurring event or
6040 to-do, then the alarm will only trigger for the specified absolute
6041 date/time, along with any specified repeating instances.
6043 If the trigger is set relative to START, then the "DTSTART" property
6044 MUST be present in the associated "VEVENT" or "VTODO" calendar
6045 component. If an alarm is specified for an event with the trigger set
6046 relative to the END, then the "DTEND" property or the "DSTART" and
6047 "DURATION' properties MUST be present in the associated "VEVENT"
6048 calendar component. If the alarm is specified for a to-do with a
6049 trigger set relative to the END, then either the "DUE" property or
6050 the "DSTART" and "DURATION' properties MUST be present in the
6051 associated "VTODO" calendar component.
6053 Alarms specified in an event or to-do which is defined in terms of a
6054 DATE value type will be triggered relative to 00:00:00 UTC on the
6055 specified date. For example, if "DTSTART:19980205, then the duration
6056 trigger will be relative to19980205T000000Z.
6058 Format Definition: The property is defined by the following notation:
6060 trigger = "TRIGGER" (trigrel / trigabs)
6062 trigrel = *(
6064 ; the following are optional,
6065 ; but MUST NOT occur more than once
6067 (";" "VALUE" "=" "DURATION") /
6068 (";" trigrelparam) /
6070 ; the following is optional,
6071 ; and MAY occur more than once
6073 (";" xparam)
6075 ) ":" dur-value
6077 trigabs = 1*(
6079 ; the following is REQUIRED,
6080 ; but MUST NOT occur more than once
6082 (";" "VALUE" "=" "DATE-TIME") /
6084 ; the following is optional,
6085 ; and MAY occur more than once
6087 (";" xparam)
6089 ) ":" date-time
6091 Example: A trigger set 15 minutes prior to the start of the event or
6092 to-do.
6094 TRIGGER:-P15M
6096 A trigger set 5 minutes after the end of the event or to-do.
6098 TRIGGER;RELATED=END:P5M
6100 A trigger set to an absolute date/time.
6102 TRIGGER;VALUE=DATE-TIME:19980101T050000Z
6104 4.8.7 Change Management Component Properties
6106 The following properties specify change management information in
6107 calendar components.
6109 4.8.7.1 Date/Time Created
6111 Property Name: CREATED
6113 Purpose: This property specifies the date and time that the calendar
6114 information was created by the calendar user agent in the calendar
6115 store.
6117 Note: This is analogous to the creation date and time for a file
6118 in the file system.
6120 Value Type: DATE-TIME
6122 Property Parameters: Non-standard property parameters can be
6123 specified on this property.
6125 Conformance: The property can be specified once in "VEVENT", "VTODO"
6126 or "VJOURNAL" calendar components.
6128 Description: The date and time is a UTC value.
6130 Format Definition: The property is defined by the following notation:
6132 created = "CREATED" creaparam ":" date-time CRLF
6134 creaparam = *(";" xparam)
6136 Example: The following is an example of this property:
6138 CREATED:19960329T133000Z
6140 4.8.7.2 Date/Time Stamp
6142 Property Name: DTSTAMP
6144 Purpose: The property indicates the date/time that the instance of
6145 the iCalendar object was created.
6147 Value Type: DATE-TIME
6148 Property Parameters: Non-standard property parameters can be
6149 specified on this property.
6151 Conformance: This property MUST be included in the "VEVENT", "VTODO",
6152 "VJOURNAL" or "VFREEBUSY" calendar components.
6154 Description: The value MUST be specified in the UTC time format.
6156 This property is also useful to protocols such as [IMIP] that have
6157 inherent latency issues with the delivery of content. This property
6158 will assist in the proper sequencing of messages containing iCalendar
6159 objects.
6161 This property is different than the "CREATED" and "LAST-MODIFIED"
6162 properties. These two properties are used to specify when the
6163 particular calendar data in the calendar store was created and last
6164 modified. This is different than when the iCalendar object
6165 representation of the calendar service information was created or
6166 last modified.
6168 Format Definition: The property is defined by the following notation:
6170 dtstamp = "DTSTAMP" stmparam ":" date-time CRLF
6172 stmparam = *(";" xparam)
6174 Example:
6176 DTSTAMP:19971210T080000Z
6178 4.8.7.3 Last Modified
6180 Property Name: LAST-MODIFIED
6182 Purpose: The property specifies the date and time that the
6183 information associated with the calendar component was last revised
6184 in the calendar store.
6186 Note: This is analogous to the modification date and time for a
6187 file in the file system.
6189 Value Type: DATE-TIME
6191 Property Parameters: Non-standard property parameters can be
6192 specified on this property.
6194 Conformance: This property can be specified in the "EVENT", "VTODO",
6195 "VJOURNAL" or "VTIMEZONE" calendar components.
6197 Description: The property value MUST be specified in the UTC time
6198 format.
6200 Format Definition: The property is defined by the following notation:
6202 last-mod = "LAST-MODIFIED" lstparam ":" date-time CRLF
6204 lstparam = *(";" xparam)
6206 Example: The following is are examples of this property:
6208 LAST-MODIFIED:19960817T133000Z
6210 4.8.7.4 Sequence Number
6212 Property Name: SEQUENCE
6214 Purpose: This property defines the revision sequence number of the
6215 calendar component within a sequence of revisions.
6217 Value Type: integer
6219 Property Parameters: Non-standard property parameters can be
6220 specified on this property.
6222 Conformance: The property can be specified in "VEVENT", "VTODO" or
6223 "VJOURNAL" calendar component.
6225 Description: When a calendar component is created, its sequence
6226 number is zero (US-ASCII decimal 48). It is monotonically incremented
6227 by the "Organizer's" CUA each time the "Organizer" makes a
6228 significant revision to the calendar component. When the "Organizer"
6229 makes changes to one of the following properties, the sequence number
6230 MUST be incremented:
6232 . "DTSTART"
6234 . "DTEND"
6236 . "DUE"
6238 . "RDATE"
6240 . "RRULE"
6242 . "EXDATE"
6244 . "EXRULE"
6246 . "STATUS"
6248 In addition, changes made by the "Organizer" to other properties can
6249 also force the sequence number to be incremented. The "Organizer" CUA
6250 MUST increment the sequence number when ever it makes changes to
6251 properties in the calendar component that the "Organizer" deems will
6252 jeopardize the validity of the participation status of the
6253 "Attendees". For example, changing the location of a meeting from one
6254 locale to another distant locale could effectively impact the
6255 participation status of the "Attendees".
6257 The "Organizer" includes this property in an iCalendar object that it
6258 sends to an "Attendee" to specify the current version of the calendar
6259 component.
6261 The "Attendee" includes this property in an iCalendar object that it
6262 sends to the "Organizer" to specify the version of the calendar
6263 component that the "Attendee" is referring to.
6265 A change to the sequence number is not the mechanism that an
6266 "Organizer" uses to request a response from the "Attendees". The
6267 "RSVP" parameter on the "ATTENDEE" property is used by the
6268 "Organizer" to indicate that a response from the "Attendees" is
6269 requested.
6271 Format Definition: This property is defined by the following
6272 notation:
6274 seq = "SEQUENCE" seqparam ":" integer CRLF
6275 ; Default is "0"
6277 seqparam = *(";" xparam)
6279 Example: The following is an example of this property for a calendar
6280 component that was just created by the "Organizer".
6282 SEQUENCE:0
6284 The following is an example of this property for a calendar component
6285 that has been revised two different times by the "Organizer".
6287 SEQUENCE:2
6289 4.8.8 Miscellaneous Component Properties
6291 The following properties specify information about a number of
6292 miscellaneous features of calendar components.
6294 4.8.8.1 Non-standard Properties
6296 Property Name: Any property name with a "X-" prefix
6298 Purpose: This class of property provides a framework for defining
6299 non-standard properties.
6301 Value Type: TEXT
6303 Property Parameters: Non-standard and language property parameters
6304 can be specified on this property.
6306 Conformance: This property can be specified in any calendar
6307 component.
6309 Description: The MIME Calendaring and Scheduling Content Type
6310 provides a "standard mechanism for doing non-standard things". This
6311 extension support is provided for implementers to "push the envelope"
6312 on the existing version of the memo. Extension properties are
6313 specified by property and/or property parameter names that have the
6314 prefix text of "X-" (the two character sequence: LATIN CAPITAL LETTER
6315 X character followed by the HYPEN-MINUS character). It is recommended
6316 that vendors concatenate onto this sentinel another short prefix text
6317 to identify the vendor. This will facilitate readability of the
6318 extensions and minimize possible collision of names between different
6319 vendors. User agents that support this content type are expected to
6320 be able to parse the extension properties and property parameters but
6321 can ignore them.
6323 At present, there is no registration authority for names of extension
6324 properties and property parameters. The data type for this property
6325 is TEXT. Optionally, the data type can be any of the other valid data
6326 types.
6328 Format Definition: The property is defined by the following notation:
6330 x-prop = x-name *(";" xparam) [";" languageparam] ":" text CRLF
6331 ; Lines longer than 75 octets should be folded
6333 Example: The following might be the ABC vendor's extension for an
6334 audio-clip form of subject property:
6336 X-ABC-MMSUBJ;X-ABC-MMSUBJTYPE=wave:http://load.noise.org/mysubj.wav
6338 4.8.8.2 Request Status
6340 Property Name: REQUEST-STATUS
6342 Purpose: This property defines the status code returned for a
6343 scheduling request.
6345 Value Type: TEXT
6347 Property Parameters: Non-standard and language property parameters
6348 can be specified on this property.
6350 Conformance: The property can be specified in "VEVENT", "VTODO",
6351 "VJOURNAL" or "VFREEBUSY" calendar component.
6353 Description: This property is used to return status code information
6354 related to the processing of an associated iCalendar object. The data
6355 type for this property is TEXT.
6357 The value consists of a short return status component, a longer
6358 return status description component, and optionally a status-specific
6359 data component. The components of the value are separated by the
6360 SEMICOLON character (US-ASCII decimal 59).
6362 The short return status is a PERIOD character (US-ASCII decimal 46)
6363 separated 3-tuple of integers. For example, "3.1.1". The successive
6364 levels of integers provide for a successive level of status code
6365 granularity.
6367 The following are initial classes for the return status code.
6368 Individual iCalendar object methods will define specific return
6369 status codes for these classes. In addition, other classes for the
6370 return status code may be defined using the registration process
6371 defined later in this memo.
6373 |==============+===============================================|
6374 | Short Return | Longer Return Status Description |
6375 | Status Code | |
6376 |==============+===============================================|
6377 | 1.xx | Preliminary success. This class of status |
6378 | | of status code indicates that the request has |
6379 | | request has been initially processed but that |
6380 | | completion is pending. |
6381 |==============+===============================================|
6382 | 2.xx | Successful. This class of status code |
6383 | | indicates that the request was completed |
6384 | | successfuly. However, the exact status code |
6385 | | can indicate that a fallback has been taken. |
6386 |==============+===============================================|
6387 | 3.xx | Client Error. This class of status code |
6388 | | indicates that the request was not successful.|
6389 | | The error is the result of either a syntax or |
6390 | | a semantic error in the client formatted |
6391 | | request. Request should not be retried until |
6392 | | the condition in the request is corrected. |
6393 |==============+===============================================|
6394 | 4.xx | Scheduling Error. This class of status code |
6395 | | indicates that the request was not successful.|
6396 | | Some sort of error occurred within the |
6397 | | calendaring and scheduling service, not |
6398 | | directly related to the request itself. |
6399 |==============+===============================================|
6401 Format Definition: The property is defined by the following notation:
6403 rstatus = "REQUEST-STATUS" rstatparam ":"
6404 statcode ";" statdesc [";" extdata]
6406 rstatparam = *(
6408 ; the following is optional,
6409 ; but MUST NOT occur more than once
6411 (";" languageparm) /
6413 ; the following is optional,
6414 ; and MAY occur more than once
6416 (";" xparam)
6417 )
6419 statcode = 1*DIGIT *("." 1*DIGIT)
6420 ;Hierarchical, numeric return status code
6422 statdesc = text
6423 ;Textual status description
6425 extdata = text
6426 ;Textual exception data. For example, the offending property
6427 ;name and value or complete property line.
6429 Example: The following are some possible examples of this property.
6430 The COMMA and SEMICOLON separator characters in the property value
6431 are BACKSLASH character escaped because they appear in a text value.
6433 REQUEST-STATUS:2.0;Success
6435 REQUEST-STATUS:3.1;Invalid property value;DTSTART:96-Apr-01
6437 REQUEST-STATUS:2.8; Success\, repeating event ignored. Scheduled
6438 as a single event.;RRULE:FREQ=WEEKLY\;INTERVAL=2
6440 REQUEST-STATUS:4.1;Event conflict. Date/time is busy.
6442 REQUEST-STATUS:3.7;Invalid calendar user;ATTENDEE:
6443 MAILTO:jsmith@host.com
6445 5 iCalendar Object Examples
6447 The following examples are provided as an informational source of
6448 illustrative iCalendar objects consistent with this content type.
6450 The following example specifies a three-day conference that begins at
6451 8:00 AM EDT, September 18, 1996 and end at 6:00 PM EDT, September 20,
6452 1996.
6454 BEGIN:VCALENDAR
6455 PRODID:-//xyz Corp//NONSGML PDA Calendar Verson 1.0//EN
6456 VERSION:2.0
6457 BEGIN:VEVENT
6458 DTSTAMP:19960704T120000Z
6459 UID:uid1@host.com
6460 ORGANIZER:MAILTO:jsmith@host.com
6461 DTSTART:19960918T143000Z
6462 DTEND:19960920T220000Z
6463 STATUS:CONFIRMED
6464 CATEGORIES:CONFERENCE
6465 SUMMARY:Networld+Interop Conference
6466 DESCRIPTION:Networld+Interop Conference
6467 and Exhibit\nAtlanta World Congress Center\n
6468 Atlanta, Georgia
6469 END:VEVENT
6470 END:VCALENDAR
6471 The following example specifies a group scheduled meeting that begin
6472 at 8:30 AM EST on March 12, 1998 and end at 9:30 AM EST on March 12,
6473 1998. The "Organizer" has scheduled the meeting with one or more
6474 calendar users in a group. A time zone specification for Eastern
6475 United States has been specified.
6477 BEGIN:VCALENDAR
6478 PRODID:-//RDU Software//NONSGML HandCal//EN
6479 VERSION:2.0
6480 BEGIN:VTIMEZONE
6481 TZID:US-Eastern
6482 BEGIN:STANDARD
6483 DTSTART:19981025T020000
6484 RDATE:19981025T020000
6485 TZOFFSETFROM:-0400
6486 TZOFFSETTO:-0500
6487 TZNAME:EST
6488 END:STANDARD
6489 BEGIN:DAYLIGHT
6490 DTSTART:19990404T020000
6491 RDATE:19990404T020000
6492 TZOFFSETFROM:-0500
6493 TZOFFSETTO:-0400
6494 TZNAME:EDT
6495 END:DAYLIGHT
6496 END:VTIMEZONE
6497 BEGIN:VEVENT
6498 DTSTAMP:19980309T231000Z
6499 UID:guid-1.host1.com
6500 ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@host.com
6501 ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP:
6502 MAILTO:employee-A@host.com
6503 DESCRIPTION:Project XYZ Review Meeting
6504 CATEGORIES:MEETING
6505 CLASS:PUBLIC
6506 CREATED:19980309T130000Z
6507 SUMMARY:XYZ Project Review
6508 DTSTART;TZID=US-Eastern:19980312T083000
6509 DTEND;TZID=US-Eastern:19980312T093000
6510 LOCATION:1CP Conference Room 4350
6511 END:VEVENT
6512 END:VCALENDAR
6514 The following is an example of an iCalendar object passed in a MIME
6515 message with a single body part consisting of a "text/calendar"
6516 Content Type.
6518 TO:jsmith@host1.com
6519 FROM:jdoe@host1.com
6520 MIME-VERSION:1.0
6521 MESSAGE-ID:
6522 CONTENT-TYPE:text/calendar
6523 BEGIN:VCALENDAR
6524 METHOD:xyz
6525 VERSION:2.0
6526 PRODID:-//ABC Corporation//NONSGML My Product//EN
6527 BEGIN:VEVENT
6528 DTSTAMP:19970324T1200Z
6529 SEQUENCE:0
6530 UID:uid3@host1.com
6531 ORGANIZER:MAILTO:jdoe@host1.com
6532 ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host1.com
6533 DTSTART:19970324T123000Z
6534 DTEND:19970324T210000Z
6535 CATEGORIES:MEETING,PROJECT
6536 CLASS:PUBLIC
6537 SUMMARY:Calendaring Interoperability Planning Meeting
6538 DESCRIPTION:Discuss how we can test c&s interoperability\n
6539 using iCalendar and other IETF standards.
6540 LOCATION:LDB Lobby
6541 ATTACH;FMTTYPE=application/postscript:ftp://xyzCorp.com/pub/
6542 conf/bkgrnd.ps
6543 END:VEVENT
6544 END:VCALENDAR
6546 The following is an example of a to-do due on April 15, 1998. An
6547 audio alarm has been specified to remind the calendar user at noon,
6548 the day before the to-do is expected to be completed and repeat
6549 hourly, four additional times. The to-do definition has been modified
6550 twice since it was initially created.
6552 BEGIN:VCALENDAR
6553 VERSION:2.0
6554 PRODID:-//ABC Corporation//NONSGML My Product//EN
6555 BEGIN:VTODO
6556 DTSTAMP:19980130T134500Z
6557 SEQUENCE:2
6558 UID:uid4@host1.com
6559 ORGANIZER:MAILTO:unclesam@us.gov
6560 ATTENDEE;PARTSTAT=ACCEPTED:MAILTO:jqpublic@host.com
6561 DUE:19980415T235959
6562 STATUS:NEEDS-ACTION
6563 SUMMARY:Submit Income Taxes
6564 BEGIN:VALARM
6565 ACTION:AUDIO
6566 TRIGGER:19980403T120000
6567 ATTACH;FMTTYPE=audio/basic:http://host.com/pub/audio-
6568 files/ssbanner.aud
6569 REPEAT:4
6570 DURATION:PT1H
6571 END:VALARM
6572 END:VTODO
6573 END:VCALENDAR
6575 The following is an example of a journal entry.
6577 BEGIN:VCALENDAR
6578 VERSION:2.0
6579 PRODID:-//ABC Corporation//NONSGML My Product//EN
6580 BEGIN:VJOURNAL
6581 DTSTAMP:19970324T120000Z
6582 UID:uid5@host1.com
6583 ORGANIZER:MAILTO:jsmith@host.com
6584 STATUS:DRAFT
6585 CLASS:PUBLIC
6586 CATEGORY:Project Report, XYZ, Weekly Meeting
6587 DESCRIPTION:Project xyz Review Meeting Minutes\n
6588 Agenda\n1. Review of project version 1.0 requirements.\n2.
6589 Definition
6590 of project processes.\n3. Review of project schedule.\n
6591 Participants: John Smith, Jane Doe, Jim Dandy\n-It was
6592 decided that the requirements need to be signed off by
6593 product marketing.\n-Project processes were accepted.\n
6594 -Project schedule needs to account for scheduled holidays
6595 and employee vacation time. Check with HR for specific
6596 dates.\n-New schedule will be distributed by Friday.\n-
6597 Next weeks meeting is cancelled. No meeting until 3/23.
6598 END:VJOURNAL
6599 END:VCALENDAR
6601 The following is an example of published busy time information. The
6602 iCalendar object might be placed in the network resource
6603 www.host.com/calendar/busytime/jsmith.ifb.
6605 BEGIN:VCALENDAR
6606 VERSION:2.0
6607 PRODID:-//RDU Software//NONSGML HandCal//EN
6608 BEGIN:VFREEBUSY
6609 ORGANIZER:MAILTO:jsmith@host.com
6610 DTSTART:19980313T141711Z
6611 DTEND:19980410T141711Z
6612 FREEBUSY:19980314T233000Z/19980315T003000Z
6613 FREEBUSY:19980316T153000Z/19980316T163000Z
6614 FREEBUSY:19980318T030000Z/19980318T040000Z
6615 URL:http://www.host.com/calendar/busytime/jsmith.ifb
6616 END:VFREEBUSY
6617 END:VCALENDAR
6619 6 Recommended Practices
6621 These recommended practices should be followed in order to assure
6622 consistent handling of the following cases for an iCalendar object.
6624 1. Content lines longer than 75 octets SHOULD be folded.
6626 2. A calendar entry with a "DTSTART" property but no "DTEND" property
6627 does not take up any time. It is intended to represent an event
6628 that is associated with a given calendar date and time of day,
6629 such as an anniversary. Since the event does not take up any time,
6630 it MUST NOT be used to record busy time no matter what the value
6631 for the "TRANSP" property.
6633 3. When the "DTSTART" and "DTEND", for "VEVENT", "VJOURNAL" and
6634 "VFREEBUSY" calendar components, and "DTSTART" and "DUE", for
6635 "VTODO" calendar components, have the same value data type (e.g.,
6636 DATE-TIME), they SHOULD specify values in the same time format
6637 (e.g., UTC time format).
6639 4. When the combination of the "RRULE" and "RDATE" properties on an
6640 iCalendar object produces multiple instances having the same start
6641 date/time, they should be collapsed to, and considered as, a
6642 single instance.
6644 5. When a calendar user receives multiple requests for the same
6645 calendar component (e.g., REQUEST for a "VEVENT" calendar
6646 component) as a result of being on multiple mailing lists
6647 specified by "ATTENDEE" properties in the request, they SHOULD
6648 respond to only one of the requests. The calendar user SHOULD also
6649 specify (using the "MEMBER" parameter of the "ATTENDEE" property)
6650 which mailing list they are a member of.
6652 6. An implementation can truncate a "SUMMARY" property value to 255
6653 characters.
6655 7. If seconds of the minute are not supported by an implementation,
6656 then a value of "00" SHOULD be specified for the seconds component
6657 in a time value.
6659 8. If the value type parameter (VALUE=) contains an unknown value
6660 type, it SHOULD be treated as TEXT.
6662 9. TZURL values SHOULD NOT be specified as a FILE URI type. This URI
6663 form can be useful within an organization, but is problematic in
6664 the Internet.
6666 10. Some possible English values for CATEGORIES property include
6667 "ANNIVERSARY", "APPOINTMENT", "BUSINESS", "EDUCATION", "HOLIDAY",
6668 "MEETING", "MISCELLANEOUS", "NON-WORKING HOURS", "NOT IN OFFICE",
6669 "PERSONAL", "PHONE CALL", "SICK DAY", "SPECIAL OCCASION",
6670 "TRAVEL", "VACATION". Categories can be specified in any
6671 registered language.
6673 11. Some possible English values for RESOURCES property include
6674 "CATERING", "CHAIRS", "COMPUTER PROJECTOR", "EASEL", "OVERHEAD
6675 PROJECTOR", "SPEAKER PHONE", "TABLE", "TV", "VCR", "VIDEO PHONE",
6676 "VEHICLE". Resources can be specified in any registered language.
6678 7 Registration of Content Type Elements
6680 This section provides the process for registration of MIME
6681 Calendaring and Scheduling Content Type iCalendar object methods and
6682 new or modified properties.
6684 7.1 Registration of New and Modified iCalendar Object Methods
6686 New MIME Calendaring and Scheduling Content Type iCalendar object
6687 methods are registered by the publication of an IETF Request for
6688 Comment (RFC). Changes to an iCalendar object method are registered
6689 by the publication of a revision of the RFC defining the method.
6691 7.2 Registration of New Properties
6693 This section defines procedures by which new properties or enumerated
6694 property values for the MIME Calendaring and Scheduling Content Type
6695 can be registered with the IANA. Non-IANA properties can be used by
6696 bilateral agreement, provided the associated properties names follow
6697 the "X-" convention.
6699 The procedures defined here are designed to allow public comment and
6700 review of new properties, while posing only a small impediment to the
6701 definition of new properties.
6703 Registration of a new property is accomplished by the following
6704 steps.
6706 7.2.1 Define the property
6708 A property is defined by completing the following template.
6710 To: ietf-calendar@imc.org
6712 Subject: Registration of text/calendar MIME property XXX
6714 Property name:
6716 Property purpose:
6718 Property value type(s):
6720 Property parameter (s):
6722 Conformance:
6724 Description:
6726 Format definition:
6728 Examples:
6730 The meaning of each field in the template is as follows.
6732 Property name: The name of the property, as it will appear in the
6733 body of an text/calendar MIME Content-Type "property: value" line to
6734 the left of the colon ":".
6736 Property purpose: The purpose of the property (e.g., to indicate a
6737 delegate for the event or to-do, etc.). Give a short but clear
6738 description.
6740 Property value type (s): Any of the valid value types for the
6741 property value needs to be specified. The default value type also
6742 needs to be specified. If a new value type is specified, it needs to
6743 be declared in this section.
6745 Property parameter (s): Any of the valid property parameters for the
6746 property needs to be specified.
6748 Conformance: The calendar components that the property can appear in
6749 needs to be specified.
6751 Description: Any special notes about the property, how it is to be
6752 used, etc.
6754 Format definition: The ABNF for the property definition needs to be
6755 specified.
6757 Examples: One or more examples of instances of the property needs to
6758 be specified.
6760 7.2.2 Post the Property definition
6762 The property description MUST be posted to the new property
6763 discussion list, ietf-calendar@imc.org.
6765 7.2.3 Allow a comment period
6767 Discussion on the new property MUST be allowed to take place on the
6768 list for a minimum of two weeks. Consensus MUST be reached on the
6769 property before proceeding to the next step.
6771 7.2.4 Submit the property for approval
6773 Once the two-week comment period has elapsed, and the proposer is
6774 convinced consensus has been reached on the property, the
6775 registration application should be submitted to the Method Reviewer
6776 for approval. The Method Reviewer is appointed to the Application
6777 Area Directors and can either accept or reject the property
6778 registration. An accepted registration should be passed on by the
6779 Method Reviewer to the IANA for inclusion in the official IANA method
6780 registry. The registration can be rejected for any of the following
6781 reasons. 1) Insufficient comment period; 2) Consensus not reached; 3)
6782 Technical deficiencies raised on the list or elsewhere have not been
6783 addressed. The Method Reviewer's decision to reject a property can be
6784 appealed by the proposer to the IESG, or the objections raised can be
6785 addressed by the proposer and the property resubmitted.
6787 7.3 Property Change Control
6789 Existing properties can be changed using the same process by which
6790 they were registered.
6792 1. Define the change
6794 2. Post the change
6796 3. Allow a comment period
6798 4. Submit the property for approval
6800 Note that the original author or any other interested party can
6801 propose a change to an existing property, but that such changes
6802 should only be proposed when there are serious omissions or errors in
6803 the published memo. The Method Reviewer can object to a change if it
6804 is not backward compatible, but is not required to do so.
6806 Property definitions can never be deleted from the IANA registry, but
6807 properties which are no longer believed to be useful can be declared
6808 OBSOLETE by a change to their "intended use" field.
6810 8 References
6812 The following documents are referred to within this memo.
6814 [ICMS] "Internet Calendaring Model Specification", Internet-Draft,
6815 October 1997, ftp://ftp.ietf.org/internet-drafts/draft-ietf-calsch-
6816 mod-03.txt.
6818 [IMIP] "iCalendar Message-based Interoperability Protocol (IMIP)",
6819 Internet Draft, April 1998, http://www.imc.org/draft-ietf-calsch-
6820 imip-05.txt.
6822 [ITIP] "iCalendar Transport-Independent Interoperability Protocol
6823 (iTIP) : Scheduling Events, Busy Time, To-dos and Journal Entries ",
6824 Internet-Draft, April 1998, http://www.imc.org/draft-ietf-calsch-
6825 itip-05.txt.
6827 [ISO 8601] ISO 8601, "Data elements and interchange formats_
6828 Information interchange--Representation of dates and times",
6829 International Organization for Standardization, June, 1988. This
6830 standard is also addressed by the Internet Draft document
6831 ftp://ds.internic.net/internet-drafts/draft-newman-datetime-00.txt.
6833 [ISO 9070] ISO/IEC 9070, "Information Technology_SGML Support
6834 Facilities--Registration Procedures for Public Text Owner
6835 Identifiers", Second Edition, International Organization for
6836 Standardization, April 1991.
6838 [MIME DIR] Howes, T., Smith, M., "A MIME Content-Type for Directory
6839 Information", Internet-draft-ietf-asid-mime-direct-07.txt, November
6840 1997.
6842 [RFC 822] Crocker, D., "Standard for the Format of ARPA Internet Text
6843 Messages", STD 11, RFC 822, August 1982.
6845 [RFC 1738] Berners-Lee, T., Masinter, L., McCahill, M., "Uniform
6846 Resource Locators (URL)", RFC 1738, December 1994.
6848 [RFC 1766] Alvestrand, H., "Tags for the Identification of
6849 Languages", March 1995.
6851 [RFC 2045] Freed, N., Borenstein, N., " Multipurpose Internet Mail
6852 Extensions (MIME) - Part One: Format of Internet Message Bodies", RFC
6853 2045, November 1996.
6855 [RFC 2046] Freed, N., Borenstein, N., " Multipurpose Internet Mail
6856 Extensions (MIME) - Part Two: Media Types", RFC 2046, November 1996.
6858 [RFC 2047] Moore, K., "Multipurpose Internet Mail Extensions (MIME) -
6859 Part Three: Message Header Extensions for Non-ASCII Text", RFC 2047,
6860 November 1996.
6862 [RFC 2048] Freed, N., J. Klensin, J. Postel, "Multipurpose Internet
6863 Mail Extensions (MIME) - Part Four: Registration Procedures", RFC
6864 2048, January 1997.
6866 [RFC 2111] "Content-ID and Message-ID Uniform Resource Locators", RFC
6867 2111, March 1997.
6869 [RFC 2119] "Key words for use in RFCs to Indicate Requirement
6870 Levels", RFC 2119, March 1997.
6872 [RFC 2234] Crocker, D., Overell, P., "Augmented BNF for Syntax
6873 Specifications: ABNF", RFC 2234, November 1997.
6875 [RFC 2279] "UTF-8, a transformation format of ISO 10646", RFC 2279,
6876 January 1998.
6878 [TZ] Olson, A.D., et al, Time zone code and data,
6879 ftp://elsie.nci.nih.gov/pub/, updated periodically.
6881 [VCARD] Internet Mail Consortium, "vCard - The Electronic Business
6882 Card Version 2.1", http://www.imc.org/pdi/vcard-21.txt, September
6883 18, 1996.
6885 [VCAL] Internet Mail Consortium, "vCalendar - The Electronic
6886 Calendaring and Scheduling Exchange Format",
6887 http://www.imc.org/pdi/vcal-10.txt, September 18, 1996.
6889 [XAPIA] "XAPIA CSA, Calendaring and Scheduling Application
6890 Programming Interface (CSA) Version 1.0", X.400 API Association,
6891 November 15, 1994.
6893 9 Acknowledgments
6895 A hearty thanks to the IETF Calendaring and Scheduling Working Group
6896 and also the following individuals who have participated in the
6897 drafting, review and discussion of this memo:
6899 Roland Alden, Harald T. Alvestrand, Eric Berman, Denis Bigorgne, John
6900 Binici, Bill Bliss, Philippe Boucher, Steve Carter, Andre
6901 Courtemanche, Dave Crocker, David Curley, Alec Dun, John Evans, Ross
6902 Finlayson, Randell Flint, Ned Freed, Patrik Faltstrom, Chuck
6903 Grandgent, Mark Handley, Steve Hanna, Paul B. Hill, Paul Hoffman,
6904 Ross Hopson, Mark Horton, Daryl Huff, Bruce Kahn, C. Harald Koch,
6905 Ryan Jansen, Don Lavange, Antoine Leca, Theodore Lorek, Steve
6906 Mansour, Skip Montanaro, Keith Moore, Cecil Murray, Chris Newman,
6907 John Noerenberg, Ralph Patterson, Pete Resnick, Keith Rhodes, Robert
6908 Ripberger, John Rose, Doug Royer, Andras Salamar, Ted Schuh, Vinod
6909 Seraphin, Derrick Shadel, Ken Shan, Andrew Shuman, Steve Silverberg,
6910 William P. Spencer, John Sun, Mark Towfiq, Yvonne Tso, Robert Visnov,
6911 James L. Weiner, Mike Weston, William Wyatt.
6913 10 Authors' and Chairs' Addresses
6915 The following address information is provided in a MIME-VCARD,
6916 Electronic Business Card, format.
6918 The authors of this draft are:
6920 BEGIN:VCARD
6921 VERSION:3.0
6922 N:Dawson;Frank
6923 FN:Frank Dawson
6924 ORG:Lotus Development Corporation
6925 ADR;WORK;POSTAL;PARCEL:;6544 Battleford Drive;
6926 Raleigh;NC;27613-3502;USA
6927 TEL;WORK;MSG:+1-919-676-9515
6928 TEL;WORK;FAX:+1-919-676-9564
6929 EMAIL;INTERNET;PREF:Frank_Dawson@Lotus.com
6930 EMAIL;INTERNET:fdawson@earthlink.net
6931 URL:http://home.earthlink.net/~fdawson
6932 END:VCARD
6934 BEGIN:VCARD
6935 VERSION:3.0
6936 N:Stenerson;Derik
6937 FN:Derik Stenerson
6938 ORG:Microsoft Corporation
6939 ADR;WORK;POSTAL;PARCEL:;One Microsoft Way;
6940 Redmond;WA;98052-6399;USA
6941 TEL;WORK;MSG:+1-425-936-5522
6942 TEL;WORK;FAX:+1-425-936-7329
6943 EMAIL;INTERNET:deriks@Microsoft.com
6944 END:VCARD
6945 The iCalendar object is a result of the work of the Internet
6946 Engineering Task Force Calendaring and Scheduling Working Group. The
6947 chairman of that working group is:
6949 BEGIN:VCARD
6950 VERSION:3.0
6951 N:Ganguly;Anik
6952 FN:Anik Ganguly
6953 ORG: Open Text Inc.
6954 ADR;WORK;POSTAL;PARCEL: 38777 West Six Mile Road;Suite 101;
6955 Livonia;MI; 48152;USA
6956 TEL;WORK;MSG:+1-734-542-5955
6957 EMAIL;INTERNET:ganguly@acm.org
6958 END:VCARD
6960 The co-chairman of that working group is:
6962 BEGIN:VCARD
6963 VERSION:3.0
6964 N:Moskowitz;Robert
6965 FN:Robert Moskowitz
6966 EMAIL;INTERNET:rgm-ietf@htt-consult.com
6967 END:VCARD
6969 11 Full Copyright Statement
6971 "Copyright (C) The Internet Society (1998). All Rights Reserved.
6973 This document and translations of it may be copied and furnished to
6974 others, and derivative works that comment on or otherwise explain it
6975 or assist in its implmentation may be prepared, copied, published and
6976 distributed, in whole or in part, without restriction of any kind,
6977 provided that the above copyright notice and this paragraph are
6978 included on all such copies and derivative works. However, this
6979 document itself may not be modified in any way, such as by removing
6980 the copyright notice or references to the Internet Society or other
6981 Internet organizations, except as needed for the purpose of
6982 developing Internet standards in which case the procedures for
6983 copyrights defined in the Internet Standards process MUST be
6984 followed, or as required to translate it into languages other than
6985 English.
6987 The limited permissions granted above are perpetual and will not be
6988 revoked by the Internet Society or its successors or assigns.
6990 This document and the information contained herein is provided on an
6991 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
6992 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
6993 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
6994 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
6995 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.