idnits 2.17.1
draft-ietf-calsch-ical-08.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 122
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 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 2772 has weird spacing: '...he base offse...'
== Line 2800 has weird spacing: '...lly for recur...'
== Line 2801 has weird spacing: '...ure and conve...'
== Line 2803 has weird spacing: '... time zone ...'
== Line 2883 has weird spacing: '...on. For examp...'
== (3 more instances...)
== 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 (June 29, 1998) is 9434 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 4552, but not defined
== Unused Reference: 'RFC 2047' is defined on line 6347, but no explicit
reference was found in the text
== Unused Reference: 'RFC 2111' is defined on line 6355, but no explicit
reference was found in the text
== Unused Reference: 'VCARD' is defined on line 6367, but no explicit
reference was found in the text
== Unused Reference: 'XAPIA' is defined on line 6375, 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. 'VCARD'
-- Possible downref: Non-RFC (?) normative reference: ref. 'VCAL'
-- Possible downref: Non-RFC (?) normative reference: ref. 'XAPIA'
Summary: 17 errors (**), 0 flaws (~~), 19 warnings (==), 11 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: June 29, 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 1997. 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 ......................................................30
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 ..................................................44
144 4.4 iCalendar Object ................................................45
145 4.5 Property ........................................................45
146 4.6 Calendar Components .............................................46
147 4.6.1 Event Component ..............................................47
148 4.6.2 To-do Component ..............................................48
149 4.6.3 Journal Component ............................................49
150 4.6.4 Free/Busy Component ..........................................50
151 4.6.5 Time Zone Component ..........................................53
152 4.6.6 Alarm Component ..............................................58
153 4.7 Calendar Properties .............................................62
154 4.7.1 Calendar Scale ...............................................62
155 4.7.2 Method .......................................................62
156 4.7.3 Product Identifier ...........................................63
157 4.7.4 Version ......................................................64
158 4.8 Component Properties ............................................65
159 4.8.1 Descriptive Component Properties .............................65
160 4.8.1.1 Attachment ...............................................65
161 4.8.1.2 Categories ...............................................66
162 4.8.1.3 Classification ...........................................66
163 4.8.1.4 Comment ..................................................67
164 4.8.1.5 Description ..............................................68
165 4.8.1.6 Geographic Position ......................................69
166 4.8.1.7 Location .................................................69
167 4.8.1.8 Percent Complete .........................................70
168 4.8.1.9 Priority .................................................71
169 4.8.1.10 Resources ...............................................72
170 4.8.1.11 Status ..................................................73
171 4.8.1.12 Summary .................................................74
172 4.8.2 Date and Time Component Properties ...........................75
173 4.8.2.1 Date/Time Completed ......................................75
174 4.8.2.2 Date/Time End ............................................75
175 4.8.2.3 Date/Time Due ............................................76
176 4.8.2.4 Date/Time Start ..........................................77
177 4.8.2.5 Duration .................................................77
178 4.8.2.6 Free/Busy Time ...........................................78
179 4.8.2.7 Time Transparency ........................................79
180 4.8.3 Time Zone Component Properties ...............................80
181 4.8.3.1 Time Zone Identifier .....................................80
182 4.8.3.2 Time Zone Name ...........................................81
183 4.8.3.3 Time Zone Offset From ....................................82
184 4.8.3.4 Time Zone Offset To ......................................82
185 4.8.3.5 Time Zone URL ............................................83
186 4.8.4 Relationship Component Properties ............................84
187 4.8.4.1 Attendee .................................................84
188 4.8.4.2 Contact ..................................................86
189 4.8.4.3 Organizer ................................................87
190 4.8.4.4 Recurrence ID ............................................88
191 4.8.4.5 Related To ...............................................89
192 4.8.4.6 Uniform Resource Locator .................................90
193 4.8.4.7 Unique Identifier ........................................91
194 4.8.5 Recurrence Component Properties ..............................92
195 4.8.5.1 Exception Date/Times .....................................92
196 4.8.5.2 Exception Rule ...........................................93
197 4.8.5.3 Recurrence Date/Times ....................................94
198 4.8.5.4 Recurrence Rule ..........................................95
199 4.8.6 Alarm Component Properties ..................................103
200 4.8.6.1 Action ..................................................103
201 4.8.6.2 Repeat Count ............................................104
202 4.8.6.3 Trigger .................................................105
203 4.8.7 Change Management Component Properties ......................106
204 4.8.7.1 Date/Time Created .......................................106
205 4.8.7.2 Date/Time Stamp .........................................107
206 4.8.7.3 Last Modified ...........................................107
207 4.8.7.4 Sequence Number .........................................108
208 4.8.8 Miscellaneous Component Properties ..........................110
209 4.8.8.1 Non-standard Properties .................................110
210 4.8.8.2 Request Status ..........................................110
211 5 iCalendar Object Examples..........................................112
212 6 Recommended Practices..............................................116
213 7 Registration of Content Type Elements..............................117
214 7.1 Registration of New and Modified iCalendar Object Methods ......117
215 7.2 Registration of New Properties .................................117
216 7.2.1 Define the property .........................................117
217 7.2.2 Post the Property definition ................................118
218 7.2.3 Allow a comment period ......................................118
219 7.2.4 Submit the property for approval ............................118
220 7.3 Property Change Control ........................................119
221 8 References.........................................................119
222 9 Acknowledgments....................................................121
223 10 Author's Address..................................................121
224 11 Full Copyright Statement..........................................122
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 OverviewFinancesProject 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 The following are examples of this property parameter:
1451 DTSTART;TZID=America-New_York:19980119T020000
1452 DTEND;TZID=America-New_York:19980119T030000
1454 The TZID property parameter MUST NOT be applied to DATE-TIME or TIME
1455 properties whose time values are specified in UTC.
1457 The use of local time in a DATE-TIME or TIME value without the TZID
1458 property parameter is to be interpreted as a local time value,
1459 regardless of the existence of "VTIMEZONE" calendar components in the
1460 iCalendar object.
1462 For more information see the sections on the data types DATE-TIME and
1463 TIME.
1465 4.2.20 Value Data Types
1467 Parameter Name: VALUE
1469 Purpose: To explicitly specify the data type format for a property
1470 value.
1472 Format Definition: The "VALUE" property parameter is defined by the
1473 following notation:
1475 valuetypeparam = "VALUE" "=" valuetype
1477 valuetype = ("BINARY"
1478 / "BOOLEAN"
1479 / "CAL-ADDRESS"
1480 / "DATE"
1481 / "DATE-TIME"
1482 / "DURATION"
1483 / "FLOAT"
1484 / "INTEGER"
1485 / "PERIOD"
1486 / "RECUR"
1487 / "TEXT"
1488 / "TIME"
1489 / "URI"
1490 / "UTC-OFFSET"
1491 / x-name
1492 ; Some experimental iCalendar data type.
1493 / iana-token)
1494 ; Some other IANA registered iCalendar data type.
1496 Description: The parameter specifies the data type and format of the
1497 property value. The property values MUST be of a single value type.
1498 For example, a "RDATE" property cannot have a combination of DATE-
1499 TIME and TIME value types.
1501 If the property's value is the default value type, then this
1502 parameter need not be specified. However, if the property's default
1503 value type is overridden by some other allowable value type, then
1504 this parameter MUST be specified.
1506 4.3 Property Value Data Types
1508 The properties in an iCalendar object are strongly typed. The
1509 definition of each property restricts the value to be one of the
1510 value data types, or simply value types, defined in this section. The
1511 value type for a property will either be specified implicitly as the
1512 default value type or will be explicitly specified with the "VALUE"
1513 parameter. If the value type of a property is one of the alternate
1514 valid types, then it MUST be explicitly specified with the "VALUE"
1515 parameter.
1517 4.3.1 Binary
1519 Value Name: BINARY
1521 Purpose: This value type is used to identify properties that contain
1522 a character encoding of inline binary data. For example, an inline
1523 attachment of an object code might be included in an iCalendar
1524 object.
1526 Formal Definition: The value type is defined by the following
1527 notation:
1529 binary = *(4b-char) [b-end]
1530 ; A "BASE64" encoded character string, as defined by [RFC 2045].
1532 b-end = (2b-char "==") / (3b-char "=")
1534 b-char = ALPHA / DIGIT / "+" / "/"
1536 Description: Property values with this value type MUST also include
1537 the inline encoding parameter sequence of ";ENCODING=BASE64". That
1538 is, all inline binary data MUST first be character encoded using the
1539 "BASE64" encoding method defined in [RFC 2045]. No additional content
1540 value encoding (i.e., BACKSLASH character encoding) is defined for
1541 this value type.
1543 Example: The following is an abridged example of a "BASE64" encoded
1544 binary value data.
1546 ATTACH;VALUE=BINARY;ENCODING=BASE64:MIICajCCAdOgAwIBAgICBEUwDQY
1547 JKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlI
1548 ENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZv
1549 <...remainder of "BASE64" encoded binary data...>
1551 4.3.2 Boolean
1553 Value Name: BOOLEAN
1555 Purpose: This value type is used to identify properties that contain
1556 either a "TRUE" or "FALSE" Boolean value.
1558 Formal Definition: The value type is defined by the following
1559 notation:
1561 boolean = "TRUE" / "FALSE"
1563 Description: These values are case insensitive text. No additional
1564 content value encoding (i.e., BACKSLASH character encoding) is
1565 defined for this value type.
1567 Example: The following is an example of a hypothetical property that
1568 has a BOOLEAN value type:
1570 GIBBERISH:TRUE
1572 4.3.3 Calendar User Address
1574 Value Name: CAL-ADDRESS
1576 Purpose: This value type is used to identify properties that contain
1577 a calendar user address.
1579 Formal Definition: The value type is as defined by the following
1580 notation:
1582 cal-address = uri
1584 Description: The value is a URI as defined by [RFC 1738] or any other
1585 IANA registered form for a URI. When used to address an Internet
1586 email transport address for a calendar user, the value MUST be a
1587 MAILTO URI, as defined by [RFC 1738]. No additional content value
1588 encoding (i.e., BACKSLASH character encoding) is defined for this
1589 value type.
1591 Example:
1593 ATTENDEE:MAILTO:jane_doe@host.com
1595 4.3.4 Date
1597 Value Name: DATE
1599 Purpose: This value type is used to identify values that contain a
1600 calendar date.
1602 Formal Definition: The value type is defined by the following
1603 notation:
1605 date = date-value
1607 date-value = date-fullyear date-month date-mday
1608 date-fullyear = 4DIGIT
1609 date-month = 2DIGIT ;01-12
1610 date-mday = 2DIGIT ;01-28, 01-29, 01-30, 01-31
1611 ;based on month/year
1613 Description: If the property permits, multiple "date" values are
1614 specified as a COMMA character (US-ASCII decimal 44) separated list
1615 of values. The format for the value type is expressed as the [ISO
1616 8601] complete representation, basic format for a calendar date. The
1617 textual format specifies a four-digit year, two-digit month, and two-
1618 digit day of the month. There are no separator characters between the
1619 year, month and day component text.
1621 No additional content value encoding (i.e., BACKSLASH character
1622 encoding) is defined for this value type.
1624 Example: The following represents July 14, 1997:
1626 19970714
1628 4.3.5 Date-Time
1630 Value Name: DATE-TIME
1632 Purpose: This value type is used to identify values that specify a
1633 precise calendar date and time of day.
1635 Formal Definition: The value type is defined by the following
1636 notation:
1638 date-time = date "T" time ;As specified in the date and time
1639 ;value definitions
1641 Description: If the property permits, multiple "date-time" values are
1642 specified as a COMMA character (US-ASCII decimal 44) separated list
1643 of values. No additional content value encoding (i.e., BACKSLASH
1644 character encoding) is defined for this value type.
1646 The "DATE-TIME" data type is used to identify values that contain a
1647 precise calendar date and time of day. The format is based on the
1648 [ISO 8601] complete representation, basic format for a calendar date
1649 and time of day. The text format is a concatenation of the "date",
1650 followed by the LATIN CAPITAL LETTER T character (US-ASCII decimal
1651 84) time designator, followed by the "time" format.
1653 The "DATE-TIME" data type expresses time values in three forms:
1655 The form of date and time with UTC offset MUST NOT be used. For
1656 example, the following is not valid for a date-time value:
1658 DTSTART:19980119T230000-0800 ;Invalid time format
1660 FORM #1: DATE WITH LOCAL TIME
1662 The date with local time form is simply a date-time value that does
1663 not contain the UTC designator nor does it reference a time zone. For
1664 example, the following represents Janurary 18, 1998, at 11 PM:
1666 DTSTART:19980118T230000
1667 Date-time values of this type are said to be "floating" and are not
1668 bound to any time zone in particular. They are used to represent the
1669 same hour, minute, and second value regardless of which time zone is
1670 currently being observed. For example, an event can be defined that
1671 indicates that an individual will be busy from 11:00 AM to 1:00 PM
1672 every day, no matter which time zone the person is in. In these
1673 cases, a local time can be specified. The recipient of an iCalendar
1674 object with a property value consisting of a local time, without any
1675 relative time zone information, SHOULD interpret the value as being
1676 fixed to whatever time zone the ATTENDEE is in at any given moment.
1677 This means that two ATTENDEEs, in different time zones, receiving the
1678 same event definition as a floating time, may be participating in the
1679 event at different actual times. Floating time SHOULD only be used
1680 where that is the reasonable behavior.
1682 In most cases, a fixed time is desired. To properly communicate a
1683 fixed time in a property value, either UTC time or local time with
1684 time zone reference MUST be specified.
1686 The use of local time in a DATE-TIME value without the TZID property
1687 parameter is to be interpreted as floating time, regardless of the
1688 existence of "VTIMEZONE" calendar components in the iCalendar object.
1690 FORM #2: DATE WITH UTC TIME
1692 The date with UTC time, or absolute time, is identified by a LATIN
1693 CAPITAL LETTER Z suffix character (US-ASCII decimal 90), the UTC
1694 designator, appended to the time value. For example, the following
1695 represents January 19, 1998, at 0700 UTC:
1697 DTSTART:19980119T070000Z
1699 The TZID property parameter MUST NOT be applied to DATE-TIME
1700 properties whose time values are specified in UTC.
1702 FORM #3: DATE WITH LOCAL TIME AND TIME ZONE REFERENCE
1704 The date and local time with reference to time zone information is
1705 identified by the use the TZID property parameter to reference the
1706 appropriate time zone definition. TZID is discussed in detail in the
1707 section on Time Zone. For example, the following represents 2 AM in
1708 New York on Janurary 19, 1998:
1710 DTSTART;TZID=America-New_York:19980119T020000
1712 Example: The following represents July 14, 1997, at 1:30 PM in New
1713 York City in each of the three time formats, using the "DTSTART"
1714 property.
1716 DTSTART:19970714T133000 ;Local time
1717 DTSTART:19970714T173000Z ;UTC time
1718 DTSTART;TZID=America-NYC:19970714T133000 ;Local time and time
1719 ; zone reference
1720 A time value MUST ONLY specify 60 seconds when specifying the
1721 periodic "leap second" in the time value. For example:
1723 COMPLETED:19970630T235960Z
1725 4.3.6 Duration
1727 Value Name: DURATION
1729 Purpose: This value type is used to identify properties that contain
1730 a duration of time.
1732 Formal Definition: The value type is defined by the following
1733 notation:
1735 dur-value = (["+"] / "-") "P" (dur-date / dur-time / dur-week)
1737 dur-date = dur-day [dur-time]
1738 dur-time = "T" (dur-hour / dur-minute / dur-second)
1739 dur-week = 1*DIGIT "W"
1740 dur-hour = 1*DIGIT "H" [dur-minute]
1741 dur-minute = 1*DIGIT "M" [dur-second]
1742 dur-second = 1*DIGIT "S"
1743 dur-day = 1*DIGIT "D"
1745 Description: If the property permits, multiple "duration" values are
1746 specified by a COMMA character (US-ASCII decimal 44) separated list
1747 of values. The format is expressed as the [ISO 8601] basic format for
1748 the duration of time. The format can represent durations in terms of
1749 weeks, days, hours, minutes, and seconds.
1751 No additional content value encoding (i.e., BACKSLASH character
1752 encoding) are defined for this value type.
1754 Example: A duration of 15 days, 5 hours and 20 seconds would be:
1756 P15DT5H0M20S
1758 A duration of 7 weeks would be:
1760 P7W
1762 4.3.7 Float
1764 Value Name: FLOAT
1766 Purpose: This value type is used to identify properties that contain
1767 a real number value.
1769 Formal Definition: The value type is defined by the following
1770 notation:
1772 float = (["+"] / "-") 1*DIGIT ["." 1*DIGIT]
1773 Description: If the property permits, multiple "float" values are
1774 specified by a COMMA character (US-ASCII decimal 44) separated list
1775 of values.
1777 No additional content value encoding (i.e., BACKSLASH character
1778 encoding) is defined for this value type.
1780 Example:
1782 1000000.0000001
1783 1.333
1784 -3.14
1786 4.3.8 Integer
1788 Value Name:INTEGER
1790 Purpose: This value type is used to identify properties that contain
1791 a signed integer value.
1793 Formal Definition: The value type is defined by the following
1794 notation:
1796 integer = (["+"] / "-") 1*DIGIT
1798 Description: If the property permits, multiple "integer" values are
1799 specified by a COMMA character (US-ASCII decimal 44) separated list
1800 of values. The valid range for "integer" is -2147483648 to
1801 2147483647. If the sign is not specified, then the value is assumed
1802 to be positive.
1804 No additional content value encoding (i.e., BACKSLASH character
1805 encoding) is defined for this value type.
1807 Example:
1809 1234567890
1810 -1234567890
1811 +1234567890
1812 432109876
1814 4.3.9 Period of Time
1816 Value Name: PERIOD
1818 Purpose: This value type is used to identify values that contain a
1819 precise period of time.
1821 Formal Definition: The data type is defined by the following
1822 notation:
1824 period = period-explicit / period-start
1825 period-explicit = date-time "/" date-time
1826 ; [ISO 8601] complete representation basic format for a period of
1827 ; time consisting of a start and end. The start MUST be before the
1828 ; end.
1830 period-start = date-time "/" dur-value
1831 ; [ISO 8601] complete representation basic format for a period of
1832 ; time consisting of a start and positive duration of time.
1834 Description: If the property permits, multiple "period" values are
1835 specified by a COMMA character (US-ASCII decimal 44) separated list
1836 of values. There are two forms of a period of time. First, a period
1837 of time is identified by its start and its end. This format is
1838 expressed as the [ISO 8601] complete representation, basic format for
1839 "DATE-TIME" start of the period, followed by a SOLIDUS character (US-
1840 ASCII decimal 47), followed by the "DATE-TIME" of the end of the
1841 period. The start of the period MUST be before the end of the period.
1842 Second, a period of time can also be defined by a start and a
1843 positive duration of time. The format is expressed as the [ISO 8601]
1844 complete representation, basic format for the "DATE-TIME" start of
1845 the period, followed by a SOLIDUS character (US-ASCII decimal 47),
1846 followed by the [ISO 8601] basic format for "DURATION" of the period.
1848 Example: The period starting at 18:00:00 UTC, on January 1, 1997 and
1849 ending at 07:00:00 UTC on January 2, 1997 would be:
1851 19970101T180000Z/19970102T070000Z
1853 The period start at 18:00:00 on January 1, 1997 and lasting 5 hours
1854 and 30 minutes would be:
1856 19970101T180000Z/PT5H30M
1858 No additional content value encoding (i.e., BACKSLASH character
1859 encoding) is defined for this value type.
1861 4.3.10 Recurrence Rule
1863 Value Name: RECUR
1865 Purpose: This value type is used to identify properties that contain
1866 a recurrence rule specification.
1868 Formal Definition: The value type is defined by the following
1869 notation:
1871 recur = "FREQ"=freq
1872 [(";" "UNTIL" "=" enddate) / (";" "COUNT" "=" 1*DIGIT)]
1873 [";" "INTERVAL" "=" 1*DIGIT]
1874 [";" "BYSECOND" "=" byseclist]
1875 [";" "BYMINUTE" "=" byminlist]
1876 [";" "BYHOUR" "=" byhrlist]
1877 [";" "BYDAY" "=" bywdaylist]
1878 [";" "BYMONTHDAY" "=" bymodaylist]
1880 [";" "BYYEARDAY" "=" byyrdaylist]
1881 [";" "BYWEEKNO" "=" bywknolist]
1882 [";" "BYMONTH" "=" bymolist]
1883 [";" "BYSETPOS" "=" bysplist]
1884 [";" "WKST" "=" weekday)]
1885 *(";" x-name "=" text)
1886 ;Individual rule parts MUST only be specified once.
1887 ;Rule parts need not be specified in particular any order.
1889 freq = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY"
1890 / "WEEKLY" / "MONTHLY" / "YEARLY"
1892 enddate = date
1893 enddate =/ date-time ;An UTC value
1895 byseclist = seconds / ( seconds *("," seconds) )
1897 seconds = 1DIGIT / 2DIGIT ;0 to 59
1899 byminlist = minutes / ( minutes *("," minutes) )
1901 minutes = 1DIGIT / 2DIGIT ;0 to 59
1903 byhrlist = hour / ( hour *("," hour) )
1905 hour = 1DIGIT / 2DIGIT ;0 to 23
1907 bywdaylist = weekdaynum / ( weekdaynum *("," weekdaynum) )
1909 weekdaynum = [([plus] ordwk / minus ordwk)] weekday
1911 plus = "+"
1913 minus = "-"
1915 ordwk = 1DIGIT / 2DIGIT ;1 to 53
1917 weekday = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA"
1918 ;Corresponding to SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY,
1919 ;FRIDAY, SATURDAY and SUNDAY days of the week.
1921 bymodaylist = monthdaynum / ( monthdaynum *("," monthdaynum) )
1923 monthdaynum = ([plus] ordmoday) / (minus ordmoday)
1925 ordmoday = 1DIGIT / 2DIGIT ;1 to 31
1927 byyrdaylist = yeardaynum / ( yeardaynum *("," yeardaynum) )
1929 yeardaynum = ([plus] ordyrday) / (minus ordyrday)
1931 ordyrday = 1DIGIT / 2DIGIT / 3DIGIT ;1 to 366
1933 bywknolist = weeknum / ( weeknum *("," weeknum) )
1934 weeknum = ([plus] ordwk) / (minus ordwk)
1936 bymolist = monthnum / ( monthnum *("," monthnum) )
1938 monthnum = 1DIGIT / 2DIGIT ;1 to 12
1940 bysplist = setposday / ( setposday *("," setposday) )
1942 setposday = yeardaynum
1944 Description: If the property permits, multiple "recur" values are
1945 specified by a COMMA character (US-ASCII decimal 44) separated list
1946 of values. The value type is a structured value consisting of a list
1947 of one or more recurrence grammar parts. Each rule part is defined by
1948 a NAME=VALUE pair. The rule parts are separated from each other by
1949 the SEMICOLON character (US-ASCII decimal 59). The rule parts are not
1950 ordered in any particular sequence. Individual rule parts MUST only
1951 be specified once.
1953 The FREQ rule part identifies the type of recurrence rule. This rule
1954 part MUST be specified in the recurrence rule. Valid values include
1955 SECONDLY, to specify repeating events based on an interval of a
1956 second or more; MINUTELY, to specify repeating events based on an
1957 interval of a minute or more; HOURLY, to specify repeating events
1958 based on an interval of an hour or more; DAILY, to specify repeating
1959 events based on an interval of a day or more; WEEKLY, to specify
1960 repeating events based on an interval of a week or more; MONTHLY, to
1961 specify repeating events based on an interval of a month or more; and
1962 YEARLY, to specify repeating events based on an interval of a year or
1963 more.
1965 The INTERVAL rule part contains a positive integer representing how
1966 often the recurrence rule repeats. The default value is "1", meaning
1967 every second for a SECONDLY rule, or every minute for a MINUTELY
1968 rule, every hour for an HOURLY rule, every day for a DAILY rule,
1969 every week for a WEEKLY rule, every month for a MONTHLY rule and
1970 every year for a YEARLY rule.
1972 The UNTIL rule part defines a date-time value which bounds the
1973 recurrence rule in an inclusive manner. If the value specified by
1974 UNTIL is synchronized with the specified recurrence, this date or
1975 date-time becomes the last instance of the recurrence. If specified
1976 as a date-time value, then it MUST be specified in an UTC time
1977 format. If not present, and the COUNT rule part is also not present,
1978 the RRULE is considered to repeat forever.
1980 The COUNT rule part defines the number of occurrences at which to
1981 range-bound the recurrence. The "DTSTART" property value, if
1982 specified, counts as the first occurrence.
1984 The BYSECOND rule part specifies a COMMA character (US-ASCII decimal
1985 44) separated list of seconds within a minute. Valid values are 0 to
1986 59. The BYMINUTE rule part specifies a COMMA character (US-ASCII
1987 decimal 44) separated list of minutes within an hour. Valid values
1988 are 0 to 59. The BYHOUR rule part specifies a COMMA character (US-
1989 ASCII decimal 44) separated list of hours of the day. Valid values
1990 are 0 to 23.
1992 The BYDAY rule part specifies a COMMA character (US-ASCII decimal 44)
1993 separated list of days of the week; MO indicates Monday; TU indicates
1994 Tuesday; WE indicates Wednesday; TH indicates Thursday; FR indicates
1995 Friday; SA indicates Saturday; SU indicates Sunday.
1997 Each BYDAY value can also be preceded by a positive (+n) or negative
1998 (-n) integer. If present, this indicates the nth occurrence of the
1999 specific day within the MONTHLY or YEARLY RRULE. For example, within
2000 a MONTHLY rule, +1MO (or simply 1MO) represents the first Monday
2001 within the month, whereas -1MO represents the last Monday of the
2002 month. If an integer modifier is not present, it means all days of
2003 this type within the specified frequency. For example, within a
2004 MONTHLY rule, MO represents all Mondays within the month.
2006 The BYMONTHDAY rule part specifies a COMMA character (ASCII decimal
2007 44) separated list of days of the month. Valid values are 1 to 31 or
2008 -31 to -1. For example, -10 represents the tenth to the last day of
2009 the month.
2011 The BYYEARDAY rule part specifies a COMMA character (US-ASCII
2012 decimal 44) separated list of days of the year. Valid values are 1 to
2013 366 or -366 to -1. For example, -1 represents the last day of the
2014 year (December 31st) and -306 represents the 306th to the last day of
2015 the year (March 1st).
2017 The BYWEEKNO rule part specifies a COMMA character (US-ASCII decimal
2018 44) separated list of ordinals specifying weeks of the year. Valid
2019 values are 1 to 53 or -53 to -1. This corresponds to weeks according
2020 to week numbering as defined in [ISO 8601]. A week is defined as a
2021 seven day period, starting on the day of the week defined to be the
2022 week start (see WKST). Week number one of the calendar year is the
2023 first week which contains at least four (4) days in that calendar
2024 year. This rule part is only valid for YEARLY rules. For example, 3
2025 represents the third week of the year.
2027 Note: Assuming a Monday week start, week 53 can only occur when
2028 Thursday is January 1 or if it is a leap year and Wednesday is
2029 January 1.
2031 The BYMONTH rule part specifies a COMMA character (US-ASCII decimal
2032 44) separated list of months of the year. Valid values are 1 to 12.
2034 The WKST rule part specifies the day on which the workweek starts.
2035 Valid values are MO, TU, WE, TH, FR, SA and SU. This is significant
2036 when a WEEKLY RRULE has an interval greater than 1, and a BYDAY rule
2037 part is specified. This is also significant when in a YEARLY RRULE
2038 when a BYWEEKNO rule part is specified. The default value is MO.
2040 The BYSETPOS rule part specifies a COMMA character (US-ASCII decimal
2041 44) separated list of values which corresponds to the nth occurrence
2042 within the set of events specified by the rule. Valid values are 1 to
2043 366 or -366 to -1. It MUST only be used in conjunction with another
2044 BYxxx rule part. For example "the last work day of the month" could
2045 be represented as:
2047 RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
2049 Each BYSETPOS value can include a positive (+n) or negative (-n)
2050 integer. If present, this indicates the nth occurrence of the
2051 specific occurrence within the set of events specified by the rule.
2053 If BYxxx rule part values are found which are beyond the available
2054 scope (ie, BYMONTHDAY=30 in February), they are simply ignored.
2056 Information, not contained in the rule, necessary to determine the
2057 various recurrence instance start time and dates are derived from the
2058 Start Time (DTSTART) entry attribute. For example,
2059 "FREQ=YEARLY;BYMONTH=1" doesn't specify a specific day within the
2060 month or a time. This information would be the same as what is
2061 specified for DTSTART.
2063 BYxxx rule parts modify the recurrence in some manner. BYxxx rule
2064 parts for a period of time which is the same or greater than the
2065 frequency generally reduce or limit the number of occurrences of the
2066 recurrence generated. For example, "FREQ=DAILY;BYMONTH=1" reduces the
2067 number of recurrence instances from all days (if BYMONTH tag is not
2068 present) to all days in January. BYxxx rule parts for a period of
2069 time less than the frequency generally increase or expand the number
2070 of occurrences of the recurrence. For example,
2071 "FREQ=YEARLY;BYMONTH=1,2" increases the number of days within the
2072 yearly recurrence set from 1 (if BYMONTH tag is not present) to 2.
2074 If multiple BYxxx rule parts are specified, then after evaluating the
2075 specified FREQ and INTERVAL rule parts, the BYxxx rule parts are
2076 applied to the current set of evaluated occurrences in the following
2077 order: BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY, BYHOUR,
2078 BYMINUTE, BYSECOND and BYSETPOS; then COUNT and UNTIL are evaluated.
2080 Here is an example of evaluating multiple BYxxx rule parts.
2082 DTSTART;TZID=US-Eastern:19970105T083000
2083 RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;
2084 BYMINUTE=30
2086 First, the "INTERVAL=2" would be applied to "FREQ=YEARLY" to arrive
2087 at "every other year". Then, "BYMONTH=1" would be applied to arrive
2088 at "every January, every other year". Then, "BYDAY=SU" would be
2089 applied to arrive at "every Sunday in January, every other year".
2090 Then, "BYHOUR=8,9" would be applied to arrive at "every Sunday in
2091 January at 8 AM and 9 AM, every other year". Then, "BYMINUTE=30"
2092 would be applied to arrive at "every Sunday in January at 8:30 AM and
2093 9:30 AM, every other year". Then, lacking information from RRULE, the
2094 second is derived from DTSTART, to end up in "every day in January at
2095 8:30:00 AM and 9:30:00 AM, every other year". Similarly, if the
2096 BYMINUTE, BYHOUR, BYDAY, BYMONTHDAY or BYMONTH rule part were
2097 missing, the appropriate minute, hour, day or month would have been
2098 retrieved from the "DTSTART" property.
2100 No additional content value encoding (i.e., BACKSLASH character
2101 encoding) is defined for this value type.
2103 Example: The following is a rule which specifies 10 meetings which
2104 occur every other day:
2106 FREQ=DAILY;COUNT=10;INTERVAL=2
2108 There are other examples specified in the "RRULE" specification.
2110 4.3.11 Text
2112 Value Name: TEXT
2114 Purpose This value type is used to identify values that contain human
2115 readable text.
2117 Formal Definition: If the character set is UTF-8, the value type is
2118 defined by the following notation. This MUST be modified depending on
2119 character sets. For example, the definition of TSAFE-CHAR includes
2120 ESC for character sets that use ISO 2022 character set switching and
2121 TSAFE-CHAR should not include NON-US-ASCII when the character set is
2122 US-ASCII.
2124 text = *(TSAFE-CHAR / ":" / DQUOTE / ESCAPED-CHAR)
2125 ; Folded according to description above
2127 ESCAPED-CHAR = "\\" / "\;" / "\," / "\N" / "\n")
2128 ; \\ encodes \, \N or \n encodes newline
2129 ; \; encodes ;, \, encodes ,
2131 TSAFE-CHAR = %x20-21 / %x23-2B / %x2D-39 / %x3C-5B
2132 %x5D-7E / NON-US-ASCII
2133 ; Any character except CTLs not needed by the current
2134 ; character set, DQUOTE, ";", ":", "\", ","
2136 Description: If the property permits, multiple "text" values are
2137 specified by a COMMA character (US-ASCII decimal 44) separated list
2138 of values.
2140 The language in which the text is represented can be controlled by
2141 the "LANGUAGE" property parameter.
2143 An intentional formatted text line break MUST only be included in a
2144 "TEXT" property value by representing the line break with the
2145 character sequence of BACKSLASH (US-ASCII decimal 92), followed by a
2146 LATIN SMALL LETTER N (US-ASCII decimal 110) or a LATIN CAPITAL LETTER
2147 N (US-ASCII decimal 78), that is "\n" or "\N".
2149 The "TEXT" property values may also contain special characters that
2150 are used to signify delimiters, such as a COMMA character for lists
2151 of values or a SEMICOLON character for structured values. In order to
2152 support the inclusion of these special characters in "TEXT" property
2153 values, they MUST be escaped with a BACKSLASH character. A BACKSLASH
2154 character (US-ASCII decimal 92) in a "TEXT" property value MUST be
2155 escaped with another BACKSLASH character. A COMMA character in a
2156 "TEXT" property value MUST be escaped with a BACKSLASH character (US-
2157 ASCII decimal 92). A SEMICOLON character in a "TEXT" property value
2158 MUST be escaped with a BACKSLASH character (US-ASCII decimal 92).
2159 However, a COLON character in a "TEXT" property value SHALL NOT be
2160 escaped with a BACKSLASH character.Example: A multiple line value of:
2162 Project XYZ Final Review
2163 Conference Room - 3B
2164 Come Prepared.
2166 would be represented as:
2168 Project XYZ Final Review\n Conference Room - 3B\nCome Prepared.
2170 4.3.12 Time
2172 Value Name: TIME
2174 Purpose: This value type is used to identify values that contain a
2175 time of day.
2177 Formal Definition: The data type is defined by the following
2178 notation:
2180 time = time-hour time-minute time-second [time-utc]
2182 time-hour = 2DIGIT ;00-23
2183 time-minute = 2DIGIT ;00-59
2184 time-second = 2DIGIT ;00-60
2185 ;The "60" value is used to account for "leap" seconds.
2187 time-utc = "Z"
2189 Description: If the property permits, multiple "time" values are
2190 specified by a COMMA character (US-ASCII decimal 44) separated list
2191 of values. No additional content value encoding (i.e., BACKSLASH
2192 character encoding) is defined for this value type.
2194 The "TIME" data type is used to identify values that contain a time
2195 of day. The format is based on the [ISO 8601] complete
2196 representation, basic format for a time of day. The text format
2197 consists of a two-digit 24-hour of the day (i.e., values 0-23), two-
2198 digit minute in the hour (i.e., values 0-59), and two-digit seconds
2199 in the minute (i.e., values 0-60). The seconds value of 60 MUST only
2200 to be used to account for "leap" seconds. Fractions of a second are
2201 not supported by this format.
2203 In parallel to the "DATE-TIME" definition above, the "TIME" data type
2204 expresses time values in three forms:
2206 The form of time with UTC offset MUST NOT be used. For example, the
2207 following is NOT VALID for a time value:
2209 230000-0800 ;Invalid time format
2211 FORM #1 LOCAL TIME
2213 The local time form is simply a time value that does not contain the
2214 UTC designator nor does it reference a time zone. For example, 11:00
2215 PM:
2217 230000
2219 Time values of this type are said to be "floating" and are not bound
2220 to any time zone in particular. They are used to represent the same
2221 hour, minute, and second value regardless of which time zone is
2222 currently being observed. For example, an event can be defined that
2223 indicates that an individual will be busy from 11:00 AM to 1:00 PM
2224 every day, no matter which time zone the person is in. In these
2225 cases, a local time can be specified. The recipient of an iCalendar
2226 object with a property value consisting of a local time, without any
2227 relative time zone information, SHOULD interpret the value as being
2228 fixed to whatever time zone the ATTENDEE is in at any given moment.
2229 This means that two ATTENDEEs may participate in the same event at
2230 different UTC times; floating time SHOULD only be used where that is
2231 reasonable behavior.
2233 In most cases, a fixed time is desired. To properly communicate a
2234 fixed time in a property value, either UTC time or local time with
2235 time zone reference MUST be specified.
2237 The use of local time in a TIME value without the TZID property
2238 parameter is to be interpreted as a local time value, regardless of
2239 the existence of "VTIMEZONE" calendar components in the iCalendar
2240 object.
2242 FORM #2: UTC TIME
2244 UTC time, or absolute time, is identified by a LATIN CAPITAL LETTER Z
2245 suffix character (US-ASCII decimal 90), the UTC designator, appended
2246 to the time value. For example, the following represents 07:00 AM
2247 UTC:
2249 070000Z
2251 The TZID property parameter MUST NOT be applied to TIME properties
2252 whose time values are specified in UTC.
2254 FORM #3: LOCAL TIME AND TIME ZONE REFERENCE
2255 The local time with reference to time zone information form is
2256 identified by the use the TZID property parameter to reference the
2257 appropriate time zone definition. TZID is discussed in detail in the
2258 section on Time Zone.
2260 Example: The following represents 8:30 AM in New York in Winter, five
2261 hours behind UTC, in each of the three formats using the "X-
2262 TIMEOFDAY" non-standard property:
2264 X-TIMEOFDAY:083000
2266 X-TIMEOFDAY:133000Z
2268 X-TIMEOFDAY;TZID=America-New York:083000
2270 4.3.13 URI
2272 Value Name: URI
2274 Purpose: This value type is used to identify values that contain a
2275 uniform resource identifier (URI) type of reference to the property
2276 value.
2278 Formal Definition: The data type is defined by the following
2279 notation:
2281 uri =
2283 Description: This data type might be used to reference binary
2284 information, for values that are large, or otherwise undesirable to
2285 include directly in the iCalendar object.
2287 The URI value formats in RFC 1738, RFC 2111 and any other IETF
2288 registered value format can be specified.
2290 Any IANA registered URI format can be used. These include, but are
2291 not limited to, those defined in RFC 1738 and RFC 2111.
2293 When a property parameter value is a URI value type, the URI MUST be
2294 specified as a quoted-string value.
2296 No additional content value encoding (i.e., BACKSLASH character
2297 encoding) is defined for this value type.
2299 Example: The following is a URI for a network file:
2301 http://host1.com/my-report.txt
2303 4.3.14 UTC Offset
2305 Value Name: UTC-OFFSET
2307 Purpose: This value type is used to identify properties that contain
2308 an offset from UTC to local time.
2310 Formal Definition: The data type is defined by the following
2311 notation:
2313 utc-offset = time-numzone ;As defined above in time data type
2315 time-numzone = ("+" / "-") time-hour time-minute
2317 Description: The PLUS SIGN character MUST be specified for positive
2318 UTC offsets (i.e., ahead of UTC). The value of "-0000" is not
2319 allowed.
2321 No additional content value encoding (i.e., BACKSLASH character
2322 encoding) is defined for this value type.
2324 Example: The following UTC offsets are given for standard time for
2325 New York (five hours behind UTC) and Geneva (one hour ahead of UTC):
2327 -0500
2329 +0100
2331 4.4 iCalendar Object
2333 The Calendaring and Scheduling Core Object is a collection of
2334 calendaring and scheduling information. Typically, this information
2335 will consist of a single iCalendar object. However, multiple
2336 iCalendar objects can be sequentially grouped together. The first
2337 line and last line of the iCalendar object MUST contain a pair of
2338 iCalendar object delimiter strings. The syntax for an iCalendar
2339 object is as follows:
2341 icalobject = 1*("BEGIN" ":" "VCALENDAR" CRLF
2342 icalbody
2343 "END" ":" "VCALENDAR" CRLF)
2345 The following is a simple example of an iCalendar object:
2347 BEGIN:VCALENDAR
2348 VERSION:2.0
2349 PRODID:-//hacksw/handcal//NONSGML v1.0//EN
2350 BEGIN:VEVENT
2351 DTSTART:19970714T170000Z
2352 DTEND:19970715T035959Z
2353 SUMMARY:Bastille Day Party
2354 END:VEVENT
2355 END:VCALENDAR
2357 4.5 Property
2359 A property is the definition of an individual attribute describing a
2360 calendar or a calendar component. A property takes the form defined
2361 by the "contentline" notation defined in section 4.1.1.
2363 The following is an example of a property:
2365 DTSTART:19960415T133000Z
2367 This memo imposes no ordering of properties within an iCalendar
2368 object.
2370 Property names, parameter names and enumerated parameter values are
2371 case insensitive. For example, the property name "DUE" is the same as
2372 "due" and "Due", DTSTART;TZID=Eastern:19980714T120000 is the same as
2373 DtStart;TzID=Eastern:19980714T120000.
2375 4.6 Calendar Components
2377 The body of the iCalendar object consists of a sequence of calendar
2378 properties and one or more calendar components. The calendar
2379 properties are attributes that apply to the calendar as a whole. The
2380 calendar components are collections of properties that express a
2381 particular calendar semantic. For example, the calendar component can
2382 specify an event, a to-do, a journal entry, time zone information, or
2383 free/busy time information, or an alarm.
2385 The body of the iCalendar object is defined by the following
2386 notation:
2388 icalbody = calprops component
2390 calprops = [calscale] [method] prodid version *x-prop
2392 component = 1*(eventc / todoc / journalc / freebusyc /
2393 / timezonec / iana-comp / x-comp)
2395 iana-comp = "BEGIN" ":" iana-token CRLF
2397 1*contentline
2399 "END" ":" iana-token CRLF
2401 x-comp = "BEGIN" ":" x-name CRLF
2403 1*contentline
2405 "END" ":" x-name CRLF
2407 An iCalendar object MUST include the "PRODID" and "VERSION" calendar
2408 properties. In addition, it MUST include at least one calendar
2409 component. Special forms of iCalendar objects are possible to publish
2410 just busy time (i.e., only a "VFREEBUSY" calendar component) or time
2411 zone (i.e., only a "VTIMEZONE" calendar component) information. In
2412 addition, a complex iCalendar object is possible that is used to
2413 capture a complete snapshot of the contents of a calendar (e.g.,
2414 composite of many different calendar components). More commonly, an
2415 iCalendar object will consist of just a single "VEVENT", "VTODO" or
2416 "VJOURNAL" calendar component.
2418 4.6.1 Event Component
2420 Component Name: "VEVENT"
2422 Purpose: Provide a grouping of component properties that describe an
2423 event.
2425 Format Definition: A "VEVENT" calendar component is defined by the
2426 following notation:
2428 eventc = "BEGIN" ":" "VEVENT" CRLF
2429 eventprop *alarmc
2430 "END" ":" "VEVENT" CRLF
2432 eventprop = *attach *attendee *categories [class] *comment
2433 *contact [created] [description] [dtend / duration]
2434 [dtstart] *exdate *exrule [geo] [last-mod] [location]
2435 [organizer] [priority] *rstatus *related *resources
2436 *rdate *rrule [dtstamp] [seq] [status] [summary]
2437 [transp] [uid] [url] [recurid] *x-prop
2439 Description: A "VEVENT" calendar component is a grouping of component
2440 properties, and possibly including "VALARM" calendar components, that
2441 represents a scheduled amount of time on a calendar. For example, it
2442 can be an activity; such as a one-hour long, department meeting from
2443 8:00 AM to 9:00 AM, tomorrow. Generally, an event will take up time
2444 on an individual calendar. Hence, the event will appear as an opaque
2445 interval in a search for busy time. Alternately, the event can have
2446 its Time Transparency set to "TRANSPARENT" in order to prevent
2447 blocking of the event in searches for busy time.
2449 The "VEVENT" is also the calendar component used to specify an
2450 anniversary or daily reminder within a calendar. These events have a
2451 DATE value type for the "DTSTART" property instead of the default
2452 data type of DATE-TIME. If such a "VEVENT" has a "DTEND" property, it
2453 MUST be specified as a DATE value also. The anniversary type of
2454 "VEVENT" can span more than one date (i.e, "DTEND" property value is
2455 set to a calendar date after the "DTSTART" property value).
2457 The "DTSTART" property for a "VEVENT" specifies the inclusive start
2458 of the event. For recurring events, it also specifies the very first
2459 instance in the recurrence set. The "DTEND" property for a "VEVENT"
2460 calendar component specifies the non-inclusive end of the event. For
2461 cases where a "VEVENT" calendar component specifies a "DTSTART"
2462 property with a DATE data type but no "DTEND" property, the events
2463 non-inclusive end is the end of the calendar date specified by the
2464 "DTSTART" property. For cases where a "VEVENT" calendar component
2465 specifies a "DTSTART" property with a DATE-TIME data type but no
2466 "DTEND" property, the event ends on the same calendar date and time
2467 of day specified by the "DTSTART" property.
2469 The "VEVENT" calendar component cannot be nested within another
2470 calendar component. However, "VEVENT" calendar components can be
2471 related to each other or to a "VTODO" or to a "VJOURNAL" calendar
2472 component with the "RELATED-TO" property.
2474 Example: The following is an example of the "VEVENT" calendar
2475 component used to represent a meeting that will also be opaque to
2476 searches for busy time:
2478 BEGIN:VEVENT
2479 UID:19970901T130000Z-123401@host.com
2480 DTSTAMP:19970901T1300Z
2481 DTSTART:19970903T163000Z
2482 DTEND:19970903T190000Z
2483 SUMMARY:Annual Employee Review
2484 CLASS:PRIVATE
2485 CATEGORIES:BUSINESS,HUMAN RESOURCES
2486 END:VEVENT
2488 The following is an example of the "VEVENT" calendar component used
2489 to represent a reminder that will not be opaque, but rather
2490 transparent, to searches for busy time:
2492 BEGIN:VEVENT
2493 UID:19970901T130000Z-123402@host.com
2494 DTSTAMP:19970901T1300Z
2495 DTSTART:19970401T163000Z
2496 DTEND:19970402T010000Z
2497 SUMMARY:Laurel is in sensitivity awareness class.
2498 CLASS:PUBLIC
2499 CATEGORIES:BUSINESS,HUMAN RESOURCES
2500 TRANSP:TRANSPARENT
2501 END:VEVENT
2503 The following is an example of the "VEVENT" calendar component used
2504 to represent an anniversary that will occur annually. Since it takes
2505 up no time, it will not appear as opaque in a search for busy time;
2506 no matter what the value of the "TRANSP" property indicates:
2508 BEGIN:VEVENT
2509 UID:19970901T130000Z-123403@host.com
2510 DTSTAMP:19970901T1300Z
2511 DTSTART:19971102
2512 SUMMARY:Our Blissful Anniversary
2513 CLASS:CONFIDENTIAL
2514 CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION
2515 RRULE:FREQ=YEARLY
2516 END:VEVENT
2518 4.6.2 To-do Component
2520 Component Name: VTODO
2522 Purpose: Provide a grouping of calendar properties that describe a
2523 to-do.
2525 Formal Definition: A "VTODO" calendar component is defined by the
2526 following notation:
2528 todoc = "BEGIN" ":" "VTODO" CRLF
2529 todoprop *alarmc
2530 "END" ":" "VTODO" CRLF
2532 todoprop = *attach *attendee *categories [class] *comment
2533 [completed] *contact [created] [description] [dtstamp]
2534 [dtstart] [due / duration] *exdate *exrule [geo]
2535 [last-mod] [location] [organizer] [percent] [priority]
2536 *rstatus *related *resources *rdate *rrule
2537 [recurid] [seq] [status] [summary] [uid] [url]
2538 *x-prop
2540 Description: A "VTODO" calendar component is a grouping of component
2541 properties and possibly "VALARM" calendar components that represent
2542 an action-item or assignment. For example, it can be used to
2543 represent an item of work assigned to an individual; such as "turn in
2544 travel expense today".
2546 The "VTODO" calendar component cannot be nested within another
2547 calendar component. However, "VTODO" calendar components can be
2548 related to each other or to a "VTODO" or to a "VJOURNAL" calendar
2549 component with the "RELATED-TO" property.
2551 A "VTODO" calendar component without the "DTSTART" and "DUE" (or
2552 "DURATION") properties specifies a to-do that will be associated with
2553 each successive calendar date, until it is completed.
2555 Example: The following is an example of a "VTODO" calendar component:
2557 BEGIN:VTODO
2558 UID:19970901T130000Z-123404@host.com
2559 DTSTAMP:19970901T1300Z
2560 DTSTART:19970415T133000Z
2561 DUE:19970416T045959Z
2562 SUMMARY:1996 Income Tax Preparation
2563 CLASS:CONFIDENTIAL
2564 CATEGORIES:FAMILY,FINANCE
2565 PRIORITY:1
2566 STATUS:NEEDS-ACTION
2567 END:VEVENT
2569 4.6.3 Journal Component
2571 Component Name: VJOURNAL
2573 Purpose: Provide a grouping of component properties that describe a
2574 journal entry.
2576 Formal Definition: A "VJOURNAL" calendar component is defined by the
2577 following notation:
2579 journalc = "BEGIN" ":" "VJOURNAL" CRLF
2580 jourprop
2581 "END" ":" "VJOURNAL" CRLF
2583 jourprop = *attach *attendee *categories [class] *comment
2584 *contact [created] [description] [dtstart] [dtstamp]
2585 *exdate *exrule [last-mod] [organizer] [recurid]
2586 *related *rdate *rrule *rstatus [seq] [status]
2587 [summary] [uid] [url] *x-prop
2589 Description: A "VJOURNAL" calendar component is a grouping of
2590 component properties that represent one or more descriptive text
2591 notes associated with a particular calendar date. The "DTSTART"
2592 property is used to specify the calendar date that the journal entry
2593 is associated with. Generally, it will have a DATE value data type,
2594 but it can also be used to specify a DATE-TIME value data type.
2595 Examples of a journal entry include a daily record of a legislative
2596 body or a journal entry of individual telephone contacts for the day
2597 or an ordered list of accomplishments for the day. The "VJOURNAL"
2598 calendar component can also be used to associate a document with a
2599 calendar date.
2601 The "VJOURNAL" calendar component does not take up time on a
2602 calendar. Hence, it does not play a role in free or busy time
2603 searches - - it is as though it has a time transparency value of
2604 TRANSPARENT. It is transparent to any such searches.
2606 The "VJOURNAL" calendar component cannot be nested within another
2607 calendar component. However, "VJOURNAL" calendar components can be
2608 related to each other or to a "VEVENT" or to a "VTODO" calendar
2609 component, with the "RELATED-TO" property.
2611 Example: The following is an example of the "VJOURNAL" calendar
2612 component:
2614 BEGIN:VJOURNAL
2615 UID:19970901T130000Z-123405@host.com
2616 DTSTAMP:19970901T1300Z
2617 DTSTART;VALUE=DATE:19970317
2618 SUMMARY:Staff meeting minutes
2619 DESCRIPTION:1. Staff meeting: Participants include Joe\, Lisa
2620 and Bob. Aurora project plans were reviewed. There is currently
2621 no budget reserves for this project. Lisa will escalate to
2622 management. Next meeting on Tuesday.\n
2623 2. Telephone Conference: ABC Corp. sales representative called
2624 to discuss new printer. Promised to get us a demo by Friday.\n
2625 3. Henry Miller (Handsoff Insurance): Car was totaled by tree.
2626 Is looking into a loaner car. 654-2323 (tel).
2627 END:VJOURNAL
2629 4.6.4 Free/Busy Component
2631 Component Name: VFREEBUSY
2632 Purpose: Provide a grouping of component properties that describe
2633 either a request for free/busy time, describe a response to a request
2634 for free/busy time or describe a published set of busy time.
2636 Formal Definition: A "VFREEBUSY" calendar component is defined by the
2637 following notation:
2639 freebusyc = "BEGIN" ":" "VFREEBUSY" CRLF
2640 fbprop
2641 "END" ":" "VFREEBUSY" CRLF
2643 fbprop = *attendee *comment [contact] [dtstart] [dtend]
2644 [duration] [dtstamp] *freebusy [organizer] *rstatus
2645 [uid] [url] *x-prop
2647 Description: A "VFREEBUSY" calendar component is a grouping of
2648 component properties that represents either a request for, a reply to
2649 a request for free or busy time information or a published set of
2650 busy time information.
2652 When used to request free/busy time information, the "ATTENDEE"
2653 property specifies the calendar users whose free/busy time is being
2654 requested; the "ORGANIZER" property specifies the calendar user who
2655 is requesting the free/busy time; the "DTSTART" and "DTEND"
2656 properties specify the window of time for which the free/busy time is
2657 being requested; the "UID" and "DTSTAMP" properties are specified to
2658 assist in proper sequencing of multiple free/busy time requests.
2660 When used to reply to a request for free/busy time, the "ATTENDEE"
2661 property specifies the calendar user responding to the free/busy time
2662 request; the "ORGANIZER" property specifies the calendar user that
2663 originally requested the free/busy time; the "FREEBUSY" property
2664 specifies the free/busy time information (if it exists); and the
2665 "UID" and "DTSTAMP" properties are specified to assist in proper
2666 sequencing of multiple free/busy time replies.
2668 When used to publish busy time, the "ORGANIZER" property specifies
2669 the calendar user associated with the published busy time; the
2670 "DTSTART" and "DTEND" properties specify an inclusive time window
2671 that surrounds the busy time information; the "FREEBUSY" property
2672 specifies the published busy time information; and the "DTSTAMP"
2673 property specifies the date/time that iCalendar object was created.
2675 The "VFREEBUSY" calendar component cannot be nested within another
2676 calendar component. Multiple "VFREEBUSY" calendar components can be
2677 specified within an iCalendar object. This permits the grouping of
2678 Free/Busy information into logical collections, such as monthly
2679 groups of busy time information.
2681 The "VFREEBUSY" calendar component is intended for use in iCalendar
2682 object methods involving requests for free time, requests for busy
2683 time, requests for both free and busy, and the associated replies.
2685 Free/Busy information is represented with the "FREEBUSY" property.
2686 This property provides a terse representation of time periods. One or
2687 more "FREEBUSY" properties can be specified in the "VFREEBUSY"
2688 calendar component.
2690 When present in a "VFREEBUSY" calendar component, the "DTSTART" and
2691 "DTEND" properties SHOULD be specified prior to any "FREEBUSY"
2692 properties. In a free time request, these properties can be used in
2693 combination with the "DURATION" property to represent a request for a
2694 duration of free time within a specified window of time.
2696 The recurrence properties ("RRULE", "EXRULE", "RDATE", "EXDATE") are
2697 not permitted within a "VFREEBUSY" calendar component. Any recurring
2698 events are resolved into their individual busy time periods using the
2699 "FREEBUSY" property.
2701 Example: The following is an example of a "VFREEBUSY" calendar
2702 component used to request free or busy time information:
2704 BEGIN:VFREEBUSY
2705 ORGANIZER:MAILTO:jane_doe@host1.com
2706 ATTENDEE:MAILTO:john_public@host2.com
2707 DTSTART:19971015T050000Z
2708 DTEND:19971016T050000Z
2709 DTSTAMP:19970901T083000Z
2710 END:VFREEBUSY
2712 The following is an example of a "VFREEBUSY" calendar component used
2713 to reply to the request with busy time information:
2715 BEGIN:VFREEBUSY
2716 ORGANIZER:MAILTO:jane_doe@host1.com
2717 ATTENDEE:MAILTO:john_public@host2.com
2718 DTSTAMP:19970901T100000Z
2719 FREEBUSY;VALUE=PERIOD:19971015T050000Z/PT8H30M,
2720 19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M
2721 URL:http://host2.com/pub/busy/jpublic-01.ifb
2722 COMMENT:This iCalendar file contains busy time information for
2723 the next three months.
2724 END:VFREEBUSY
2726 The following is an example of a "VFREEBUSY" calendar component used
2727 to publish busy time information.
2729 BEGIN:VFREEBUSY
2730 ORGANIZER:jsmith@host.com
2731 DTSTART:19980313T141711Z
2732 DTEND:19980410T141711Z
2733 FREEBUSY:19980314T233000Z/19980315T003000Z
2734 FREEBUSY:19980316T153000Z/19980316T163000Z
2735 FREEBUSY:19980318T030000Z/19980318T040000Z
2736 URL:http://www.host.com/calendar/busytime/jsmith.ifb
2737 END:VFREEBUSY
2738 4.6.5 Time Zone Component
2740 Component Name: VTIMEZONE
2742 Purpose: Provide a grouping of component properties that defines a
2743 time zone.
2745 Formal Definition: A "VTIMEZONE" calendar component is defined by the
2746 following notation:
2748 timezonec = "BEGIN" ":" "VTIMEZONE" CRLF
2750 tzid [last-mod] [tzurl] 1*(standardc / daylightc)
2751 *x-prop
2753 "END" ":" "VTIMEZONE" CRLF
2755 standardc = "BEGIN" ":" "STANDARD" CRLF
2757 tzprop
2759 "END" ":" "STANDARD" CRLF
2761 daylightc = "BEGIN" ":" "DAYLIGHT" CRLF
2763 tzprop
2765 "END" ":" "DAYLIGHT" CRLF
2767 tzprop = *comment dtstart (*rdate / *rrule)
2768 *tzname tzoffsetto tzoffsetfrom *x-prop
2770 Description: A time zone is unambiguously defined by the set of time
2771 measurement rules determined by the governing body for a given
2772 geographic area. These rules describe at a minimum the base offset
2773 from UTC for the time zone, often referred to as the Standard Time
2774 offset. Many locations adjust their Standard Time forward or backward
2775 by one hour, in order to accommodate seasonal changes in number of
2776 daylight hours, often referred to as Daylight Saving Time. Some
2777 locations adjust their time by a fraction of an hour. Standard Time
2778 is also known as Winter Time. Daylight Saving Time is also known as
2779 Advanced Time, Summer Time, or Legal Time in certain countries. The
2780 following table shows the changes in time zone rules for the eastern
2781 United States starting from 1967. Each line represents a description
2782 or rule for a particular observance.
2784 Effective Observance Rule
2786 Date (Date/Time) Offset Abbreviation
2788 1967-* lastSun in Oct, 02:00 -0500 EST
2790 1967-1973 last Sun in Apr, 02:00 -0400 EDT
2791 1974-1974 Jan 6, 02:00 -0400 EDT
2793 1975-1975 Feb 23, 02:00 -0400 EDT
2795 1976-1986 last Sun in Apr, 02:00 -0400 EDT
2797 1987-* first Sun in Apr, 02:00 -0400 EDT
2799 Interoperability between two calendaring and scheduling applications,
2800 especially for recurring events, to-dos or journal entries, is
2801 dependent on the ability to capture and convey date and time
2802 information in an unambiguous format. The specification of current
2803 time zone information is integral to this behavior.
2805 If present, the "VTIMEZONE" calendar component defines the set of
2806 Standard Time and Daylight Saving Time observances (or rules) for a
2807 particular time zone for a given interval of time. The "VTIMEZONE"
2808 calendar component cannot be nested within other calendar components.
2809 Multiple "VTIMEZONE" calendar components can exist in an iCalendar
2810 object. In this situation, each "VTIMEZONE" MUST represent a unique
2811 time zone definition. This is necessary for some classes of events,
2812 such as airline flights, that start in one time zone and end in
2813 another.
2815 The "VTIMEZONE" calendar component MUST be present if the iCalendar
2816 object contains an RRULE that generates dates on both sides of a time
2817 zone shift (e.g. both in Standard Time and Daylight Saving Time)
2818 unless the iCalendar object intends to convey a floating time (See
2819 the section "4.1.10.11 Time" for proper interpretation of floating
2820 time). It can be present if the iCalendar object does not contain
2821 such a RRULE. In addition, if a RRULE is present, there MUST be valid
2822 time zone information for all recurrence instances.
2824 The "VTIMEZONE" calendar component MUST include the "TZID" property
2825 and at least one definition of a standard or daylight component. The
2826 standard or daylight component MUST include the "DTSTART",
2827 "TZOFFSETFROM" and "TZOFFSETTO" properties.
2829 An individual "VTIMEZONE" calendar component MUST be specified for
2830 each unique "TZID" parameter value specified in the iCalendar object.
2832 Each "VTIMEZONE" calendar component consists of a collection of one
2833 or more sub-components that describe the rule for a particular
2834 observance (either a Standard Time or a Daylight Saving Time
2835 observance). The "STANDARD" sub-component consists of a collection of
2836 properties that describe Standard Time. The "DAYLIGHT" sub-component
2837 consists of a collection of properties that describe Daylight Saving
2838 Time. In general this collection of properties consists of:
2840 - the first onset date-time for the observance
2842 - the last onset date-time for the observance, if a last onset
2843 is known.
2845 - the offset to be applied for the observance
2847 - a rule that describes the day and time when the observance
2848 takes effect
2850 - an optional name for the observance
2852 For a given time zone, there may be multiple unique definitions of
2853 the observances over a period of time. Each observance is described
2854 using either a "STANDARD" or "DAYLIGHT" sub-component. The collection
2855 of these sub-components is used to describe the time zone for a given
2856 period of time. The offset to apply at any given time is found by
2857 locating the observance that has the last onset date and time before
2858 the time in question, and using the offset value from that
2859 observance.
2861 The top-level properties in a "VTIMEZONE" calendar component are:
2863 The mandatory "TZID" property is a text value that uniquely
2864 identifies the VTIMZONE calendar component within the scope of an
2865 iCalendar object.
2867 The optional "LAST-MODIFIED" property is a UTC value that specifies
2868 the date and time that this time zone definition was last updated.
2870 The optional "TZURL" property is url value that points to a published
2871 VTIMEZONE definition.
2873 The collection of properties that are used to define the STANDARD and
2874 DAYLIGHT sub-components include:
2876 The mandatory "DTSTART" property gives the effective onset date and
2877 local time for the time zone sub-component definition. "DTSTART" in
2878 this usage MUST be specified as a local DATE-TIME value.
2880 The mandatory "TZOFFSETFROM" property gives the UTC offset which is
2881 in use when the onset of this time zone observance begins.
2882 "TZOFFSETFROM" is combined with "DTSTART" to define the effective
2883 onset for the time zone sub-component definition. For example, the
2884 following represents the time at which the observance of Standard
2885 Time took effect in Fall 1967 for the eastern United States:
2887 DTSTART:19671029T020000
2889 TZOFFSETFROM:-0400
2891 The mandatory "TZOFFSETTO " property gives the UTC offset for the
2892 time zone sub-component (Standard Time or Daylight Saving Time) when
2893 this observance is in use.
2895 The optional "TZNAME" property is the customary name for the time
2896 zone. It may be specified multiple times, to allow for specifying
2897 multiple language variants of the time zone names. This could be used
2898 for displaying dates.
2900 If specified, the onset for the observance defined by the time zone
2901 sub-component is defined by either the "RRULE" or "RDATE" property.
2902 If neither is specified, only one sub-component can be specified in
2903 the "VTIMEZONE" calendar component and it is assumed that the single
2904 observance specified is always in effect.
2906 The "RRULE" property defines the recurrence rule for the onset of the
2907 observance defined by this time zone sub-component. Some specific
2908 requirements for the usage of RRULE for this purpose include:
2910 - If observance is known to have an effective end date, the
2911 "UNTIL" recurrence rule parameter MUST be used to specify the
2912 last valid onset of this observance (i.e., the UNTIL date-time
2913 will be equal to the last instance generated by the recurrence
2914 pattern). It MUST be specified in UTC time.
2916 - The "DTSTART" and the "TZOFFSETTO" properties MUST be used
2917 when generating the onset date-time values (instances) from the
2918 RRULE.
2920 Alternatively, the "RDATE" property can be used to define the onset
2921 of the observance by giving the individual onset date and times.
2922 "RDATE" in this usage MUST be specified as a local DATE-TIME value in
2923 UTC time.
2925 The optional "COMMENT" property is also allowed for descriptive
2926 explanatory text.
2928 Example: The following are examples of the "VTIMEZONE" calendar
2929 component:
2931 This is an example showing time zone information for the Eastern
2932 United States using "RDATE" property. Note that this is only suitable
2933 for a recurring event that starts on or later than April 6, 1997 at
2934 03:00:00 EDT (i.e., the earliest effective transition date and time)
2935 and ends no later than April 7, 1998 02:00:00 EST (i.e., latest valid
2936 date and time for EST in this scenario). For example, this can be
2937 used for a recurring event that occurs every Friday, 8am-9:00 AM,
2938 starting June 1, 1997, ending December 31, 1997.
2940 BEGIN:VTIMEZONE
2941 TZID:America-New_York
2942 LAST-MODIFIED:19870101T000000Z
2943 BEGIN:STANDARD
2944 DTSTART:19971026T020000
2945 RDATE:19971026T020000
2946 TZOFFSETFROM:-0400
2947 TZOFFSETTO:-0500
2948 TZNAME:EST
2949 END:STANDARD
2950 BEGIN:DAYLIGHT
2951 DTSTART:19971026T020000
2952 RDATE:19970406T020000
2953 TZOFFSETFROM:-0500
2954 TZOFFSETTO:-0400
2955 TZNAME:EDT
2956 END:DAYLIGHT
2957 END:VTIMEZONE
2959 This is a simple example showing the current time zone rules for the
2960 Eastern United States using a RRULE recurrence pattern. Note that
2961 there is no effective end date to either of the Standard Time or
2962 Daylight Time rules. This information would be valid for a recurring
2963 event starting today and continuing indefinitely.
2965 BEGIN:VTIMEZONE
2966 TZID:America-New_York
2967 LAST-MODIFIED:19870101T000000Z
2968 TZURL:http://zones.stds_r_us.net/tz/America-New_York
2969 BEGIN:STANDARD
2970 DTSTART:19671029T020000
2971 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
2972 TZOFFSETFROM:-0400
2973 TZOFFSETTO:-0500
2974 TZNAME:EST
2975 END:STANDARD
2976 BEGIN:DAYLIGHT
2977 DTSTART:19870405T020000
2978 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
2979 TZOFFSETFROM:-0500
2980 TZOFFSETTO:-0400
2981 TZNAME:EDT
2982 END:DAYLIGHT
2983 END:VTIMEZONE
2985 This is an example showing a fictitious set of rules for the Eastern
2986 United States, where the Daylight Time rule has an effective end date
2987 (i.e., after that date, Daylight Time is no longer observed).
2989 BEGIN:VTIMEZONE
2990 TZID:America-New_York
2991 LAST-MODIFIED:19870101T000000Z
2992 BEGIN:STANDARD
2993 DTSTART:19671029T020000
2994 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
2995 TZOFFSETFROM:-0400
2996 TZOFFSETTO:-0500
2997 TZNAME:EST
2998 END:STANDARD
2999 BEGIN:DAYLIGHT
3000 DTSTART:19870405T020000
3001 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z
3002 TZOFFSETFROM:-0500
3003 TZOFFSETTO:-0400
3004 TZNAME:EDT
3005 END:DAYLIGHT
3006 END:VTIMEZONE
3007 This is an example showing a fictitious set of rules for the Eastern
3008 United States, where the first Daylight Time rule has an effective
3009 end date. There is a second Daylight Time rule that picks up where
3010 the other left off.
3012 BEGIN:VTIMEZONE
3013 TZID:America-New_York
3014 LAST-MODIFIED:19870101T000000Z
3015 BEGIN:STANDARD
3016 DTSTART:19671029T020000
3017 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
3018 TZOFFSETFROM:-0400
3019 TZOFFSETTO:-0500
3020 TZNAME:EST
3021 END:STANDARD
3022 BEGIN:DAYLIGHT
3023 DTSTART:19870405T020000
3024 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z
3025 TZOFFSETFROM:-0500
3026 TZOFFSETTO:-0400
3027 TZNAME:EDT
3028 END:DAYLIGHT
3029 BEGIN:DAYLIGHT
3030 DTSTART:19990424T020000
3031 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=4
3032 TZOFFSETFROM:-0500
3033 TZOFFSETTO:-0400
3034 TZNAME:EDT
3035 END:DAYLIGHT
3036 END:VTIMEZONE
3038 4.6.6 Alarm Component
3040 Component Name: VALARM
3042 Purpose: Provide a grouping of component properties that define an
3043 alarm.
3045 Formal Definition: A "VALARM" calendar component is defined by the
3046 following notation:
3048 alarmc = "BEGIN" ":" "VALARM" CRLF
3049 (audioprop / dispprop / emailprop / procprop)
3050 "END" ":" "VALARM" CRLF
3052 audioprop = action trigger [duration repeat] [attach] *x-prop
3054 dispprop = action description trigger [duration
3055 repeat] *x-prop
3057 emailprop = action 1*attendee *attach description
3058 trigger [duration repeat] summary *x-prop
3059 procprop = action attach [description] trigger [duration
3060 repeat] *x-prop
3062 Description: A "VALARM" calendar component is a grouping of component
3063 properties that is a reminder or alarm for an event or a to-do. For
3064 example, it may be used to define a reminder for a pending event or
3065 an overdue to-do.
3067 The "VALARM" calendar component MUST include the "ACTION" and
3068 "TRIGGER" properties. The "ACTION" property further constrains the
3069 "VALARM" calendar component in the following ways:
3071 When the action is "AUDIO", the alarm can also include one and only
3072 one "ATTACH" property, which MUST point to a sound resource, which is
3073 rendered when the alarm is triggered.
3075 When the action is "DISPLAY", the alarm MUST also include a
3076 "DESCRIPTION" property, which contains the text to be displayed when
3077 the alarm is triggered.
3079 When the action is "EMAIL", the alarm MUST include a "DESCRIPTION"
3080 property, which contains the text to be used as the message body, a
3081 "SUMMARY" property, which contains the text to be used as the message
3082 subject, and one or more "ATTENDEE" properties, which contain the
3083 email address of attendees to receive the message. It can also
3084 include one or more "ATTACH" properties, which are intended to be
3085 sent as message attachments. When the alarm is triggered, the email
3086 message is sent.
3088 When the action is "PROCEDURE", the alarm MUST include one and only
3089 one "ATTACH" property, which MUST point to a procedure resource,
3090 which is invoked when the alarm is triggered.
3092 The "VALARM" calendar component MUST only appear within either a
3093 "VEVENT" or "VTODO" calendar component. "VALARM" calendar components
3094 cannot be nested. Multiple mutually independent "VALARM" calendar
3095 components can be specified for a single "VEVENT" or "VTODO" calendar
3096 component.
3098 The "TRIGGER" property specifies when the alarm will be triggered.
3099 The "TRIGGER" property specifies a duration prior to the start of an
3100 event or a to-do. The "TRIGGER" edge may be explicitly set to be
3101 relative to the "START" or "END" of the event or to-do with the
3102 "RELATED" parameter of the "TRIGGER" property. The "TRIGGER" property
3103 value type can alternatively be set to an absolute calendar date and
3104 time of day value.
3106 In an alarm set to trigger on the "START" of an event or to-do, the
3107 "DTSTART" property MUST be present in the associated event or to-do.
3108 In an alarm in a "VEVENT" calendar component set to trigger on the
3109 "END" of the event, either the "DTEND" property MUST be present, or
3110 the "DTSTART" and "DURATION" properties MUST both be present. In an
3111 alarm in a "VTODO" calendar component set to trigger on the "END" of
3112 the to-do, either the "DUE" property MUST be present, or the
3113 "DTSTART" and "DURATION" properties MUST both be present.
3115 The alarm can be defined such that it triggers repeatedly. A
3116 definition of an alarm with a repeating trigger MUST include both the
3117 "DURATION" and "REPEAT" properties. The "DURATION" property specifies
3118 the delay period, after which the alarm will repeat. The "REPEAT"
3119 property specifies the number of additional repetitions that the
3120 alarm will triggered. This repitition count is in addition to the
3121 initial triggering of the alarm. Both of these properties MUST be
3122 present in order to specify a repeating alarm. If one of these two
3123 properties is absent, then the alarm will not repeat beyond the
3124 initial trigger.
3126 The "ACTION" property is used within the "VALARM" calendar component
3127 to specify the type of action invoked when the alarm is triggered.
3128 The "VALARM" properties provide enough information for a specific
3129 action to be invoked. It is typically the responsibility of a
3130 "Calendar User Agent" (CUA) to deliver the alarm in the specified
3131 fashion. An "ACTION" property value of AUDIO specifies an alarm that
3132 causes a sound to be played to alert the user; DISPLAY specifies an
3133 alarm that causes a text message to be displayed to the user; EMAIL
3134 specifies an alarm that causes an electronic email message to be
3135 delivered to one or more email addresses; and PROCEDURE specifies an
3136 alarm that causes a procedure to be executed. The "ACTION" property
3137 MUST specify one and only one of these values.
3139 In an AUDIO alarm, if the optional "ATTACH" property is included, it
3140 MUST specify an audio sound resource. The intention is that the sound
3141 will be played as the alarm effect. If an "ATTACH" property is
3142 specified that does not refer to a sound resource, or if the
3143 specified sound resource cannot be rendered (because its format is
3144 unsupported, or because it cannot be retrieved), then the CUA or
3145 other entity responsible for playing the sound may choose a fallback
3146 action, such as playing a built-in default sound, or playing no sound
3147 at all.
3149 In a DISPLAY alarm, the intended alarm effect is for the text value
3150 of the "DESCRIPTION" property to be displayed to the user.
3152 In an EMAIL alarm, the intended alarm effect is for an email message
3153 to be composed and delivered to all the addresses specified by the
3154 "ATTENDEE" properties in the "VALARM" calendar component. The
3155 "DESCRIPTION" property of the "VALARM" calendar component MUST be
3156 used as the body text of the message, and the "SUMMARY" property MUST
3157 be used as the subject text. Any "ATTACH" properties in the "VALARM"
3158 calendar component SHOULD be sent as attachments to the message.
3160 In a PROCEDURE alarm, the "ATTACH" property in the "VALARM" calendar
3161 component MUST specify a procedure or program that is intended to be
3162 invoked as the alarm effect. If the procedure or program is in a
3163 format that cannot be rendered, then no procedure alarm will be
3164 invoked. If the "DESCRIPTION" property is present, its value
3165 specifies the argument string to be passed to the procedure or
3166 program. "Calendar User Agents" that receive an iCalendar object with
3167 this category of alarm, can disable or allow the "Calendar User" to
3168 disable, or otherwise ignore this type of alarm. While a very useful
3169 alarm capability, the PROCEDURE type of alarm SHOULD be treated by
3170 the "Calendar User Agent" as a potential security risk.
3172 Example: The following example is for a "VALARM" calendar component
3173 that specifies an audio alarm that will sound at a precise time and
3174 repeat 4 more times at 15 minute intervals:
3176 BEGIN:VALARM
3177 TRIGGER;VALUE=DATE-TIME:19970317T133000Z
3178 REPEAT:4
3179 DURATION:PT15M
3180 ACTION:AUDIO
3181 ATTACH;FMTTYPE=audio/basic:ftp://host.com/pub/sounds/bell-01.aud
3182 END:VALARM
3184 The following example is for a "VALARM" calendar component that
3185 specifies a display alarm that will trigger 30 minutes before the
3186 scheduled start of the event or the due date/time of the to-do it is
3187 associated with and will repeat 2 more times at 15 minute intervals:
3189 BEGIN:VALARM
3190 TRIGGER:-PT30M
3191 REPEAT:2
3192 DURATION:PT15M
3193 ACTION:DISPLAY
3194 DESCRIPTION:Breakfast meeting with executive\n
3195 team at 8:30 AM EST.
3196 END:VALARM
3198 The following example is for a "VALARM" calendar component that
3199 specifies an email alarm that will trigger 2 days before the
3200 scheduled due date/time of a to-do it is associated with. It does not
3201 repeat. The email has a subject, body and attachment link.
3203 BEGIN:VALARM
3204 TRIGGER:-P2D
3205 ACTION:EMAIL
3206 ATTENDEE:MAILTO:john_doe@host.com
3207 SUMMARY:*** REMINDER: SEND AGENDA FOR WEEKLY STAFF MEETING ***
3208 DESCRIPTION:A draft agenda needs to be sent out to the attendees
3209 to the weekly managers meeting (MGR-LIST). Attached is a
3210 pointer the document template for the agenda file.
3211 ATTACH;FMTTYPE=application/binary:http://host.com/templates/agen
3212 da.doc
3213 END:VALARM
3215 The following example is for a "VALARM" calendar component that
3216 specifies a procedural alarm that will trigger at a precise date/time
3217 and will repeat 23 more times at one hour intervals. The alarm will
3218 invoke a procedure file.
3220 BEGIN:VALARM
3221 TRIGGER;VALUE=DATE-TIME:19980101T050000Z
3222 REPEAT:23
3223 DURATION:PT1H
3224 ACTION:PROCEDURE
3225 ATTACH;FMTTYPE=application/binary:ftp://host.com/novo-
3226 procs/felizano.exe
3227 END:VALARM
3229 4.7 Calendar Properties
3231 The Calendar Properties are attributes that apply to the iCalendar
3232 object, as a whole. These properties do not appear within a calendar
3233 component. They SHOULD be specified after the "BEGIN:VCALENDAR"
3234 property and prior to any calendar component.
3236 4.7.1 Calendar Scale
3238 Property Name: CALSCALE
3240 Purpose: This property defines the calendar scale used for the
3241 calendar information specified in the iCalendar object.
3243 Value Type: TEXT
3245 Property Parameters: Non-standard property parameters can be
3246 specified on this property.
3248 Conformance: Property can be specified in an iCalendar object. The
3249 default value is "GREGORIAN".
3251 Description: This memo is based on the Gregorian calendar scale. The
3252 Gregorian calendar scale is assumed if this property is not specified
3253 in the iCalendar object. It is expected that other calendar scales
3254 will be defined in other specifications or by future versions of this
3255 memo.
3257 Format Definition: The property is defined by the following notation:
3259 calscale = "CALSCALE" calparam ":" calvalue CRLF
3261 calparam = *(";" xparam)
3263 calvalue = "GREGORIAN" / iana-token
3265 Example: The following is an example of this property:
3267 CALSCALE:GREGORIAN
3269 4.7.2 Method
3271 Property Name: METHOD
3272 Purpose: This property defines the iCalendar object method associated
3273 with the calendar object.
3275 Value Type: TEXT
3277 Property Parameters: Non-standard property parameters can be
3278 specified on this property.
3280 Conformance: The property can be specified in an iCalendar object.
3282 Description: When used in a MIME message entity, the value of this
3283 property MUST be the same as the Content-Type "method" parameter
3284 value. This property can only appear once within the iCalendar
3285 object. If either the "METHOD" property or the Content-Type "method"
3286 parameter is specified, then the other MUST also be specified.
3288 No methods are defined by this specification. This is the subject of
3289 other specifications, such as the iCalendar Transport-independent
3290 Interoperability Protocol (iTIP) defined by [ITIP].
3292 If this property is not present in the iCalendar object, then a
3293 scheduling transaction MUST NOT be assumed. In such cases, the
3294 iCalendar object is merely being used to transport a snapshot of some
3295 calendar information; without the intention of conveying a scheduling
3296 semantic.
3298 Format Definition: The property is defined by the following notation:
3300 method = "METHOD" metparam ":" metvalue CRLF
3302 metparam = *(";" xparam)
3304 metvalue = iana-token
3306 Example: The following is a hypothetical example of this property to
3307 convey that the iCalendar object is a request for a meeting:
3309 METHOD:REQUEST
3311 4.7.3 Product Identifier
3313 Property Name: PRODID
3315 Purpose: This property specifies the identifier for the product that
3316 created the iCalendar object.
3318 Value Type: TEXT
3320 Property Parameters: Non-standard property parameters can be
3321 specified on this property.
3323 Conformance: The property MUST be specified once in an iCalendar
3324 object.
3326 Description: The vendor of the implementation SHOULD assure that this
3327 is a globally unique identifier; using some technique such as an FPI
3328 value, as defined in [ISO 9070].
3330 This property SHOULD not be used to alter the interpretation of an
3331 iCalendar object beyond the semantics specified in this memo. For
3332 example, it is not to be used to further the understanding of non-
3333 standard properties.
3335 Format Definition: The property is defined by the following notation:
3337 prodid = "PRODID" pidparam ":" pidvalue CRLF
3339 pidparam = *(";" xparam)
3341 pidvalue = text
3342 ;Any text that describes the product and version
3343 ;and that is generally assured of being unique.
3345 Example: The following is an example of this property. It does not
3346 imply that English is the default language.
3348 PRODID:-//ABC Corporation//NONSGML My Product//EN
3350 4.7.4 Version
3352 Property Name: VERSION
3354 Purpose: This property specifies the identifier corresponding to the
3355 highest version number or the minimum and maximum range of the
3356 iCalendar specification that is required in order to interpret the
3357 iCalendar object.
3359 Value Type: TEXT
3361 Property Parameters: Non-standard property parameters can be
3362 specified on this property.
3364 Conformance: This property MUST be specified by an iCalendar object,
3365 but MUST only be specified once.
3367 Description: A value of "2.0" corresponds to this memo.
3369 Format Definition: The property is defined by the following notation:
3371 version = "VERSION" verparam ":" vervalue CRLF
3373 verparam = *(";" xparam)
3375 vervalue = "2.0" ;This memo
3376 / maxver
3377 / (minver ";" maxver)
3378 minver =
3379 ;Minimum iCalendar version needed to parse the iCalendar object
3381 maxver =
3382 ;Maximum iCalendar version needed to parse the iCalendar object
3384 Example: The following is an example of this property:
3386 VERSION:2.0
3388 4.8 Component Properties
3390 The following properties can appear within calendar components, as
3391 specified by each component property definition.
3393 4.8.1 Descriptive Component Properties
3395 The following properties specify descriptive information about
3396 calendar components.
3398 4.8.1.1 Attachment
3400 Property Name: ATTACH
3402 Purpose: The property provides the capability to associate a document
3403 object with a calendar component.
3405 Value Type: The default value type for this property is URI. The
3406 value type can also be set to BINARY to indicate inline binary
3407 encoded content information.
3409 Property Parameters: Non-standard, inline encoding, format type and
3410 value data type property parameters can be specified on this
3411 property.
3413 Conformance: The property can be specified in a "VEVENT", "VTODO",
3414 "VJOURNAL" or "VALARM" calendar components.
3416 Description: The property can be specified within "VEVENT", "VTODO",
3417 "VJOURNAL", or "VALARM" calendar components. This property can be
3418 specified multiple times within an iCalendar object.
3420 Format Definition: The property is defined by the following notation:
3422 attach = "ATTACH" attparam ":" uri CRLF
3424 attach =/ "ATTACH" attparam ";" "ENCODING" "=" "BASE64"
3425 ";" "VALUE" "=" "BINARY" ":" binary
3427 attparam = [";" fmttypeparam] *(";" xparam)
3429 Example: The following are examples of this property:
3431 ATTACH:CID:jsmith.part3.960817T083000.xyzMail@host1.com
3432 ATTACH;FMTTYPE=application/postscript:ftp://xyzCorp.com/pub/
3433 reports/r-960812.ps
3435 4.8.1.2 Categories
3437 Property Name: CATEGORIES
3439 Purpose: This property defines the categories for a calendar
3440 component.
3442 Value Type: TEXT
3444 Property Parameters: Non-standard and language property parameters
3445 can be specified on this property.
3447 Conformance: The property can be specified within "VEVENT", "VTODO"
3448 or "VJOURNAL" calendar components.
3450 Description: This property is used to specify categories or subtypes
3451 of the calendar component. The categories are useful in searching for
3452 a calendar component of a particular type and category. Within the
3453 "VEVENT", "VTODO" or "VJOURNAL" calendar components, more than one
3454 category can be specified as a list of categories separated by the
3455 COMMA character (US-ASCII decimal 44).
3457 Format Definition: The property is defined by the following notation:
3459 categories = "CATEGORIES" catparam ":" text *("," text)
3460 CRLF
3462 catparam = [";" languageparam]
3463 *(";" xparam)
3465 Example: The following are examples of this property:
3467 CATEGORIES:APPOINTMENT,EDUCATION
3469 CATEGORIES:MEETING
3471 4.8.1.3 Classification
3473 Property Name: CLASS
3475 Purpose: This property defines the access classification for a
3476 calendar component.
3478 Value Type: TEXT
3480 Property Parameters: Non-standard property parameters can be
3481 specified on this property.
3483 Conformance: The property can be specified once in a "VEVENT",
3484 "VTODO" or "VJOURNAL" calendar components.
3486 Description: An access classification is only one component of the
3487 general security system within a calendar application. It provides a
3488 method of capturing the scope of the access the calendar owner
3489 intends for information within an individual calendar entry. The
3490 access classification of an individual iCalendar component is useful
3491 when measured along with the other security components of a calendar
3492 system (e.g., calendar user authentication, authorization, access
3493 rights, access role, etc.). Hence, the semantics of the individual
3494 access classifications cannot be completely defined by this memo
3495 alone. Additionally, due to the "blind" nature of most exchange
3496 processes using this memo, these access classifications cannot serve
3497 as an enforcement statement for a system receiving an iCalendar
3498 object. Rather, they provide a method for capturing the intention of
3499 the calendar owner for the access to the calendar component. The
3500 [ICMS] provides a broader description of the security system within a
3501 calendar application.
3503 Format Definition: The property is defined by the following notation:
3505 class = "CLASS" classparam ":" classvalue CRLF
3507 classparam = *(";" xparam)
3509 classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token
3510 / x-name
3511 ;Default is PUBLIC
3513 Example: The following is an example of this property:
3515 CLASS:PUBLIC
3517 4.8.1.4 Comment
3519 Property Name: COMMENT
3521 Purpose: This property specifies non-processing information intended
3522 to provide a comment to the calendar user.
3524 Value Type: TEXT
3526 Property Parameters: Non-standard, alternate text representation and
3527 language property parameters can be specified on this property.
3529 Conformance: This property can be specified in "VEVENT", "VTODO",
3530 "VJOURNAL", "VTIMEZONE" or "VFREEBUSY" calendar components.
3532 Description: The property can be specified multiple times.
3534 Format Definition: The property is defined by the following notation:
3536 comment = "COMMENT" commparam ":" text CRLF
3538 commparam = [";" altrepparam ] [";" languageparam]
3539 *(";" xparam)
3540 Example: The following is an example of this property:
3542 COMMENT:The meeting really needs to include both ourselves
3543 and the customer. We can't hold this meeting without them.
3544 As a matter of fact\, the venue for the meeting ought to be at
3545 their site. - - John
3547 The data type for this property is TEXT.
3549 4.8.1.5 Description
3551 Property Name: DESCRIPTION
3553 Purpose: This property provides a more complete description of the
3554 calendar component, than that provided by the "SUMMARY" property.
3556 Value Type: TEXT
3558 Property Parameters: Non-standard, alternate text representation and
3559 language property parameters can be specified on this property.
3561 Conformance: The property can be specified in the "VEVENT", "VTODO",
3562 "VJOURNAL" or "VALARM" calendar components. The property can be
3563 specified multiple times only within a "VJOURNAL" calendar component.
3565 Description: This property is used in the "VEVENT" and "VTODO" to
3566 capture lengthy textual decriptions associated with the activity.
3568 This property is used in the "VJOURNAL" calendar component to capture
3569 one more textual journal entries.
3571 This property is used in the "VALARM" calendar component to capture
3572 the display text for a DISPLAY category of alarm, to capture the body
3573 text for an EMAIL category of alarm and to capture the argument
3574 string for a PROCEDURE category of alarm.
3576 Format Definition: The property is defined by the following notation:
3578 description = "DESCRIPTION" descparam ":" text CRLF
3580 descparam = [";" altrepparam] [";" languageparam]
3581 *(";" xparam)
3583 Example: The following is an example of the property with formatted
3584 line breaks in the property value:
3586 DESCRIPTION:Meeting to provide technical review for "Phoenix"
3587 design.\n Happy Face Conference Room. Phoenix design team
3588 MUST attend this meeting.\n RSVP to team leader.
3590 The following is an example of the property with folding of long
3591 lines:
3593 DESCRIPTION:Last draft of the new novel is to be completed
3594 for the editor's proof today.
3596 4.8.1.6 Geographic Position
3598 Property Name: GEO
3600 Purpose: This property specifies information related to the global
3601 position for the activity specified by a calendar component.
3603 Value Type: FLOAT. The value MUST be two SEMICOLON separated FLOAT
3604 values.
3606 Property Parameters: Non-standard property parameters can be
3607 specified on this property.
3609 Conformance: This property can be specified in "VEVENT" or "VTODO"
3610 calendar components..
3612 Description: The property value specifies latitude and longitude, in
3613 that order (i.e., "LAT LON" ordering). The longitude represents the
3614 location east or west of the prime meridian as a positive or negative
3615 real number, respectively. The latitude represents the location north
3616 and south of the equator as a positive or negative real number,
3617 respectively. The longitude and latitude values MUST be specified as
3618 decimal degrees and SHOULD be specified to six decimal places. This
3619 will allow for granularity within a meter of the geographical
3620 position. The simple formula for converting degrees-minutes-seconds
3621 into decimal degrees is:
3623 decimal = degrees + minutes/60 + seconds/3600.
3625 Format Definition: The property is defined by the following notation:
3627 geo = "GEO" geoparam ":" geovalue CRLF
3629 geoparam = *(";" xparam)
3631 geovalue = float ";" float
3632 ;Latitude and Longitude components
3634 Example: The following is an example of this property:
3636 GEO:37.386013;-122.082932
3638 4.8.1.7 Location
3640 Property Name: LOCATION
3642 Purpose: The property defines the intended venue for the activity
3643 defined by a calendar component.
3645 Value Type: TEXT
3646 Property Parameters: Non-standard, alternate text representation and
3647 language property parameters can be specified on this property.
3649 Conformance: This property can be specified in "VEVENT" or "VTODO"
3650 calendar component.
3652 Description: Specific venues such as conference or meeting rooms may
3653 be explicitly specified using this property. An alternate
3654 representation may be specified that is a URI that points to
3655 directory information with more structured specification of the
3656 location. For example, the alternate representation may specify
3657 either an LDAP URI pointing to an LDAP server entry or a CID URI
3658 pointing to a MIME body part containing a vCard for the location.
3660 Format Definition: The property is defined by the following notation:
3662 location = "LOCATION locparam ":" text CRLF
3664 locparam = [";" altrepparam] [";" languageparam]
3665 *(";" xparam)
3667 Example: The following are some examples of this property:
3669 LOCATION:Conference Room - F123, Bldg. 002
3671 LOCATION;ALTREP="http://xyzcorp.com/conf-rooms/f123.vcf":
3672 Conference Room - F123, Bldg. 002
3674 4.8.1.8 Percent Complete
3676 Property Name: PERCENT-COMPLETE
3678 Purpose: This property is used by an assignee or delegatee of a to-do
3679 to convey the percent completion of a to-do to the Organizer.
3681 Value Type: INTEGER
3683 Property Parameters: Non-standard property parameters can be
3684 specified on this property.
3686 Conformance: This property can be specified in a "VTODO" calendar
3687 component.
3689 Description: The property value is a positive integer between zero
3690 and one hundred. A value of "0" indicates the to-do has not yet been
3691 started. A value of "100" indicates that the to-do has been
3692 completed. Integer values in between indicate the percent partially
3693 complete.
3695 When a to-do is assigned to multiple individuals, the property value
3696 indicates the percent complete for that portion of the to-do assigned
3697 to the assignee or delegatee. For example, if a to-do is assigned to
3698 both individuals "A" and "B". A reply from "A" with a percent
3699 complete of "70" indicates that "A" has completed 70% of the to-do
3700 assigned to them. A reply from "B" with a percent complete of "50"
3701 indicates "B" has completed 50% of the to-do assigned to them.
3703 Format Definition: The property is defined by the following notation:
3705 percent = "PERCENT-COMPLETE" pctparam ":" integer CRLF
3707 pctparam = *(";" xparam)
3709 Example: The following is an example of this property to show 39%
3710 completion:
3712 PERCENT-COMPLETE:39
3714 4.8.1.9 Priority
3716 Property Name: PRIORITY
3718 Purpose: The property defines the relative priority for a calendar
3719 component.
3721 Value Type: INTEGER
3723 Property Parameters: Non-standard property parameters can be
3724 specified on this property.
3726 Conformance: The property can be specified in a "VEVENT" or "VTODO"
3727 calendar component.
3729 Description: The priority is specified as an integer in the range
3730 zero to nine. A value of zero (US-ASCII decimal 48) specifies an
3731 undefined priority. A value of one (US-ASCII decimal 49) is the
3732 highest priority. A value of two (US-ASCII decimal 50) is the second
3733 highest priority. Subsequent numbers specify a decreasing ordinal
3734 priority. A value of nine (US-ASCII decimal 58) is the lowest
3735 priority.
3737 A CUA with a three-level priority scheme of "HIGH", "MEDIUM" and
3738 "LOW" is mapped into this property such that a property value in the
3739 range of one (US-ASCII decimal 49) to four (US-ASCII decimal 52)
3740 specifies "HIGH" priority. A value of five (US-ASCII decimal 53) is
3741 the normal or "MEDIUM" priority. A value in the range of six (US-
3742 ASCII decimal 54) to nine (US-ASCII decimal 58) is "LOW" priority.
3744 A CUA with a priority schema of "A1", "A2", "A3", "B1", "B2", ...,
3745 "C3" is mapped into this property such that a property value of one
3746 (US-ASCII decimal 49) specifies "A1", a property value of two (US-
3747 ASCII decimal 50) specifies "A2", a property value of three (US-ASCII
3748 decimal 51) specifies "A3", and so forth up to a property value of 9
3749 (US-ASCII decimal 58) specifies "C3".
3751 Other integer values are reserved for future use.
3753 Within a "VEVENT" calendar component, this property specifies a
3754 priority for the event. This property may be useful when more than
3755 one event is scheduled for a given time period.
3757 Within a "VTODO" calendar component, this property specified a
3758 priority for the to-do. This property is useful in prioritizing
3759 multiple action items for a given time period.
3761 Format Definition: The property is specified by the following
3762 notation:
3764 priority = "PRIORITY" prioparam ":" privalue CRLF
3765 ;Default is zero
3767 prioparam = *(";" xparam)
3769 privalue = integer ;Must be in the range [0..9]
3770 ; All other values are reserved for future use
3772 The following is an example of a property with the highest priority:
3774 PRIORITY:1
3776 The following is an example of a property with a next highest
3777 priority:
3779 PRIORITY:2
3781 Example: The following is an example of a property with no priority.
3782 This is equivalent to not specifying the "PRIORITY" property:
3784 PRIORITY:0
3786 4.8.1.10 Resources
3788 Property Name: RESOURCES
3790 Purpose: This property defines the equipment or resources anticipated
3791 for an activity specified by a calendar entity..
3793 Value Type: TEXT
3795 Property Parameters: Non-standard, alternate text representation and
3796 language property parameters can be specified on this property.
3798 Conformance: This property can be specified in "VEVENT" or "VTODO"
3799 calendar component.
3801 Description: The property value is an arbitrary text. More than one
3802 resource can be specified as a list of resources separated by the
3803 COMMA character (US-ASCII decimal 44).
3805 Format Definition: The property is defined by the following notation:
3807 resources = "RESOURCES" resrcparam ":" text *("," text) CRLF
3809 resrcparam = [";" altrepparam] [";" languageparam]
3810 *(";" xparam)
3812 Example: The following is an example of this property:
3814 RESOURCES:EASEL,PROJECTOR,VCR
3816 RESOURCES;LANGUAGE=fr:1 raton-laveur
3818 4.8.1.11 Status
3820 Property Name: STATUS
3822 Purpose: This property defines the overall status or confirmation for
3823 the calendar component.
3825 Value Type: TEXT
3827 Property Parameters: Non-standard property parameters can be
3828 specified on this property.
3830 Conformance: This property can be specified in "VEVENT", "VTODO" or
3831 "VJOURNAL" calendar components.
3833 Description: In a group scheduled calendar component, the property is
3834 used by the "Organizer" to provide a confirmation of the event to the
3835 "Attendees". For example in a "VEVENT" calendar component, the
3836 "Organizer" can indicate that a meeting is tentative, confirmed or
3837 cancelled. In a "VTODO" calendar component, the "Organizer" can
3838 indicate that an action item needs action, is completed, is in
3839 process or being worked on, or has been cancelled. In a "VJOURNAL"
3840 calendar component, the "Organizer" can indicate that a journal entry
3841 is draft, final or has been cancelled or removed.
3843 Format Definition: The property is defined by the following notation:
3845 status = "STATUS" statparam] ":" statvalue CRLF
3847 statparam = *(";" xparam)
3849 statvalue = "TENTATIVE" ;Indicates event is
3850 ;tentative.
3851 / "CONFIRMED" ;Indicates event is
3852 ;definite.
3853 / "CANCELLED" ;Indicates event was
3854 ;cancelled.
3855 ;Status values for a "VEVENT"
3857 statvalue =/ "NEEDS-ACTION" ;Indicates to-do needs action.
3858 / "COMPLETED" ;Indicates to-do completed.
3859 / "IN-PROCESS" ;Indicates to-do in process of
3860 / "CANCELLED" ;Indicates to-do was cancelled.
3861 ;Status values for "VTODO".
3863 statvalue =/ "DRAFT" ;Indicates journal is draft.
3864 / "FINAL" ;Indicates journal is final.
3865 / "CANCELLED" ;Indicates journal is removed.
3866 ;Status values for "VJOURNAL".
3868 Example: The following is an example of this property for a "VEVENT"
3869 calendar component:
3871 STATUS:TENTATIVE
3873 The following is an example of this property for a "VTODO" calendar
3874 component:
3876 STATUS:NEEDS-ACTION
3878 The following is an example of this property for a "VJOURNAL"
3879 calendar component:
3881 STATUS:DRAFT
3883 4.8.1.12 Summary
3885 Property Name: SUMMARY
3887 Purpose: This property defines a short summary or subject for the
3888 calendar component.
3890 Value Type: TEXT
3892 Property Parameters: Non-standard, alternate text representation and
3893 language property parameters can be specified on this property.
3895 Conformance: The property can be specified in "VEVENT", "VTODO",
3896 "VJOURNAL" or "VALARM" calendar components.
3898 Description: This property is used in the "VEVENT", "VTODO" and
3899 "VJOURNAL" calendar components to capture a short, one line summary
3900 about the activity or journal entry.
3902 This property is used in the "VALARM" calendar component to capture
3903 the subject of an EMAIL category of alarm.
3905 Format Definition: The property is defined by the following notation:
3907 summary = "SUMMARY" summparam ":" text CRLF
3909 summparam = [";" altrepparam] [";" languageparam]
3910 *(";" xparam)
3912 Example: The following is an example of this property:
3914 SUMMARY:Department Party
3916 4.8.2 Date and Time Component Properties
3918 The following properties specify date and time related information in
3919 calendar components.
3921 4.8.2.1 Date/Time Completed
3923 Property Name: COMPLETED
3925 Purpose: This property defines the date and time that a to-do was
3926 actually completed.
3928 Value Type: DATE-TIME
3930 Property Parameters: Non-standard property parameters can be
3931 specified on this property.
3933 Conformance: The property can be specified in a "VTODO" calendar
3934 component.
3936 Description: The date and time MUST be in a UTC format.
3938 Format Definition: The property is defined by the following notation:
3940 completed = "COMPLETED" compparam ":" date-time CRLF
3942 compparam = *(";" xparam)
3944 Example: The following is an example of this property:
3946 COMPLETED:19960401T235959Z
3948 4.8.2.2 Date/Time End
3950 Property Name: DTEND
3952 Purpose: This property specifies the date and time that a calendar
3953 component ends.
3955 Value Type: The default value type is DATE-TIME. The value type can
3956 be set to a DATE value type.
3958 Property Parameters: Non-standard, value data type, time zone
3959 identifier property parameters can be specified on this property.
3961 Conformance: This property can be specified in "VEVENT" or
3962 "VFREEBUSY" calendar components.
3964 Description: Within the "VEVENT" calendar component, this property
3965 defines the date and time by which the event ends. The value MUST be
3966 later in time than the value of the "DTSTART" property.
3968 Within the "VFREEBUSY" calendar component, this property defines the
3969 end date and time for the free or busy time information. The time
3970 MUST be specified in the UTC time format. The value MUST be later in
3971 time than the value of the "DTSTART" property.
3973 Format Definition: The property is defined by the following notation:
3975 dtend = "DTEND" dtendparam":" dtendval CRLF
3977 dtendparam = [";" "VALUE" "=" ("DATE-TIME" / "DATE")]
3978 [";" tzidparam]
3979 *(";" xparam)
3981 dtendval = date-time / date
3982 ;Value MUST match value type
3984 Example: The following is an example of this property:
3986 DTEND:19960401T235959Z
3988 DTEND;VALUE=DATE:19980704
3990 4.8.2.3 Date/Time Due
3992 Property Name: DUE
3994 Purpose: This property defines the date and time that a to-do is
3995 expected to be completed.
3997 Value Type: The default value type is DATE-TIME. The value type can
3998 be set to a DATE value type.
4000 Property Parameters: Non-standard, value data type, time zone
4001 identifier property parameters can be specified on this property.
4003 Conformance: The property can be specified once in a "VTODO" calendar
4004 component.
4006 Description: The value MUST be a date/time equal to or after the
4007 DTSTART value, if specified.
4009 Format Definition: The property is defined by the following notation:
4011 due = "DUE" dueparam":" dueval CRLF
4013 dueparam = [";" "VALUE" "=" ("DATE-TIME" / "DATE")]
4014 [";" tzidparam]
4015 *(";" xparam)
4017 dueval = date-time / date
4018 ;Value MUST match value type
4020 Example: The following is an example of this property:
4022 DUE:19980430T235959Z
4024 4.8.2.4 Date/Time Start
4026 Property Name: DTSTART
4028 Purpose: This property specifies when the calendar component begins.
4030 Value Type: The default value type is DATE-TIME. The time value MUST
4031 be one of the forms defined for the DATE-TIME value type. The value
4032 type can be set to a DATE value type.
4034 Property Parameters: Non-standard, value data type, time zone
4035 identifier property parameters can be specified on this property.
4037 Conformance: This property can be specified in the "VEVENT", "VTODO",
4038 "VFREEBUSY", or "VTIMEZONE" calendar components.
4040 Description: Within the "VEVENT" calendar component, this property
4041 defines the start date and time for the event. The property is
4042 REQUIRED in "VEVENT" calendar components. Events can have a start
4043 date/time but no end date/time. In that case, the event does not take
4044 up any time.
4046 Within the "VFREEBUSY" calendar component, this property defines the
4047 start date and time for the free or busy time information. The time
4048 MUST be specified in UTC time.
4050 Within the "VTIMEZONE" calendar component, this property defines the
4051 effective start date and time for a time zone specification. This
4052 property is REQUIRED within each STANDARD and DAYLIGHT part included
4053 in "VTIMEZONE" calendar components and MUST be specified as a local
4054 DATE-TIME without the "TZID" property parameter.
4056 Format Definition: The property is defined by the following notation:
4058 dtstart = "DTSTART" dtstparam ":" dtstval CRLF
4060 dtstparam = [";" "VALUE" "=" ("DATE-TIME" / "DATE")]
4061 [";" tzidparam]
4062 *(";" xparam)
4064 dtstval = date-time / date
4065 ;Value MUST match value type
4067 Example: The following is an example of this property:
4069 DTSTART:19980118T073000Z
4071 4.8.2.5 Duration
4073 Property Name: DURATION
4075 Purpose: The property specifies a positive duration of time .
4077 Value Type: DURATION
4079 Property Parameters: Non-standard property parameters can be
4080 specified on this property.
4082 Conformance: The property can be specified in "VEVENT", "VTODO",
4083 "VFREEBUSY" or "VALARM" calendar components.
4085 Description: In a "VEVENT" calendar component the property may be
4086 used to specify a duration of the event, instead of an explicit end
4087 date/time. In a "VTODO" calendar component the property may be used
4088 to specify a duration for the to-do, instead of an explicit due
4089 date/time. In a "VFREEBUSY" calendar component the property may be
4090 used to specify the interval of free time being requested. In a
4091 "VALARM" calendar component the property may be used to specify the
4092 delay period prior to repeating an alarm.
4094 Format Definition: The property is defined by the following notation:
4096 duration = "DURATION" durparam ":" dur-value CRLF
4097 ;consisting of a positive duration of time.
4099 durparam = *(";" xparam)
4101 Example: The following is an example of this property that specifies
4102 an interval of time of 1 hour and zero minutes and zero seconds:
4104 DURATION:PT1H0M0S
4106 The following is an example of this property that specifies an
4107 interval of time of 15 minutes.
4109 DURATION:PT15M
4111 4.8.2.6 Free/Busy Time
4113 Property Name: FREEBUSY
4115 Purpose: The property defines one or more free or busy time
4116 intervals.
4118 Value Type: PERIOD. The date and time values MUST be in an UTC time
4119 format.
4121 Property Parameters: Non-standard or free/busy time type property
4122 parameters can be specified on this property.
4124 Conformance: The property can be specified in a "VFREEBUSY" calendar
4125 component.
4127 Property Parameter: "FBTYPE" and non-standard parameters can be
4128 specified on this property.
4130 Description: These time periods can be specified as either a start
4131 and end date-time or a start date-time and duration. The date and
4132 time MUST be a UTC time format.
4134 "FREEBUSY" properties within the "VFREEBUSY" calendar component
4135 SHOULD be sorted in ascending order, based on start time and then end
4136 time, with the earliest periods first.
4138 The "FREEBUSY" property can specify more than one value, separated by
4139 the COMMA character (US-ASCII decimal 44). In such cases, the
4140 "FREEBUSY" property values SHOULD all be of the same "FBTYPE"
4141 property parameter type (e.g., all values of a particular "FBTYPE"
4142 listed together in a single property).
4144 Format Definition: The property is defined by the following notation:
4146 freebusy = "FREEBUSY" fbparam ":" fbvalue
4147 CRLF
4149 fbparam = [";" fbtypeparam] *(";" xparam)
4151 fbvalue = period *["," period]
4152 ;Time value MUST be in the UTC time format.
4154 Example: The following are some examples of this property:
4156 FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M
4158 FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H
4160 FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H,
4161 19970308T230000Z/19970309T000000Z
4163 4.8.2.7 Time Transparency
4165 Property Name: TRANSP
4167 Purpose: This property defines whether an event is transparent or not
4168 to busy time searches.
4170 Value Type: TEXT
4172 Property Parameters: Non-standard property parameters can be
4173 specified on this property.
4175 Conformance: This property can be specified once in a "VEVENT"
4176 calendar component.
4178 Description: Time Transparency is the characteristic of an event that
4179 determines whether it appears to consume time on a calendar. Events
4180 that consume actual time for the individual or resource associated
4181 with the calendar SHOULD be recorded as OPAQUE, allowing them to be
4182 detected by free-busy time searches. Other events, which do not take
4183 up the individual's (or resource's) time SHOULD be recorded as
4184 TRANSPARENT, making them invisible to free-busy time searches.
4186 Format Definition: The property is specified by the following
4187 notation:
4189 transp = "TRANSP" tranparam ":" transvalue CRLF
4191 tranparam = *(";" xparam)
4193 transvalue = "OPAQUE" ;Blocks or opaque on busy time searches.
4194 / "TRANSPARENT" ;Transparent on busy time searches.
4195 ;Default value is OPAQUE
4197 Example: The following is an example of this property for an event
4198 that is transparent or does not block on free/busy time searches:
4200 TRANSP:TRANSPARENT
4202 The following is an example of this property for an event that is
4203 opaque or blocks on free/busy time searches:
4205 TRANSP:OPAQUE
4207 4.8.3 Time Zone Component Properties
4209 The following properties specify time zone information in calendar
4210 components.
4212 4.8.3.1 Time Zone Identifier
4214 Property Name: TZID
4216 Purpose: This property specifies the text value that uniquely
4217 identifies the "VTIMEZONE" calendar component.
4219 Value Type: TEXT
4221 Property Parameters: Non-standard property parameters can be
4222 specified on this property.
4224 Conformance: This property MUST be specified in a "VTIMEZONE"
4225 calendar component.
4227 Description: This is the label by which a time zone calendar
4228 component is referenced by any iCalendar properties whose data type
4229 is either DATE-TIME or TIME and not intended to specify a UTC or a
4230 "floating" time. The presence of the SOLIDUS character (US-ASCII
4231 decimal 47) as a prefix, indicates that this TZID represents an
4232 unique ID in a globally defined time zone registry (when such
4233 registry is defined).
4235 Format Definition: This property is defined by the following
4236 notation:
4238 tzid = "TZID" tzidpropparam ":" [tzidprefix] text CRLF
4240 tzidpropparam = *(";" xparam)
4242 ;tzidprefix = "/"
4243 ; Defined previously. Just listed here for reader convenience.
4245 Example: The following are examples of non-globally unique time zone
4246 identifiers:
4248 TZID:America-New_York
4250 TZID:California-Los_Angeles
4252 The following is an example of a globally unique time zone
4253 identifier:
4255 TZID:/US-New_York-New_York
4257 4.8.3.2 Time Zone Name
4259 Property Name: TZNAME
4261 Purpose: This property specifies the customary designation for a time
4262 zone description.
4264 Value Type: TEXT
4266 Property Parameters: Non-standard and language property parameters
4267 can be specified on this property.
4269 Conformance: This property can be specified in a "VTIMEZONE" calendar
4270 component.
4272 Description: This property may be specified in multiple languages; in
4273 order to provide for different language requirements.
4275 Format Definition: This property is defined by the following
4276 notation:
4278 tzname = "TZNAME" tznparam ":" text CRLF
4280 tznparam = [";" languageparm]
4281 *(";" xparam)
4283 Example: The following are example of this property:
4285 TZNAME:EST
4287 The following is an example of this property when two different
4288 languages for the time zone name are specified:
4290 TZNAME;LANGUAGE=en:EST
4291 TZNAME;LANGUAGE=fr-CA:HNE
4292 4.8.3.3 Time Zone Offset From
4294 Property Name: TZOFFSETFROM
4296 Purpose: This property specifies the offset which is in use prior to
4297 this time zone observance.
4299 Value Type: UTC-OFFSET
4301 Property Parameters: Non-standard property parameters can be
4302 specified on this property.
4304 Conformance: This property MUST be specified in a "VTIMEZONE"
4305 calendar component.
4307 Description: This property specifies the offset which is in use prior
4308 to this time observance. It is used to calculate the absolute time at
4309 which the transition to a given observance takes place. This property
4310 MUST only be specified in a "VTIMEZONE" calendar component. A
4311 "VTIMEZONE" calendar component MUST include this property. The
4312 property value is a signed numeric indicating the number of hours and
4313 possibly minutes from UTC. Positive numbers represent time zones east
4314 of the prime meridian, or ahead of UTC. Negative numbers represent
4315 time zones west of the prime meridian, or behind UTC.
4317 Format Definition: The property is defined by the following notation:
4319 tzoffsetfrom = "TZOFFSETFROM" frmparam ":" utc-offset
4320 CRLF
4322 frmparam = *(";" xparam)
4324 Example: The following are examples of this property:
4326 TZOFFSETFROM:-0500
4328 TZOFFSETFROM:+1345
4330 4.8.3.4 Time Zone Offset To
4332 Property Name: TZOFFSETTO
4334 Purpose: This property specifies the offset which is in use in this
4335 time zone observance.
4337 Value Type: UTC-OFFSET
4339 Property Parameters: Non-standard property parameters can be
4340 specified on this property.
4342 Conformance: This property MUST be specified in a "VTIMEZONE"
4343 calendar component.
4345 Description: This property specifies the offset which is in use in
4346 this time zone observance. It is used to calculate the absolute time
4347 for the new observance. The property value is a signed numeric
4348 indicating the number of hours and possibly minutes from UTC.
4349 Positive numbers represent time zones east of the prime meridian, or
4350 ahead of UTC. Negative numbers represent time zones west of the prime
4351 meridian, or behind UTC.
4353 Format Definition: The property is defined by the following notation:
4355 tzoffsetto = "TZOFFSETTO" toparam ":" utc-offset CRLF
4357 toparam = *(";" xparam)
4359 Example: The following are examples of this property:
4361 TZOFFSETTO:-0400
4363 TZOFFSETTO:+1245
4365 4.8.3.5 Time Zone URL
4367 Property Name: TZURL
4369 Purpose: The TZURL provides a means for a VTIMEZONE component to
4370 point to a network location that can be used to retrieve an up-to-
4371 date version of itself.
4373 Value Type: URI
4375 Property Parameters: Non-standard property parameters can be
4376 specified on this property.
4378 Conformance: This property can be specified in a "VTIMEZONE" calendar
4379 component.
4381 Description: The TZURL provides a means for a VTIMEZONE component to
4382 point to a network location that can be used to retrieve an up-to-
4383 date version of itself. This provides a hook to handle changes
4384 government bodies impose upon time zone definitions. Retrieval of
4385 this resource results in an iCalendar object containing a single
4386 VTIMEZONE component and a METHOD property set to PUBLISH.
4388 Format Definition: The property is defined by the following notation:
4390 tzurl = "TZURL" tzurlparam ":" uri CRLF
4392 tzurlparam = *(";" xparam)
4394 Example: The following is an example of this property:
4396 TZURL:http://timezones.r.us.net/tz/US-California-Los_Angeles
4397 4.8.4 Relationship Component Properties
4399 The following properties specify relationship information in calendar
4400 components.
4402 4.8.4.1 Attendee
4404 Property Name: ATTENDEE
4406 Purpose: The property defines an "Attendee" within a calendar
4407 component.
4409 Value Type: CAL-ADDRESS
4411 Property Parameters: Non-standard, language, calendar user type,
4412 group or list membership, participation role, participation status,
4413 RSVP expectation, delegatee, delegator, sent by, common name or
4414 directory entry reference property parameters can be specified on
4415 this property.
4417 Conformance: This property MUST be specified in an iCalendar object
4418 that specifies a group scheduled calendar entity. This property MUST
4419 NOT be specified in an iCalendar object when publishing the calendar
4420 information (e.g., NOT in an iCalendar object that specifies the
4421 publication of a calendar user's busy time, event, to-do or journal).
4422 This property is not specified in an iCalendar object that specifies
4423 only a time zone definition or that defines calendar entities that
4424 are not group scheduled entities, but are entities only on a single
4425 user's calendar.
4427 Description: The property MUST only be specified within calendar
4428 components to specify participants, non-participants and the chair of
4429 a group scheduled calendar entity. The property is specified within
4430 an "EMAIL" category of the "VALARM" calendar component to specify an
4431 email address that is to receive the email type of iCalendar alarm.
4433 The property parameter CN is for the common or displayable name
4434 associated with the calendar address; ROLE, for the intended role
4435 that the attendee will have in the calendar component; PARTSTAT, for
4436 the status of the attendee's participation; RSVP, for indicating
4437 whether the favor of a reply is requested; CUTYPE, to indicate the
4438 type of calendar user; MEMBER, to indicate the groups that the
4439 attendee belongs to; DELEGATED-TO, to indicate the calendar users
4440 that the original request was delegated to; and DELEGATED-FROM, to
4441 indicate whom the request was delegated from; SENT-BY, to indicate
4442 whom is acting on behalf of the ATTENDEE; and DIR, to indicate the
4443 URI that points to the directory information corresponding to the
4444 attendee. These property parameters can be specified on an "ATTENDEE"
4445 property in either a "VEVENT", "VTODO" or "VJOURNAL" calendar
4446 component. They MUST not be specified in an "ATTENDEE" property in a
4447 "VFREEBUSY" or "VALARM" calendar component. If the LANGUAGE property
4448 parameter is specified, the identified language applies to the CN
4449 parameter.
4451 A recipient delegated a request MUST inherit the RSVP and ROLE values
4452 from the attendee that delegated the request to them.
4454 Multiple attendees can be specified by including multiple "ATTENDEE"
4455 properties within the calendar component.
4457 Format Definition: The property is defined by the following notation:
4459 attendee = "ATTENDEE" attparam ":" cal-address CRLF
4461 attparam = [";" cutypeparam] [";"memberparam] [";" roleparam]
4462 [";" partstatparam] [";" rsvpparam] [";" deltoparam]
4463 [";" delfromparam] [";" sentbyparam] [";"cnparam]
4464 [";" dirparam] [";" languageparam] *(";" xparam)
4466 Example: The following are examples of this property's use for a to-
4467 do:
4469 ORGANIZER:MAILTO:jsmith@host1.com
4470 ATTENDEE;MEMBER="MAILTO:DEV-GROUP@host2.com":
4471 MAILTO:joecool@host2.com
4472 ATTENDEE;DELEGATED-FROM="MAILTO:immud@host3.com":
4473 MAILTO:ildoit@host1.com
4475 The following is an example of this property used for specifying
4476 multiple attendees to an event:
4478 ORGANIZER:MAILTO:jsmith@host1.com
4479 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Henry Cabot
4480 :MAILTO:hcabot@host2.com
4481 ATTENDEE;ROLE=REQ-PARTICIPANT;DELEGATED-FROM="MAILTO:bob@host.com"
4482 ;PARTSTAT=ACCEPTED;CN=Jane Doe:MAILTO:jdoe@host1.com
4484 The following is an example of this property with a URI to the
4485 directory information associated with the attendee:
4487 ATTENDEE;CN=John Smith;DIR="ldap://host.com:6666/o=eDABC%
4488 20Industries,c=3DUS??(cn=3DBJim%20Dolittle)":MAILTO:jimdo@
4489 host1.com
4491 The following is an example of this property with "delegatee" and
4492 "delegator" information for an event:
4494 ORGANIZER;CN=John Smith:MAILTO:jsmith@host.com
4495 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;DELEGATED-FROM=
4496 "MAILTO:iamboss@host2.com";CN=Henry Cabot:MAILTO:hcabot@
4497 host2.com
4498 ATTENDEE;ROLE=NON-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO=
4499 "MAILTO:hcabot@host2.com";CN=The Big Cheese:MAILTO:iamboss
4500 @host2.com
4501 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Jane Doe
4502 :MAILTO:jdoe@host1.com
4503 Example: The following is an example of this property's use when
4504 another calendar user is acting on behalf of the "Attendee":
4506 ATTENDEE;SENT-BY=MAILTO:jan_doe@host1.com;CN=John Smith:MAILTO:
4507 jsmith@host1.com
4509 4.8.4.2 Contact
4511 Property Name: CONTACT
4513 Purpose: The property is used to represent contact information or
4514 alternately a reference to contact information associated with the
4515 calendar component.
4517 Value Type: TEXT
4519 Property Parameters: Non-standard, alternate text representation and
4520 language property parameters can be specified on this property.
4522 Conformance: The property can be specified in a "VEVENT", "VTODO",
4523 "VJOURNAL" or "VFREEBUSY" calendar component.
4525 Description: The property value consists of textual contact
4526 information. An alternative representation for the property value can
4527 also be specified that refers to a URI pointing to an alternate form,
4528 such as a vCard, for the contact information.
4530 Format Definition: The property is defined by the following notation:
4532 contact = "CONTACT" contparam ":" text CRLF
4534 contparam = [";" altrepparam] [";" languageparam]
4535 *(";" xparam)
4537 Example: The following is an example of this property referencing
4538 textual contact information:
4540 CONTACT:Jim Dolittle\, ABC Industries\, +1-919-555-1234
4542 The following is an example of this property with an alternate
4543 representation of a LDAP URI to a directory entry containing the
4544 contact information:
4546 CONTACT;ALTREP="ldap://host.com:6666/o=3DABC%20Industries\,
4547 c=3DUS??(cn=3DBJim%20Dolittle)":Jim Dolittle\, ABC Industries\,
4548 +1-919-555-1234
4550 The following is an example of this property with an alternate
4551 representation of a MIME body part containing the contact
4552 information, such as a vCard embedded in a [MIME-DIR] content-type:
4554 CONTACT;ALTREP="CID=":Jim
4555 Dolittle\, ABC Industries\, +1-919-555-1234
4556 The following is an example of this property referencing a network
4557 resource, such as a vCard object containing the contact information:
4559 CONTACT;ALTREP="http://host.com/pdi/jdoe.vcf":Jim
4560 Dolittle\, ABC Industries\, +1-919-555-1234
4562 4.8.4.3 Organizer
4564 Property Name: ORGANIZER
4566 Purpose: The property defines the organizer for a calendar component.
4568 Value Type: CAL-ADDRESS
4570 Property Parameters: Non-standard, language, common name, directory
4571 entry reference, sent by property parameters can be specified on this
4572 property.
4574 Conformance: This property MUST be specified in an iCalendar object
4575 that specifies a group scheduled calendar entity. This property MUST
4576 be specified in an iCalendar object that specifies the publication of
4577 a calendar user's busy time. This property MUST NOT be specified in
4578 an iCalendar object that specifies only a time zone definition or
4579 that defines calendar entities that are not group scheduled entities,
4580 but are entities only on a single user's calendar.
4582 Description: The property is specified within the "VEVENT", "VTODO",
4583 "VJOURNAL calendar components to specify the organizer of a group
4584 scheduled calendar entity. The property is specified within the
4585 "VFREEBUSY" calendar component to specify the calendar user
4586 requesting the free or busy time. When publishing a "VFREEBUSY"
4587 calendar component, the property is used to specify the calendar that
4588 the published busy time came from.
4590 The property has the property parameters CN, for specifying the
4591 common or display name associated with the "Organizer", DIR, for
4592 specifying a pointer to the directory information associated with the
4593 "Organizer", SENT-BY, for specifying another calendar user that is
4594 acting on behalf of the "Organizer". The non-standard parameters may
4595 also be specified on this property. If the LANGUAGE property
4596 parameter is specified, the identified language applies to the CN
4597 parameter value.
4599 Format Definition: The property is defined by the following notation:
4601 organizer = "ORGANIZER" orgparam ":"
4602 cal-address CRLF
4604 orgparam = [";" cnparam] [";" dirparam] [";" sentbyparam]
4605 [";" languageparam] *(";" xparam)
4607 Example: The following is an example of this property:
4609 ORGANIZER;CN=John Smith:MAILTO:jsmith@host1.com
4610 The following is an example of this property with a pointer to the
4611 directory information associated with the organizer:
4613 ORGANIZER;CN=JohnSmith;DIR="ldap://host.com:6666/o=3DDC%20Associ
4614 ates,c=3DUS??(cn=3DJohn%20Smith)":MAILTO:jsmith@host1.com
4616 The following is an example of this property used by another calendar
4617 user who is acting on behalf of the organizer, with responses
4618 intended to be sent back to the organizer, not the other calendar
4619 user:
4621 ORGANIZER;SENT-BY="MAILTO:jane_doe@host.com":
4622 MAILTO:jsmith@host1.com
4624 4.8.4.4 Recurrence ID
4626 Property Name: RECURRENCE-ID
4628 Purpose: This property is used in conjunction with the "UID" and
4629 "SEQUENCE" property to identify a specific instance of a recurring
4630 "VEVENT", "VTODO" or "VJOURNAL" calendar component. The property
4631 value is the effective value of the "DTSTART" property of the
4632 recurrence instance.
4634 Value Type: The default value type for this property is DATE-TIME.
4635 The time format can be any of the valid forms defined for a DATE-TIME
4636 value type. See DATE-TIME value type definition for specific
4637 interpretations of the various forms. The value type can be set to
4638 DATE.
4640 Property Parameters: Non-standard property, value data type, time
4641 zone identifier and recurrence identifier range parameters can be
4642 specified on this property.
4644 Conformance: This property can be specified in an iCalendar object
4645 containing a recurring calendar component.
4647 Description: The full range of calendar components specified by a
4648 recurrence set is referenced by referring to just the "UID" property
4649 value corresponding to the calendar component. The "RECURRENCE-ID"
4650 property allows the reference to an individual instance within the
4651 recurrence set.
4653 If the value of the "DTSTART" property is a DATE type value, then the
4654 value MUST be the calendar date for the recurrence instance.
4656 The date/time value is set to the time when the original recurrence
4657 instance would occur; meaning that if the intent is to change a
4658 Friday meeting to Thursday, the date/time is still set to the
4659 original Friday meeting.
4661 The "RECURRENCE-ID" property is used in conjunction with the "UID"
4662 and "SEQUENCE" property to identify a particular instance of a
4663 recurring event, to-do or journal. For a given pair of "UID" and
4664 "SEQUENCE" property values, the "RECURRENCE-ID" value for a
4665 recurrence instance is fixed. When the definition of the recurrence
4666 set for a calendar component changes, and hence the "SEQUENCE"
4667 property value changes, the "RECURRENCE-ID" for a given recurrence
4668 instance might also change.The "RANGE" parameter is used to specify
4669 the effective range of recurrence instances from the instance
4670 specified by the "RECURRENCE-ID" property value. The default value
4671 for the range parameter is the single recurrence instance only. The
4672 value can also be "THISANDPRIOR" to indicate a range defined by the
4673 given recurrence instance and all prior instances or the value can be
4674 "THISANDFUTURE" to indicate a range defined by the given recurrence
4675 instance and all subsequent instances.
4677 Format Definition: The property is defined by the following notation:
4679 recurid = "RECURRENCE-ID" ridparam ":" ridval CRLF
4681 ridparam = [";" "VALUE" "=" ("DATE-TIME" / "DATE)]
4682 [";" tzidparam] [";" rangeparam]
4683 *(";" xparam)
4685 ridval = date-time / date
4686 ;Value MUST match value type
4688 Example: The following are examples of this property:
4690 RECURRENCE-ID;VALUE=DATE:19960401
4692 RECURRENCE-ID;RANGE=THISANDFUTURE:19960120T120000Z
4694 4.8.4.5 Related To
4696 Property Name: RELATED-TO
4698 Purpose: The property is used to represent a relationship or
4699 reference between one calendar component and another.
4701 Value Type: TEXT
4703 Property Parameters: Non-standard and relationship type property
4704 parameters can be specified on this property.
4706 Conformance: The property can be specified once in the "VEVENT",
4707 "VTODO" or "VJOURNAL" calendar components.
4709 Description: The property value consists of the persistent, globally
4710 unique identifier of another calendar component. This value would be
4711 represented in a calendar component by the "UID" property.
4713 By default, the property value points to another calendar component
4714 that has a PARENT relationship to the referencing object. The
4715 "RELTYPE" property parameter is used to either explicitly state the
4716 default PARENT relationship type to the referenced calendar component
4717 or to override the default PARENT relationship type and specify
4718 either a CHILD or SIBLING relationship. The PARENT relationship
4719 indicates that the calendar component is a subordinate of the
4720 referenced calendar component. The CHILD relationship indicates that
4721 the calendar component is a superior of the referenced calendar
4722 component. The SIBLING relationship indicates that the calendar
4723 component is a peer of the referenced calendar component.
4725 Changes to a calendar component referenced by this property can have
4726 an implicit impact on the related calendar component. For example, if
4727 a group event changes its start or end date or time, then the
4728 related, dependent events will need to have their start and end dates
4729 changed in a corresponding way. Similarly, if a PARENT calendar
4730 component is canceled or deleted, then there is an implied impact to
4731 the related CHILD calendar components. This property is intended only
4732 to provide information on the relationship of calendar components. It
4733 is up to the target calendar system to maintain any property
4734 implications of this relationship.
4736 Format Definition: The property is defined by the following notation:
4738 related = "RELATED-TO" [relparam] ":" text CRLF
4740 relparam = [";" reltypeparam]
4741 *(";" xparm)
4743 The following is an example of this property:
4745 RELATED-TO:
4747 RELATED-TO:<19960401-080045-4000F192713-0052@host1.com>
4749 4.8.4.6 Uniform Resource Locator
4751 Property Name: URL
4753 Purpose: This property defines a Uniform Resource Locator (URL)
4754 associated with the iCalendar object.
4756 Value Type: URI
4758 Property Parameters: Non-standard property parameters can be
4759 specified on this property.
4761 Conformance: This property can be specified once in the "VEVENT",
4762 "VTODO", "VJOURNAL" or "VFREEBUSY" calendar components.
4764 Description: This property may be used in a calendar component to
4765 convey a location where a more dynamic rendition of the calendar
4766 information associated with the calendar component can be found. This
4767 memo does not attempt to standardize the form of the URI, nor the
4768 format of the resource pointed to by the property value. If the URL
4769 property and Content-Location MIME header are both specified, they
4770 MUST point to the same resource.
4772 Format Definition: The property is defined by the following notation:
4774 url = "URL" urlparam ":" uri CRLF
4776 urlparam = *(";" xparam)
4778 Example: The following is an example of this property:
4780 URL:http://abc.com/pub/calendars/jsmith/mytime.ics
4782 4.8.4.7 Unique Identifier
4784 Property Name: UID
4786 Purpose: This property defines the persistent, globally unique
4787 identifier for the calendar component.
4789 Value Type: TEXT
4791 Property Parameters: Non-standard property parameters can be
4792 specified on this property.
4794 Conformance: The property MUST be specified in the "VEVENT", "VTODO",
4795 "VJOURNAL" or "VFREEBUSY" calendar components.
4797 Description: The UID itself MUST be a globally unique identifier. The
4798 generator of the identifier MUST guarantee that the identifier is
4799 unique. There are several algorithms that can be used to accomplish
4800 this. The identifier is RECOMMENDED to be the identical syntax to the
4801 [RFC 822] addr-spec. A good method to assure uniqueness is to put the
4802 domain name or a domain literal IP address of the host on which the
4803 identifier was created on the right hand side of the "@", and on the
4804 left hand side, put a combination of the current calendar date and
4805 time of day (i.e., formatted in as a DATE-TIME value) along with some
4806 other currently unique (perhaps sequential) identifier available on
4807 the system (for example, a process id number). Using a date/time
4808 value on the left hand side and a domain name or domain literal on
4809 the right hand side makes it possible to guarantee uniqueness since
4810 no two hosts should be using the same domain name or IP address at
4811 the same time. Though other algorithms will work, it is RECOMMENDED
4812 that the right hand side contain some domain identifier (either of
4813 the host itself or otherwise) such that the generator of the message
4814 identifier can guarantee the uniqueness of the left hand side within
4815 the scope of that domain.
4817 This is the method for correlating scheduling messages with the
4818 referenced "VEVENT", "VTODO", or "VJOURNAL" calendar component.
4820 The full range of calendar components specified by a recurrence set
4821 is referenced by referring to just the "UID" property value
4822 corresponding to the calendar component. The "RECURRENCE-ID" property
4823 allows the reference to an individual instance within the recurrence
4824 set.
4826 This property is an important method for group scheduling
4827 applications to match requests with later replies, modifications or
4828 deletion requests. Calendaring and scheduling applications MUST
4829 generate this property in "VEVENT", "VTODO" and "VJOURNAL" calendar
4830 components to assure interoperability with other group scheduling
4831 applications. This identifier is created by the calendar system that
4832 generates an iCalendar object.
4834 Implementations MUST be able to receive and persist values of at
4835 least 255 characters for this property.
4837 Format Definition: The property is defined by the following notation:
4839 uid = "UID" uidparam ":" text CRLF
4841 uidparam = *(";" xparam)
4843 Example: The following is an example of this property:
4845 UID:19960401T080045Z-4000F192713-0052@host1.com
4847 4.8.5 Recurrence Component Properties
4849 The following properties specify recurrence information in calendar
4850 components.
4852 4.8.5.1 Exception Date/Times
4854 Property Name: EXDATE
4856 Purpose: This property defines the list of date/time exceptions for a
4857 recurring calendar component.
4859 Value Type: The default value type for this property is DATE-TIME.
4860 The value type can be set to DATE.
4862 Property Parameters: Non-standard, value data type and time zone
4863 identifier property parameters can be specified on this property.
4865 Conformance: This property can be specified in an iCalendar object
4866 that includes a recurring calendar component.
4868 Description: The exception dates, if specified, are used in computing
4869 the recurrence set. The recurrence set is the complete set of
4870 recurrence instances for a calendar component. The recurrence set is
4871 generated by considering the initial "DTSTART" property along with
4872 the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained
4873 within the iCalendar object. The "DTSTART" property defines the first
4874 instance in the recurrence set. Multiple instances of the "RRULE" and
4875 "EXRULE" properties can also be specified to define more
4876 sophisticated recurrence sets. The final recurrence set is generated
4877 by gathering all of the start date-times generated by any of the
4878 specified "RRULE" and "RDATE" properties, and then excluding any
4879 start date and times which fall within the union of start date and
4880 times generated by any specified "EXRULE" and "EXDATE" properties.
4881 This implies that start date and times within exclusion related
4882 properties (i.e., "EXDATE" and "EXRULE") take precedence over those
4883 specified by inclusion properties (i.e., "RDATE" and "RRULE"). Where
4884 duplicate instances are generated by the "RRULE" and "RDATE"
4885 properties, only one recurrence is considered. Duplicate instances
4886 are ignored.
4888 The "EXDATE" property can be used to exclude the value specified in
4889 "DTSTART". However, in such cases the original "DTSTART" date MUST
4890 still be maintained by the calendaring and scheduling system because
4891 the original "DTSTART" value has inherent usage dependencies by other
4892 properties such as the "RECURRENCE-ID".
4894 Format Definition: The property is defined by the following notation:
4896 exdate = "EXDATE" exdtparam ":" exdtval *("," exdtval) CRLF
4898 exdtparam = [";" "VALUE" "=" ("DATE-TIME" / "DATE")]
4899 [";" tzidparam]
4900 *(";" xparam)
4902 exdtval = date-time / date
4903 ;Value MUST match value type
4905 Example: The following is an example of this property:
4907 EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z
4909 4.8.5.2 Exception Rule
4911 Property Name: EXRULE
4913 Purpose: This property defines a rule or repeating pattern for an
4914 exception to a recurrence set.
4916 Value Type: RECUR
4918 Property Parameters: Non-standard property parameters can be
4919 specified on this property.
4921 Conformance: This property can be specified in "VEVENT", "VTODO" or
4922 "VJOURNAL" calendar components.
4924 Description: The exception rule, if specified, is used in computing
4925 the recurrence set. The recurrence set is the complete set of
4926 recurrence instances for a calendar component. The recurrence set is
4927 generated by considering the initial "DTSTART" property along with
4928 the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained
4929 within the iCalendar object. The "DTSTART" defines the first instance
4930 in the recurrence set. Multiple instances of the "RRULE" and "EXRULE"
4931 properties can also be specified to define more sophisticated
4932 recurrence sets. The final recurrence set is generated by gathering
4933 all of the start date-times generated by any of the specified "RRULE"
4934 and "RDATE" properties, and excluding any start date and times which
4935 fall within the union of start date and times generated by any
4936 specified "EXRULE" and "EXDATE" properties. This implies that start
4937 date and times within exclusion related properties (i.e., "EXDATE"
4938 and "EXRULE") take precedence over those specified by inclusion
4939 properties (i.e., "RDATE" and "RRULE"). Where duplicate instances are
4940 generated by the "RRULE" and "RDATE" properties, only one recurrence
4941 is considered. Duplicate instances are ignored.
4943 The "EXRULE" property can be used to exclude the value specified in
4944 "DTSTART". However, in such cases the original "DTSTART" date MUST
4945 still be maintained by the calendaring and scheduling system because
4946 the original "DTSTART" value has inherent usage dependencies by other
4947 properties such as the "RECURRENCE-ID".
4949 Format Definition: The property is defined by the following notation:
4951 exrule = "EXRULE" exrparam ":" recur CRLF
4953 exrparam = *(";" xparam)
4955 Example: The following are examples of this property. Except every
4956 other week, on Tuesday and Thursday for 4 occurrences:
4958 EXRULE:FREQ=WEEKLY;COUNT=4;INTERVAL=2;BYDAY=TU,TH
4960 Except daily for 10 occurrences:
4962 EXRULE:FREQ=DAILY;COUNT=10
4964 Except yearly in June and July for 8 occurrences:
4966 EXRULE:FREQ=YEARLY;COUNT=8;BYMONTH=6,7
4968 4.8.5.3 Recurrence Date/Times
4970 Property Name: RDATE
4972 Purpose: This property defines the list of date/times for a
4973 recurrence set.
4975 Value Type: The default value type for this property is DATE-TIME.
4976 The value type can be set to DATE or PERIOD.
4978 Property Parameters: Non-standard, value data type and time zone
4979 identifier property parameters can be specified on this property.
4981 Conformance: The property can be specified in "VEVENT", "VTODO",
4982 "VJOURNAL" or "VTIMEZONE" calendar components.
4984 Description: This property can appear along with the "RRULE" property
4985 to define an aggregate set of repeating occurrences. When they both
4986 appear in an iCalendar object, the recurring events are defined by
4987 the union of occurrences defined by both the "RDATE" and "RRULE".
4989 The recurrence dates, if specified, are used in computing the
4990 recurrence set. The recurrence set is the complete set of recurrence
4991 instances for a calendar component. The recurrence set is generated
4992 by considering the initial "DTSTART" property along with the "RRULE",
4993 "RDATE", "EXDATE" and "EXRULE" properties contained within the
4994 iCalendar object. The "DTSTART" property defines the first instance
4995 in the recurrence set. Multiple instances of the "RRULE" and "EXRULE"
4996 properties can also be specified to define more sophisticated
4997 recurrence sets. The final recurrence set is generated by gathering
4998 all of the start date/times generated by any of the specified "RRULE"
4999 and "RDATE" properties, and excluding any start date/times which fall
5000 within the union of start date/times generated by any specified
5001 "EXRULE" and "EXDATE" properties. This implies that start date/times
5002 within exclusion related properties (i.e., "EXDATE" and "EXRULE")
5003 take precedence over those specified by inclusion properties (i.e.,
5004 "RDATE" and "RRULE"). Where duplicate instances are generated by the
5005 "RRULE" and "RDATE" properties, only one recurrence is considered.
5006 Duplicate instances are ignored.
5008 Format Definition: The property is defined by the following notation:
5010 rdate = "RDATE" rdtparam ":" rdtval *("," rdtval) CRLF
5012 rdtparam = [";" "VALUE" "=" ("DATE-TIME" / "DATE"
5013 / "PERIOD")]
5014 [";" tzidparam]
5015 *(";" xparam)
5017 rdtval = date-time / date / period
5018 ;Value MUST match value type
5020 Example: The following are examples of this property:
5022 RDATE:19970714T123000Z
5024 RDATE;TZID=US-EASTERN:19970714T083000
5026 RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z,
5027 19960404T010000Z/PT3H
5029 RDATE;VALUE=DATE:19970101,19970120,19970217,19970421
5030 19970526,19970704,19970901,19971014,19971128,19971129,19971225
5032 4.8.5.4 Recurrence Rule
5034 Property Name: RRULE
5036 Purpose: This property defines a rule or repeating pattern for
5037 recurring events, to-dos, or time zone definitions.
5039 Value Type: RECUR
5041 Property Parameters: Non-standard property parameters can be
5042 specified on this property.
5044 Conformance: This property can be specified one or more times in
5045 recurring "VEVENT", "VTODO" and "VJOURNAL" calendar components. It
5046 can also be specified once in each STANDARD or DAYLIGHT sub-component
5047 of the "VTIMEZONE" calendar component.
5049 Description: The recurrence rule, if specified, is used in computing
5050 the recurrence set. The recurrence set is the complete set of
5051 recurrence instances for a calendar component. The recurrence set is
5052 generated by considering the initial "DTSTART" property along with
5053 the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained
5054 within the iCalendar object. The "DTSTART" property defines the first
5055 instance in the recurrence set. Multiple instances of the "RRULE" and
5056 "EXRULE" properties can also be specified to define more
5057 sophisticated recurrence sets. The final recurrence set is generated
5058 by gathering all of the start date/times generated by any of the
5059 specified "RRULE" and "RDATE" properties, and excluding any start
5060 date/times which fall within the union of start date/times generated
5061 by any specified "EXRULE" and "EXDATE" properties. This implies that
5062 start date/times within exclusion related properties (i.e., "EXDATE"
5063 and "EXRULE") take precedence over those specified by inclusion
5064 properties (i.e., "RDATE" and "RRULE"). Where duplicate instances are
5065 generated by the "RRULE" and "RDATE" properties, only one recurrence
5066 is considered. Duplicate instances are ignored.
5068 The "DTSTART" and "DTEND" property pair or "DTSTART" and "DURATION"
5069 property pair, specified within the iCalendar object defines the
5070 first instance of the recurrence. When used with a recurrence rule,
5071 the "DTSTART" and "DTEND" properties MUST be specified in local time
5072 and the appropriate set of "VTIMEZONE" calendar components MUST be
5073 included. For detail on the usage of the "VTIMEZONE" calendar
5074 component, see the "VTIMEZONE" calendar component definition.
5076 Any duration associated with the iCalendar object applies to all
5077 members of the generated recurrence set. Any modified duration for
5078 specific recurrences MUST be explicitly specified using the "RDATE"
5079 property.
5081 Format Definition: This property is defined by the following
5082 notation:
5084 rrule = "RRULE" rrulparam ":" recur CRLF
5086 rrulparam = *(";" xparam)
5088 Example: All examples assume the Eastern United States time zone.
5090 Daily for 10 occurrences:
5092 DTSTART;TZID=America-New York:19970902T090000
5093 RRULE:FREQ=DAILY;COUNT=10
5095 ==> (1997 9:00 AM EDT)September 2-11
5097 Daily until December 24, 1997:
5099 DTSTART;TZID=America-New York:19970902T090000
5100 RRULE:FREQ=DAILY;UNTIL=19971224T000000Z
5102 ==> (1997 9:00 AM EDT)September 2-30;October 1-25
5103 (1997 9:00 AM EST)October 26-31;November 1-30;December 1-23
5105 Every other day - forever:
5107 DTSTART;TZID=America-New York:19970902T090000
5108 RRULE:FREQ=DAILY;INTERVAL=2
5109 ==> (1997 9:00 AM EDT)September2,4,6,8...24,26,28,30;
5110 October 2,4,6...20,22,24
5111 (1997 9:00 AM EST)October 26,28,30;November 1,3,5,7...25,27,29;
5112 Dec 1,3,...
5114 Every 10 days, 5 occurrences:
5116 DTSTART;TZID=America-New York:19970902T090000
5117 RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5
5119 ==> (1997 9:00 AM EDT)September 2,12,22;October 2,12
5121 Everyday in January, for 3 years:
5123 DTSTART;TZID=America-New York:19980101T090000
5124 RRULE:FREQ=YEARLY;UNTIL=20000131T090000Z;
5125 BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA
5126 or
5127 RRULE:FREQ=DAILY;UNTIL=20000131T090000Z;BYMONTH=1
5129 ==> (1998 9:00 AM EDT)January 1-31
5130 (1999 9:00 AM EDT)January 1-31
5131 (2000 9:00 AM EDT)January 1-31
5133 Weekly for 10 occurrences
5135 DTSTART;TZID=America-New York:19970902T090000
5136 RRULE:FREQ=WEEKLY;COUNT=10
5138 ==> (1997 9:00 AM EDT)September 2,9,16,23,30;October 7,14,21
5139 (1997 9:00 AM EST)October 28;November 4
5141 Weekly until December 24, 1997
5143 DTSTART;TZID=America-New York:19970902T090000
5144 RRULE:FREQ=WEEKLY;UNTIL=19971224T000000Z
5146 ==> (1997 9:00 AM EDT)September 2,9,16,23,30;October 7,14,21
5147 (1997 9:00 AM EST)October 28;November 4,11,18,25;
5148 December 2,9,16,23
5150 Every other week - forever:
5152 DTSTART;TZID=America-New York:19970902T090000
5153 RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=SU
5155 ==> (1997 9:00 AM EDT)September 2,16,30;October 14
5156 (1997 9:00 AM EST)October 28;November 11,25;December 9,23
5157 (1998 9:00 AM EST)January 6,20;February
5158 ...
5160 Weekly on Tuesday and Thursday for 5 weeks:
5162 DTSTART;TZID=America-New York:19970902T090000
5163 RRULE:FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH
5164 or
5165 RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH
5167 ==> (1997 9:00 AM EDT)September 2,4,9,11,16,18,23,25,30;October 2
5169 Every other week on Monday, Wednesday and Friday until December 24,
5170 1997, but starting on Tuesday, September 2, 1997:
5172 DTSTART;TZID=America-New York:19970902T090000
5173 RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;
5174 BYDAY=MO,WE,FR
5175 ==> (1997 9:00 AM EDT)September 2,3,5,15,17,19,29;October
5176 1,3,13,15,17
5177 (1997 9:00 AM EST)October 27,29,31;November 10,12,14,24,26,28;
5178 December 8,10,12,22
5180 Every other week on Tuesday and Thursday, for 8 occurrences:
5182 DTSTART;TZID=America-New York:19970902T090000
5183 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH
5185 ==> (1997 9:00 AM EDT)September 2,4,16,18,30;October 2,14,16
5187 Monthly on the 1st Friday for ten occurrences:
5189 DTSTART;TZID=America-New York:19970905T090000
5190 RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR
5192 ==> (1997 9:00 AM EDT)September 5;October 3
5193 (1997 9:00 AM EST)November 7;Dec 5
5194 (1998 9:00 AM EST)January 2;February 6;March 6;April 3
5195 (1998 9:00 AM EDT)May 1;June 5
5197 Monthly on the 1st Friday until December 24, 1997:
5199 DTSTART;TZID=America-New York:19970905T090000
5200 RRULE:FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR
5202 ==> (1997 9:00 AM EDT)September 5;October 3
5203 (1997 9:00 AM EST)November 7;December 5
5204 Every other month on the 1st and last Sunday of the month for 10
5205 occurrences:
5207 DTSTART;TZID=America-New York:19970907T090000
5208 RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU
5210 ==> (1997 9:00 AM EDT)September 7,28
5211 (1997 9:00 AM EST)November 2,30
5212 (1998 9:00 AM EST)January 4,25;March 1,29
5213 (1998 9:00 AM EDT)May 3,31
5215 Monthly on the second to last Monday of the month for 6 months:
5217 DTSTART;TZID=America-New York:19970922T090000
5218 RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO
5220 ==> (1997 9:00 AM EDT)September 22;October 20
5221 (1997 9:00 AM EST)November 17;December 22
5222 (1998 9:00 AM EST)January 19;February 16
5224 Monthly on the third to the last day of the month, forever:
5226 DTSTART;TZID=America-New York:19970928T090000
5227 RRULE:FREQ=MONTHLY;BYMONTHDAY=-3
5229 ==> (1997 9:00 AM EDT)September 28
5230 (1997 9:00 AM EST)October 29;November 28;December 29
5231 (1998 9:00 AM EST)January 29;February 26
5232 ...
5234 Monthly on the 2nd and 15th of the month for 10 occurrences:
5236 DTSTART;TZID=America-New York:19970902T090000
5237 RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15
5239 ==> (1997 9:00 AM EDT)September 2,15;October 2,15
5240 (1997 9:00 AM EST)November 2,15;December 2,15
5241 (1998 9:00 AM EST)January 2,15
5243 Monthly on the first and last day of the month for 10 occurrences:
5245 DTSTART;TZID=America-New York:19970930T090000
5246 RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1
5248 ==> (1997 9:00 AM EDT)September 30;October 1
5249 (1997 9:00 AM EST)October 31;November 1,30;December 1,31
5250 (1998 9:00 AM EST)January 1,31;February 1
5252 Every 18 months on the 10th thru 15th of the month for 10
5253 occurrences:
5255 DTSTART;TZID=America-New York:19970910T090000
5256 RRULE:FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,13,14,
5257 15
5258 ==> (1997 9:00 AM EDT)September 10,11,12,13,14,15
5259 (1999 9:00 AM EST)March 10,11,12,13
5261 Every Tuesday, every other month:
5263 DTSTART;TZID=America-New York:19970902T090000
5264 RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU
5266 ==> (1997 9:00 AM EDT)September 2,9,16,23,30
5267 (1997 9:00 AM EST)November 4,11,18,25
5268 (1998 9:00 AM EST)January 6,13,20,27;March 3,10,17,24,31
5269 ...
5271 Yearly in June and July for 10 occurrences:
5273 DTSTART;TZID=America-New York:19970610T090000
5274 RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7
5276 ==> (1997 9:00 AM EDT)June 10;July 10
5277 (1998 9:00 AM EDT)June 10;July 10
5278 (1999 9:00 AM EDT)June 10;July 10
5279 (2000 9:00 AM EDT)June 10;July 10
5280 (2001 9:00 AM EDT)June 10;July 10
5281 Note: Since none of the BYDAY, BYMONTHDAY or BYYEARDAY components
5282 are specified, the day is gotten from DTSTART
5284 Every other year on January, February, and March for 10 occurrences:
5286 DTSTART;TZID=America-New York:19970310T090000
5287 RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3
5289 ==> (1997 9:00 AM EST)March 10
5290 (1999 9:00 AM EST)January 10;February 10;March 10
5291 (2001 9:00 AM EST)January 10;February 10;March 10
5292 (2003 9:00 AM EST)January 10;February 10;March 10
5294 Every 3rd year on the 1st, 100th and 200th day for 10 occurrences:
5296 DTSTART;TZID=America-New York:19970101T090000
5297 RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200
5299 ==> (1997 9:00 AM EST)January 1
5300 (1997 9:00 AM EDT)April 10;July 19
5301 (2000 9:00 AM EST)January 1
5302 (2000 9:00 AM EDT)April 9;July 18
5303 (2003 9:00 AM EST)January 1
5304 (2003 9:00 AM EDT)April 10;July 19
5305 (2006 9:00 AM EST)January 1
5307 Every 20th Monday of the year, forever:
5309 DTSTART;TZID=America-New York:19970519T090000
5310 RRULE:FREQ=YEARLY;BYDAY=20MO
5311 ==> (1997 9:00 AM EDT)May 19
5312 (1998 9:00 AM EDT)May 18
5313 (1999 9:00 AM EDT)May 17
5314 ...
5316 Monday of week number 20 (where the default start of the week is
5317 Monday), forever:
5319 DTSTART;TZID=America-New York:19970512T090000
5320 RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO
5322 ==> (1997 9:00 AM EDT)May 12
5323 (1998 9:00 AM EDT)May 11
5324 (1999 9:00 AM EDT)May 17
5325 ...
5327 Every Thursday in March, forever:
5329 DTSTART;TZID=America-New York:19970313T090000
5330 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH
5332 ==> (1997 9:00 AM EST)March 13,20,27
5333 (1998 9:00 AM EST)March 5,12,19,26
5334 (1999 9:00 AM EST)March 4,11,18,25
5335 ...
5337 Every Thursday, but only during June, July, and August, forever:
5339 DTSTART;TZID=America-New York:19970605T090000
5340 RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8
5342 ==> (1997 9:00 AM EDT)June 5,12,19,26;July 3,10,17,24,31;
5343 August 7,14,21,28
5344 (1998 9:00 AM EDT)June 4,11,18,25;July 2,9,16,23,30;
5345 August 6,13,20,27
5346 (1999 9:00 AM EDT)June 3,10,17,24;July 1,8,15,22,29;
5347 August 5,12,19,26
5348 ...
5350 Every Friday the 13th, forever:
5352 DTSTART;TZID=America-New York:19970902T090000
5353 EXDATE;TZID=America-New York:19970902T090000
5354 RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13
5356 ==> (1998 9:00 AM EST)February 13;March 13;November 13
5357 (1999 9:00 AM EDT)August 13
5358 (2000 9:00 AM EDT)October 13
5359 ...
5361 The first Saturday that follows the first Sunday of the month,
5362 forever:
5364 DTSTART;TZID=America-New York:19970913T090000
5365 RRULE:FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13
5367 ==> (1997 9:00 AM EDT)September 13;October 11
5368 (1997 9:00 AM EST)November 8;December 13
5369 (1998 9:00 AM EST)January 10;February 7;March 7
5370 (1998 9:00 AM EDT)April 11;May 9;June 13...
5371 ...
5373 Every four years, the first Tuesday after a Monday in November,
5374 forever (U.S. Presidential Election day):
5376 DTSTART;TZID=America-New York:19961105T090000
5377 RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,
5378 5,6,7,8
5380 ==> (1996 9:00 AM EST)November 5
5381 (2000 9:00 AM EST)November 7
5382 (2004 9:00 AM EST)November 2
5383 ...
5385 The 3rd instance into the month of one of Tuesday, Wednesday or
5386 Thursday, for the next 3 months:
5388 DTSTART;TZID=America-New York:19970904T090000
5389 RRULE:FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3
5391 ==> (1997 9:00 AM EDT)September 4;October 7
5392 (1997 9:00 AM EST)November 6
5394 The 2nd to last weekday of the month:
5396 DTSTART;TZID=America-New York:19970929T090000
5397 RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2
5399 ==> (1997 9:00 AM EDT)September 29
5400 (1997 9:00 AM EST)October 30;November 27;December 30
5401 (1998 9:00 AM EST)January 29;February 26;March 30
5402 ...
5404 Every 3 hours from 9:00 AM to 5:00 PM on a specific day:
5406 DTSTART;TZID=America-New York:19970902T090000
5407 RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z
5409 ==> (September 2, 1997 EDT)09:00,12:00,15:00
5411 Every 15 minutes for 6 occurrences:
5413 DTSTART;TZID=America-New York:19970902T090000
5414 RRULE:FREQ=MINUTELY;INTERVAL=15;COUNT=6
5416 ==> (September 2, 1997 EDT)09:00,09:15,09:30,09:45,10:00,10:15
5417 Every hour and a half for 4 occurrences:
5419 DTSTART;TZID=America-New York:19970902T090000
5420 RRULE:FREQ=MINUTELY;INTERVAL=90;COUNT=4
5422 ==> (September 2, 1997 EDT)09:00,10:30;12:00;13:30
5424 Every 20 minutes from 9:00 AM to 4:40 PM every day:
5426 DTSTART;TZID=America-New York:19970902T090000
5427 RRULE:FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40
5428 or
5429 RRULE:FREQ=MINUTELY;INTERVAL=20;BYHOUR=9,10,11,12,13,14,15,16
5431 ==> (September 2, 1997 EDT)9:00,9:20,9:40,10:00,10:20,
5432 ... 16:00,16:20,16:40
5433 (September 3, 1997 EDT)9:00,9:20,9:40,10:00,10:20,
5434 ...16:00,16:20,16:40
5435 ...
5437 An example where the days generated makes a difference because of
5438 WKST:
5440 DTSTART;TZID=America-New York:19970805T090000
5441 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO
5443 ==> (1997 EDT)Aug 5,10,19,24
5445 changing only WKST from MO to SU, yields different results...
5447 DTSTART;TZID=America-New York:19970805T090000
5448 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU
5449 ==> (1997 EDT)August 5,17,19,31
5451 4.8.6 Alarm Component Properties
5453 The following properties specify alarm information in calendar
5454 components.
5456 4.8.6.1 Action
5458 Property Name: ACTION
5460 Purpose: This property defines the action to be invoked when an alarm
5461 is triggered.
5463 Value Type: TEXT
5465 Property Parameters: Non-standard property parameters can be
5466 specified on this property.
5468 Conformance: This property MUST be specified once in a "VALARM"
5469 calendar component.
5471 Description: Each "VALARM" calendar component has a particular type
5472 of action associated with it. This property specifies the type of
5473 action
5475 Format Definition: The property is defined by the following notation:
5477 action = "ACTION" actionparam ":" actionvalue CRLF
5479 actionparam = *(";" xparam)
5481 actionvalue = "AUDIO" / "DISPLAY" / "EMAIL" / "PROCEDURE"
5482 / iana-token / x-name
5484 Example: The following are examples of this property in a "VALARM"
5485 calendar component:
5487 ACTION:AUDIO
5489 ACTION:DISPLAY
5491 ACTION:PROCEDURE
5493 4.8.6.2 Repeat Count
5495 Property Name: REPEAT
5497 Purpose: This property defines the number of time the alarm should be
5498 repeated, after the initial trigger.
5500 Value Type: INTEGER
5502 Property Parameters: Non-standard property parameters can be
5503 specified on this property.
5505 Conformance: This property can be specified in a "VALARM" calendar
5506 component.
5508 Description: If the alarm triggers more than once, then this property
5509 MUST be specified along with the "DURATION" property.
5511 Format Definition: The property is defined by the following notation:
5513 repeatcnt = "REPEAT" repparam ":" integer CRLF
5514 ;Default is "0", zero.
5516 repparam = *(";" xparam)
5518 Example: The following is an example of this property for an alarm
5519 that repeats 4 additional times with a 5 minute delay after the
5520 initial triggering of the alarm:
5522 REPEAT:4
5523 DURATION:PT5M
5524 4.8.6.3 Trigger
5526 Property Name: TRIGGER
5528 Purpose: This property specifies when an alarm will trigger.
5530 Value Type: The default value type is DURATION. The value type can be
5531 set to a DATE-TIME value type, in which case the value MUST specify a
5532 UTC formatted DATE-TIME value.
5534 Property Parameters: Non-standard, value data type, time zone
5535 identifier or trigger relationship property parameters can be
5536 specified on this property. The trigger relationship property
5537 parameter MUST only be specified when the value type is DURATION.
5539 Conformance: This property MUST be specified in the "VALARM" calendar
5540 component.
5542 Description: Within the "VALARM" calendar component, this property
5543 defines when the alarm will trigger. The default value type is
5544 DURATION, specifying a relative time for the trigger of the alarm.
5545 The default duration is relative to the start of an event or to-do
5546 that the alarm is associated with. The duration can be explicitly set
5547 to trigger from either the end or the start of the associated event
5548 or to-do with the "RELATED" parameter. A value of START will set the
5549 alarm to trigger off the start of the associated event or to-do. A
5550 value of END will set the alarm to trigger off the end of the
5551 associated event or to-do.
5553 Either a positive or negative duration may be specified for the
5554 "TRIGGER" property. An alarm with a positive duration is triggered
5555 after the associated start or end of the event or to-do. An alarm
5556 with a negative duration is triggered before the associated start or
5557 end of the event or to-do.
5559 The "RELATED" property parameter is not valid if the value type of
5560 the property is set to DATE-TIME (i.e., for an absolute date and time
5561 alarm trigger). If a value type of DATE-TIME is specified, then the
5562 property value MUST be specified in the UTC time format. If an
5563 absolute trigger is specified on an alarm for a recurring event or
5564 to-do, then the alarm will only trigger for the specified absolute
5565 date/time, along with any specified repeating instances.
5567 If the trigger is set relative to START, then the "DTSTART" property
5568 MUST be present in the associated "VEVENT" or "VTODO" calendar
5569 component. If an alarm is specified for an event with the trigger set
5570 relative to the END, then the "DTEND" property or the "DSTART" and
5571 "DURATION' properties MUST be present in the associated "VEVENT"
5572 calendar component. If the alarm is specified for a to-do with a
5573 trigger set relative to the END, then either the "DUE" property or
5574 the "DSTART" and "DURATION' properties MUST be present in the
5575 associated "VTODO" calendar component.
5577 Alarms specified in an event or to-do which is defined in terms of a
5578 DATE value type will be triggered relative to 00:00:00 UTC on the
5579 specified date. For example, if "DTSTART:19980205, then the duration
5580 trigger will be relative to19980205T000000Z.
5582 Format Definition: The property is defined by the following notation:
5584 trigger = "TRIGGER" (trigrel / trigabs)
5586 trigrel = [";" "VALUE" "=" "DURATION"]
5587 [";" trigrelparam] *(";" xparam)
5588 ":" dur-value
5590 trigabs = ";" "VALUE" "=" "DATE-TIME" *(";" xparam)
5591 ":" date-time
5593 Example: A trigger set 15 minutes prior to the start of the event or
5594 to-do.
5596 TRIGGER:-P15M
5598 A trigger set 5 minutes after the end of the event or to-do.
5600 TRIGGER;RELATED=END:P5M
5602 A trigger set to an absolute date/time.
5604 TRIGGER;VALUE=DATE-TIME:19980101T050000Z
5606 4.8.7 Change Management Component Properties
5608 The following properties specify change management information in
5609 calendar components.
5611 4.8.7.1 Date/Time Created
5613 Property Name: CREATED
5615 Purpose: This property specifies the date and time that the calendar
5616 information was created by the calendar user agent in the calendar
5617 store.
5619 Note: This is analogous to the creation date and time for a file
5620 in the file system.
5622 Value Type: DATE-TIME
5624 Property Parameters: Non-standard property parameters can be
5625 specified on this property.
5627 Conformance: The property can be specified once in "VEVENT", "VTODO"
5628 or "VJOURNAL" calendar components.
5630 Description: The date and time is a UTC value.
5632 Format Definition: The property is defined by the following notation:
5634 created = "CREATED" creaparam ":" date-time CRLF
5636 creaparam = *(";" xparam)
5638 Example: The following is an example of this property:
5640 CREATED:19960329T133000Z
5642 4.8.7.2 Date/Time Stamp
5644 Property Name: DTSTAMP
5646 Purpose: The property indicates the date/time that the instance of
5647 the iCalendar object was created.
5649 Value Type: DATE-TIME
5651 Property Parameters: Non-standard property parameters can be
5652 specified on this property.
5654 Conformance: This property MUST be included in the "VEVENT", "VTODO",
5655 "VJOURNAL" or "VFREEBUSY" calendar components.
5657 Description: The value MUST be specified in the UTC time format.
5659 This property is also useful to protocols such as [IMIP] that have
5660 inherent latency issues with the delivery of content. This property
5661 will assist in the proper sequencing of messages containing iCalendar
5662 objects.
5664 This property is different than the "CREATED" and "LAST-MODIFIED"
5665 properties. These two properties are used to specify when the
5666 particular calendar data in the calendar store was created and last
5667 modified. This is different than when the iCalendar object
5668 representation of the calendar service information was created or
5669 last modified.
5671 Format Definition: The property is defined by the following notation:
5673 dtstamp = "DTSTAMP" stmparam ":" date-time CRLF
5675 stmparam = *(";" xparam)
5677 Example:
5679 DTSTAMP:19971210T080000Z
5681 4.8.7.3 Last Modified
5683 Property Name: LAST-MODIFIED
5684 Purpose: The property specifies the date and time that the
5685 information associated with the calendar component was last revised
5686 in the calendar store.
5688 Note: This is analogous to the modification date and time for a
5689 file in the file system.
5691 Value Type: DATE-TIME
5693 Property Parameters: Non-standard property parameters can be
5694 specified on this property.
5696 Conformance: This property can be specified in the "EVENT", "VTODO",
5697 "VJOURNAL" or "VTIMEZONE" calendar components.
5699 Description: The property value MUST be specified in the UTC time
5700 format.
5702 Format Definition: The property is defined by the following notation:
5704 last-mod = "LAST-MODIFIED" lstparam ":" date-time CRLF
5706 lstparam = *(";" xparam)
5708 Example: The following is are examples of this property:
5710 LAST-MODIFIED:19960817T133000Z
5712 4.8.7.4 Sequence Number
5714 Property Name: SEQUENCE
5716 Purpose: This property defines the revision sequence number of the
5717 calendar component within a sequence of revisions.
5719 Value Type: integer
5721 Property Parameters: Non-standard property parameters can be
5722 specified on this property.
5724 Conformance: The property can be specified in "VEVENT", "VTODO" or
5725 "VJOURNAL" calendar component.
5727 Description: When a calendar component is created, its sequence
5728 number is zero (US-ASCII decimal 48). It is monotonically incremented
5729 by the "Organizer's" CUA each time the "Organizer" makes a
5730 significant revision to the calendar component. When the "Organizer"
5731 makes changes to one of the following properties, the sequence number
5732 MUST be incremented:
5734 . "DTSTART"
5736 . "DTEND"
5737 . "DUE"
5739 . "RDATE"
5741 . "RRULE"
5743 . "EXDATE"
5745 . "EXRULE"
5747 . "STATUS"
5749 In addition, changes made by the "Organizer" to other properties can
5750 also force the sequence number to be incremented. The "Organizer" CUA
5751 MUST increment the sequence number when ever it makes changes to
5752 properties in the calendar component that the "Organizer" deems will
5753 jeopardize the validity of the participation status of the
5754 "Attendees". For example, changing the location of a meeting from one
5755 locale to another distant locale could effectively impact the
5756 participation status of the "Attendees".
5758 The "Organizer" includes this property in an iCalendar object that it
5759 sends to an "Attendee" to specify the current version of the calendar
5760 component.
5762 The "Attendee" includes this property in an iCalendar object that it
5763 sends to the "Organizer" to specify the version of the calendar
5764 component that the "Attendee" is referring to.
5766 A change to the sequence number is not the mechanism that an
5767 "Organizer" uses to request a response from the "Attendees". The
5768 "RSVP" parameter on the "ATTENDEE" property is used by the
5769 "Organizer" to indicate that a response from the "Attendees" is
5770 requested.
5772 Format Definition: This property is defined by the following
5773 notation:
5775 seq = "SEQUENCE" seqparam ":" integer CRLF
5776 ; Default is "0"
5778 seqparam = *(";" xparam)
5780 Example: The following is an example of this property for a calendar
5781 component that was just created by the "Organizer".
5783 SEQUENCE:0
5785 The following is an example of this property for a calendar component
5786 that has been revised two different times by the "Organizer".
5788 SEQUENCE:2
5789 4.8.8 Miscellaneous Component Properties
5791 The following properties specify information about a number of
5792 miscellaneous features of calendar components.
5794 4.8.8.1 Non-standard Properties
5796 Property Name: Any property name with a "X-" prefix
5798 Purpose: This class of property provides a framework for defining
5799 non-standard properties.
5801 Value Type: TEXT
5803 Property Parameters: Non-standard and language property parameters
5804 can be specified on this property.
5806 Conformance: This property can be specified in any calendar
5807 component.
5809 Description: The MIME Calendaring and Scheduling Content Type
5810 provides a "standard mechanism for doing non-standard things". This
5811 extension support is provided for implementers to "push the envelope"
5812 on the existing version of the memo. Extension properties are
5813 specified by property and/or property parameter names that have the
5814 prefix text of "X-" (the two character sequence: LATIN CAPITAL LETTER
5815 X character followed by the HYPEN-MINUS character). It is recommended
5816 that vendors concatenate onto this sentinel another short prefix text
5817 to identify the vendor. This will facilitate readability of the
5818 extensions and minimize possible collision of names between different
5819 vendors. User agents that support this content type are expected to
5820 be able to parse the extension properties and property parameters but
5821 can ignore them.
5823 At present, there is no registration authority for names of extension
5824 properties and property parameters. The data type for this property
5825 is TEXT. Optionally, the data type can be any of the other valid data
5826 types.
5828 Format Definition: The property is defined by the following notation:
5830 x-prop = x-name *(";" xparam) [";" languageparam] ":" text CRLF
5831 ; Lines longer than 75 octets should be folded
5833 Example: The following might be the ABC vendor's extension for an
5834 audio-clip form of subject property:
5836 X-ABC-MMSUBJ;X-ABC-MMSUBJTYPE=wave:http://load.noise.org/mysubj.wav
5838 4.8.8.2 Request Status
5840 Property Name: REQUEST-STATUS
5841 Purpose: This property defines the status code returned for a
5842 scheduling request.
5844 Value Type: TEXT
5846 Property Parameters: Non-standard and language property parameters
5847 can be specified on this property.
5849 Conformance: The property can be specified in "VEVENT", "VTODO",
5850 "VJOURNAL" or "VFREEBUSY" calendar component.
5852 Description: This property is used to return status code information
5853 related to the processing of an associated iCalendar object. The data
5854 type for this property is TEXT.
5856 The value consists of a short return status component, a longer
5857 return status description component, and optionally a status-specific
5858 data component. The components of the value are separated by the
5859 SEMICOLON character (US-ASCII decimal 59).
5861 The short return status is a PERIOD character (US-ASCII decimal 46)
5862 separated 3-tuple of integers. For example, "3.1.1". The successive
5863 levels of integers provide for a successive level of status code
5864 granularity.
5866 The following are initial classes for the return status code.
5867 Individual iCalendar object methods will define specific return
5868 status codes for these classes. In addition, other classes for the
5869 return status code may be defined using the registration process
5870 defined later in this memo.
5872 |==============+===============================================|
5873 | Short Return | Longer Return Status Description |
5874 | Status Code | |
5875 |==============+===============================================|
5876 | 1.xx | Preliminary success. This class of status |
5877 | | of status code indicates that the request has |
5878 | | request has been initially processed but that |
5879 | | completion is pending. |
5880 |==============+===============================================|
5881 | 2.xx | Successful. This class of status code |
5882 | | indicates that the request was completed |
5883 | | successfuly. However, the exact status code |
5884 | | can indicate that a fallback has been taken. |
5885 |==============+===============================================|
5886 | 3.xx | Client Error. This class of status code |
5887 | | indicates that the request was not successful.|
5888 | | The error is the result of either a syntax or |
5889 | | a semantic error in the client formatted |
5890 | | request. Request should not be retried until |
5891 | | the condition in the request is corrected. |
5892 |==============+===============================================|
5893 | 4.xx | Scheduling Error. This class of status code |
5894 | | indicates that the request was not successful.|
5895 | | Some sort of error occurred within the |
5896 | | calendaring and scheduling service, not |
5897 | | directly related to the request itself. |
5898 |==============+===============================================|
5900 Format Definition: The property is defined by the following notation:
5902 rstatus = "REQUEST-STATUS" rstatparam ":"
5903 statcode ";" statdesc [";" extdata]
5905 rstatparam = [";" languageparm]
5906 *(";" xparam)
5908 statcode = 1*DIGIT *("." 1*DIGIT)
5909 ;Hierarchical, numeric return status code
5911 statdesc = text
5912 ;Textual status description
5914 extdata = text
5915 ;Textual exception data. For example, the offending property
5916 ;name and value or complete property line.
5918 Example: The following are some possible examples of this property.
5919 The COMMA and SEMICOLON separator characters in the property value
5920 are BACKSLASH character escaped because they appear in a text value.
5922 REQUEST-STATUS:2.0;Success
5924 REQUEST-STATUS:3.1;Invalid property value;DTSTART:96-Apr-01
5926 REQUEST-STATUS:2.8; Success\, repeating event ignored. Scheduled
5927 as a single event.;RRULE:FREQ=WEEKLY\;INTERVAL=2
5929 REQUEST-STATUS:4.1;Event conflict. Date/time is busy.
5931 REQUEST-STATUS:3.7;Invalid calendar user;ATTENDEE:
5932 MAILTO:jsmith@host.com
5934 5 iCalendar Object Examples
5936 The following examples are provided as an informational source of
5937 illustrative iCalendar objects consistent with this content type.
5939 The following example specifies a three-day conference that begins at
5940 8:00 AM EDT, September 18, 1996 and end at 6:00 PM EDT, September 20,
5941 1996.
5943 BEGIN:VCALENDAR
5944 PRODID:-//xyz Corp//NONSGML PDA Calendar Verson 1.0//EN
5945 VERSION:2.0
5946 BEGIN:VEVENT
5947 DTSTAMP:19960704T120000Z
5948 UID:uid1@host.com
5949 ORGANIZER:MAILTO:jsmith@host.com
5950 DTSTART:19960918T143000Z
5951 DTEND:19960920T220000Z
5952 STATUS:CONFIRMED
5953 CATEGORIES:CONFERENCE
5954 SUMMARY:Networld+Interop Conference
5955 DESCRIPTION:Networld+Interop Conference
5956 and Exhibit\nAtlanta World Congress Center\n
5957 Atlanta, Georgia
5958 END:VEVENT
5959 END:VCALENDAR
5961 The following example specifies a group scheduled meeting that begin
5962 at 8:30 AM EST on March 12, 1998 and end at 9:30 AM EST on March 12,
5963 1998. The "Organizer" has scheduled the meeting with one or more
5964 calendar users in a group. A time zone specification for Eastern
5965 United States has been specified.
5967 BEGIN:VCALENDAR
5968 PRODID:-//RDU Software//NONSGML HandCal//EN
5969 VERSION:2.0
5970 BEGIN:VTIMEZONE
5971 TZID:Eastern US
5972 BEGIN:STANDARD
5973 DTSTART:19981025T020000
5974 RDATE:19981025T020000
5975 TZOFFSETFROM:-0400
5976 TZOFFSETTO:-0500
5977 TZNAME:EST
5978 END:STANDARD
5979 BEGIN:DAYLIGHT
5980 DTSTART:19990404T020000
5981 RDATE:19990404T020000
5982 TZOFFSETFROM:-0500
5983 TZOFFSETTO:-0400
5984 TZNAME:EDT
5985 END:DAYLIGHT
5986 END:VTIMEZONE
5987 BEGIN:VEVENT
5988 DTSTAMP:19980309T231000Z
5989 UID:guid-1.host1.com
5990 ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@host.com
5991 ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP:
5992 MAILTO:employee-A@host.com
5993 DESCRIPTION:Project XYZ Review Meeting
5994 CATEGORIES:MEETING
5995 CLASS:PUBLIC
5996 CREATED:19980309T130000Z
5997 SUMMARY:XYZ Project Review
5998 DTSTART;TZID=US-Eastern:19980312T083000
5999 DTEND;TZID=US-Eastern:19980312T093000
6000 LOCATION:1CP Conference Room 4350
6001 END:VEVENT
6002 END:VCALENDAR
6003 The following is an example of an iCalendar object passed in a MIME
6004 message with a single body part consisting of a "text/calendar"
6005 Content Type.
6007 TO:jsmith@host1.com
6008 FROM:jdoe@host1.com
6009 MIME-VERSION:1.0
6010 MESSAGE-ID:
6011 CONTENT-TYPE:text/calendar
6013 BEGIN:VCALENDAR
6014 METHOD:xyz
6015 VERSION:2.0
6016 PRODID:-//ABC Corporation//NONSGML My Product//EN
6017 BEGIN:VEVENT
6018 DTSTAMP:19970324T1200Z
6019 SEQUENCE:0
6020 UID:uid3@host1.com
6021 ORGANIZER:MAILTO:jdoe@host1.com
6022 ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host1.com
6023 DTSTART:19970324T123000Z
6024 DTEND:19970324T210000Z
6025 CATEGORIES:MEETING,PROJECT
6026 CLASS:PUBLIC
6027 SUMMARY:Calendaring Interoperability Planning Meeting
6028 DESCRIPTION:Discuss how we can test c&s interoperability\n
6029 using iCalendar and other IETF standards.
6030 LOCATION:LDB Lobby
6031 ATTACH;FMTTYPE=application/postscript:ftp://xyzCorp.com/pub/
6032 conf/bkgrnd.ps
6033 END:VEVENT
6034 END:VCALENDAR
6036 The following is an example of a to-do due on April 15, 1998. An
6037 audio alarm has been specified to remind the calendar user at noon,
6038 the day before the to-do is expected to be completed and repeat
6039 hourly, four additional times. The to-do definition has been modified
6040 twice since it was initially created.
6042 BEGIN:VCALENDAR
6043 VERSION:2.0
6044 PRODID:-//ABC Corporation//NONSGML My Product//EN
6045 BEGIN:VTODO
6046 DTSTAMP:19980130T134500Z
6047 SEQUENCE:2
6048 UID:uid4@host1.com
6049 ORGANIZER:MAILTO:unclesam@us.gov
6050 ATTENDEE;PARTSTAT=ACCEPTED:MAILTO:jqpublic@host.com
6051 DUE:19980415T235959
6052 STATUS:NEEDS-ACTION
6053 SUMMARY:Submit Income Taxes
6054 BEGIN:VALARM
6055 ACTION:AUDIO
6056 TRIGGER:19980403T120000
6057 ATTACH;FMTTYPE=audio/basic:http://host.com/pub/audio-
6058 files/ssbanner.aud
6059 REPEAT:4
6060 DURATION:PT1H
6061 END:VALARM
6062 END:VTODO
6063 END:VCALENDAR
6065 The following is an example of a journal entry.
6067 BEGIN:VCALENDAR
6068 VERSION:2.0
6069 PRODID:-//ABC Corporation//NONSGML My Product//EN
6070 BEGIN:VJOURNAL
6071 DTSTAMP:19970324T120000Z
6072 UID:uid5@host1.com
6073 ORGANIZER:MAILTO:jsmith@host.com
6074 STATUS:DRAFT
6075 CLASS:PUBLIC
6076 CATEGORY:Project Report, XYZ, Weekly Meeting
6077 DESCRIPTION:Project xyz Review Meeting Minutes\n
6078 Agenda\n1. Review of project version 1.0 requirements.\n2.
6079 Definition
6080 of project processes.\n3. Review of project schedule.\n
6081 Participants: John Smith, Jane Doe, Jim Dandy\n-It was
6082 decided that the requirements need to be signed off by
6083 product marketing.\n-Project processes were accepted.\n
6084 -Project schedule needs to account for scheduled holidays
6085 and employee vacation time. Check with HR for specific
6086 dates.\n-New schedule will be distributed by Friday.\n-
6087 Next weeks meeting is cancelled. No meeting until 3/23.
6088 END:VJOURNAL
6089 END:VCALENDAR
6091 The following is an example of published busy time information. The
6092 iCalendar object might be placed in the network resource
6093 www.host.com/calendar/busytime/jsmith.ifb.
6095 BEGIN:VCALENDAR
6096 VERSION:2.0
6097 PRODID:-//RDU Software//NONSGML HandCal//EN
6098 BEGIN:VFREEBUSY
6099 ORGANIZER:MAILTO:jsmith@host.com
6100 DTSTART:19980313T141711Z
6101 DTEND:19980410T141711Z
6102 FREEBUSY:19980314T233000Z/19980315T003000Z
6103 FREEBUSY:19980316T153000Z/19980316T163000Z
6104 FREEBUSY:19980318T030000Z/19980318T040000Z
6105 URL:http://www.host.com/calendar/busytime/jsmith.ifb
6106 END:VFREEBUSY
6107 END:VCALENDAR
6108 6 Recommended Practices
6110 These recommended practices should be followed in order to assure
6111 consistent handling of the following cases for an iCalendar object.
6113 1. Content lines longer than 75 octets SHOULD be folded.
6115 2. A calendar entry with a "DTSTART" property but no "DTEND" property
6116 does not take up any time. It is intended to represent an event
6117 that is associated with a given calendar date and time of day,
6118 such as an anniversary. Since the event does not take up any time,
6119 it MUST NOT be used to record busy time no matter what the value
6120 for the "TRANSP" property.
6122 3. When the "DTSTART" and "DTEND", for "VEVENT", "VJOURNAL" and
6123 "VFREEBUSY" calendar components, and "DTSTART" and "DUE", for
6124 "VTODO" calendar components, have the same value data type (e.g.,
6125 DATE-TIME), they SHOULD specify values in the same time format
6126 (e.g., UTC time format).
6128 4. When the combination of the "RRULE" and "RDATE" properties on an
6129 iCalendar object produces multiple instances having the same start
6130 date/time, they should be collapsed to, and considered as, a
6131 single instance.
6133 5. When a calendar user receives multiple requests for the same
6134 calendar component (e.g., REQUEST for a "VEVENT" calendar
6135 component) as a result of being on multiple mailing lists
6136 specified by "ATTENDEE" properties in the request, they SHOULD
6137 respond to only one of the requests. The calendar user SHOULD also
6138 specify (using the "MEMBER" parameter of the "ATTENDEE" property)
6139 which mailing list they are a member of.
6141 6. An implementation can truncate a "SUMMARY" property value to 255
6142 characters.
6144 7. If seconds of the minute are not supported by an implementation,
6145 then a value of "00" SHOULD be specified for the seconds component
6146 in a time value.
6148 8. If the value type parameter (VALUE=) contains an unknown value
6149 type, it SHOULD be treated as TEXT.
6151 9. TZURL values SHOULD NOT be specified as a FILE URI type. This URI
6152 form can be useful within an organization, but is problematic in
6153 the Internet.
6155 10. Some possible English values for CATEGORIES property include
6156 "ANNIVERSARY", "APPOINTMENT", "BUSINESS", "EDUCATION", "HOLIDAY",
6157 "MEETING", "MISCELLANEOUS", "NON-WORKING HOURS", "NOT IN OFFICE",
6158 "PERSONAL", "PHONE CALL", "SICK DAY", "SPECIAL OCCASION",
6159 "TRAVEL", "VACATION". Categories can be specified in any
6160 registered language.
6162 11. Some possible English values for RESOURCES property include
6163 "CATERING", "CHAIRS", "COMPUTER PROJECTOR", "EASEL", "OVERHEAD
6164 PROJECTOR", "SPEAKER PHONE", "TABLE", "TV", "VCR", "VIDEO PHONE",
6165 "VEHICLE". Resources can be specified in any registered language.
6167 7 Registration of Content Type Elements
6169 This section provides the process for registration of MIME
6170 Calendaring and Scheduling Content Type iCalendar object methods and
6171 new or modified properties.
6173 7.1 Registration of New and Modified iCalendar Object Methods
6175 New MIME Calendaring and Scheduling Content Type iCalendar object
6176 methods are registered by the publication of an IETF Request for
6177 Comment (RFC). Changes to an iCalendar object method are registered
6178 by the publication of a revision of the RFC defining the method.
6180 7.2 Registration of New Properties
6182 This section defines procedures by which new properties or enumerated
6183 property values for the MIME Calendaring and Scheduling Content Type
6184 can be registered with the IANA. Non-IANA properties can be used by
6185 bilateral agreement, provided the associated properties names follow
6186 the "X-" convention.
6188 The procedures defined here are designed to allow public comment and
6189 review of new properties, while posing only a small impediment to the
6190 definition of new properties.
6192 Registration of a new property is accomplished by the following
6193 steps.
6195 7.2.1 Define the property
6197 A property is defined by completing the following template.
6199 To: ietf-calendar@imc.org
6201 Subject: Registration of text/calendar MIME property XXX
6203 Property name:
6205 Property purpose:
6207 Property value type(s):
6209 Property parameter (s):
6211 Conformance:
6213 Description:
6215 Format definition:
6217 Examples:
6219 The meaning of each field in the template is as follows.
6221 Property name: The name of the property, as it will appear in the
6222 body of an text/calendar MIME Content-Type "property: value" line to
6223 the left of the colon ":".
6225 Property purpose: The purpose of the property (e.g., to indicate a
6226 delegate for the event or to-do, etc.). Give a short but clear
6227 description.
6229 Property value type (s): Any of the valid value types for the
6230 property value needs to be specified. The default value type also
6231 needs to be specified. If a new value type is specified, it needs to
6232 be declared in this section.
6234 Property parameter (s): Any of the valid property parameters for the
6235 property needs to be specified.
6237 Conformance: The calendar components that the property can appear in
6238 needs to be specified.
6240 Description: Any special notes about the property, how it is to be
6241 used, etc.
6243 Format definition: The ABNF for the property definition needs to be
6244 specified.
6246 Examples: One or more examples of instances of the property needs to
6247 be specified.
6249 7.2.2 Post the Property definition
6251 The property description MUST be posted to the new property
6252 discussion list, ietf-calendar@imc.org.
6254 7.2.3 Allow a comment period
6256 Discussion on the new property MUST be allowed to take place on the
6257 list for a minimum of two weeks. Consensus MUST be reached on the
6258 property before proceeding to the next step.
6260 7.2.4 Submit the property for approval
6262 Once the two-week comment period has elapsed, and the proposer is
6263 convinced consensus has been reached on the property, the
6264 registration application should be submitted to the Method Reviewer
6265 for approval. The Method Reviewer is appointed to the Application
6266 Area Directors and can either accept or reject the property
6267 registration. An accepted registration should be passed on by the
6268 Method Reviewer to the IANA for inclusion in the official IANA method
6269 registry. The registration can be rejected for any of the following
6270 reasons. 1) Insufficient comment period; 2) Consensus not reached; 3)
6271 Technical deficiencies raised on the list or elsewhere have not been
6272 addressed. The Method Reviewer's decision to reject a property can be
6273 appealed by the proposer to the IESG, or the objections raised can be
6274 addressed by the proposer and the property resubmitted.
6276 7.3 Property Change Control
6278 Existing properties can be changed using the same process by which
6279 they were registered.
6281 1. Define the change
6283 2. Post the change
6285 3. Allow a comment period
6287 4. Submit the property for approval
6289 Note that the original author or any other interested party can
6290 propose a change to an existing property, but that such changes
6291 should only be proposed when there are serious omissions or errors in
6292 the published memo. The Method Reviewer can object to a change if it
6293 is not backward compatible, but is not required to do so.
6295 Property definitions can never be deleted from the IANA registry, but
6296 properties which are no longer believed to be useful can be declared
6297 OBSOLETE by a change to their "intended use" field.
6299 8 References
6301 The following documents are referred to within this memo.
6303 [ICMS] "Internet Calendaring Model Specification", Internet-Draft,
6304 October 1997, ftp://ftp.ietf.org/internet-drafts/draft-ietf-calsch-
6305 mod-03.txt.
6307 [IMIP] "iCalendar Message-based Interoperability Protocol (IMIP)",
6308 Internet Draft, April 1998, http://www.imc.org/draft-ietf-calsch-
6309 imip-05.txt.
6311 [ITIP] "iCalendar Transport-Independent Interoperability Protocol
6312 (iTIP) : Scheduling Events, Busy Time, To-dos and Journal Entries ",
6313 Internet-Draft, April 1998, http://www.imc.org/draft-ietf-calsch-
6314 itip-05.txt.
6316 [ISO 8601] ISO 8601, "Data elements and interchange formats_
6317 Information interchange--Representation of dates and times",
6318 International Organization for Standardization, June, 1988. This
6319 standard is also addressed by the Internet Draft document
6320 ftp://ds.internic.net/internet-drafts/draft-newman-datetime-00.txt.
6322 [ISO 9070] ISO/IEC 9070, "Information Technology_SGML Support
6323 Facilities--Registration Procedures for Public Text Owner
6324 Identifiers", Second Edition, International Organization for
6325 Standardization, April 1991.
6327 [MIME DIR] Howes, T., Smith, M., "A MIME Content-Type for Directory
6328 Information", Internet-draft-ietf-asid-mime-direct-07.txt, November
6329 1997.
6331 [RFC 822] Crocker, D., "Standard for the Format of ARPA Internet Text
6332 Messages", STD 11, RFC 822, August 1982.
6334 [RFC 1738] Berners-Lee, T., Masinter, L., McCahill, M., "Uniform
6335 Resource Locators (URL)", RFC 1738, December 1994.
6337 [RFC 1766] Alvestrand, H., "Tags for the Identification of
6338 Languages", March 1995.
6340 [RFC 2045] Freed, N., Borenstein, N., " Multipurpose Internet Mail
6341 Extensions (MIME) - Part One: Format of Internet Message Bodies", RFC
6342 2045, November 1996.
6344 [RFC 2046] Freed, N., Borenstein, N., " Multipurpose Internet Mail
6345 Extensions (MIME) - Part Two: Media Types", RFC 2046, November 1996.
6347 [RFC 2047] Moore, K., "Multipurpose Internet Mail Extensions (MIME) -
6348 Part Three: Message Header Extensions for Non-ASCII Text", RFC 2047,
6349 November 1996.
6351 [RFC 2048] Freed, N., J. Klensin, J. Postel, "Multipurpose Internet
6352 Mail Extensions (MIME) - Part Four: Registration Procedures", RFC
6353 2048, January 1997.
6355 [RFC 2111] "Content-ID and Message-ID Uniform Resource Locators", RFC
6356 2111, March 1997.
6358 [RFC 2119] "Key words for use in RFCs to Indicate Requirement
6359 Levels", RFC 2119, March 1997.
6361 [RFC 2234] Crocker, D., Overell, P., "Augmented BNF for Syntax
6362 Specifications: ABNF", RFC 2234, November 1997.
6364 [RFC 2279] "UTF-8, a transformation format of ISO 10646", RFC 2279,
6365 January 1998.
6367 [VCARD] Internet Mail Consortium, "vCard - The Electronic Business
6368 Card Version 2.1", http://www.imc.org/pdi/vcard-21.txt, September
6369 18, 1996.
6371 [VCAL] Internet Mail Consortium, "vCalendar - The Electronic
6372 Calendaring and Scheduling Exchange Format",
6373 http://www.imc.org/pdi/vcal-10.txt, September 18, 1996.
6375 [XAPIA] "XAPIA CSA, Calendaring and Scheduling Application
6376 Programming Interface (CSA) Version 1.0", X.400 API Association,
6377 November 15, 1994.
6379 9 Acknowledgments
6381 A hearty thanks to the IETF Calendaring and Scheduling Working Group
6382 and also the following individuals who have participated in the
6383 drafting, review and discussion of this memo:
6385 Roland Alden, Harald T. Alvestrand, Eric Berman, Denis Bigorgne, John
6386 Binici, Bill Bliss, Philippe Boucher, Steve Carter, Andre
6387 Courtemanche, Dave Crocker, David Curley, Alec Dun, John Evans, Ross
6388 Finlayson, Randell Flint, Ned Freed, Patrik Falstrom, Chuck
6389 Grandgent, Mark Handley, Steve Hanna, Paul B. Hill, Paul Hoffman,
6390 Ross Hopson, Mark Horton, Daryl Huff, Bruce Kahn, C. Harald Koch,
6391 Ryan Jansen, Don Lavange, Antoine Leca, Theodore Lorek, Steve
6392 Mansour, Skip Montanaro, Keith Moore, Cecil Murray, Chris Newman,
6393 John Noerenberg, Ralph Patterson, Pete Resnick, Keith Rhodes, Robert
6394 Ripberger, John Rose, Doug Royer, Andras Salamar, Ted Schuh, Vinod
6395 Seraphin, Derrick Shadel, Ken Shan, Andrew Shuman, Steve Silverberg,
6396 William P. Spencer, John Sun, Mark Towfiq, Yvonne Tso, Robert Visnov,
6397 James L. Weiner, Mike Weston, William Wyatt.
6399 10 Author's Address
6401 The following address information is provided in a MIME-VCARD,
6402 Electronic Business Card, format.
6404 The authors of this draft are:
6406 BEGIN:VCARD
6407 VERSION:3.0
6408 N:Dawson;Frank
6409 FN:Frank Dawson
6410 ORG:Lotus Development Corporation
6411 ADR;WORK;POSTAL;PARCEL:;6544 Battleford Drive;
6412 Raleigh;NC;27613-3502;USA
6413 TEL;WORK;MSG:+1-919-676-9515
6414 TEL;WORK;FAX:+1-919-676-9564
6415 EMAIL;INTERNET;PREF:Frank_Dawson@Lotus.com
6416 EMAIL;INTERNET:fdawson@earthlink.net
6417 URL:http://home.earthlink.net/~fdawson
6418 END:VCARD
6420 BEGIN:VCARD
6421 VERSION:3.0
6422 N:Stenerson;Derik
6423 FN:Derik Stenerson
6424 ORG:Microsoft Corporation
6425 ADR;WORK;POSTAL;PARCEL:;One Microsoft Way;
6426 Redmond;WA;98052-6399;USA
6427 TEL;WORK;MSG:+1-425-936-5522
6428 TEL;WORK;FAX:+1-425-936-7329
6429 EMAIL;INTERNET:deriks@Microsoft.com
6430 END:VCARD
6431 The iCalendar object is a result of the work of the Internet
6432 Engineering Task Force Calendaring and Scheduling Working Group. The
6433 chairman of that working group is:
6435 BEGIN:VCARD
6436 VERSION:2.1
6437 FN:Anik Ganguly
6438 ORG:OnTime, Inc.
6439 ADR;WORK;POSTAL;PARCEL:10 Floor;21700 Northwestern Highway;
6440 Southfield;MI;48075;USA
6441 TEL;WORK;MSG:+1-248-559-5955
6442 TEL;WORK;FAX:+1-248-559-5034
6443 EMAIL;INTERNET:anik@ontime.com
6444 END:VCARD
6446 11 Full Copyright Statement
6448 "Copyright (C) The Internet Society (date). All Rights Reserved.
6450 This document and translations of it may be copied and furnished to
6451 others, and derivative works that comment on or otherwise explain it
6452 or assist in its implmentation may be prepared, copied, published and
6453 distributed, in whole or in part, without restriction of any kind,
6454 provided that the above copyright notice and this paragraph are
6455 included on all such copies and derivative works. However, this
6456 document itself may not be modified in any way, such as by removing
6457 the copyright notice or references to the Internet Society or other
6458 Internet organizations, except as needed for the purpose of
6459 developing Internet standards in which case the procedures for
6460 copyrights defined in the Internet Standards process MUST be
6461 followed, or as required to translate it into languages other than
6462 English.
6464 The limited permissions granted above are perpetual and will not be
6465 revoked by the Internet Society or its successors or assigns.
6467 This document and the information contained herein is provided on an
6468 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
6469 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
6470 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
6471 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
6472 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.