idnits 2.17.1
draft-ietf-calsify-rfc2445bis-01.txt:
Checking boilerplate required by RFC 5378 and the IETF Trust (see
https://trustee.ietf.org/license-info):
----------------------------------------------------------------------------
** It looks like you're using RFC 3978 boilerplate. You should update this
to the boilerplate described in the IETF Trust License Policy document
(see https://trustee.ietf.org/license-info), which is required now.
-- Found old boilerplate from RFC 3978, Section 5.1 on line 16.
-- Found old boilerplate from RFC 3978, Section 5.5 on line 7019.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 6996.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 7003.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 7009.
** This document has an original RFC 3978 Section 5.4 Copyright Line,
instead of the newer IETF Trust Copyright according to RFC 4748.
** This document has an original RFC 3978 Section 5.5 Disclaimer, instead
of the newer disclaimer which includes the IETF Trust according to RFC
4748.
Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt:
----------------------------------------------------------------------------
== No 'Intended status' indicated for this document; assuming Proposed
Standard
Checking nits according to https://www.ietf.org/id-info/checklist :
----------------------------------------------------------------------------
** The abstract seems to contain references ([1]), 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.
-- The draft header indicates that this document obsoletes RFC2445, but the
abstract doesn't seem to directly say this. It does mention RFC2445
though, so this could be OK.
Miscellaneous warnings:
----------------------------------------------------------------------------
== The copyright year in the RFC 3978 Section 5.4 Copyright Line does not
match the current year
== 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 22, 2006) is 6489 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: 'MIME-DIR' is mentioned on line 4847, but not defined
== Outdated reference: A later version (-10) exists of
draft-ietf-calsify-2446bis-01
== Outdated reference: A later version (-11) exists of
draft-ietf-calsify-rfc2447bis-02
** 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 2234 (Obsoleted by RFC 4234)
** Obsolete normative reference: RFC 2279 (Obsoleted by RFC 3629)
** Obsolete normative reference: RFC 2425 (Obsoleted by RFC 6350)
** Obsolete normative reference: RFC 2426 (Obsoleted by RFC 6350)
-- Possible downref: Non-RFC (?) normative reference: ref. 'TZDB'
-- Possible downref: Non-RFC (?) normative reference: ref. 'VCAL'
== Outdated reference: A later version (-15) exists of
draft-dusseault-caldav-12
Summary: 11 errors (**), 0 flaws (~~), 10 warnings (==), 10 comments
(--).
Run idnits with the --verbose option for more detailed information about
the items above.
--------------------------------------------------------------------------------
2 Network Working Group B. Desruisseaux, Ed.
3 Internet-Draft Oracle
4 Obsoletes: 2445 (if approved) June 22, 2006
5 Expires: December 24, 2006
7 Internet Calendaring and Scheduling Core Object Specification
8 (iCalendar)
9 draft-ietf-calsify-rfc2445bis-01
11 Status of this Memo
13 By submitting this Internet-Draft, each author represents that any
14 applicable patent or other IPR claims of which he or she is aware
15 have been or will be disclosed, and any of which he or she becomes
16 aware will be disclosed, in accordance with Section 6 of BCP 79.
18 Internet-Drafts are working documents of the Internet Engineering
19 Task Force (IETF), its areas, and its working groups. Note that
20 other groups may also distribute working documents as Internet-
21 Drafts.
23 Internet-Drafts are draft documents valid for a maximum of six months
24 and may be updated, replaced, or obsoleted by other documents at any
25 time. It is inappropriate to use Internet-Drafts as reference
26 material or to cite them other than as "work in progress."
28 The list of current Internet-Drafts can be accessed at
29 http://www.ietf.org/ietf/1id-abstracts.txt.
31 The list of Internet-Draft Shadow Directories can be accessed at
32 http://www.ietf.org/shadow.html.
34 This Internet-Draft will expire on December 24, 2006.
36 Copyright Notice
38 Copyright (C) The Internet Society (2006).
40 Abstract
42 There is a clear need to provide and deploy interoperable calendaring
43 and scheduling services for the Internet. Current group scheduling
44 and Personal Information Management (PIM) products are being extended
45 for use across the Internet, today, in proprietary ways. This memo
46 has been defined to provide the definition of a common format for
47 openly exchanging calendaring and scheduling information across the
48 Internet.
50 This memo is formatted as a registration for a MIME media type .
51 However, the format in this memo is equally applicable for use
52 outside of a MIME message content type.
54 The proposed media type value is 'text/calendar'. This string would
55 label a media type containing calendaring and scheduling information
56 encoded as text characters formatted in a manner outlined below.
58 This MIME media type provides a standard content type for capturing
59 calendar event, to-do and journal entry information. It also can be
60 used to convey free/busy time information. The content type is
61 suitable as a MIME message entity that can be transferred over MIME
62 based email systems, using HTTP or some other Internet transport. In
63 addition, the content type is useful as an object for interactions
64 between desktop applications using the operating system clipboard,
65 drag/drop or file systems capabilities.
67 This memo is based on the earlier work of the vCalendar specification
68 for the exchange of personal calendaring and scheduling information.
69 In order to avoid confusion with this referenced work, this memo is
70 to be known as the iCalendar specification.
72 This memo defines the format for specifying iCalendar object methods.
73 An iCalendar object method is a set of usage constraints for the
74 iCalendar object. For example, these methods might define scheduling
75 messages that request an event be scheduled, reply to an event
76 request, send a cancellation notice for an event, modify or replace
77 the definition of an event, provide a counter proposal for an
78 original event request, delegate an event request to another
79 individual, request free or busy time, reply to a free or busy time
80 request, or provide similar scheduling messages for a to-do or
81 journal entry calendar component. The iCalendar Transport-indendent
82 Interoperability Protocol (iTIP) is one such scheduling protocol.
84 Editorial Note
86 This document is a product of the Calendaring and Scheduling
87 Standards Simplification (Calsify) working group of the Internet
88 Engineering Task Force. Comments on this draft are welcomed, and
89 should be addressed to the ietf-calsify@osafoundation.org [1] mailing
90 list.
92 A detailed list of changes is available at the following page:
93 http://www.geocities.com/bdesruisseaux/calsify/
94 draft-ietf-calsify-rfc2445bis-01.html.
96 Table of Contents
98 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 6
99 2. Basic Grammar and Conventions . . . . . . . . . . . . . . . . 6
100 2.1. Formatting Conventions . . . . . . . . . . . . . . . . . 7
101 2.2. Related Memos . . . . . . . . . . . . . . . . . . . . . . 8
102 2.3. International Considerations . . . . . . . . . . . . . . 8
103 3. iCalendar Object Specification . . . . . . . . . . . . . . . 9
104 3.1. Content Lines . . . . . . . . . . . . . . . . . . . . . . 9
105 3.1.1. List and Field Separators . . . . . . . . . . . . . . 11
106 3.1.2. Multiple Values . . . . . . . . . . . . . . . . . . . 12
107 3.1.3. Binary Content . . . . . . . . . . . . . . . . . . . 12
108 3.1.4. Character Set . . . . . . . . . . . . . . . . . . . . 13
109 3.2. Property Parameters . . . . . . . . . . . . . . . . . . . 13
110 3.2.1. Alternate Text Representation . . . . . . . . . . . . 14
111 3.2.2. Common Name . . . . . . . . . . . . . . . . . . . . . 15
112 3.2.3. Calendar User Type . . . . . . . . . . . . . . . . . 16
113 3.2.4. Delegators . . . . . . . . . . . . . . . . . . . . . 16
114 3.2.5. Delegatees . . . . . . . . . . . . . . . . . . . . . 17
115 3.2.6. Directory Entry Reference . . . . . . . . . . . . . . 17
116 3.2.7. Inline Encoding . . . . . . . . . . . . . . . . . . . 18
117 3.2.8. Format Type . . . . . . . . . . . . . . . . . . . . . 19
118 3.2.9. Free/Busy Time Type . . . . . . . . . . . . . . . . . 19
119 3.2.10. Language . . . . . . . . . . . . . . . . . . . . . . 20
120 3.2.11. Group or List Membership . . . . . . . . . . . . . . 21
121 3.2.12. Participation Status . . . . . . . . . . . . . . . . 21
122 3.2.13. Recurrence Identifier Range . . . . . . . . . . . . . 23
123 3.2.14. Alarm Trigger Relationship . . . . . . . . . . . . . 23
124 3.2.15. Relationship Type . . . . . . . . . . . . . . . . . . 24
125 3.2.16. Participation Role . . . . . . . . . . . . . . . . . 25
126 3.2.17. RSVP Expectation . . . . . . . . . . . . . . . . . . 25
127 3.2.18. Sent By . . . . . . . . . . . . . . . . . . . . . . . 26
128 3.2.19. Time Zone Identifier . . . . . . . . . . . . . . . . 26
129 3.2.20. Value Data Types . . . . . . . . . . . . . . . . . . 28
130 3.3. Property Value Data Types . . . . . . . . . . . . . . . . 29
131 3.3.1. Binary . . . . . . . . . . . . . . . . . . . . . . . 29
132 3.3.2. Boolean . . . . . . . . . . . . . . . . . . . . . . . 30
133 3.3.3. Calendar User Address . . . . . . . . . . . . . . . . 30
134 3.3.4. Date . . . . . . . . . . . . . . . . . . . . . . . . 31
135 3.3.5. Date-Time . . . . . . . . . . . . . . . . . . . . . . 31
136 3.3.6. Duration . . . . . . . . . . . . . . . . . . . . . . 34
137 3.3.7. Float . . . . . . . . . . . . . . . . . . . . . . . . 34
138 3.3.8. Integer . . . . . . . . . . . . . . . . . . . . . . . 35
139 3.3.9. Period of Time . . . . . . . . . . . . . . . . . . . 35
140 3.3.10. Recurrence Rule . . . . . . . . . . . . . . . . . . . 37
141 3.3.11. Text . . . . . . . . . . . . . . . . . . . . . . . . 42
142 3.3.12. Time . . . . . . . . . . . . . . . . . . . . . . . . 43
143 3.3.13. URI . . . . . . . . . . . . . . . . . . . . . . . . . 46
144 3.3.14. UTC Offset . . . . . . . . . . . . . . . . . . . . . 46
145 3.4. iCalendar Object . . . . . . . . . . . . . . . . . . . . 47
146 3.5. Property . . . . . . . . . . . . . . . . . . . . . . . . 48
147 3.6. Calendar Components . . . . . . . . . . . . . . . . . . . 48
148 3.6.1. Event Component . . . . . . . . . . . . . . . . . . . 49
149 3.6.2. To-do Component . . . . . . . . . . . . . . . . . . . 52
150 3.6.3. Journal Component . . . . . . . . . . . . . . . . . . 54
151 3.6.4. Free/Busy Component . . . . . . . . . . . . . . . . . 55
152 3.6.5. Time Zone Component . . . . . . . . . . . . . . . . . 58
153 3.6.6. Alarm Component . . . . . . . . . . . . . . . . . . . 66
154 3.7. Calendar Properties . . . . . . . . . . . . . . . . . . . 72
155 3.7.1. Calendar Scale . . . . . . . . . . . . . . . . . . . 72
156 3.7.2. Method . . . . . . . . . . . . . . . . . . . . . . . 73
157 3.7.3. Product Identifier . . . . . . . . . . . . . . . . . 74
158 3.7.4. Version . . . . . . . . . . . . . . . . . . . . . . . 75
159 3.8. Component Properties . . . . . . . . . . . . . . . . . . 76
160 3.8.1. Descriptive Component Properties . . . . . . . . . . 76
161 3.8.1.1. Attachment . . . . . . . . . . . . . . . . . . . 76
162 3.8.1.2. Categories . . . . . . . . . . . . . . . . . . . 77
163 3.8.1.3. Classification . . . . . . . . . . . . . . . . . 78
164 3.8.1.4. Comment . . . . . . . . . . . . . . . . . . . . . 79
165 3.8.1.5. Description . . . . . . . . . . . . . . . . . . . 80
166 3.8.1.6. Geographic Position . . . . . . . . . . . . . . . 81
167 3.8.1.7. Location . . . . . . . . . . . . . . . . . . . . 83
168 3.8.1.8. Percent Complete . . . . . . . . . . . . . . . . 84
169 3.8.1.9. Priority . . . . . . . . . . . . . . . . . . . . 85
170 3.8.1.10. Resources . . . . . . . . . . . . . . . . . . . . 87
171 3.8.1.11. Status . . . . . . . . . . . . . . . . . . . . . 87
172 3.8.1.12. Summary . . . . . . . . . . . . . . . . . . . . . 89
173 3.8.2. Date and Time Component Properties . . . . . . . . . 90
174 3.8.2.1. Date/Time Completed . . . . . . . . . . . . . . . 90
175 3.8.2.2. Date/Time End . . . . . . . . . . . . . . . . . . 91
176 3.8.2.3. Date/Time Due . . . . . . . . . . . . . . . . . . 92
177 3.8.2.4. Date/Time Start . . . . . . . . . . . . . . . . . 93
178 3.8.2.5. Duration . . . . . . . . . . . . . . . . . . . . 94
179 3.8.2.6. Free/Busy Time . . . . . . . . . . . . . . . . . 95
180 3.8.2.7. Time Transparency . . . . . . . . . . . . . . . . 96
181 3.8.3. Time Zone Component Properties . . . . . . . . . . . 97
182 3.8.3.1. Time Zone Identifier . . . . . . . . . . . . . . 98
183 3.8.3.2. Time Zone Name . . . . . . . . . . . . . . . . . 99
184 3.8.3.3. Time Zone Offset From . . . . . . . . . . . . . . 100
185 3.8.3.4. Time Zone Offset To . . . . . . . . . . . . . . . 101
186 3.8.3.5. Time Zone URL . . . . . . . . . . . . . . . . . . 101
187 3.8.4. Relationship Component Properties . . . . . . . . . . 102
188 3.8.4.1. Attendee . . . . . . . . . . . . . . . . . . . . 102
189 3.8.4.2. Contact . . . . . . . . . . . . . . . . . . . . . 105
190 3.8.4.3. Organizer . . . . . . . . . . . . . . . . . . . . 106
191 3.8.4.4. Recurrence ID . . . . . . . . . . . . . . . . . . 108
192 3.8.4.5. Related To . . . . . . . . . . . . . . . . . . . 110
193 3.8.4.6. Uniform Resource Locator . . . . . . . . . . . . 112
194 3.8.4.7. Unique Identifier . . . . . . . . . . . . . . . . 112
195 3.8.5. Recurrence Component Properties . . . . . . . . . . . 114
196 3.8.5.1. Exception Date/Times . . . . . . . . . . . . . . 114
197 3.8.5.2. Exception Rule . . . . . . . . . . . . . . . . . 115
198 3.8.5.3. Recurrence Date/Times . . . . . . . . . . . . . . 117
199 3.8.5.4. Recurrence Rule . . . . . . . . . . . . . . . . . 118
200 3.8.6. Alarm Component Properties . . . . . . . . . . . . . 127
201 3.8.6.1. Action . . . . . . . . . . . . . . . . . . . . . 128
202 3.8.6.2. Repeat Count . . . . . . . . . . . . . . . . . . 128
203 3.8.6.3. Trigger . . . . . . . . . . . . . . . . . . . . . 129
204 3.8.7. Change Management Component Properties . . . . . . . 131
205 3.8.7.1. Date/Time Created . . . . . . . . . . . . . . . . 132
206 3.8.7.2. Date/Time Stamp . . . . . . . . . . . . . . . . . 132
207 3.8.7.3. Last Modified . . . . . . . . . . . . . . . . . . 133
208 3.8.7.4. Sequence Number . . . . . . . . . . . . . . . . . 134
209 3.8.8. Miscellaneous Component Properties . . . . . . . . . 136
210 3.8.8.1. Non-standard Properties . . . . . . . . . . . . . 136
211 3.8.8.2. Request Status . . . . . . . . . . . . . . . . . 137
212 4. iCalendar Object Examples . . . . . . . . . . . . . . . . . . 140
213 5. Recommended Practices . . . . . . . . . . . . . . . . . . . . 144
214 6. Registration of Content Type Elements . . . . . . . . . . . . 145
215 6.1. Registration of New and Modified iCalendar Object
216 Methods . . . . . . . . . . . . . . . . . . . . . . . . . 145
217 6.2. Registration of New Properties . . . . . . . . . . . . . 145
218 6.2.1. Define the property . . . . . . . . . . . . . . . . . 146
219 6.2.2. Post the Property definition . . . . . . . . . . . . 147
220 6.2.3. Allow a comment period . . . . . . . . . . . . . . . 147
221 6.2.4. Submit the property for approval . . . . . . . . . . 147
222 6.3. Property Change Control . . . . . . . . . . . . . . . . . 148
223 7. Internationalization Considerations . . . . . . . . . . . . . 148
224 8. Security Considerations . . . . . . . . . . . . . . . . . . . 148
225 9. IANA Consideration . . . . . . . . . . . . . . . . . . . . . 149
226 9.1. Media Type Registration Information . . . . . . . . . . . 149
227 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 152
228 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 152
229 11.1. Normative References . . . . . . . . . . . . . . . . . . 152
230 11.2. Informative References . . . . . . . . . . . . . . . . . 153
231 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 155
232 Intellectual Property and Copyright Statements . . . . . . . . . 156
234 1. Introduction
236 The use of calendaring and scheduling has grown considerably in the
237 last decade. Enterprise and inter-enterprise business has become
238 dependent on rapid scheduling of events and actions using this
239 information technology. However, the longer term growth of
240 calendaring and scheduling, is currently limited by the lack of
241 Internet standards for the message content types that are central to
242 these knowledgeware applications. This memo is intended to progress
243 the level of interoperability possible between dissimilar calendaring
244 and scheduling applications. This memo defines a MIME content type
245 for exchanging electronic calendaring and scheduling information.
246 The Internet Calendaring and Scheduling Core Object Specification, or
247 iCalendar, allows for the capture and exchange of information
248 normally stored within a calendaring and scheduling application; such
249 as a Personal Information Manager (PIM) or a Group Scheduling
250 product.
252 The iCalendar format is suitable as an exchange format between
253 applications or systems. The format is defined in terms of a MIME
254 content type. This will enable the object to be exchanged using
255 several transports, including but not limited to SMTP, HTTP, a file
256 system, desktop interactive protocols such as the use of a memory-
257 based clipboard or drag/drop interactions, point-to-point
258 asynchronous communication, wired-network transport, or some form of
259 unwired transport such as infrared might also be used.
261 The memo also provides for the definition of iCalendar object methods
262 that will map this content type to a set of messages for supporting
263 calendaring and scheduling operations such as requesting, replying
264 to, modifying, and canceling meetings or appointments, to-dos and
265 journal entries. The iCalendar object methods can be used to define
266 other calendaring and scheduling operations such a requesting for and
267 replying with free/busy time data. Such a scheduling protocol is
268 defined in the iCalendar Transport-independent Interoperability
269 Protocol (iTIP) defined in [I-D.ietf-calsify-2446bis].
271 The memo also includes a formal grammar for the content type based on
272 the Internet ABNF defined in [RFC2234]. This ABNF is required for
273 the implementation of parsers and to serve as the definitive
274 reference when ambiguities or questions arise in interpreting the
275 descriptive prose definition of the memo.
277 2. Basic Grammar and Conventions
279 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
280 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" and
281 "OPTIONAL" in this document are to be interoperated as described in
282 [RFC2119].
284 This memo makes use of both a descriptive prose and a more formal
285 notation for defining the calendaring and scheduling format.
287 The notation used in this memo is the ABNF notation of [RFC2234].
288 Readers intending on implementing this format defined in this memo
289 should be familiar with this notation in order to properly interpret
290 the specifications of this memo.
292 All numeric values used in this memo are given in decimal notation.
294 All names of properties, property parameters, enumerated property
295 values and property parameter values are case-insensitive. However,
296 all other property values are case-sensitive, unless otherwise
297 stated.
299 Note: All indented editorial notes, such as this one, are intended
300 to provide the reader with additional information. The
301 information is not essential to the building of an implementation
302 conformant with this memo. The information is provided to
303 highlight a particular feature or characteristic of the memo.
305 The format for the iCalendar object is based on the syntax of the
306 [RFC2425] content type. While the iCalendar object is not a profile
307 of the [RFC2425] content type, it does reuse a number of the elements
308 from the [RFC2425] specification.
310 2.1. Formatting Conventions
312 The mechanisms defined in this memo are defined in prose. Many of
313 the terms used to describe these have common usage that is different
314 than the standards usage of this memo. In order to reference within
315 this memo elements of the calendaring and scheduling model, core
316 object (this memo) or interoperability protocol [I-D.ietf-calsify-
317 2446bis] some formatting conventions have been used. Calendaring and
318 scheduling roles are referred to in quoted-strings of text with the
319 first character of each word in upper case. For example, "Organizer"
320 refers to a role of a "Calendar User" within the scheduling protocol
321 defined by [I-D.ietf-calsify-2446bis]. Calendar components defined
322 by this memo are referred to with capitalized, quoted-strings of
323 text. All calendar components start with the letter "V". For
324 example, "VEVENT" refers to the event calendar component, "VTODO"
325 refers to the to-do calendar component and "VJOURNAL" refers to the
326 daily journal calendar component. Scheduling methods defined by iTIP
327 [I-D.ietf-calsify-2446bis] are referred to with capitalized, quoted-
328 strings of text. For example, "REQUEST" refers to the method for
329 requesting a scheduling calendar component be created or modified,
330 "REPLY" refers to the method a recipient of a request uses to update
331 their status with the "Organizer" of the calendar component.
333 The properties defined by this memo are referred to with capitalized,
334 quoted-strings of text, followed by the word "property". For
335 example, "ATTENDEE" property refers to the iCalendar property used to
336 convey the calendar address of a calendar user. Property parameters
337 defined by this memo are referred to with lowercase, quoted-strings
338 of text, followed by the word "parameter". For example, "value"
339 parameter refers to the iCalendar property parameter used to override
340 the default data type for a property value. Enumerated values
341 defined by this memo are referred to with capitalized text, either
342 alone or followed by the word "value". For example, the "MINUTELY"
343 value can be used with the "FREQ" component of the "RECUR" data type
344 to specify repeating components based on an interval of one minute or
345 more.
347 2.2. Related Memos
349 Implementers will need to be familiar with several other memos that,
350 along with this memo, form a framework for Internet calendaring and
351 scheduling standards. This memo specifies a core specification of
352 objects, data types, properties and property parameters.
354 o iTIP [I-D.ietf-calsify-2446bis] specifies an interoperability
355 protocol for scheduling between different implementations;
357 o iMIP [I-D.ietf-calsify-rfc2447bis] specifies an Internet email
358 binding for [I-D.ietf-calsify-2446bis].
360 This memo does not attempt to repeat the specification of concepts or
361 definitions from these other memos. Where possible, references are
362 made to the memo that provides for the specification of these
363 concepts or definitions.
365 2.3. International Considerations
367 In the rest of this document, descriptions of characters are of the
368 form "character name (codepoint)", where "codepoint" is from the US-
369 ASCII character set. The "character name" is the authoritative
370 description; (codepoint) is a reference to that character in US-ASCII
371 or US-ASCII compatible sets (for example the ISO-8859-x family, UTF-
372 8, ISO-2022-xx, KOI8-R). If a non-US-ASCII compatible character set
373 is used, appropriate code-point from that character set MUST be
374 chosen instead. Use of non-US-ASCII-compatible character sets is NOT
375 recommended.
377 3. iCalendar Object Specification
379 The following sections define the details of a Calendaring and
380 Scheduling Core Object Specification. This information is intended
381 to be an integral part of the MIME content type registration. In
382 addition, this information can be used independent of such content
383 registration. In particular, this memo has direct applicability for
384 use as a calendaring and scheduling exchange format in file-, memory-
385 or network-based transport mechanisms.
387 3.1. Content Lines
389 The iCalendar object is organized into individual lines of text,
390 called content lines. Content lines are delimited by a line break,
391 which is a CRLF sequence (US-ASCII decimal 13, followed by US-ASCII
392 decimal 10).
394 Lines of text SHOULD NOT be longer than 75 octets, excluding the line
395 break. Long content lines SHOULD be split into a multiple line
396 representations using a line "folding" technique. That is, a long
397 line can be split between any two characters by inserting a CRLF
398 immediately followed by a single linear white space character (i.e.,
399 SPACE, US-ASCII decimal 32 or HTAB, US-ASCII decimal 9). Any
400 sequence of CRLF followed immediately by a single linear white space
401 character is ignored (i.e., removed) when processing the content
402 type.
404 For example the line:
406 DESCRIPTION:This is a long description that exists on a long line.
408 Can be represented as:
410 DESCRIPTION:This is a lo
411 ng description
412 that exists on a long line.
414 The process of moving from this folded multiple line representation
415 to its single line representation is called "unfolding". Unfolding
416 is accomplished by removing the CRLF character and the linear white
417 space character that immediately follows.
419 When parsing a content line, folded lines MUST first be unfolded
420 according to the unfolding procedure described above. When
421 generating a content line, lines longer than 75 octets SHOULD be
422 folded according to the folding procedure described above.
424 The content information associated with an iCalendar object is
425 formatted using a syntax similar to that defined by [RFC2425]. That
426 is, the content information consists of CRLF-separated content lines.
428 The following notation defines the lines of content in an iCalendar
429 object:
431 contentline = name *(";" param ) ":" value CRLF
432 ; This ABNF is just a general definition for an initial parsing
433 ; of the content line into its property name, parameter list,
434 ; and value string
436 ; When parsing a content line, folded lines MUST first
437 ; be unfolded according to the unfolding procedure
438 ; described above. When generating a content line, lines
439 ; longer than 75 octets SHOULD be folded according to
440 ; the folding procedure described above.
442 name = x-name / iana-token
444 iana-token = 1*(ALPHA / DIGIT / "-")
445 ; iCalendar identifier registered with IANA
447 x-name = "X-" [vendorid "-"] 1*(ALPHA / DIGIT / "-")
448 ; Reserved for experimental use.
450 vendorid = 3*(ALPHA / DIGIT) ;Vendor identification
452 param = param-name "=" param-value
453 *("," param-value)
454 ; Each property defines the specific ABNF for the parameters
455 ; allowed on the property. Refer to specific properties for
456 ; precise parameter ABNF.
458 param-name = iana-token / x-token
460 param-value = paramtext / quoted-string
462 paramtext = *SAFE-CHAR
464 value = *VALUE-CHAR
466 quoted-string = DQUOTE *QSAFE-CHAR DQUOTE
468 NON-US-ASCII = %x80-F8
469 ; Use restricted by charset parameter
470 ; on outer MIME object (UTF-8 preferred)
472 QSAFE-CHAR = WSP / %x21 / %x23-7E / NON-US-ASCII
473 ; Any character except CTLs and DQUOTE
475 SAFE-CHAR = WSP / %x21 / %x23-2B / %x2D-39 / %x3C-7E
476 / NON-US-ASCII
477 ; Any character except CTLs, DQUOTE, ";", ":", ","
479 VALUE-CHAR = WSP / %x21-7E / NON-US-ASCII
480 ; Any textual character
482 CR = %x0D
483 ; carriage return
485 LF = %x0A
486 ; line feed
488 CRLF = CR LF
489 ; Internet standard newline
491 CTL = %x00-08 / %x0A-1F / %x7F
492 ; Controls
494 ALPHA = %x41-5A / %x61-7A ; A-Z / a-z
496 DIGIT = %x30-39
497 ; 0-9
499 DQUOTE = %x22
500 ; Quotation Mark
502 WSP = SPACE / HTAB
504 SPACE = %x20
506 HTAB = %x09
508 The property value component of a content line has a format that is
509 property specific. Refer to the section describing each property for
510 a definition of this format.
512 All names of properties, property parameters, enumerated property
513 values and property parameter values are case-insensitive. However,
514 all other property values are case-sensitive, unless otherwise
515 stated.
517 3.1.1. List and Field Separators
519 Some properties and parameters allow a list of values. Values in a
520 list of values MUST be separated by a COMMA character (US-ASCII
521 decimal 44). There is no significance to the order of values in a
522 list. For those parameter values (such as those that specify URI
523 values) that are specified in quoted-strings, the individual quoted-
524 strings are separated by a COMMA character (US-ASCII decimal 44).
526 Some property values are defined in terms of multiple parts. These
527 structured property values MUST have their value parts separated by a
528 SEMICOLON character (US-ASCII decimal 59).
530 Some properties allow a list of parameters. Each property parameter
531 in a list of property parameters MUST be separated by a SEMICOLON
532 character (US-ASCII decimal 59).
534 Property parameters with values containing a COLON, a SEMICOLON or a
535 COMMA character MUST be placed in quoted text.
537 For example, in the following properties a SEMICOLON is used to
538 separate property parameters from each other, and a COMMA is used to
539 separate property values in a value list.
541 ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT:MAILTO:
542 jsmith@host.com
544 RDATE;VALUE=DATE:19970304,19970504,19970704,19970904
546 3.1.2. Multiple Values
548 Some properties defined in the iCalendar object can have multiple
549 values. The general rule for encoding multi-valued items is to
550 simply create a new content line for each value, including the
551 property name. However, it should be noted that some properties
552 support encoding multiple values in a single property by separating
553 the values with a COMMA character (US-ASCII decimal 44). Individual
554 property definitions should be consulted for determining whether a
555 specific property allows multiple values and in which of these two
556 forms.
558 3.1.3. Binary Content
560 Binary content information in an iCalendar object SHOULD be
561 referenced using a URI within a property value. That is the binary
562 content information SHOULD be placed in an external MIME entity that
563 can be referenced by a URI from within the iCalendar object. In
564 applications where this is not feasible, binary content information
565 can be included within an iCalendar object, but only after first
566 encoding it into text using the "BASE64" encoding method defined in
567 [RFC2045]. Inline binary contact SHOULD only be used in applications
568 whose special circumstances demand that an iCalendar object be
569 expressed as a single entity. A property containing inline binary
570 content information MUST specify the "ENCODING" property parameter.
571 Binary content information placed external to the iCalendar object
572 MUST be referenced by a uniform resource identifier (URI).
574 The following example specifies an "ATTACH" property that references
575 an attachment external to the iCalendar object with a URI reference:
577 ATTACH:http://example.com/public/quarterly-report.doc
579 The following example specifies an "ATTACH" property with inline
580 binary encoded content information:
582 ATTACH;FMTTYPE=image/basic;ENCODING=BASE64;VALUE=BINARY:
583 MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1U
584 EBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bmljYXRpb25zIE
585 <...remainder of "BASE64" encoded binary data...>
587 3.1.4. Character Set
589 There is not a property parameter to declare the character set used
590 in a property value. The default character set for an iCalendar
591 object is UTF-8 as defined in [RFC2279].
593 The "charset" Content-Type parameter can be used in MIME transports
594 to specify any other IANA registered character set.
596 3.2. Property Parameters
598 A property can have attributes associated with it. These "property
599 parameters" contain meta-information about the property or the
600 property value. Property parameters are provided to specify such
601 information as the location of an alternate text representation for a
602 property value, the language of a text property value, the data type
603 of the property value and other attributes.
605 Property parameter values that contain the COLON (US-ASCII decimal
606 58), SEMICOLON (US-ASCII decimal 59) or COMMA (US-ASCII decimal 44)
607 character separators MUST be specified as quoted-string text values.
608 Property parameter values MUST NOT contain the DQUOTE (US-ASCII
609 decimal 22) character. The DQUOTE (US-ASCII decimal 22) character is
610 used as a delimiter for parameter values that contain restricted
611 characters or URI text. For example:
613 DESCRIPTION;ALTREP="http://www.wiz.org":The Fall'98 Wild Wizards
614 Conference - - Las Vegas, NV, USA
616 Property parameter values that are not in quoted strings are case
617 insensitive.
619 The general property parameters defined by this memo are defined by
620 the following notation:
622 parameter = altrepparam ; Alternate text representation
623 / cnparam ; Common name
624 / cutypeparam ; Calendar user type
625 / delfromparam ; Delegator
626 / deltoparam ; Delegatee
627 / dirparam ; Directory entry
628 / encodingparam ; Inline encoding
629 / fmttypeparam ; Format type
630 / fbtypeparam ; Free/busy time type
631 / languageparam ; Language for text
632 / memberparam ; Group or list membership
633 / partstatparam ; Participation status
634 / rangeparam ; Recurrence identifier range
635 / trigrelparam ; Alarm trigger relationship
636 / reltypeparam ; Relationship type
637 / roleparam ; Participation role
638 / rsvpparam ; RSVP expectation
639 / sentbyparam ; Sent by
640 / tzidparam ; Reference to time zone object
641 / valuetypeparam ; Property value data type
642 / ianaparam
643 ; Some other IANA registered iCalendar parameter.
644 / xparam
645 ; A non-standard, experimental parameter.
647 ianaparam = iana-token "=" param-value *("," param-value)
649 xparam = x-name "=" param-value *("," param-value)
651 3.2.1. Alternate Text Representation
653 Parameter Name: ALTREP
655 Purpose: To specify an alternate text representation for the property
656 value.
658 Format Definition: The property parameter is defined by the following
659 notation:
661 altrepparam = "ALTREP" "=" DQUOTE uri DQUOTE
663 Description: The parameter specifies a URI that points to an
664 alternate representation for a textual property value. A property
665 specifying this parameter MUST also include a value that reflects
666 the default representation of the text value. The individual URI
667 parameter values MUST each be specified in a quoted-string.
669 Example:
671 DESCRIPTION;ALTREP="CID:":Project
672 XYZ Review Meeting will include the following agenda items: (a)
673 Market Overview, (b) Finances, (c) Project Management
675 The "ALTREP" property parameter value might point to a "text/html"
676 content portion.
678 Content-Type:text/html
679 Content-Id:
681
682 Project XYZ Review Meeting will include the following
683 agenda items:
- Market
684 Overview
- Finances
- Project Management
685
687 3.2.2. Common Name
689 Parameter Name: CN
691 Purpose: To specify the common name to be associated with the
692 calendar user specified by the property.
694 Format Definition: The property parameter is defined by the following
695 notation:
697 cnparam = "CN" "=" param-value
699 Description: This parameter can be specified on properties with a
700 CAL-ADDRESS value type. The parameter specifies the common name
701 to be associated with the calendar user specified by the property.
702 The parameter value is text. The parameter value can be used for
703 display text to be associated with the calendar address specified
704 by the property.
706 Example:
708 ORGANIZER;CN="John Smith":MAILTO:jsmith@host.com
710 3.2.3. Calendar User Type
712 Parameter Name: CUTYPE
714 Purpose: To specify the type of calendar user specified by the
715 property.
717 Format Definition: The property parameter is defined by the following
718 notation:
720 cutypeparam = "CUTYPE" "="
721 ("INDIVIDUAL" ; An individual
722 / "GROUP" ; A group of individuals
723 / "RESOURCE" ; A physical resource
724 / "ROOM" ; A room resource
725 / "UNKNOWN" ; Otherwise not known
726 / x-name ; Experimental type
727 / iana-token) ; Other IANA registered
728 ; type
729 ; Default is INDIVIDUAL
731 Description: This parameter can be specified on properties with a
732 CAL-ADDRESS value type. The parameter identifies the type of
733 calendar user specified by the property. If not specified on a
734 property that allows this parameter, the default is INDIVIDUAL.
736 Example:
738 ATTENDEE;CUTYPE=GROUP:MAILTO:ietf-calsch@imc.org
740 3.2.4. Delegators
742 Parameter Name: DELEGATED-FROM
744 Purpose: To specify the calendar users that have delegated their
745 participation to the calendar user specified by the property.
747 Format Definition: The property parameter is defined by the following
748 notation:
750 delfromparam = "DELEGATED-FROM" "=" DQUOTE cal-address DQUOTE
751 *("," DQUOTE cal-address DQUOTE)
753 Description: This parameter can be specified on properties with a
754 CAL-ADDRESS value type. This parameter can be specified on a
755 property that has a value type of calendar address. This
756 parameter specifies those calendar users that have delegated their
757 participation in a group scheduled event or to-do to the calendar
758 user specified by the property. The value MUST be a MAILTO URI as
759 defined in [RFC1738]. The individual calendar address parameter
760 values MUST each be specified in a quoted-string.
762 Example:
764 ATTENDEE;DELEGATED-FROM="MAILTO:jsmith@host.com":MAILTO:
765 jdoe@host.com
767 3.2.5. Delegatees
769 Parameter Name: DELEGATED-TO
771 Purpose: To specify the calendar users to whom the calendar user
772 specified by the property has delegated participation.
774 Format Definition: The property parameter is defined by the following
775 notation:
777 deltoparam = "DELEGATED-TO" "=" DQUOTE cal-address DQUOTE
778 *("," DQUOTE cal-address DQUOTE)
780 Description: This parameter can be specified on properties with a
781 CAL-ADDRESS value type. This parameter specifies those calendar
782 users whom have been delegated participation in a group scheduled
783 event or to-do by the calendar user specified by the property.
784 The value MUST be a MAILTO URI as defined in [RFC1738]. The
785 individual calendar address parameter values MUST each be
786 specified in a quoted-string.
788 Example:
790 ATTENDEE;DELEGATED-TO="MAILTO:jdoe@host.com","MAILTO:jqpublic@
791 host.com":MAILTO:jsmith@host.com
793 3.2.6. Directory Entry Reference
795 Parameter Name: DIR
797 Purpose: To specify reference to a directory entry associated with
798 the calendar user specified by the property.
800 Format Definition: The property parameter is defined by the following
801 notation:
803 dirparam = "DIR" "=" DQUOTE uri DQUOTE
805 Description: This parameter can be specified on properties with a
806 CAL-ADDRESS value type. The parameter specifies a reference to
807 the directory entry associated with the calendar user specified by
808 the property. The parameter value is a URI. The individual URI
809 parameter values MUST each be specified in a quoted-string.
811 Example:
813 ORGANIZER;DIR="ldap://host.com:6666/o=eDABC%20Industries,c=3DUS??
814 (cn=3DBJim%20Dolittle)":MAILTO:jimdo@host1.com
816 3.2.7. Inline Encoding
818 Parameter Name: ENCODING
820 Purpose: To specify an alternate inline encoding for the property
821 value.
823 Format Definition: The property parameter is defined by the following
824 notation:
826 encodingparam = "ENCODING" "="
827 ("8BIT"
828 ; "8bit" text encoding is defined in [RFC2045]
829 / "BASE64"
830 ; "BASE64" binary encoding format is defined in [RFC2045]
831 / iana-token
832 ; Some other IANA registered iCalendar encoding type
833 / x-name)
834 ; A non-standard, experimental encoding type
836 Description: The property parameter identifies the inline encoding
837 used in a property value. The default encoding is "8BIT",
838 corresponding to a property value consisting of text. The
839 "BASE64" encoding type corresponds to a property value encoded
840 using the "BASE64" encoding defined in [RFC2045].
842 If the value type parameter is ";VALUE=BINARY", then the inline
843 encoding parameter MUST be specified with the value
844 ";ENCODING=BASE64".
846 Example:
848 ATTACH;FMTYPE=IMAGE/JPEG;ENCODING=BASE64;VALUE=BINARY:MIICajC
849 CAdOgAwIBAgICBEUwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDA
850 qBgNVBAoTI05ldHNjYXBlIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uMRw
851 <...remainder of "BASE64" encoded binary data...>
853 3.2.8. Format Type
855 Parameter Name: FMTTYPE
857 Purpose: To specify the content type of a referenced object.
859 Format Definition: The property parameter is defined by the following
860 notation:
862 fmttypeparam = "FMTTYPE" "=" iana-token
863 ; A IANA registered content type
864 / x-name
865 ; A non-standard content type
867 Description: This parameter can be specified on properties that are
868 used to reference an object. The parameter specifies the content
869 type of the referenced object. For example, on the "ATTACH"
870 property, a FTP type URI value does not, by itself, necessarily
871 convey the type of content associated with the resource. The
872 parameter value MUST be the TEXT for either an IANA registered
873 content type or a non-standard content type.
875 Example:
877 ATTACH;FMTTYPE=application/msword:ftp://domain.com/pub/docs/
878 agenda.doc
880 3.2.9. Free/Busy Time Type
882 Parameter Name: FBTYPE
884 Purpose: To specify the free or busy time type.
886 Format Definition: The property parameter is defined by the following
887 notation:
889 fbtypeparam = "FBTYPE" "=" ("FREE" / "BUSY"
890 / "BUSY-UNAVAILABLE" / "BUSY-TENTATIVE"
891 / x-name
892 ; Some experimental iCalendar data type.
893 / iana-token)
894 ; Some other IANA registered iCalendar data type.
896 Description: The parameter specifies the free or busy time type. The
897 value FREE indicates that the time interval is free for
898 scheduling. The value BUSY indicates that the time interval is
899 busy because one or more events have been scheduled for that
900 interval. The value BUSY-UNAVAILABLE indicates that the time
901 interval is busy and that the interval can not be scheduled. The
902 value BUSY-TENTATIVE indicates that the time interval is busy
903 because one or more events have been tentatively scheduled for
904 that interval. If not specified on a property that allows this
905 parameter, the default is BUSY.
907 Example: The following is an example of this parameter on a FREEBUSY
908 property.
910 FREEBUSY;FBTYPE=BUSY:19980415T133000Z/19980415T170000Z
912 3.2.10. Language
914 Parameter Name: LANGUAGE
916 Purpose: To specify the language for text values in a property or
917 property parameter.
919 Format Definition: The property parameter is defined by the following
920 notation:
922 languageparam = "LANGUAGE" "=" language
924 language =
926 Description: This parameter can be specified on properties with a
927 text value type. The parameter identifies the language of the
928 text in the property or property parameter value. The value of
929 the "language" property parameter is that defined in [RFC1766].
931 For transport in a MIME entity, the Content-Language header field
932 can be used to set the default language for the entire body part.
933 Otherwise, no default language is assumed.
935 Example:
937 SUMMARY;LANGUAGE=us-EN:Company Holiday Party
939 LOCATION;LANGUAGE=en:Germany
941 LOCATION;LANGUAGE=no:Tyskland
943 The following example makes use of the Quoted-Printable encoding
944 in order to represent non-ASCII characters.
946 LOCATION;LANGUAGE=3Dda:K=C3=B8benhavn
948 LOCATION;LANGUAGE=en:Copenhagen
950 3.2.11. Group or List Membership
952 Parameter Name: MEMBER
954 Purpose: To specify the group or list membership of the calendar user
955 specified by the property.
957 Format Definition: The property parameter is defined by the following
958 notation:
960 memberparam = "MEMBER" "=" DQUOTE cal-address DQUOTE
961 *("," DQUOTE cal-address DQUOTE)
963 Description: This parameter can be specified on properties with a
964 CAL-ADDRESS value type. The parameter identifies the groups or
965 list membership for the calendar user specified by the property.
966 The parameter value either a single calendar address in a quoted-
967 string or a COMMA character (US-ASCII decimal 44) list of calendar
968 addresses, each in a quoted-string. The individual calendar
969 address parameter values MUST each be specified in a quoted-
970 string.
972 Example:
974 ATTENDEE;MEMBER="MAILTO:ietf-calsch@imc.org":MAILTO:jsmith@host.com
976 ATTENDEE;MEMBER="MAILTO:projectA@host.com","MAILTO:projectB@host.
977 com":MAILTO:janedoe@host.com
979 3.2.12. Participation Status
981 Parameter Name: PARTSTAT
983 Purpose: To specify the participation status for the calendar user
984 specified by the property.
986 Format Definition: The property parameter is defined by the following
987 notation:
989 partstatparam = "PARTSTAT" "="
990 ("NEEDS-ACTION" ; Event needs action
991 / "ACCEPTED" ; Event accepted
992 / "DECLINED" ; Event declined
993 / "TENTATIVE" ; Event tentatively
994 ; accepted
995 / "DELEGATED" ; Event delegated
996 / x-name ; Experimental status
997 / iana-token) ; Other IANA registered
998 ; status
999 ; These are the participation statuses for a "VEVENT". Default is
1000 ; NEEDS-ACTION
1001 partstatparam /= "PARTSTAT" "="
1002 ("NEEDS-ACTION" ; To-do needs action
1003 / "ACCEPTED" ; To-do accepted
1004 / "DECLINED" ; To-do declined
1005 / "TENTATIVE" ; To-do tentatively
1006 ; accepted
1007 / "DELEGATED" ; To-do delegated
1008 / "COMPLETED" ; To-do completed.
1009 ; COMPLETED property has
1010 ;date/time completed.
1011 / "IN-PROCESS" ; To-do in process of
1012 ; being completed
1013 / x-name ; Experimental status
1014 / iana-token) ; Other IANA registered
1015 ; status
1016 ; These are the participation statuses for a "VTODO". Default is
1017 ; NEEDS-ACTION
1019 partstatparam /= "PARTSTAT" "="
1020 ("NEEDS-ACTION" ; Journal needs action
1021 / "ACCEPTED" ; Journal accepted
1022 / "DECLINED" ; Journal declined
1023 / x-name ; Experimental status
1024 / iana-token) ; Other IANA registered
1025 ; status
1026 ; These are the participation statuses for a "VJOURNAL". Default is
1027 ; NEEDS-ACTION
1029 Description: This parameter can be specified on properties with a
1030 CAL-ADDRESS value type. The parameter identifies the
1031 participation status for the calendar user specified by the
1032 property value. The parameter values differ depending on whether
1033 they are associated with a group scheduled "VEVENT", "VTODO" or
1034 "VJOURNAL". The values MUST match one of the values allowed for
1035 the given calendar component. If not specified on a property that
1036 allows this parameter, the default value is NEEDS-ACTION.
1038 Example:
1040 ATTENDEE;PARTSTAT=DECLINED:MAILTO:jsmith@host.com
1042 3.2.13. Recurrence Identifier Range
1044 Parameter Name: RANGE
1046 Purpose: To specify the effective range of recurrence instances from
1047 the instance specified by the recurrence identifier specified by
1048 the property.
1050 Format Definition: The property parameter is defined by the following
1051 notation:
1053 rangeparam = "RANGE" "=" ("THISANDPRIOR"
1054 ; To specify all instances prior to the recurrence identifier
1055 / "THISANDFUTURE")
1056 ; To specify the instance specified by the recurrence identifier
1057 ; and all subsequent recurrence instances
1059 Description: The parameter can be specified on a property that
1060 specifies a recurrence identifier. The parameter specifies the
1061 effective range of recurrence instances that is specified by the
1062 property. The effective range is from the recurrence identified
1063 specified by the property. If this parameter is not specified an
1064 allowed property, then the default range is the single instance
1065 specified by the recurrence identifier value of the property. The
1066 parameter value can be "THISANDPRIOR" to indicate a range defined
1067 by the recurrence identified value of the property and all prior
1068 instances. The parameter value can also be "THISANDFUTURE" to
1069 indicate a range defined by the recurrence identifier and all
1070 subsequent instances.
1072 Example:
1074 RECURRENCE-ID;RANGE=THISANDPRIOR:19980401T133000Z
1076 3.2.14. Alarm Trigger Relationship
1078 Parameter Name: RELATED
1080 Purpose: To specify the relationship of the alarm trigger with
1081 respect to the start or end of the calendar component.
1083 Format Definition: The property parameter is defined by the following
1084 notation:
1086 trigrelparam = "RELATED" "="
1087 ("START" ; Trigger off of start
1088 / "END") ; Trigger off of end
1090 Description: The parameter can be specified on properties that
1091 specify an alarm trigger with a DURATION value type. The
1092 parameter specifies whether the alarm will trigger relative to the
1093 start or end of the calendar component. The parameter value START
1094 will set the alarm to trigger off the start of the calendar
1095 component; the parameter value END will set the alarm to trigger
1096 off the end of the calendar component. If the parameter is not
1097 specified on an allowable property, then the default is START.
1099 Example:
1101 TRIGGER;RELATED=END:PT5M
1103 3.2.15. Relationship Type
1105 Parameter Name: RELTYPE
1107 Purpose: To specify the type of hierarchical relationship associated
1108 with the calendar component specified by the property.
1110 Format Definition: The property parameter is defined by the following
1111 notation:
1113 reltypeparam = "RELTYPE" "="
1114 ("PARENT" ; Parent relationship. Default.
1115 / "CHILD" ; Child relationship
1116 / "SIBLING ; Sibling relationship
1117 / iana-token ; Some other IANA registered
1118 ; iCalendar relationship type
1119 / x-name) ; A non-standard, experimental
1120 ; relationship type
1122 Description: This parameter can be specified on a property that
1123 references another related calendar. The parameter specifies the
1124 hierarchical relationship type of the calendar component
1125 referenced by the property. The parameter value can be PARENT, to
1126 indicate that the referenced calendar component is a superior of
1127 calendar component; CHILD to indicate that the referenced calendar
1128 component is a subordinate of the calendar component; SIBLING to
1129 indicate that the referenced calendar component is a peer of the
1130 calendar component. If this parameter is not specified on an
1131 allowable property, the default relationship type is PARENT.
1133 Example:
1135 RELATED-TO;RELTYPE=SIBLING:<19960401-080045-4000F192713@host.com>
1137 3.2.16. Participation Role
1139 Parameter Name: ROLE
1141 Purpose: To specify the participation role for the calendar user
1142 specified by the property.
1144 Format Definition: The property parameter is defined by the following
1145 notation:
1147 roleparam = "ROLE" "="
1148 ("CHAIR" ; Indicates chair of the
1149 ; calendar entity
1150 / "REQ-PARTICIPANT" ; Indicates a participant whose
1151 ; participation is required
1152 / "OPT-PARTICIPANT" ; Indicates a participant whose
1153 ; participation is optional
1154 / "NON-PARTICIPANT" ; Indicates a participant who is
1155 ; copied for information
1156 ; purposes only
1157 / x-name ; Experimental role
1158 / iana-token) ; Other IANA role
1159 ; Default is REQ-PARTICIPANT
1161 Description: This parameter can be specified on properties with a
1162 CAL-ADDRESS value type. The parameter specifies the participation
1163 role for the calendar user specified by the property in the group
1164 schedule calendar component. If not specified on a property that
1165 allows this parameter, the default value is REQ-PARTICIPANT.
1167 Example:
1169 ATTENDEE;ROLE=CHAIR:MAILTO:mrbig@host.com
1171 3.2.17. RSVP Expectation
1173 Parameter Name: RSVP
1175 Purpose: To specify whether there is an expectation of a favor of a
1176 reply from the calendar user specified by the property value.
1178 Format Definition: The property parameter is defined by the following
1179 notation:
1181 rsvpparam = "RSVP" "=" ("TRUE" / "FALSE")
1182 ; Default is FALSE
1184 Description: This parameter can be specified on properties with a
1185 CAL-ADDRESS value type. The parameter identifies the expectation
1186 of a reply from the calendar user specified by the property value.
1187 This parameter is used by the "Organizer" to request a
1188 participation status reply from an "Attendee" of a group scheduled
1189 event or to-do. If not specified on a property that allows this
1190 parameter, the default value is FALSE.
1192 Example:
1194 ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host.com
1196 3.2.18. Sent By
1198 Parameter Name: SENT-BY
1200 Purpose: To specify the calendar user that is acting on behalf of the
1201 calendar user specified by the property.
1203 Format Definition: The property parameter is defined by the following
1204 notation:
1206 sentbyparam = "SENT-BY" "=" DQUOTE cal-address DQUOTE
1208 Description: This parameter can be specified on properties with a
1209 CAL-ADDRESS value type. The parameter specifies the calendar user
1210 that is acting on behalf of the calendar user specified by the
1211 property. The parameter value MUST be a MAILTO URI as defined in
1212 [RFC1738]. The individual calendar address parameter values MUST
1213 each be specified in a quoted-string.
1215 Example:
1217 ORGANIZER;SENT-BY:"MAILTO:sray@host.com":MAILTO:jsmith@host.com
1219 3.2.19. Time Zone Identifier
1221 Parameter Name: TZID
1222 Purpose: To specify the identifier for the time zone definition for a
1223 time component in the property value.
1225 Format Definition: The property parameter is defined by the following
1226 notation:
1228 tzidparam = "TZID" "=" [tzidprefix] paramtext CRLF
1230 tzidprefix = "/"
1232 Description: The parameter MUST be specified on the "DTSTART",
1233 "DTEND", "DUE", "EXDATE" and "RDATE" properties when either a
1234 DATE- TIME or TIME value type is specified and when the value is
1235 not either a UTC or a "floating" time. Refer to the DATE-TIME or
1236 TIME value type definition for a description of UTC and "floating
1237 time" formats. This property parameter specifies a text value
1238 which uniquely identifies the "VTIMEZONE" calendar component to be
1239 used when evaluating the time portion of the property. The value
1240 of the TZID property parameter will be equal to the value of the
1241 TZID property for the matching time zone definition. An
1242 individual "VTIMEZONE" calendar component MUST be specified for
1243 each unique "TZID" parameter value specified in the iCalendar
1244 object.
1246 The parameter MUST be specified on properties with a DATE-TIME
1247 value if the DATE-TIME is not either a UTC or a "floating" time.
1249 The presence of the SOLIDUS character (US-ASCII decimal 47) as a
1250 prefix, indicates that this TZID represents a unique ID in a
1251 globally defined time zone registry (when such registry is
1252 defined).
1254 Note: This document does not define a naming convention for
1255 time zone identifiers. Implementers may want to use the naming
1256 conventions defined in existing time zone specifications such
1257 as the public-domain Olson database [TZDB]. The specification
1258 of globally unique time zone identifiers is not addressed by
1259 this document and is left for future study.
1261 The following are examples of this property parameter:
1263 DTSTART;TZID=US-Eastern:19980119T020000
1265 DTEND;TZID=US-Eastern:19980119T030000
1267 The TZID property parameter MUST NOT be applied to DATE-TIME or
1268 TIME properties whose time values are specified in UTC.
1270 The use of local time in a DATE-TIME or TIME value without the
1271 TZID property parameter is to be interpreted as a local time
1272 value, regardless of the existence of "VTIMEZONE" calendar
1273 components in the iCalendar object.
1275 For more information see the sections on the data types DATE-TIME
1276 and TIME.
1278 3.2.20. Value Data Types
1280 Parameter Name: VALUE
1282 Purpose: To explicitly specify the data type format for a property
1283 value.
1285 Format Definition: The property parameter is defined by the following
1286 notation:
1288 valuetypeparam = "VALUE" "=" valuetype
1290 valuetype = ("BINARY"
1291 / "BOOLEAN"
1292 / "CAL-ADDRESS"
1293 / "DATE"
1294 / "DATE-TIME"
1295 / "DURATION"
1296 / "FLOAT"
1297 / "INTEGER"
1298 / "PERIOD"
1299 / "RECUR"
1300 / "TEXT"
1301 / "TIME"
1302 / "URI"
1303 / "UTC-OFFSET"
1304 / x-name
1305 ; Some experimental iCalendar data type.
1306 / iana-token)
1307 ; Some other IANA registered iCalendar data type.
1309 Description: The parameter specifies the data type and format of the
1310 property value. The property values MUST be of a single value
1311 type. For example, a "RDATE" property cannot have a combination
1312 of DATE- TIME and TIME value types.
1314 If the property's value is the default value type, then this
1315 parameter need not be specified. However, if the property's
1316 default value type is overridden by some other allowable value
1317 type, then this parameter MUST be specified.
1319 3.3. Property Value Data Types
1321 The properties in an iCalendar object are strongly typed. The
1322 definition of each property restricts the value to be one of the
1323 value data types, or simply value types, defined in this section.
1324 The value type for a property will either be specified implicitly as
1325 the default value type or will be explicitly specified with the
1326 "VALUE" parameter. If the value type of a property is one of the
1327 alternate valid types, then it MUST be explicitly specified with the
1328 "VALUE" parameter.
1330 3.3.1. Binary
1332 Value Name: BINARY
1334 Purpose: This value type is used to identify properties that contain
1335 a character encoding of inline binary data. For example, an
1336 inline attachment of an object code might be included in an
1337 iCalendar object.
1339 Format Definition: The value type is defined by the following
1340 notation:
1342 binary = *(4b-char) [b-end]
1343 ; A "BASE64" encoded character string, as defined by [RFC2045].
1345 b-end = (2b-char "==") / (3b-char "=")
1347 b-char = ALPHA / DIGIT / "+" / "/"
1349 Description: Property values with this value type MUST also include
1350 the inline encoding parameter sequence of ";ENCODING=BASE64".
1351 That is, all inline binary data MUST first be character encoded
1352 using the "BASE64" encoding method defined in [RFC2045]. No
1353 additional content value encoding (i.e., BACKSLASH character
1354 encoding) is defined for this value type.
1356 Example: The following is an abridged example of a "BASE64" encoded
1357 binary value data.
1359 ATTACH;VALUE=BINARY;ENCODING=BASE64:MIICajCCAdOgAwIBAgICBEUwDQY
1360 JKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlI
1361 ENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZv
1362 <...remainder of "BASE64" encoded binary data...>
1364 3.3.2. Boolean
1366 Value Name: BOOLEAN
1368 Purpose: This value type is used to identify properties that contain
1369 either a "TRUE" or "FALSE" Boolean value.
1371 Format Definition: The value type is defined by the following
1372 notation:
1374 boolean = "TRUE" / "FALSE"
1376 Description: These values are case insensitive text. No additional
1377 content value encoding (i.e., BACKSLASH character encoding) is
1378 defined for this value type.
1380 Example: The following is an example of a hypothetical property that
1381 has a BOOLEAN value type:
1383 GIBBERISH:TRUE
1385 3.3.3. Calendar User Address
1387 Value Name: CAL-ADDRESS
1389 Purpose: This value type is used to identify properties that contain
1390 a calendar user address.
1392 Format Definition: The value type is defined by the following
1393 notation:
1395 cal-address = uri
1397 Description: The value is a URI as defined by [RFC1738] or any other
1398 IANA registered form for a URI. When used to address an Internet
1399 email transport address for a calendar user, the value MUST be a
1400 MAILTO URI, as defined by [RFC1738]. No additional content value
1401 encoding (i.e., BACKSLASH character encoding) is defined for this
1402 value type.
1404 Example:
1406 ATTENDEE:MAILTO:jane_doe@host.com
1408 3.3.4. Date
1410 Value Name: DATE
1412 Purpose: This value type is used to identify values that contain a
1413 calendar date.
1415 Format Definition: The value type is defined by the following
1416 notation:
1418 date = date-value
1420 date-value = date-fullyear date-month date-mday
1421 date-fullyear = 4DIGIT
1422 date-month = 2DIGIT ;01-12
1423 date-mday = 2DIGIT ;01-28, 01-29, 01-30, 01-31
1424 ;based on month/year
1426 Description: If the property permits, multiple "date" values are
1427 specified as a COMMA character (US-ASCII decimal 44) separated
1428 list of values. The format for the value type is expressed as the
1429 [ISO.8601.1988] complete representation, basic format for a
1430 calendar date. The textual format specifies a four-digit year,
1431 two-digit month, and two-digit day of the month. There are no
1432 separator characters between the year, month and day component
1433 text.
1435 No additional content value encoding (i.e., BACKSLASH character
1436 encoding) is defined for this value type.
1438 Example: The following represents July 14, 1997:
1440 19970714
1442 3.3.5. Date-Time
1444 Value Name: DATE-TIME
1446 Purpose: This value type is used to identify values that specify a
1447 precise calendar date and time of day.
1449 Format Definition: The value type is defined by the following
1450 notation:
1452 date-time = date "T" time ;As specified in the date and time
1453 ;value definitions
1455 Description: If the property permits, multiple "date-time" values are
1456 specified as a COMMA character (US-ASCII decimal 44) separated
1457 list of values. No additional content value encoding (i.e.,
1458 BACKSLASH character encoding) is defined for this value type.
1460 The "DATE-TIME" data type is used to identify values that contain
1461 a precise calendar date and time of day. The format is based on
1462 the [ISO.8601.1988] complete representation, basic format for a
1463 calendar date and time of day. The text format is a concatenation
1464 of the "date", followed by the LATIN CAPITAL LETTER T character
1465 (US-ASCII decimal 84) time designator, followed by the "time"
1466 format.
1468 The "DATE-TIME" data type expresses time values in three forms:
1470 The form of date and time with UTC offset MUST NOT be used. For
1471 example, the following is not valid for a date-time value:
1473 DTSTART:19980119T230000-0800 ;Invalid time format
1475 FORM #1: DATE WITH LOCAL TIME
1477 The date with local time form is simply a date-time value that
1478 does not contain the UTC designator nor does it reference a time
1479 zone. For example, the following represents Janurary 18, 1998, at
1480 11 PM:
1482 DTSTART:19980118T230000
1484 Date-time values of this type are said to be "floating" and are
1485 not bound to any time zone in particular. They are used to
1486 represent the same hour, minute, and second value regardless of
1487 which time zone is currently being observed. For example, an
1488 event can be defined that indicates that an individual will be
1489 busy from 11:00 AM to 1:00 PM every day, no matter which time zone
1490 the person is in. In these cases, a local time can be specified.
1491 The recipient of an iCalendar object with a property value
1492 consisting of a local time, without any relative time zone
1493 information, SHOULD interpret the value as being fixed to whatever
1494 time zone the ATTENDEE is in at any given moment. This means that
1495 two ATTENDEEs, in different time zones, receiving the same event
1496 definition as a floating time, may be participating in the event
1497 at different actual times. Floating time SHOULD only be used
1498 where that is the reasonable behavior.
1500 In most cases, a fixed time is desired. To properly communicate a
1501 fixed time in a property value, either UTC time or local time with
1502 time zone reference MUST be specified.
1504 The use of local time in a DATE-TIME value without the TZID
1505 property parameter is to be interpreted as floating time,
1506 regardless of the existence of "VTIMEZONE" calendar components in
1507 the iCalendar object.
1509 FORM #2: DATE WITH UTC TIME
1511 The date with UTC time, or absolute time, is identified by a LATIN
1512 CAPITAL LETTER Z suffix character (US-ASCII decimal 90), the UTC
1513 designator, appended to the time value. For example, the
1514 following represents January 19, 1998, at 0700 UTC:
1516 DTSTART:19980119T070000Z
1518 The TZID property parameter MUST NOT be applied to DATE-TIME
1519 properties whose time values are specified in UTC.
1521 FORM #3: DATE WITH LOCAL TIME AND TIME ZONE REFERENCE
1523 The date and local time with reference to time zone information is
1524 identified by the use the TZID property parameter to reference the
1525 appropriate time zone definition. TZID is discussed in detail in
1526 the section on Time Zone. For example, the following represents 2
1527 AM in New York on Janurary 19, 1998:
1529 DTSTART;TZID=US-Eastern:19980119T020000
1531 Example: The following represents July 14, 1997, at 1:30 PM in New
1532 York City in each of the three time formats, using the "DTSTART"
1533 property.
1535 DTSTART:19970714T133000 ;Local time
1536 DTSTART:19970714T173000Z ;UTC time
1537 DTSTART;TZID=US-Eastern:19970714T133000 ;Local time and time
1538 ; zone reference
1540 A time value MUST ONLY specify 60 seconds when specifying the
1541 periodic "leap second" in the time value. For example:
1543 COMPLETED:19970630T235960Z
1545 3.3.6. Duration
1547 Value Name: DURATION
1549 Purpose: This value type is used to identify properties that contain
1550 a duration of time.
1552 Format Definition: The value type is defined by the following
1553 notation:
1555 dur-value = (["+"] / "-") "P" (dur-date / dur-time / dur-week)
1557 dur-date = dur-day [dur-time]
1558 dur-time = "T" (dur-hour / dur-minute / dur-second)
1559 dur-week = 1*DIGIT "W"
1560 dur-hour = 1*DIGIT "H" [dur-minute]
1561 dur-minute = 1*DIGIT "M" [dur-second]
1562 dur-second = 1*DIGIT "S"
1563 dur-day = 1*DIGIT "D"
1565 Description: If the property permits, multiple "duration" values are
1566 specified by a COMMA character (US-ASCII decimal 44) separated
1567 list of values. The format is expressed as the [ISO.8601.1988]
1568 basic format for the duration of time. The format can represent
1569 durations in terms of weeks, days, hours, minutes, and seconds.
1571 No additional content value encoding (i.e., BACKSLASH character
1572 encoding) are defined for this value type.
1574 Example: A duration of 15 days, 5 hours and 20 seconds would be:
1576 P15DT5H0M20S
1578 A duration of 7 weeks would be:
1580 P7W
1582 3.3.7. Float
1584 Value Name: FLOAT
1586 Purpose: This value type is used to identify properties that contain
1587 a real number value.
1589 Format Definition: The value type is defined by the following
1590 notation:
1592 float = (["+"] / "-") 1*DIGIT ["." 1*DIGIT]
1594 Description: If the property permits, multiple "float" values are
1595 specified by a COMMA character (US-ASCII decimal 44) separated
1596 list of values.
1598 No additional content value encoding (i.e., BACKSLASH character
1599 encoding) is defined for this value type.
1601 Example:
1603 1000000.0000001
1604 1.333
1605 -3.14
1607 3.3.8. Integer
1609 Value Name: INTEGER
1611 Purpose: This value type is used to identify properties that contain
1612 a signed integer value.
1614 Format Definition: The value type is defined by the following
1615 notation:
1617 integer = (["+"] / "-") 1*DIGIT
1619 Description: If the property permits, multiple "integer" values are
1620 specified by a COMMA character (US-ASCII decimal 44) separated
1621 list of values. The valid range for "integer" is -2147483648 to
1622 2147483647. If the sign is not specified, then the value is
1623 assumed to be positive.
1625 No additional content value encoding (i.e., BACKSLASH character
1626 encoding) is defined for this value type.
1628 Example:
1630 1234567890
1631 -1234567890
1632 +1234567890
1633 432109876
1635 3.3.9. Period of Time
1637 Value Name: PERIOD
1638 Purpose: This value type is used to identify values that contain a
1639 precise period of time.
1641 Format Definition: The value type is defined by the following
1642 notation:
1644 period = period-explicit / period-start
1646 period-explicit = date-time "/" date-time
1647 ; [ISO.8601.1988] complete representation basic format for a
1648 ; period of time consisting of a start and end. The start MUST
1649 ; be before the end.
1651 period-start = date-time "/" dur-value
1652 ; [ISO.8601.1988] complete representation basic format for a
1653 ; period of time consisting of a start and positive duration
1654 ; of time.
1656 Description: If the property permits, multiple "period" values are
1657 specified by a COMMA character (US-ASCII decimal 44) separated
1658 list of values. There are two forms of a period of time. First,
1659 a period of time is identified by its start and its end. This
1660 format is expressed as the [ISO.8601.1988] complete
1661 representation, basic format for "DATE-TIME" start of the period,
1662 followed by a SOLIDUS character (US-ASCII decimal 47), followed by
1663 the "DATE-TIME" of the end of the period. The start of the period
1664 MUST be before the end of the period. Second, a period of time
1665 can also be defined by a start and a positive duration of time.
1666 The format is expressed as the [ISO.8601.1988] complete
1667 representation, basic format for the "DATE-TIME" start of the
1668 period, followed by a SOLIDUS character (US-ASCII decimal 47),
1669 followed by the [ISO.8601.1988] basic format for "DURATION" of the
1670 period.
1672 Example: The period starting at 18:00:00 UTC, on January 1, 1997 and
1673 ending at 07:00:00 UTC on January 2, 1997 would be:
1675 19970101T180000Z/19970102T070000Z
1677 The period start at 18:00:00 on January 1, 1997 and lasting 5
1678 hours and 30 minutes would be:
1680 19970101T180000Z/PT5H30M
1682 No additional content value encoding (i.e., BACKSLASH character
1683 encoding) is defined for this value type.
1685 3.3.10. Recurrence Rule
1687 Value Name: RECUR
1689 Purpose: This value type is used to identify properties that contain
1690 a recurrence rule specification.
1692 Format Definition: The value type is defined by the following
1693 notation:
1695 recur = "FREQ"=freq *(
1697 ; either UNTIL or COUNT may appear in a 'recur',
1698 ; but UNTIL and COUNT MUST NOT occur in the same 'recur'
1700 ( ";" "UNTIL" "=" enddate ) /
1701 ( ";" "COUNT" "=" 1*DIGIT ) /
1703 ; the rest of these keywords are optional,
1704 ; but MUST NOT occur more than once
1706 ( ";" "INTERVAL" "=" 1*DIGIT ) /
1707 ( ";" "BYSECOND" "=" byseclist ) /
1708 ( ";" "BYMINUTE" "=" byminlist ) /
1709 ( ";" "BYHOUR" "=" byhrlist ) /
1710 ( ";" "BYDAY" "=" bywdaylist ) /
1711 ( ";" "BYMONTHDAY" "=" bymodaylist ) /
1712 ( ";" "BYYEARDAY" "=" byyrdaylist ) /
1713 ( ";" "BYWEEKNO" "=" bywknolist ) /
1714 ( ";" "BYMONTH" "=" bymolist ) /
1715 ( ";" "BYSETPOS" "=" bysplist ) /
1716 ( ";" "WKST" "=" weekday ) /
1717 ( ";" x-name "=" text )
1718 )
1720 freq = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY"
1721 / "WEEKLY" / "MONTHLY" / "YEARLY"
1723 enddate = date
1724 enddate =/ date-time ;An UTC value
1726 byseclist = seconds / ( seconds *("," seconds) )
1728 seconds = 1DIGIT / 2DIGIT ;0 to 59
1730 byminlist = minutes / ( minutes *("," minutes) )
1732 minutes = 1DIGIT / 2DIGIT ;0 to 59
1733 byhrlist = hour / ( hour *("," hour) )
1735 hour = 1DIGIT / 2DIGIT ;0 to 23
1737 bywdaylist = weekdaynum / ( weekdaynum *("," weekdaynum) )
1739 weekdaynum = [([plus] ordwk / minus ordwk)] weekday
1741 plus = "+"
1743 minus = "-"
1745 ordwk = 1DIGIT / 2DIGIT ;1 to 53
1747 weekday = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA"
1748 ;Corresponding to SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY,
1749 ;FRIDAY, SATURDAY and SUNDAY days of the week.
1751 bymodaylist = monthdaynum / ( monthdaynum *("," monthdaynum) )
1753 monthdaynum = ([plus] ordmoday) / (minus ordmoday)
1755 ordmoday = 1DIGIT / 2DIGIT ;1 to 31
1757 byyrdaylist = yeardaynum / ( yeardaynum *("," yeardaynum) )
1759 yeardaynum = ([plus] ordyrday) / (minus ordyrday)
1761 ordyrday = 1DIGIT / 2DIGIT / 3DIGIT ;1 to 366
1763 bywknolist = weeknum / ( weeknum *("," weeknum) )
1765 weeknum = ([plus] ordwk) / (minus ordwk)
1767 bymolist = monthnum / ( monthnum *("," monthnum) )
1769 monthnum = 1DIGIT / 2DIGIT ;1 to 12
1771 bysplist = setposday / ( setposday *("," setposday) )
1773 setposday = yeardaynum
1775 Description: If the property permits, multiple "recur" values are
1776 specified by a COMMA character (US-ASCII decimal 44) separated
1777 list of values. The value type is a structured value consisting
1778 of a list of one or more recurrence grammar parts. Each rule part
1779 is defined by a NAME=VALUE pair. The rule parts are separated
1780 from each other by the SEMICOLON character (US-ASCII decimal 59).
1782 The rule parts are not ordered in any particular sequence.
1783 Individual rule parts MUST only be specified once.
1785 The FREQ rule part identifies the type of recurrence rule. This
1786 rule part MUST be specified in the recurrence rule. Valid values
1787 include SECONDLY, to specify repeating events based on an interval
1788 of a second or more; MINUTELY, to specify repeating events based
1789 on an interval of a minute or more; HOURLY, to specify repeating
1790 events based on an interval of an hour or more; DAILY, to specify
1791 repeating events based on an interval of a day or more; WEEKLY, to
1792 specify repeating events based on an interval of a week or more;
1793 MONTHLY, to specify repeating events based on an interval of a
1794 month or more; and YEARLY, to specify repeating events based on an
1795 interval of a year or more.
1797 The INTERVAL rule part contains a positive integer representing
1798 how often the recurrence rule repeats. The default value is "1",
1799 meaning every second for a SECONDLY rule, or every minute for a
1800 MINUTELY rule, every hour for an HOURLY rule, every day for a
1801 DAILY rule, every week for a WEEKLY rule, every month for a
1802 MONTHLY rule and every year for a YEARLY rule.
1804 The UNTIL rule part defines a date-time value which bounds the
1805 recurrence rule in an inclusive manner. If the value specified by
1806 UNTIL is synchronized with the specified recurrence, this date or
1807 date-time becomes the last instance of the recurrence. If
1808 specified as a date-time value, then it MUST be specified in an
1809 UTC time format. If not present, and the COUNT rule part is also
1810 not present, the RRULE is considered to repeat forever.
1812 The COUNT rule part defines the number of occurrences at which to
1813 range-bound the recurrence. The "DTSTART" property value, if
1814 specified, counts as the first occurrence.
1816 The BYSECOND rule part specifies a COMMA character (US-ASCII
1817 decimal 44) separated list of seconds within a minute. Valid
1818 values are 0 to 59. The BYMINUTE rule part specifies a COMMA
1819 character (US-ASCII decimal 44) separated list of minutes within
1820 an hour. Valid values are 0 to 59. The BYHOUR rule part
1821 specifies a COMMA character (US- ASCII decimal 44) separated list
1822 of hours of the day. Valid values are 0 to 23.
1824 The BYDAY rule part specifies a COMMA character (US-ASCII decimal
1825 44) separated list of days of the week; MO indicates Monday; TU
1826 indicates Tuesday; WE indicates Wednesday; TH indicates Thursday;
1827 FR indicates Friday; SA indicates Saturday; SU indicates Sunday.
1829 Each BYDAY value can also be preceded by a positive (+n) or
1830 negative (-n) integer. If present, this indicates the nth
1831 occurrence of the specific day within the MONTHLY or YEARLY RRULE.
1832 For example, within a MONTHLY rule, +1MO (or simply 1MO)
1833 represents the first Monday within the month, whereas -1MO
1834 represents the last Monday of the month. If an integer modifier
1835 is not present, it means all days of this type within the
1836 specified frequency. For example, within a MONTHLY rule, MO
1837 represents all Mondays within the month.
1839 The BYMONTHDAY rule part specifies a COMMA character (ASCII
1840 decimal 44) separated list of days of the month. Valid values are
1841 1 to 31 or -31 to -1. For example, -10 represents the tenth to
1842 the last day of the month.
1844 The BYYEARDAY rule part specifies a COMMA character (US-ASCII
1845 decimal 44) separated list of days of the year. Valid values are
1846 1 to 366 or -366 to -1. For example, -1 represents the last day
1847 of the year (December 31st) and -306 represents the 306th to the
1848 last day of the year (March 1st).
1850 The BYWEEKNO rule part specifies a COMMA character (US-ASCII
1851 decimal 44) separated list of ordinals specifying weeks of the
1852 year. Valid values are 1 to 53 or -53 to -1. This corresponds to
1853 weeks according to week numbering as defined in [ISO.8601.1988].
1854 A week is defined as a seven day period, starting on the day of
1855 the week defined to be the week start (see WKST). Week number one
1856 of the calendar year is the first week which contains at least
1857 four (4) days in that calendar year. This rule part is only valid
1858 for YEARLY rules. For example, 3 represents the third week of the
1859 year.
1861 Note: Assuming a Monday week start, week 53 can only occur when
1862 Thursday is January 1 or if it is a leap year and Wednesday is
1863 January 1.
1865 The BYMONTH rule part specifies a COMMA character (US-ASCII
1866 decimal 44) separated list of months of the year. Valid values
1867 are 1 to 12.
1869 The WKST rule part specifies the day on which the workweek starts.
1870 Valid values are MO, TU, WE, TH, FR, SA and SU. This is
1871 significant when a WEEKLY RRULE has an interval greater than 1,
1872 and a BYDAY rule part is specified. This is also significant when
1873 in a YEARLY RRULE when a BYWEEKNO rule part is specified. The
1874 default value is MO.
1876 The BYSETPOS rule part specifies a COMMA character (US-ASCII
1877 decimal 44) separated list of values which corresponds to the nth
1878 occurrence within the set of events specified by the rule. Valid
1879 values are 1 to 366 or -366 to -1. It MUST only be used in
1880 conjunction with another BYxxx rule part. For example "the last
1881 work day of the month" could be represented as:
1883 RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
1885 Each BYSETPOS value can include a positive (+n) or negative (-n)
1886 integer. If present, this indicates the nth occurrence of the
1887 specific occurrence within the set of events specified by the
1888 rule.
1890 If BYxxx rule part values are found which are beyond the available
1891 scope (ie, BYMONTHDAY=30 in February), they are simply ignored.
1893 Information, not contained in the rule, necessary to determine the
1894 various recurrence instance start time and dates are derived from
1895 the Start Time (DTSTART) entry attribute. For example,
1896 "FREQ=YEARLY;BYMONTH=1" doesn't specify a specific day within the
1897 month or a time. This information would be the same as what is
1898 specified for DTSTART.
1900 BYxxx rule parts modify the recurrence in some manner. BYxxx rule
1901 parts for a period of time which is the same or greater than the
1902 frequency generally reduce or limit the number of occurrences of
1903 the recurrence generated. For example, "FREQ=DAILY;BYMONTH=1"
1904 reduces the number of recurrence instances from all days (if
1905 BYMONTH tag is not present) to all days in January. BYxxx rule
1906 parts for a period of time less than the frequency generally
1907 increase or expand the number of occurrences of the recurrence.
1908 For example, "FREQ=YEARLY;BYMONTH=1,2" increases the number of
1909 days within the yearly recurrence set from 1 (if BYMONTH tag is
1910 not present) to 2.
1912 If multiple BYxxx rule parts are specified, then after evaluating
1913 the specified FREQ and INTERVAL rule parts, the BYxxx rule parts
1914 are applied to the current set of evaluated occurrences in the
1915 following order: BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY,
1916 BYHOUR, BYMINUTE, BYSECOND and BYSETPOS; then COUNT and UNTIL are
1917 evaluated.
1919 Here is an example of evaluating multiple BYxxx rule parts.
1921 DTSTART;TZID=US-Eastern:19970105T083000
1922 RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;
1923 BYMINUTE=30
1925 First, the "INTERVAL=2" would be applied to "FREQ=YEARLY" to
1926 arrive at "every other year". Then, "BYMONTH=1" would be applied
1927 to arrive at "every January, every other year". Then, "BYDAY=SU"
1928 would be applied to arrive at "every Sunday in January, every
1929 other year". Then, "BYHOUR=8,9" would be applied to arrive at
1930 "every Sunday in January at 8 AM and 9 AM, every other year".
1931 Then, "BYMINUTE=30" would be applied to arrive at "every Sunday in
1932 January at 8:30 AM and 9:30 AM, every other year". Then, lacking
1933 information from RRULE, the second is derived from DTSTART, to end
1934 up in "every Sunday in January at 8:30:00 AM and 9:30:00 AM, every
1935 other year". Similarly, if the BYMINUTE, BYHOUR, BYDAY,
1936 BYMONTHDAY or BYMONTH rule part were missing, the appropriate
1937 minute, hour, day or month would have been retrieved from the
1938 "DTSTART" property.
1940 No additional content value encoding (i.e., BACKSLASH character
1941 encoding) is defined for this value type.
1943 Example: The following is a rule which specifies 10 meetings which
1944 occur every other day:
1946 FREQ=DAILY;COUNT=10;INTERVAL=2
1948 There are other examples specified in the "RRULE" specification.
1950 3.3.11. Text
1952 Value Name: TEXT
1954 Purpose: This value type is used to identify values that contain
1955 human readable text.
1957 Format Definition: The character sets supported by this revision of
1958 iCalendar are UTF-8 and US-ASCII thereof. The applicability to
1959 other character sets is for future work. The value type is
1960 defined by the following notation.
1962 text = *(TSAFE-CHAR / ":" / DQUOTE / ESCAPED-CHAR)
1963 ; Folded according to description above
1965 ESCAPED-CHAR = "\\" / "\;" / "\," / "\N" / "\n")
1966 ; \\ encodes \, \N or \n encodes newline
1967 ; \; encodes ;, \, encodes ,
1969 TSAFE-CHAR = %x20-21 / %x23-2B / %x2D-39 / %x3C-5B
1970 %x5D-7E / NON-US-ASCII
1971 ; Any character except CTLs not needed by the current
1972 ; character set, DQUOTE, ";", ":", "\", ","
1974 Note: Certain other character sets may require modification of
1975 the above definitions, but this is beyond the scope of this
1976 document.
1978 Description: If the property permits, multiple "text" values are
1979 specified by a COMMA character (US-ASCII decimal 44) separated
1980 list of values.
1982 The language in which the text is represented can be controlled by
1983 the "LANGUAGE" property parameter.
1985 An intentional formatted text line break MUST only be included in
1986 a "TEXT" property value by representing the line break with the
1987 character sequence of BACKSLASH (US-ASCII decimal 92), followed by
1988 a LATIN SMALL LETTER N (US-ASCII decimal 110) or a LATIN CAPITAL
1989 LETTER N (US-ASCII decimal 78), that is "\n" or "\N".
1991 The "TEXT" property values may also contain special characters
1992 that are used to signify delimiters, such as a COMMA character for
1993 lists of values or a SEMICOLON character for structured values.
1994 In order to support the inclusion of these special characters in
1995 "TEXT" property values, they MUST be escaped with a BACKSLASH
1996 character. A BACKSLASH character (US-ASCII decimal 92) in a
1997 "TEXT" property value MUST be escaped with another BACKSLASH
1998 character. A COMMA character in a "TEXT" property value MUST be
1999 escaped with a BACKSLASH character (US-ASCII decimal 92). A
2000 SEMICOLON character in a "TEXT" property value MUST be escaped
2001 with a BACKSLASH character (US-ASCII decimal 92). However, a
2002 COLON character in a "TEXT" property value SHALL NOT be escaped
2003 with a BACKSLASH character.
2005 Example: A multiple line value of:
2007 Project XYZ Final Review
2008 Conference Room - 3B
2009 Come Prepared.
2011 would be represented as:
2013 Project XYZ Final Review\nConference Room - 3B\nCome Prepared.
2015 3.3.12. Time
2017 Value Name: TIME
2018 Purpose: This value type is used to identify values that contain a
2019 time of day.
2021 Format Definition: The data type is defined by the following
2022 notation:
2024 time = time-hour time-minute time-second [time-utc]
2026 time-hour = 2DIGIT ;00-23
2027 time-minute = 2DIGIT ;00-59
2028 time-second = 2DIGIT ;00-60
2029 ;The "60" value is used to account for "leap" seconds.
2031 time-utc = "Z"
2033 Description: If the property permits, multiple "time" values are
2034 specified by a COMMA character (US-ASCII decimal 44) separated
2035 list of values. No additional content value encoding (i.e.,
2036 BACKSLASH character encoding) is defined for this value type.
2038 The "TIME" data type is used to identify values that contain a
2039 time of day. The format is based on the [ISO.8601.1988] complete
2040 representation, basic format for a time of day. The text format
2041 consists of a two-digit 24-hour of the day (i.e., values 0-23),
2042 two- digit minute in the hour (i.e., values 0-59), and two-digit
2043 seconds in the minute (i.e., values 0-60). The seconds value of
2044 60 MUST only to be used to account for "leap" seconds. Fractions
2045 of a second are not supported by this format.
2047 In parallel to the "DATE-TIME" definition above, the "TIME" data
2048 type expresses time values in three forms:
2050 The form of time with UTC offset MUST NOT be used. For example,
2051 the following is NOT VALID for a time value:
2053 230000-0800 ;Invalid time format
2055 FORM #1 LOCAL TIME
2057 The local time form is simply a time value that does not contain
2058 the UTC designator nor does it reference a time zone. For
2059 example, 11:00 PM:
2061 230000
2063 Time values of this type are said to be "floating" and are not
2064 bound to any time zone in particular. They are used to represent
2065 the same hour, minute, and second value regardless of which time
2066 zone is currently being observed. For example, an event can be
2067 defined that indicates that an individual will be busy from 11:00
2068 AM to 1:00 PM every day, no matter which time zone the person is
2069 in. In these cases, a local time can be specified. The recipient
2070 of an iCalendar object with a property value consisting of a local
2071 time, without any relative time zone information, SHOULD interpret
2072 the value as being fixed to whatever time zone the ATTENDEE is in
2073 at any given moment. This means that two ATTENDEEs may
2074 participate in the same event at different UTC times; floating
2075 time SHOULD only be used where that is reasonable behavior.
2077 In most cases, a fixed time is desired. To properly communicate a
2078 fixed time in a property value, either UTC time or local time with
2079 time zone reference MUST be specified.
2081 The use of local time in a TIME value without the TZID property
2082 parameter is to be interpreted as a local time value, regardless
2083 of the existence of "VTIMEZONE" calendar components in the
2084 iCalendar object.
2086 FORM #2: UTC TIME
2088 UTC time, or absolute time, is identified by a LATIN CAPITAL
2089 LETTER Z suffix character (US-ASCII decimal 90), the UTC
2090 designator, appended to the time value. For example, the
2091 following represents 07:00 AM UTC:
2093 070000Z
2095 The TZID property parameter MUST NOT be applied to TIME properties
2096 whose time values are specified in UTC.
2098 FORM #3: LOCAL TIME AND TIME ZONE REFERENCE
2100 The local time with reference to time zone information form is
2101 identified by the use the TZID property parameter to reference the
2102 appropriate time zone definition. TZID is discussed in detail in
2103 the section on Time Zone.
2105 Example: The following represents 8:30 AM in New York in Winter, five
2106 hours behind UTC, in each of the three formats using the "X-
2107 TIMEOFDAY" non-standard property:
2109 X-TIMEOFDAY:083000
2111 X-TIMEOFDAY:133000Z
2113 X-TIMEOFDAY;TZID=US-Eastern:083000
2115 3.3.13. URI
2117 Value Name: URI
2119 Purpose: This value type is used to identify values that contain a
2120 uniform resource identifier (URI) type of reference to the
2121 property value.
2123 Format Definition: The data type is defined by the following
2124 notation:
2126 uri =
2128 Description: This data type might be used to reference binary
2129 information, for values that are large, or otherwise undesirable
2130 to include directly in the iCalendar object.
2132 The URI value formats in RFC 1738, RFC 2111 and any other IETF
2133 registered value format can be specified.
2135 Any IANA registered URI format can be used. These include, but
2136 are not limited to, those defined in RFC 1738 and RFC 2111.
2138 When a property parameter value is a URI value type, the URI MUST
2139 be specified as a quoted-string value.
2141 No additional content value encoding (i.e., BACKSLASH character
2142 encoding) is defined for this value type.
2144 Example: The following is a URI for a network file:
2146 http://host1.com/my-report.txt
2148 3.3.14. UTC Offset
2149 Value Name: UTC-OFFSET
2151 Purpose: This value type is used to identify properties that contain
2152 an offset from UTC to local time.
2154 Format Definition: The data type is defined by the following
2155 notation:
2157 utc-offset = time-numzone ;As defined above in time data type
2159 time-numzone = ("+" / "-") time-hour time-minute [time-
2160 second]
2162 Description: The PLUS SIGN character MUST be specified for positive
2163 UTC offsets (i.e., ahead of UTC). The MINUS SIGN character MUST
2164 be specified for negative UTC offsets (i.e., behind of UTC). The
2165 value of "-0000" and "-000000" are not allowed. The time-second,
2166 if present, may not be 60; if absent, it defaults to zero.
2168 No additional content value encoding (i.e., BACKSLASH character
2169 encoding) is defined for this value type.
2171 Example: The following UTC offsets are given for standard time for
2172 New York (five hours behind UTC) and Geneva (one hour ahead of
2173 UTC):
2175 -0500
2177 +0100
2179 3.4. iCalendar Object
2181 The Calendaring and Scheduling Core Object is a collection of
2182 calendaring and scheduling information. Typically, this information
2183 will consist of a single iCalendar object. However, multiple
2184 iCalendar objects can be sequentially grouped together. The first
2185 line and last line of the iCalendar object MUST contain a pair of
2186 iCalendar object delimiter strings. The syntax for an iCalendar
2187 object is as follows:
2189 icalobject = 1*("BEGIN" ":" "VCALENDAR" CRLF
2190 icalbody
2191 "END" ":" "VCALENDAR" CRLF)
2193 The following is a simple example of an iCalendar object:
2195 BEGIN:VCALENDAR
2196 VERSION:2.0
2197 PRODID:-//hacksw/handcal//NONSGML v1.0//EN
2198 BEGIN:VEVENT
2199 DTSTART:19970714T170000Z
2200 DTEND:19970715T035959Z
2201 SUMMARY:Bastille Day Party
2202 END:VEVENT
2203 END:VCALENDAR
2205 3.5. Property
2207 A property is the definition of an individual attribute describing a
2208 calendar or a calendar component. A property takes the form defined
2209 by the "contentline" notation defined in Section 3.1.
2211 The following is an example of a property:
2213 DTSTART:19960415T133000Z
2215 This memo imposes no ordering of properties within an iCalendar
2216 object.
2218 Property names, parameter names and enumerated parameter values are
2219 case insensitive. For example, the property name "DUE" is the same
2220 as "due" and "Due", DTSTART;TZID=US-Eastern:19980714T120000 is the
2221 same as DtStart;TzID=US-Eastern:19980714T120000.
2223 3.6. Calendar Components
2225 The body of the iCalendar object consists of a sequence of calendar
2226 properties and one or more calendar components. The calendar
2227 properties are attributes that apply to the calendar as a whole. The
2228 calendar components are collections of properties that express a
2229 particular calendar semantic. For example, the calendar component
2230 can specify an event, a to-do, a journal entry, time zone
2231 information, or free/busy time information, or an alarm.
2233 The body of the iCalendar object is defined by the following
2234 notation:
2236 icalbody = calprops component
2238 calprops = 2*(
2240 ; 'prodid' and 'version' are both REQUIRED,
2241 ; but MUST NOT occur more than once
2243 prodid /version /
2245 ; 'calscale' and 'method' are optional,
2246 ; but MUST NOT occur more than once
2248 calscale /
2249 method /
2251 x-prop
2252 )
2254 component = 1*(eventc / todoc / journalc / freebusyc /
2255 / timezonec / iana-comp / x-comp)
2257 iana-comp = "BEGIN" ":" iana-token CRLF
2259 1*contentline
2261 "END" ":" iana-token CRLF
2263 x-comp = "BEGIN" ":" x-name CRLF
2265 1*contentline
2267 "END" ":" x-name CRLF
2269 An iCalendar object MUST include the "PRODID" and "VERSION" calendar
2270 properties. In addition, it MUST include at least one calendar
2271 component. Special forms of iCalendar objects are possible to
2272 publish just busy time (i.e., only a "VFREEBUSY" calendar component)
2273 or time zone (i.e., only a "VTIMEZONE" calendar component)
2274 information. In addition, a complex iCalendar object is possible
2275 that is used to capture a complete snapshot of the contents of a
2276 calendar (e.g., composite of many different calendar components).
2277 More commonly, an iCalendar object will consist of just a single
2278 "VEVENT", "VTODO" or "VJOURNAL" calendar component.
2280 3.6.1. Event Component
2281 Component Name: VEVENT
2283 Purpose: Provide a grouping of component properties that describe an
2284 event.
2286 Format Definition: A "VEVENT" calendar component is defined by the
2287 following notation:
2289 eventc = "BEGIN" ":" "VEVENT" CRLF
2290 eventprop *alarmc
2291 "END" ":" "VEVENT" CRLF
2293 eventprop = *(
2295 ; the following are optional,
2296 ; but MUST NOT occur more than once
2298 class / created / description / dtstart / geo /
2299 last-mod / location / organizer / priority /
2300 dtstamp / seq / status / summary / transp /
2301 uid / url / recurid /
2303 ; either 'dtend' or 'duration' may appear in
2304 ; a 'eventprop', but 'dtend' and 'duration'
2305 ; MUST NOT occur in the same 'eventprop'
2307 dtend / duration /
2309 ; the following are optional,
2310 ; and MAY occur more than once
2312 attach / attendee / categories / comment /
2313 contact / exdate / exrule / rstatus / related /
2314 resources / rdate / rrule / x-prop
2316 )
2318 Description: A "VEVENT" calendar component is a grouping of component
2319 properties, and possibly including "VALARM" calendar components,
2320 that represents a scheduled amount of time on a calendar. For
2321 example, it can be an activity; such as a one-hour long,
2322 department meeting from 8:00 AM to 9:00 AM, tomorrow. Generally,
2323 an event will take up time on an individual calendar. Hence, the
2324 event will appear as an opaque interval in a search for busy time.
2325 Alternately, the event can have its Time Transparency set to
2326 "TRANSPARENT" in order to prevent blocking of the event in
2327 searches for busy time.
2329 The "VEVENT" is also the calendar component used to specify an
2330 anniversary or daily reminder within a calendar. These events
2331 have a DATE value type for the "DTSTART" property instead of the
2332 default data type of DATE-TIME. If such a "VEVENT" has a "DTEND"
2333 property, it MUST be specified as a DATE value also. The
2334 anniversary type of "VEVENT" can span more than one date (i.e,
2335 "DTEND" property value is set to a calendar date after the
2336 "DTSTART" property value).
2338 The "DTSTART" property for a "VEVENT" specifies the inclusive
2339 start of the event. For recurring events, it also specifies the
2340 very first instance in the recurrence set. The "DTEND" property
2341 for a "VEVENT" calendar component specifies the non-inclusive end
2342 of the event. For cases where a "VEVENT" calendar component
2343 specifies a "DTSTART" property with a DATE data type but no
2344 "DTEND" property, the events non-inclusive end is the end of the
2345 calendar date specified by the "DTSTART" property. For cases
2346 where a "VEVENT" calendar component specifies a "DTSTART" property
2347 with a DATE-TIME data type but no "DTEND" property, the event ends
2348 on the same calendar date and time of day specified by the
2349 "DTSTART" property.
2351 The "VEVENT" calendar component cannot be nested within another
2352 calendar component. However, "VEVENT" calendar components can be
2353 related to each other or to a "VTODO" or to a "VJOURNAL" calendar
2354 component with the "RELATED-TO" property.
2356 Example: The following is an example of the "VEVENT" calendar
2357 component used to represent a meeting that will also be opaque to
2358 searches for busy time:
2360 BEGIN:VEVENT
2361 UID:19970901T130000Z-123401@host.com
2362 DTSTAMP:19970901T130000Z
2363 DTSTART:19970903T163000Z
2364 DTEND:19970903T190000Z
2365 SUMMARY:Annual Employee Review
2366 CLASS:PRIVATE
2367 CATEGORIES:BUSINESS,HUMAN RESOURCES
2368 END:VEVENT
2370 The following is an example of the "VEVENT" calendar component
2371 used to represent a reminder that will not be opaque, but rather
2372 transparent, to searches for busy time:
2374 BEGIN:VEVENT
2375 UID:19970901T130000Z-123402@host.com
2376 DTSTAMP:19970901T130000Z
2377 DTSTART:19970401T163000Z
2378 DTEND:19970402T010000Z
2379 SUMMARY:Laurel is in sensitivity awareness class.
2380 CLASS:PUBLIC
2381 CATEGORIES:BUSINESS,HUMAN RESOURCES
2382 TRANSP:TRANSPARENT
2383 END:VEVENT
2385 The following is an example of the "VEVENT" calendar component
2386 used to represent an anniversary that will occur annually. Since
2387 it takes up no time, it will not appear as opaque in a search for
2388 busy time; no matter what the value of the "TRANSP" property
2389 indicates:
2391 BEGIN:VEVENT
2392 UID:19970901T130000Z-123403@host.com
2393 DTSTAMP:19970901T130000Z
2394 DTSTART:19971102
2395 SUMMARY:Our Blissful Anniversary
2396 CLASS:CONFIDENTIAL
2397 CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION
2398 RRULE:FREQ=YEARLY
2399 END:VEVENT
2401 3.6.2. To-do Component
2403 Component Name: VTODO
2405 Purpose: Provide a grouping of calendar properties that describe a
2406 to-do.
2408 Format Definition: A "VTODO" calendar component is defined by the
2409 following notation:
2411 todoc = "BEGIN" ":" "VTODO" CRLF
2412 todoprop *alarmc
2413 "END" ":" "VTODO" CRLF
2415 todoprop = *(
2417 ; the following are optional,
2418 ; but MUST NOT occur more than once
2420 class / completed / created / description / dtstamp /
2421 dtstart / geo / last-mod / location / organizer /
2422 percent / priority / recurid / seq / status /
2423 summary / uid / url /
2425 ; either 'due' or 'duration' may appear in
2426 ; a 'todoprop', but 'due' and 'duration'
2427 ; MUST NOT occur in the same 'todoprop'
2429 due / duration /
2431 ; the following are optional,
2432 ; and MAY occur more than once
2433 attach / attendee / categories / comment / contact /
2434 exdate / exrule / rstatus / related / resources /
2435 rdate / rrule / x-prop
2437 )
2439 Description: A "VTODO" calendar component is a grouping of component
2440 properties and possibly "VALARM" calendar components that
2441 represent an action-item or assignment. For example, it can be
2442 used to represent an item of work assigned to an individual; such
2443 as "turn in travel expense today".
2445 The "VTODO" calendar component cannot be nested within another
2446 calendar component. However, "VTODO" calendar components can be
2447 related to each other or to a "VTODO" or to a "VJOURNAL" calendar
2448 component with the "RELATED-TO" property.
2450 A "VTODO" calendar component without the "DTSTART" and "DUE" (or
2451 "DURATION") properties specifies a to-do that will be associated
2452 with each successive calendar date, until it is completed.
2454 Example: The following is an example of a "VTODO" calendar component:
2456 BEGIN:VTODO
2457 UID:19970901T130000Z-123404@host.com
2458 DTSTAMP:19970901T130000Z
2459 DTSTART:19970415T133000Z
2460 DUE:19970416T045959Z
2461 SUMMARY:1996 Income Tax Preparation
2462 CLASS:CONFIDENTIAL
2463 CATEGORIES:FAMILY,FINANCE
2464 PRIORITY:1
2465 STATUS:NEEDS-ACTION
2466 END:VTODO
2468 3.6.3. Journal Component
2470 Component Name: VJOURNAL
2472 Purpose: Provide a grouping of component properties that describe a
2473 journal entry.
2475 Format Definition: A "VJOURNAL" calendar component is defined by the
2476 following notation:
2478 journalc = "BEGIN" ":" "VJOURNAL" CRLF
2479 jourprop
2480 "END" ":" "VJOURNAL" CRLF
2482 jourprop = *(
2484 ; the following are optional,
2485 ; but MUST NOT occur more than once
2487 class / created / description / dtstart / dtstamp /
2488 last-mod / organizer / recurid / seq / status /
2489 summary / uid / url /
2491 ; the following are optional,
2492 ; and MAY occur more than once
2494 attach / attendee / categories / comment /
2495 contact / exdate / exrule / related / rdate /
2496 rrule / rstatus / x-prop
2497 )
2499 Description: A "VJOURNAL" calendar component is a grouping of
2500 component properties that represent one or more descriptive text
2501 notes associated with a particular calendar date. The "DTSTART"
2502 property is used to specify the calendar date that the journal
2503 entry is associated with. Generally, it will have a DATE value
2504 data type, but it can also be used to specify a DATE-TIME value
2505 data type. Examples of a journal entry include a daily record of
2506 a legislative body or a journal entry of individual telephone
2507 contacts for the day or an ordered list of accomplishments for the
2508 day. The "VJOURNAL" calendar component can also be used to
2509 associate a document with a calendar date.
2511 The "VJOURNAL" calendar component does not take up time on a
2512 calendar. Hence, it does not play a role in free or busy time
2513 searches - - it is as though it has a time transparency value of
2514 TRANSPARENT. It is transparent to any such searches.
2516 The "VJOURNAL" calendar component cannot be nested within another
2517 calendar component. However, "VJOURNAL" calendar components can
2518 be related to each other or to a "VEVENT" or to a "VTODO" calendar
2519 component, with the "RELATED-TO" property.
2521 Example: The following is an example of the "VJOURNAL" calendar
2522 component:
2524 BEGIN:VJOURNAL
2525 UID:19970901T130000Z-123405@host.com
2526 DTSTAMP:19970901T130000Z
2527 DTSTART;VALUE=DATE:19970317
2528 SUMMARY:Staff meeting minutes
2529 DESCRIPTION:1. Staff meeting: Participants include Joe\, Lisa
2530 and Bob. Aurora project plans were reviewed. There is currently
2531 no budget reserves for this project. Lisa will escalate to
2532 management. Next meeting on Tuesday.\n
2533 2. Telephone Conference: ABC Corp. sales representative called
2534 to discuss new printer. Promised to get us a demo by Friday.\n
2535 3. Henry Miller (Handsoff Insurance): Car was totaled by tree.
2536 Is looking into a loaner car. 654-2323 (tel).
2537 END:VJOURNAL
2539 3.6.4. Free/Busy Component
2541 Component Name: VFREEBUSY
2543 Purpose: Provide a grouping of component properties that describe
2544 either a request for free/busy time, describe a response to a
2545 request for free/busy time or describe a published set of busy
2546 time.
2548 Format Definition: A "VFREEBUSY" calendar component is defined by the
2549 following notation:
2551 freebusyc = "BEGIN" ":" "VFREEBUSY" CRLF
2552 fbprop
2553 "END" ":" "VFREEBUSY" CRLF
2555 fbprop = *(
2557 ; the following are optional,
2558 ; but MUST NOT occur more than once
2560 contact / dtstart / dtend / duration / dtstamp /
2561 organizer / uid / url /
2563 ; the following are optional,
2564 ; and MAY occur more than once
2566 attendee / comment / freebusy / rstatus / x-prop
2567 )
2569 Description: A "VFREEBUSY" calendar component is a grouping of
2570 component properties that represents either a request for, a reply
2571 to a request for free or busy time information or a published set
2572 of busy time information.
2574 When used to request free/busy time information, the "ATTENDEE"
2575 property specifies the calendar users whose free/busy time is
2576 being requested; the "ORGANIZER" property specifies the calendar
2577 user who is requesting the free/busy time; the "DTSTART" and
2578 "DTEND" properties specify the window of time for which the free/
2579 busy time is being requested; the "UID" and "DTSTAMP" properties
2580 are specified to assist in proper sequencing of multiple free/busy
2581 time requests.
2583 When used to reply to a request for free/busy time, the "ATTENDEE"
2584 property specifies the calendar user responding to the free/busy
2585 time request; the "ORGANIZER" property specifies the calendar user
2586 that originally requested the free/busy time; the "FREEBUSY"
2587 property specifies the free/busy time information (if it exists);
2588 and the "UID" and "DTSTAMP" properties are specified to assist in
2589 proper sequencing of multiple free/busy time replies.
2591 When used to publish busy time, the "ORGANIZER" property specifies
2592 the calendar user associated with the published busy time; the
2593 "DTSTART" and "DTEND" properties specify an inclusive time window
2594 that surrounds the busy time information; the "FREEBUSY" property
2595 specifies the published busy time information; and the "DTSTAMP"
2596 property specifies the date/time that iCalendar object was
2597 created.
2599 The "VFREEBUSY" calendar component cannot be nested within another
2600 calendar component. Multiple "VFREEBUSY" calendar components can
2601 be specified within an iCalendar object. This permits the
2602 grouping of Free/Busy information into logical collections, such
2603 as monthly groups of busy time information.
2605 The "VFREEBUSY" calendar component is intended for use in
2606 iCalendar object methods involving requests for free time,
2607 requests for busy time, requests for both free and busy, and the
2608 associated replies.
2610 Free/Busy information is represented with the "FREEBUSY" property.
2611 This property provides a terse representation of time periods.
2612 One or more "FREEBUSY" properties can be specified in the
2613 "VFREEBUSY" calendar component.
2615 When present in a "VFREEBUSY" calendar component, the "DTSTART"
2616 and "DTEND" properties SHOULD be specified prior to any "FREEBUSY"
2617 properties. In a free time request, these properties can be used
2618 in combination with the "DURATION" property to represent a request
2619 for a duration of free time within a specified window of time.
2621 The recurrence properties ("RRULE", "EXRULE", "RDATE", "EXDATE")
2622 are not permitted within a "VFREEBUSY" calendar component. Any
2623 recurring events are resolved into their individual busy time
2624 periods using the "FREEBUSY" property.
2626 Example: The following is an example of a "VFREEBUSY" calendar
2627 component used to request free or busy time information:
2629 BEGIN:VFREEBUSY
2630 ORGANIZER:MAILTO:jane_doe@host1.com
2631 ATTENDEE:MAILTO:john_public@host2.com
2632 DTSTART:19971015T050000Z
2633 DTEND:19971016T050000Z
2634 DTSTAMP:19970901T083000Z
2635 END:VFREEBUSY
2637 The following is an example of a "VFREEBUSY" calendar component
2638 used to reply to the request with busy time information:
2640 BEGIN:VFREEBUSY
2641 ORGANIZER:MAILTO:jane_doe@host1.com
2642 ATTENDEE:MAILTO:john_public@host2.com
2643 DTSTAMP:19970901T100000Z
2644 FREEBUSY;VALUE=PERIOD:19971015T050000Z/PT8H30M,
2645 19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M
2646 URL:http://host2.com/pub/busy/jpublic-01.ifb
2647 COMMENT:This iCalendar file contains busy time information for
2648 the next three months.
2649 END:VFREEBUSY
2651 The following is an example of a "VFREEBUSY" calendar component
2652 used to publish busy time information.
2654 BEGIN:VFREEBUSY
2655 ORGANIZER:jsmith@host.com
2656 DTSTART:19980313T141711Z
2657 DTEND:19980410T141711Z
2658 FREEBUSY:19980314T233000Z/19980315T003000Z
2659 FREEBUSY:19980316T153000Z/19980316T163000Z
2660 FREEBUSY:19980318T030000Z/19980318T040000Z
2661 URL:http://www.host.com/calendar/busytime/jsmith.ifb
2662 END:VFREEBUSY
2664 3.6.5. Time Zone Component
2666 Component Name: VTIMEZONE
2668 Purpose: Provide a grouping of component properties that defines a
2669 time zone.
2671 Format Definition: A "VTIMEZONE" calendar component is defined by the
2672 following notation:
2674 timezonec = "BEGIN" ":" "VTIMEZONE" CRLF
2676 2*(
2678 ; 'tzid' is required, but MUST NOT occur more
2679 ; than once
2681 tzid /
2683 ; 'last-mod' and 'tzurl' are optional,
2684 but MUST NOT occur more than once
2686 last-mod / tzurl /
2687 ; one of 'standardc' or 'daylightc' MUST occur
2688 ; and each MAY occur more than once.
2690 standardc / daylightc /
2692 ; the following is optional,
2693 ; and MAY occur more than once
2695 x-prop
2697 )
2699 "END" ":" "VTIMEZONE" CRLF
2701 standardc = "BEGIN" ":" "STANDARD" CRLF
2703 tzprop
2705 "END" ":" "STANDARD" CRLF
2707 daylightc = "BEGIN" ":" "DAYLIGHT" CRLF
2709 tzprop
2711 "END" ":" "DAYLIGHT" CRLF
2713 tzprop = 3*(
2715 ; the following are each REQUIRED,
2716 ; but MUST NOT occur more than once
2718 dtstart / tzoffsetto / tzoffsetfrom /
2720 ; the following are optional,
2721 ; and MAY occur more than once
2723 comment / rdate / rrule / tzname / x-prop
2725 )
2727 Description: A time zone is unambiguously defined by the set of time
2728 measurement rules determined by the governing body for a given
2729 geographic area. These rules describe at a minimum the base
2730 offset from UTC for the time zone, often referred to as the
2731 Standard Time offset. Many locations adjust their Standard Time
2732 forward or backward by one hour, in order to accommodate seasonal
2733 changes in number of daylight hours, often referred to as Daylight
2734 Saving Time. Some locations adjust their time by a fraction of an
2735 hour. Standard Time is also known as Winter Time. Daylight
2736 Saving Time is also known as Advanced Time, Summer Time, or Legal
2737 Time in certain countries. The following table shows the changes
2738 in time zone rules in effect for New York City starting from 1967.
2739 Each line represents a description or rule for a particular
2740 observance.
2742 Effective Observance Rule
2744 +-----------+-------------------------+--------+--------------+
2745 | Date | (Date/Time) | Offset | Abbreviation |
2746 +-----------+-------------------------+--------+--------------+
2747 | 1967-* | last Sun in Oct, 02:00 | -0500 | EST |
2748 | 1967-1973 | last Sun in Apr, 02:00 | -0400 | EDT |
2749 | 1974-1974 | Jan 6, 02:00 | -0400 | EDT |
2750 | 1975-1975 | Feb 23, 02:00 | -0400 | EDT |
2751 | 1976-1986 | last Sun in Apr, 02:00 | -0400 | EDT |
2752 | 1987-* | first Sun in Apr, 02:00 | -0400 | EDT |
2753 +-----------+-------------------------+--------+--------------+
2755 Effective Observance Rule
2757 Date (Date/Time) Offset Abbreviation
2759 1967-* last Sun in Oct, 02:00 -0500 EST
2761 1967-1973 last Sun in Apr, 02:00 -0400 EDT
2763 1974-1974 Jan 6, 02:00 -0400 EDT
2765 1975-1975 Feb 23, 02:00 -0400 EDT
2767 1976-1986 last Sun in Apr, 02:00 -0400 EDT
2769 1987-* first Sun in Apr, 02:00 -0400 EDT
2771 Note: The specification of a global time zone registry is not
2772 addressed by this document and is left for future study.
2773 However, implementers may find the Olson time zone database
2774 [TZDB] a useful reference. It is an informal, public-domain
2775 collection of time zone information, which is currently being
2776 maintained by volunteer Internet participants, and is used in
2777 several operating systems. This database contains current and
2778 historical time zone information for a wide variety of
2779 locations around the globe; it provides a time zone identifier
2780 for every unique time zone rule set in actual use since 1970,
2781 with historical data going back to the introduction of standard
2782 time.
2784 Interoperability between two calendaring and scheduling
2785 applications, especially for recurring events, to-dos or journal
2786 entries, is dependent on the ability to capture and convey date
2787 and time information in an unambiguous format. The specification
2788 of current time zone information is integral to this behavior.
2790 If present, the "VTIMEZONE" calendar component defines the set of
2791 Standard Time and Daylight Saving Time observances (or rules) for
2792 a particular time zone for a given interval of time. The
2793 "VTIMEZONE" calendar component cannot be nested within other
2794 calendar components. Multiple "VTIMEZONE" calendar components can
2795 exist in an iCalendar object. In this situation, each "VTIMEZONE"
2796 MUST represent a unique time zone definition. This is necessary
2797 for some classes of events, such as airline flights, that start in
2798 one time zone and end in another.
2800 The "VTIMEZONE" calendar component MUST be present if the
2801 iCalendar object contains an RRULE that generates dates on both
2802 sides of a time zone shift (e.g., both in Standard Time and
2803 Daylight Saving Time) unless the iCalendar object intends to
2804 convey a floating time ( see Section 3.3.12 for proper
2805 interpretation of floating time). It can be present if the
2806 iCalendar object does not contain such a RRULE. In addition, if a
2807 RRULE is present, there MUST be valid time zone information for
2808 all recurrence instances.
2810 The "VTIMEZONE" calendar component MUST include the "TZID"
2811 property and at least one definition of a standard or daylight
2812 component. The standard or daylight component MUST include the
2813 "DTSTART", "TZOFFSETFROM" and "TZOFFSETTO" properties.
2815 An individual "VTIMEZONE" calendar component MUST be specified for
2816 each unique "TZID" parameter value specified in the iCalendar
2817 object.
2819 Each "VTIMEZONE" calendar component consists of a collection of
2820 one or more sub-components that describe the rule for a particular
2821 observance (either a Standard Time or a Daylight Saving Time
2822 observance). The "STANDARD" sub-component consists of a
2823 collection of properties that describe Standard Time. The
2824 "DAYLIGHT" sub-component consists of a collection of properties
2825 that describe Daylight Saving Time. In general this collection of
2826 properties consists of:
2828 the first onset date-time for the observance
2830 the last onset date-time for the observance, if a last onset is
2831 known.
2833 the offset to be applied for the observance
2835 a rule that describes the day and time when the observance
2836 takes effect
2838 an optional name for the observance
2840 For a given time zone, there may be multiple unique definitions of
2841 the observances over a period of time. Each observance is
2842 described using either a "STANDARD" or "DAYLIGHT" sub-component.
2843 The collection of these sub-components is used to describe the
2844 time zone for a given period of time. The offset to apply at any
2845 given time is found by locating the observance that has the last
2846 onset date and time before the time in question, and using the
2847 offset value from that observance.
2849 The top-level properties in a "VTIMEZONE" calendar component are:
2851 The mandatory "TZID" property is a text value that uniquely
2852 identifies the VTIMEZONE; and each MAY occur more than once.
2853 calendar component within the scope of an iCalendar object.
2855 The optional "LAST-MODIFIED" property is a UTC value that
2856 specifies the date and time that this time zone definition was
2857 last updated.
2859 The optional "TZURL" property is a url value that points to a
2860 published VTIMEZONE definition. TZURL SHOULD refer to a resource
2861 that is accessible by anyone who might need to interpret the
2862 object. This SHOULD NOT normally be a "file" URL or other URL
2863 that is not widely-accessible.
2865 The collection of properties that are used to define the STANDARD
2866 and DAYLIGHT sub-components include:
2868 The mandatory "DTSTART" property gives the effective onset date
2869 and local time for the time zone sub-component definition.
2870 "DTSTART" in this usage MUST be specified as a local DATE-TIME
2871 value.
2873 The mandatory "TZOFFSETFROM" property gives the UTC offset which
2874 is in use when the onset of this time zone observance begins.
2875 "TZOFFSETFROM" is combined with "DTSTART" to define the effective
2876 onset for the time zone sub-component definition. For example,
2877 the following represents the time at which the observance of
2878 Standard Time took effect in Fall 1967 for New York City:
2880 DTSTART:19671029T020000
2882 TZOFFSETFROM:-0400
2884 The mandatory "TZOFFSETTO " property gives the UTC offset for the
2885 time zone sub-component (Standard Time or Daylight Saving Time)
2886 when this observance is in use.
2888 The optional "TZNAME" property is the customary name for the time
2889 zone. It may be specified multiple times, to allow for specifying
2890 multiple language variants of the time zone names. This could be
2891 used for displaying dates.
2893 If specified, the onset for the observance defined by the time
2894 zone sub-component is defined by either the "RRULE" or "RDATE"
2895 property. If neither is specified, only one sub-component can be
2896 specified in the "VTIMEZONE" calendar component and it is assumed
2897 that the single observance specified is always in effect.
2899 The "RRULE" property defines the recurrence rule for the onset of
2900 the observance defined by this time zone sub-component. Some
2901 specific requirements for the usage of RRULE for this purpose
2902 include:
2904 If observance is known to have an effective end date, the
2905 "UNTIL" recurrence rule parameter MUST be used to specify the
2906 last valid onset of this observance (i.e., the UNTIL date-time
2907 will be equal to the last instance generated by the recurrence
2908 pattern). It MUST be specified in UTC time.
2910 The "DTSTART" and the "TZOFFSETTO" properties MUST be used when
2911 generating the onset date-time values (instances) from the
2912 RRULE.
2914 Alternatively, the "RDATE" property can be used to define the
2915 onset of the observance by giving the individual onset date and
2916 times. "RDATE" in this usage MUST be specified as a local DATE-
2917 TIME value in UTC time.
2919 The optional "COMMENT" property is also allowed for descriptive
2920 explanatory text.
2922 Example: The following are examples of the "VTIMEZONE" calendar
2923 component:
2925 This is an example showing time zone information for the Eastern
2926 United States using "RDATE" property. Note that this is only
2927 suitable for a recurring event that starts on or later than April
2928 6, 1997 at 03:00:00 EDT (i.e., the earliest effective transition
2929 date and time) and ends no later than April 7, 1998 02:00:00 EST
2930 (i.e., latest valid date and time for EST in this scenario). For
2931 example, this can be used for a recurring event that occurs every
2932 Friday, 8:00AM-9:00 AM, starting June 1, 1997, ending December 31,
2933 1997.
2935 BEGIN:VTIMEZONE
2936 TZID:US-Eastern
2937 LAST-MODIFIED:19870101T000000Z
2938 BEGIN:STANDARD
2939 DTSTART:19971026T020000
2940 RDATE:19971026T020000
2941 TZOFFSETFROM:-0400
2942 TZOFFSETTO:-0500
2943 TZNAME:EST
2944 END:STANDARD
2945 BEGIN:DAYLIGHT
2946 DTSTART:19970406T020000
2947 RDATE:19970406T020000
2948 TZOFFSETFROM:-0500
2949 TZOFFSETTO:-0400
2950 TZNAME:EDT
2951 END:DAYLIGHT
2952 END:VTIMEZONE
2954 This is a simple example showing the current time zone rules for
2955 the Eastern United States using a RRULE recurrence pattern. Note
2956 that there is no effective end date to either of the Standard Time
2957 or Daylight Time rules. This information would be valid for a
2958 recurring event starting today and continuing indefinitely.
2960 BEGIN:VTIMEZONE
2961 TZID:US-Eastern
2962 LAST-MODIFIED:19870101T000000Z
2963 TZURL:http://zones.example.com/tz/US-Eastern.ics
2964 BEGIN:STANDARD
2965 DTSTART:19671029T020000
2966 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
2967 TZOFFSETFROM:-0400
2968 TZOFFSETTO:-0500
2969 TZNAME:EST
2970 END:STANDARD
2971 BEGIN:DAYLIGHT
2972 DTSTART:19870405T020000
2973 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
2974 TZOFFSETFROM:-0500
2975 TZOFFSETTO:-0400
2976 TZNAME:EDT
2977 END:DAYLIGHT
2978 END:VTIMEZONE
2980 This is an example showing a fictitious set of rules for the
2981 Eastern United States, where the Daylight Time rule has an
2982 effective end date (i.e., after that date, Daylight Time is no
2983 longer observed).
2985 BEGIN:VTIMEZONE
2986 TZID:US--Fictitious-Eastern
2987 LAST-MODIFIED:19870101T000000Z
2988 BEGIN:STANDARD
2989 DTSTART:19671029T020000
2990 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
2991 TZOFFSETFROM:-0400
2992 TZOFFSETTO:-0500
2993 TZNAME:EST
2994 END:STANDARD
2995 BEGIN:DAYLIGHT
2996 DTSTART:19870405T020000
2997 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z
2998 TZOFFSETFROM:-0500
2999 TZOFFSETTO:-0400
3000 TZNAME:EDT
3001 END:DAYLIGHT
3002 END:VTIMEZONE
3004 This is an example showing a fictitious set of rules for the
3005 Eastern United States, where the first Daylight Time rule has an
3006 effective end date. There is a second Daylight Time rule that
3007 picks up where the other left off.
3009 BEGIN:VTIMEZONE
3010 TZID:US--Fictitious-Eastern
3011 LAST-MODIFIED:19870101T000000Z
3012 BEGIN:STANDARD
3013 DTSTART:19671029T020000
3014 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
3015 TZOFFSETFROM:-0400
3016 TZOFFSETTO:-0500
3017 TZNAME:EST
3018 END:STANDARD
3019 BEGIN:DAYLIGHT
3020 DTSTART:19870405T020000
3021 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z
3022 TZOFFSETFROM:-0500
3023 TZOFFSETTO:-0400
3024 TZNAME:EDT
3025 END:DAYLIGHT
3026 BEGIN:DAYLIGHT
3027 DTSTART:19990424T020000
3028 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=4
3029 TZOFFSETFROM:-0500
3030 TZOFFSETTO:-0400
3031 TZNAME:EDT
3032 END:DAYLIGHT
3033 END:VTIMEZONE
3035 3.6.6. Alarm Component
3037 Component Name: VALARM
3039 Purpose: Provide a grouping of component properties that define an
3040 alarm.
3042 Format Definition: A "VALARM" calendar component is defined by the
3043 following notation:
3045 alarmc = "BEGIN" ":" "VALARM" CRLF
3046 (audioprop / dispprop / emailprop / procprop)
3047 "END" ":" "VALARM" CRLF
3049 audioprop = 2*(
3051 ; 'action' and 'trigger' are both REQUIRED,
3052 ; but MUST NOT occur more than once
3054 action / trigger /
3056 ; 'duration' and 'repeat' are both optional,
3057 ; and MUST NOT occur more than once each,
3058 ; but if one occurs, so MUST the other
3060 duration / repeat /
3062 ; the following is optional,
3063 ; but MUST NOT occur more than once
3065 attach /
3067 ; the following is optional,
3068 ; and MAY occur more than once
3070 x-prop
3072 )
3074 dispprop = 3*(
3076 ; the following are all REQUIRED,
3077 ; but MUST NOT occur more than once
3079 action / description / trigger /
3081 ; 'duration' and 'repeat' are both optional,
3082 ; and MUST NOT occur more than once each,
3083 ; but if one occurs, so MUST the other
3085 duration / repeat /
3087 ; the following is optional,
3088 ; and MAY occur more than once
3090 x-prop
3092 )
3094 emailprop = 5*(
3096 ; the following are all REQUIRED,
3097 ; but MUST NOT occur more than once
3099 action / description / trigger / summary /
3100 ; the following is REQUIRED,
3101 ; and MAY occur more than once
3103 attendee /
3105 ; 'duration' and 'repeat' are both optional,
3106 ; and MUST NOT occur more than once each,
3107 ; but if one occurs, so MUST the other
3109 duration / repeat /
3111 ; the following are optional,
3112 ; and MAY occur more than once
3114 attach / x-prop
3116 )
3118 procprop = 3*(
3120 ; the following are all REQUIRED,
3121 ; but MUST NOT occur more than once
3123 action / attach / trigger /
3125 ; 'duration' and 'repeat' are both optional,
3126 ; and MUST NOT occur more than once each,
3127 ; but if one occurs, so MUST the other
3129 duration / repeat /
3131 ; 'description' is optional,
3132 ; and MUST NOT occur more than once
3134 description /
3136 ; the following is optional,
3137 ; and MAY occur more than once
3139 x-prop
3141 )
3143 Description: A "VALARM" calendar component is a grouping of component
3144 properties that is a reminder or alarm for an event or a to-do.
3145 For example, it may be used to define a reminder for a pending
3146 event or an overdue to-do.
3148 The "VALARM" calendar component MUST include the "ACTION" and
3149 "TRIGGER" properties. The "ACTION" property further constrains
3150 the "VALARM" calendar component in the following ways:
3152 When the action is "AUDIO", the alarm can also include one and
3153 only one "ATTACH" property, which MUST point to a sound resource,
3154 which is rendered when the alarm is triggered.
3156 When the action is "DISPLAY", the alarm MUST also include a
3157 "DESCRIPTION" property, which contains the text to be displayed
3158 when the alarm is triggered.
3160 When the action is "EMAIL", the alarm MUST include a "DESCRIPTION"
3161 property, which contains the text to be used as the message body,
3162 a "SUMMARY" property, which contains the text to be used as the
3163 message subject, and one or more "ATTENDEE" properties, which
3164 contain the email address of attendees to receive the message. It
3165 can also include one or more "ATTACH" properties, which are
3166 intended to be sent as message attachments. When the alarm is
3167 triggered, the email message is sent.
3169 When the action is "PROCEDURE", the alarm MUST include one and
3170 only one "ATTACH" property, which MUST point to a procedure
3171 resource, which is invoked when the alarm is triggered.
3173 The "VALARM" calendar component MUST only appear within either a
3174 "VEVENT" or "VTODO" calendar component. "VALARM" calendar
3175 components cannot be nested. Multiple mutually independent
3176 "VALARM" calendar components can be specified for a single
3177 "VEVENT" or "VTODO" calendar component.
3179 The "TRIGGER" property specifies when the alarm will be triggered.
3180 The "TRIGGER" property specifies a duration prior to the start of
3181 an event or a to-do. The "TRIGGER" edge may be explicitly set to
3182 be relative to the "START" or "END" of the event or to-do with the
3183 "RELATED" parameter of the "TRIGGER" property. The "TRIGGER"
3184 property value type can alternatively be set to an absolute
3185 calendar date and time of day value.
3187 In an alarm set to trigger on the "START" of an event or to-do,
3188 the "DTSTART" property MUST be present in the associated event or
3189 to-do. In an alarm in a "VEVENT" calendar component set to
3190 trigger on the "END" of the event, either the "DTEND" property
3191 MUST be present, or the "DTSTART" and "DURATION" properties MUST
3192 both be present. In an alarm in a "VTODO" calendar component set
3193 to trigger on the "END" of the to-do, either the "DUE" property
3194 MUST be present, or the "DTSTART" and "DURATION" properties MUST
3195 both be present.
3197 The alarm can be defined such that it triggers repeatedly. A
3198 definition of an alarm with a repeating trigger MUST include both
3199 the "DURATION" and "REPEAT" properties. The "DURATION" property
3200 specifies the delay period, after which the alarm will repeat.
3201 The "REPEAT" property specifies the number of additional
3202 repetitions that the alarm will be triggered. This repetition
3203 count is in addition to the initial triggering of the alarm. Both
3204 of these properties MUST be present in order to specify a
3205 repeating alarm. If one of these two properties is absent, then
3206 the alarm will not repeat beyond the initial trigger.
3208 The "ACTION" property is used within the "VALARM" calendar
3209 component to specify the type of action invoked when the alarm is
3210 triggered. The "VALARM" properties provide enough information for
3211 a specific action to be invoked. It is typically the
3212 responsibility of a "Calendar User Agent" (CUA) to deliver the
3213 alarm in the specified fashion. An "ACTION" property value of
3214 AUDIO specifies an alarm that causes a sound to be played to alert
3215 the user; DISPLAY specifies an alarm that causes a text message to
3216 be displayed to the user; EMAIL specifies an alarm that causes an
3217 electronic email message to be delivered to one or more email
3218 addresses; and PROCEDURE specifies an alarm that causes a
3219 procedure to be executed. The "ACTION" property MUST specify one
3220 and only one of these values.
3222 In an AUDIO alarm, if the optional "ATTACH" property is included,
3223 it MUST specify an audio sound resource. The intention is that
3224 the sound will be played as the alarm effect. If an "ATTACH"
3225 property is specified that does not refer to a sound resource, or
3226 if the specified sound resource cannot be rendered (because its
3227 format is unsupported, or because it cannot be retrieved), then
3228 the CUA or other entity responsible for playing the sound may
3229 choose a fallback action, such as playing a built-in default
3230 sound, or playing no sound at all.
3232 In a DISPLAY alarm, the intended alarm effect is for the text
3233 value of the "DESCRIPTION" property to be displayed to the user.
3235 In an EMAIL alarm, the intended alarm effect is for an email
3236 message to be composed and delivered to all the addresses
3237 specified by the "ATTENDEE" properties in the "VALARM" calendar
3238 component. The "DESCRIPTION" property of the "VALARM" calendar
3239 component MUST be used as the body text of the message, and the
3240 "SUMMARY" property MUST be used as the subject text. Any "ATTACH"
3241 properties in the "VALARM" calendar component SHOULD be sent as
3242 attachments to the message.
3244 In a PROCEDURE alarm, the "ATTACH" property in the "VALARM"
3245 calendar component MUST specify a procedure or program that is
3246 intended to be invoked as the alarm effect. If the procedure or
3247 program is in a format that cannot be rendered, then no procedure
3248 alarm will be invoked. If the "DESCRIPTION" property is present,
3249 its value specifies the argument string to be passed to the
3250 procedure or program. "Calendar User Agents" that receive an
3251 iCalendar object with this category of alarm, can disable or allow
3252 the "Calendar User" to disable, or otherwise ignore this type of
3253 alarm. While a very useful alarm capability, the PROCEDURE type
3254 of alarm SHOULD be treated by the "Calendar User Agent" as a
3255 potential security risk.
3257 Example: The following example is for a "VALARM" calendar component
3258 that specifies an audio alarm that will sound at a precise time
3259 and repeat 4 more times at 15 minute intervals:
3261 BEGIN:VALARM
3262 TRIGGER;VALUE=DATE-TIME:19970317T133000Z
3263 REPEAT:4
3264 DURATION:PT15M
3265 ACTION:AUDIO
3266 ATTACH;FMTTYPE=audio/basic:ftp://host.com/pub/sounds/bell-01.aud
3267 END:VALARM
3269 The following example is for a "VALARM" calendar component that
3270 specifies a display alarm that will trigger 30 minutes before the
3271 scheduled start of the event or the due date/time of the to-do it
3272 is associated with and will repeat 2 more times at 15 minute
3273 intervals:
3275 BEGIN:VALARM
3276 TRIGGER:-PT30M
3277 REPEAT:2
3278 DURATION:PT15M
3279 ACTION:DISPLAY
3280 DESCRIPTION:Breakfast meeting with executive\n
3281 team at 8:30 AM EST.
3282 END:VALARM
3284 The following example is for a "VALARM" calendar component that
3285 specifies an email alarm that will trigger 2 days before the
3286 scheduled due date/time of a to-do it is associated with. It does
3287 not repeat. The email has a subject, body and attachment link.
3289 BEGIN:VALARM
3290 TRIGGER:-P2D
3291 ACTION:EMAIL
3292 ATTENDEE:MAILTO:john_doe@host.com
3293 SUMMARY:*** REMINDER: SEND AGENDA FOR WEEKLY STAFF MEETING ***
3294 DESCRIPTION:A draft agenda needs to be sent out to the attendees
3295 to the weekly managers meeting (MGR-LIST). Attached is a
3296 pointer the document template for the agenda file.
3297 ATTACH;FMTTYPE=application/msword:http://host.com/templates/agen
3298 da.doc
3299 END:VALARM
3301 The following example is for a "VALARM" calendar component that
3302 specifies a procedural alarm that will trigger at a precise date/
3303 time and will repeat 23 more times at one hour intervals. The
3304 alarm will invoke a procedure file.
3306 BEGIN:VALARM
3307 TRIGGER;VALUE=DATE-TIME:19980101T050000Z
3308 REPEAT:23
3309 DURATION:PT1H
3310 ACTION:PROCEDURE
3311 ATTACH;FMTTYPE=application/octet-stream:ftp://host.com/novo-
3312 procs/felizano.exe
3313 END:VALARM
3315 3.7. Calendar Properties
3317 The Calendar Properties are attributes that apply to the iCalendar
3318 object, as a whole. These properties do not appear within a calendar
3319 component. They SHOULD be specified after the "BEGIN:VCALENDAR"
3320 delimiter string and prior to any calendar component.
3322 3.7.1. Calendar Scale
3324 Property Name: CALSCALE
3326 Purpose: This property defines the calendar scale used for the
3327 calendar information specified in the iCalendar object.
3329 Value Type: TEXT
3331 Property Parameters: Non-standard property parameters can be
3332 specified on this property.
3334 Conformance: Property can be specified in an iCalendar object. The
3335 default value is "GREGORIAN".
3337 Description: This memo is based on the Gregorian calendar scale. The
3338 Gregorian calendar scale is assumed if this property is not
3339 specified in the iCalendar object. It is expected that other
3340 calendar scales will be defined in other specifications or by
3341 future versions of this memo.
3343 Format Definition: The property is defined by the following notation:
3345 calscale = "CALSCALE" calparam ":" calvalue CRLF
3347 calparam = *(";" xparam)
3349 calvalue = "GREGORIAN" / iana-token
3351 Example: The following is an example of this property:
3353 CALSCALE:GREGORIAN
3355 3.7.2. Method
3357 Property Name: METHOD
3359 Purpose: This property defines the iCalendar object method associated
3360 with the calendar object.
3362 Value Type: TEXT
3364 Property Parameters: Non-standard property parameters can be
3365 specified on this property.
3367 Conformance: The property can be specified in an iCalendar object.
3369 Description: When used in a MIME message entity, the value of this
3370 property MUST be the same as the Content-Type "method" parameter
3371 value. This property can only appear once within the iCalendar
3372 object. If either the "METHOD" property or the Content-Type
3373 "method" parameter is specified, then the other MUST also be
3374 specified.
3376 No methods are defined by this specification. This is the subject
3377 of other specifications, such as the iCalendar Transport-
3378 independent Interoperability Protocol (iTIP) defined by [I-D.ietf-
3379 calsify-2446bis].
3381 If this property is not present in the iCalendar object, then a
3382 scheduling transaction MUST NOT be assumed. In such cases, the
3383 iCalendar object is merely being used to transport a snapshot of
3384 some calendar information; without the intention of conveying a
3385 scheduling semantic.
3387 Format Definition: The property is defined by the following notation:
3389 method = "METHOD" metparam ":" metvalue CRLF
3391 metparam = *(";" xparam)
3393 metvalue = iana-token
3395 Example: The following is a hypothetical example of this property to
3396 convey that the iCalendar object is a request for a meeting:
3398 METHOD:REQUEST
3400 3.7.3. Product Identifier
3402 Property Name: PRODID
3404 Purpose: This property specifies the identifier for the product that
3405 created the iCalendar object.
3407 Value Type: TEXT
3409 Property Parameters: Non-standard property parameters can be
3410 specified on this property.
3412 Conformance: The property MUST be specified once in an iCalendar
3413 object.
3415 Description: The vendor of the implementation SHOULD assure that this
3416 is a globally unique identifier; using some technique such as an
3417 FPI value, as defined in [ISO.9070.1991].
3419 This property SHOULD not be used to alter the interpretation of an
3420 iCalendar object beyond the semantics specified in this memo. For
3421 example, it is not to be used to further the understanding of non-
3422 standard properties.
3424 Format Definition: The property is defined by the following notation:
3426 prodid = "PRODID" pidparam ":" pidvalue CRLF
3428 pidparam = *(";" xparam)
3430 pidvalue = text
3431 ;Any text that describes the product and version
3432 ;and that is generally assured of being unique.
3434 Example: The following is an example of this property. It does not
3435 imply that English is the default language.
3437 PRODID:-//ABC Corporation//NONSGML My Product//EN
3439 3.7.4. Version
3441 Property Name: VERSION
3443 Purpose: This property specifies the identifier corresponding to the
3444 highest version number or the minimum and maximum range of the
3445 iCalendar specification that is required in order to interpret the
3446 iCalendar object.
3448 Value Type: TEXT
3450 Property Parameters: Non-standard property parameters can be
3451 specified on this property.
3453 Conformance: This property MUST be specified by an iCalendar object,
3454 but MUST only be specified once.
3456 Description: A value of "2.0" corresponds to this memo.
3458 Format Definition: The property is defined by the following notation:
3460 version = "VERSION" verparam ":" vervalue CRLF
3462 verparam = *(";" xparam)
3464 vervalue = "2.0" ;This memo
3465 / maxver
3466 / (minver ";" maxver)
3468 minver =
3469 ;Minimum iCalendar version needed to parse the iCalendar object
3471 maxver =
3472 ;Maximum iCalendar version needed to parse the iCalendar object
3474 Example: The following is an example of this property:
3476 VERSION:2.0
3478 3.8. Component Properties
3480 The following properties can appear within calendar components, as
3481 specified by each component property definition.
3483 3.8.1. Descriptive Component Properties
3485 The following properties specify descriptive information about
3486 calendar components.
3488 3.8.1.1. Attachment
3490 Property Name: ATTACH
3492 Purpose: The property provides the capability to associate a document
3493 object with a calendar component.
3495 Value Type: The default value type for this property is URI. The
3496 value type can also be set to BINARY to indicate inline binary
3497 encoded content information.
3499 Property Parameters: Non-standard, inline encoding, format type and
3500 value data type property parameters can be specified on this
3501 property.
3503 Conformance: The property can be specified in a "VEVENT", "VTODO",
3504 "VJOURNAL" or "VALARM" calendar components.
3506 Description: The property can be specified within "VEVENT", "VTODO",
3507 "VJOURNAL", or "VALARM" calendar components. This property can be
3508 specified multiple times within an iCalendar object.
3510 Format Definition: The property is defined by the following notation:
3512 attach = "ATTACH" attparam ":" uri CRLF
3514 attach =/ "ATTACH" attparam ";" "ENCODING" "=" "BASE64"
3515 ";" "VALUE" "=" "BINARY" ":" binary
3517 attparam = *(
3519 ; the following is optional,
3520 ; but MUST NOT occur more than once
3522 (";" fmttypeparam) /
3524 ; the following is optional,
3525 ; and MAY occur more than once
3527 (";" xparam)
3529 )
3531 Example: The following are examples of this property:
3533 ATTACH:CID:jsmith.part3.960817T083000.xyzMail@host1.com
3535 ATTACH;FMTTYPE=application/postscript:ftp://xyzCorp.com/pub/
3536 reports/r-960812.ps
3538 3.8.1.2. Categories
3540 Property Name: CATEGORIES
3542 Purpose: This property defines the categories for a calendar
3543 component.
3545 Value Type: TEXT
3547 Property Parameters: Non-standard and language property parameters
3548 can be specified on this property.
3550 Conformance: The property can be specified within "VEVENT", "VTODO"
3551 or "VJOURNAL" calendar components.
3553 Description: This property is used to specify categories or subtypes
3554 of the calendar component. The categories are useful in searching
3555 for a calendar component of a particular type and category.
3556 Within the "VEVENT", "VTODO" or "VJOURNAL" calendar components,
3557 more than one category can be specified as a list of categories
3558 separated by the COMMA character (US-ASCII decimal 44).
3560 Format Definition: The property is defined by the following notation:
3562 categories = "CATEGORIES" catparam ":" text *("," text)
3563 CRLF
3565 catparam = *(
3567 ; the following is optional,
3568 ; but MUST NOT occur more than once
3570 (";" languageparam ) /
3572 ; the following is optional,
3573 ; and MAY occur more than once
3575 (";" xparam)
3577 )
3579 Example: The following are examples of this property:
3581 CATEGORIES:APPOINTMENT,EDUCATION
3583 CATEGORIES:MEETING
3585 3.8.1.3. Classification
3587 Property Name: CLASS
3589 Purpose: This property defines the access classification for a
3590 calendar component.
3592 Value Type: TEXT
3594 Property Parameters: Non-standard property parameters can be
3595 specified on this property.
3597 Conformance: The property can be specified once in a "VEVENT",
3598 "VTODO" or "VJOURNAL" calendar components.
3600 Description: An access classification is only one component of the
3601 general security system within a calendar application. It
3602 provides a method of capturing the scope of the access the
3603 calendar owner intends for information within an individual
3604 calendar entry. The access classification of an individual
3605 iCalendar component is useful when measured along with the other
3606 security components of a calendar system (e.g., calendar user
3607 authentication, authorization, access rights, access role, etc.).
3609 Hence, the semantics of the individual access classifications
3610 cannot be completely defined by this memo alone. Additionally,
3611 due to the "blind" nature of most exchange processes using this
3612 memo, these access classifications cannot serve as an enforcement
3613 statement for a system receiving an iCalendar object. Rather,
3614 they provide a method for capturing the intention of the calendar
3615 owner for the access to the calendar component.
3617 Format Definition: The property is defined by the following notation:
3619 class = "CLASS" classparam ":" classvalue CRLF
3621 classparam = *(";" xparam)
3623 classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token
3624 / x-name
3625 ;Default is PUBLIC
3627 Example: The following is an example of this property:
3629 CLASS:PUBLIC
3631 3.8.1.4. Comment
3633 Property Name: COMMENT
3635 Purpose: This property specifies non-processing information intended
3636 to provide a comment to the calendar user.
3638 Value Type: TEXT
3640 Property Parameters: Non-standard, alternate text representation and
3641 language property parameters can be specified on this property.
3643 Conformance: This property can be specified in "VEVENT", "VTODO",
3644 "VJOURNAL", "VTIMEZONE" or "VFREEBUSY" calendar components.
3646 Description: The property can be specified multiple times.
3648 Format Definition: The property is defined by the following notation:
3650 comment = "COMMENT" commparam ":" text CRLF
3652 commparam = *(
3654 ; the following are optional,
3655 ; but MUST NOT occur more than once
3657 (";" altrepparam) / (";" languageparam) /
3659 ; the following is optional,
3660 ; and MAY occur more than once
3662 (";" xparam)
3664 )
3666 Example: The following is an example of this property:
3668 COMMENT:The meeting really needs to include both ourselves
3669 and the customer. We can't hold this meeting without them.
3670 As a matter of fact\, the venue for the meeting ought to be at
3671 their site. - - John
3673 3.8.1.5. Description
3675 Property Name: DESCRIPTION
3677 Purpose: This property provides a more complete description of the
3678 calendar component, than that provided by the "SUMMARY" property.
3680 Value Type: TEXT
3682 Property Parameters: Non-standard, alternate text representation and
3683 language property parameters can be specified on this property.
3685 Conformance: The property can be specified in the "VEVENT", "VTODO",
3686 "VJOURNAL" or "VALARM" calendar components. The property can be
3687 specified multiple times only within a "VJOURNAL" calendar
3688 component.
3690 Description: This property is used in the "VEVENT" and "VTODO" to
3691 capture lengthy textual decriptions associated with the activity.
3693 This property is used in the "VJOURNAL" calendar component to
3694 capture one more textual journal entries.
3696 This property is used in the "VALARM" calendar component to
3697 capture the display text for a DISPLAY category of alarm, to
3698 capture the body text for an EMAIL category of alarm and to
3699 capture the argument string for a PROCEDURE category of alarm.
3701 Format Definition: The property is defined by the following notation:
3703 description = "DESCRIPTION" descparam ":" text CRLF
3705 descparam = *(
3707 ; the following are optional,
3708 ; but MUST NOT occur more than once
3710 (";" altrepparam) / (";" languageparam) /
3712 ; the following is optional,
3713 ; and MAY occur more than once
3715 (";" xparam)
3717 )
3719 Example: The following is an example of the property with formatted
3720 line breaks in the property value:
3722 DESCRIPTION:Meeting to provide technical review for "Phoenix"
3723 design.\n Happy Face Conference Room. Phoenix design team
3724 MUST attend this meeting.\n RSVP to team leader.
3726 The following is an example of the property with folding of long
3727 lines:
3729 DESCRIPTION:Last draft of the new novel is to be completed
3730 for the editor's proof today.
3732 3.8.1.6. Geographic Position
3734 Property Name: GEO
3736 Purpose: This property specifies information related to the global
3737 position for the activity specified by a calendar component.
3739 Value Type: FLOAT. The value MUST be two SEMICOLON separated FLOAT
3740 values.
3742 Property Parameters: Non-standard property parameters can be
3743 specified on this property.
3745 Conformance: This property can be specified in "VEVENT" or "VTODO"
3746 calendar components.
3748 Description: The property value specifies latitude and longitude, in
3749 that order (i.e., "LAT LON" ordering). The longitude represents
3750 the location east or west of the prime meridian as a positive or
3751 negative real number, respectively. The longitude and latitude
3752 values MAY be specified up to six decimal places, which will allow
3753 for accuracy to within one meter of geographical position.
3754 Receiving applications MUST accept values of this precision and
3755 MAY truncate values of greater precision.
3757 Values for latitude and longitude shall be expressed as decimal
3758 fractions of degrees. Whole degrees of latitude shall be
3759 represented by a two-digit decimal number ranging from 0 through
3760 90. Whole degrees of longitude shall be represented by a decimal
3761 number ranging from 0 through 180. When a decimal fraction of a
3762 degree is specified, it shall be separated from the whole number
3763 of degrees by a decimal point.
3765 Latitudes north of the equator shall be specified by a plus sign
3766 (+), or by the absence of a minus sign (-), preceding the digits
3767 designating degrees. Latitudes south of the Equator shall be
3768 designated by a minus sign (-) preceding the digits designating
3769 degrees. A point on the Equator shall be assigned to the Northern
3770 Hemisphere.
3772 Longitudes east of the prime meridian shall be specified by a plus
3773 sign (+), or by the absence of a minus sign (-), preceding the
3774 digits designating degrees. Longitudes west of the meridian shall
3775 be designated by minus sign (-) preceding the digits designating
3776 degrees. A point on the prime meridian shall be assigned to the
3777 Eastern Hemisphere. A point on the 180th meridian shall be
3778 assigned to the Western Hemisphere. One exception to this last
3779 convention is permitted. For the special condition of describing
3780 a band of latitude around the earth, the East Bounding Coordinate
3781 data element shall be assigned the value +180 (180) degrees.
3783 Any spatial address with a latitude of +90 (90) or -90 degrees
3784 will specify the position at the North or South Pole,
3785 respectively. The component for longitude may have any legal
3786 value.
3788 With the exception of the special condition described above, this
3789 form is specified in Department of Commerce, 1986, Representation
3790 of geographic point locations for information interchange (Federal
3791 Information Processing Standard 70-1): Washington, Department of
3792 Commerce, National Institute of Standards and Technology.
3794 The simple formula for converting degrees-minutes-seconds into
3795 decimal degrees is:
3797 decimal = degrees + minutes/60 + seconds/3600.
3799 Format Definition: The property is defined by the following notation:
3801 geo = "GEO" geoparam ":" geovalue CRLF
3803 geoparam = *(";" xparam)
3805 geovalue = float ";" float
3806 ;Latitude and Longitude components
3808 Example: The following is an example of this property:
3810 GEO:37.386013;-122.082932
3812 3.8.1.7. Location
3814 Property Name: LOCATION
3816 Purpose: The property defines the intended venue for the activity
3817 defined by a calendar component.
3819 Value Type: TEXT
3821 Property Parameters: Non-standard, alternate text representation and
3822 language property parameters can be specified on this property.
3824 Conformance: This property can be specified in "VEVENT" or "VTODO"
3825 calendar component.
3827 Description: Specific venues such as conference or meeting rooms may
3828 be explicitly specified using this property. An alternate
3829 representation may be specified that is a URI that points to
3830 directory information with more structured specification of the
3831 location. For example, the alternate representation may specify
3832 either an LDAP URI pointing to an LDAP server entry or a CID URI
3833 pointing to a MIME body part containing a vCard [RFC2426] for the
3834 location.
3836 Format Definition: The property is defined by the following notation:
3838 location = "LOCATION locparam ":" text CRLF
3840 locparam = *(
3842 ; the following are optional,
3843 ; but MUST NOT occur more than once
3845 (";" altrepparam) / (";" languageparam) /
3847 ; the following is optional,
3848 ; and MAY occur more than once
3850 (";" xparam)
3852 )
3854 Example: The following are some examples of this property:
3856 LOCATION:Conference Room - F123, Bldg. 002
3858 LOCATION;ALTREP="http://xyzcorp.com/conf-rooms/f123.vcf":
3859 Conference Room - F123, Bldg. 002
3861 3.8.1.8. Percent Complete
3863 Property Name: PERCENT-COMPLETE
3865 Purpose: This property is used by an assignee or delegatee of a to-do
3866 to convey the percent completion of a to-do to the Organizer.
3868 Value Type: INTEGER
3870 Property Parameters: Non-standard property parameters can be
3871 specified on this property.
3873 Conformance: This property can be specified in a "VTODO" calendar
3874 component.
3876 Description: The property value is a positive integer between zero
3877 and one hundred. A value of "0" indicates the to-do has not yet
3878 been started. A value of "100" indicates that the to-do has been
3879 completed. Integer values in between indicate the percent
3880 partially complete.
3882 When a to-do is assigned to multiple individuals, the property
3883 value indicates the percent complete for that portion of the to-do
3884 assigned to the assignee or delegatee. For example, if a to-do is
3885 assigned to both individuals "A" and "B". A reply from "A" with a
3886 percent complete of "70" indicates that "A" has completed 70% of
3887 the to-do assigned to them. A reply from "B" with a percent
3888 complete of "50" indicates "B" has completed 50% of the to-do
3889 assigned to them.
3891 Format Definition: The property is defined by the following notation:
3893 percent = "PERCENT-COMPLETE" pctparam ":" integer CRLF
3895 pctparam = *(";" xparam)
3897 Example: The following is an example of this property to show 39%
3898 completion:
3900 PERCENT-COMPLETE:39
3902 3.8.1.9. Priority
3904 Property Name: PRIORITY
3906 Purpose: The property defines the relative priority for a calendar
3907 component.
3909 Value Type: INTEGER
3911 Property Parameters: Non-standard property parameters can be
3912 specified on this property.
3914 Conformance: The property can be specified in a "VEVENT" or "VTODO"
3915 calendar component.
3917 Description: The priority is specified as an integer in the range
3918 zero to nine. A value of zero (US-ASCII decimal 48) specifies an
3919 undefined priority. A value of one (US-ASCII decimal 49) is the
3920 highest priority. A value of two (US-ASCII decimal 50) is the
3921 second highest priority. Subsequent numbers specify a decreasing
3922 ordinal priority. A value of nine (US-ASCII decimal 58) is the
3923 lowest priority.
3925 A CUA with a three-level priority scheme of "HIGH", "MEDIUM" and
3926 "LOW" is mapped into this property such that a property value in
3927 the range of one (US-ASCII decimal 49) to four (US-ASCII decimal
3928 52) specifies "HIGH" priority. A value of five (US-ASCII decimal
3929 53) is the normal or "MEDIUM" priority. A value in the range of
3930 six (US- ASCII decimal 54) to nine (US-ASCII decimal 58) is "LOW"
3931 priority.
3933 A CUA with a priority schema of "A1", "A2", "A3", "B1", "B2", ...,
3934 "C3" is mapped into this property such that a property value of
3935 one (US-ASCII decimal 49) specifies "A1", a property value of two
3936 (US- ASCII decimal 50) specifies "A2", a property value of three
3937 (US-ASCII decimal 51) specifies "A3", and so forth up to a
3938 property value of 9 (US-ASCII decimal 58) specifies "C3".
3940 Other integer values are reserved for future use.
3942 Within a "VEVENT" calendar component, this property specifies a
3943 priority for the event. This property may be useful when more
3944 than one event is scheduled for a given time period.
3946 Within a "VTODO" calendar component, this property specified a
3947 priority for the to-do. This property is useful in prioritizing
3948 multiple action items for a given time period.
3950 Format Definition: The property is defined by the following notation:
3952 priority = "PRIORITY" prioparam ":" privalue CRLF
3953 ;Default is zero
3955 prioparam = *(";" xparam)
3957 privalue = integer ;Must be in the range [0..9]
3958 ; All other values are reserved for future use
3960 The following is an example of a property with the highest
3961 priority:
3963 PRIORITY:1
3965 The following is an example of a property with a next highest
3966 priority:
3968 PRIORITY:2
3970 Example: The following is an example of a property with no priority.
3972 This is equivalent to not specifying the "PRIORITY" property:
3974 PRIORITY:0
3976 3.8.1.10. Resources
3978 Property Name: RESOURCES
3980 Purpose: This property defines the equipment or resources anticipated
3981 for an activity specified by a calendar entity..
3983 Value Type: TEXT
3985 Property Parameters: Non-standard, alternate text representation and
3986 language property parameters can be specified on this property.
3988 Conformance: This property can be specified in "VEVENT" or "VTODO"
3989 calendar component.
3991 Description: The property value is an arbitrary text. More than one
3992 resource can be specified as a list of resources separated by the
3993 COMMA character (US-ASCII decimal 44).
3995 Format Definition: The property is defined by the following notation:
3997 resources = "RESOURCES" resrcparam ":" text *("," text) CRLF
3999 resrcparam = *(
4001 ; the following are optional,
4002 ; but MUST NOT occur more than once
4004 (";" altrepparam) / (";" languageparam) /
4006 ; the following is optional,
4007 ; and MAY occur more than once
4009 (";" xparam)
4011 )
4013 Example: The following is an example of this property:
4015 RESOURCES:EASEL,PROJECTOR,VCR
4017 RESOURCES;LANGUAGE=fr:1 raton-laveur
4019 3.8.1.11. Status
4020 Property Name: STATUS
4022 Purpose: This property defines the overall status or confirmation for
4023 the calendar component.
4025 Value Type: TEXT
4027 Property Parameters: Non-standard property parameters can be
4028 specified on this property.
4030 Conformance: This property can be specified in "VEVENT", "VTODO" or
4031 "VJOURNAL" calendar components.
4033 Description: In a group scheduled calendar component, the property is
4034 used by the "Organizer" to provide a confirmation of the event to
4035 the "Attendees". For example in a "VEVENT" calendar component,
4036 the "Organizer" can indicate that a meeting is tentative,
4037 confirmed or cancelled. In a "VTODO" calendar component, the
4038 "Organizer" can indicate that an action item needs action, is
4039 completed, is in process or being worked on, or has been
4040 cancelled. In a "VJOURNAL" calendar component, the "Organizer"
4041 can indicate that a journal entry is draft, final or has been
4042 cancelled or removed.
4044 Format Definition: The property is defined by the following notation:
4046 status = "STATUS" statparam] ":" statvalue CRLF
4048 statparam = *(";" xparam)
4050 statvalue = "TENTATIVE" ;Indicates event is
4051 ;tentative.
4052 / "CONFIRMED" ;Indicates event is
4053 ;definite.
4054 / "CANCELLED" ;Indicates event was
4055 ;cancelled.
4056 ;Status values for a "VEVENT"
4058 statvalue =/ "NEEDS-ACTION" ;Indicates to-do needs action.
4059 / "COMPLETED" ;Indicates to-do completed.
4060 / "IN-PROCESS" ;Indicates to-do in process of
4061 / "CANCELLED" ;Indicates to-do was cancelled.
4062 ;Status values for "VTODO".
4064 statvalue =/ "DRAFT" ;Indicates journal is draft.
4065 / "FINAL" ;Indicates journal is final.
4066 / "CANCELLED" ;Indicates journal is removed.
4067 ;Status values for "VJOURNAL".
4069 Example: The following is an example of this property for a "VEVENT"
4070 calendar component:
4072 STATUS:TENTATIVE
4074 The following is an example of this property for a "VTODO"
4075 calendar component:
4077 STATUS:NEEDS-ACTION
4079 The following is an example of this property for a "VJOURNAL"
4080 calendar component:
4082 STATUS:DRAFT
4084 3.8.1.12. Summary
4086 Property Name: SUMMARY
4088 Purpose: This property defines a short summary or subject for the
4089 calendar component.
4091 Value Type: TEXT
4093 Property Parameters: Non-standard, alternate text representation and
4094 language property parameters can be specified on this property.
4096 Conformance: The property can be specified in "VEVENT", "VTODO",
4097 "VJOURNAL" or "VALARM" calendar components.
4099 Description: This property is used in the "VEVENT", "VTODO" and
4100 "VJOURNAL" calendar components to capture a short, one line
4101 summary about the activity or journal entry.
4103 This property is used in the "VALARM" calendar component to
4104 capture the subject of an EMAIL category of alarm.
4106 Format Definition: The property is defined by the following notation:
4108 summary = "SUMMARY" summparam ":" text CRLF
4110 summparam = *(
4112 ; the following are optional,
4113 ; but MUST NOT occur more than once
4115 (";" altrepparam) / (";" languageparam) /
4117 ; the following is optional,
4118 ; and MAY occur more than once
4120 (";" xparam)
4122 )
4124 Example: The following is an example of this property:
4126 SUMMARY:Department Party
4128 3.8.2. Date and Time Component Properties
4130 The following properties specify date and time related information in
4131 calendar components.
4133 3.8.2.1. Date/Time Completed
4135 Property Name: COMPLETED
4137 Purpose: This property defines the date and time that a to-do was
4138 actually completed.
4140 Value Type: DATE-TIME
4142 Property Parameters: Non-standard property parameters can be
4143 specified on this property.
4145 Conformance: The property can be specified in a "VTODO" calendar
4146 component.
4148 Description: The date and time MUST be in a UTC format.
4150 Format Definition: The property is defined by the following notation:
4152 completed = "COMPLETED" compparam ":" date-time CRLF
4154 compparam = *(";" xparam)
4156 Example: The following is an example of this property:
4158 COMPLETED:19960401T235959Z
4160 3.8.2.2. Date/Time End
4162 Property Name: DTEND
4164 Purpose: This property specifies the date and time that a calendar
4165 component ends.
4167 Value Type: The default value type is DATE-TIME. The value type can
4168 be set to a DATE value type.
4170 Property Parameters: Non-standard, value data type, time zone
4171 identifier property parameters can be specified on this property.
4173 Conformance: This property can be specified in "VEVENT" or
4174 "VFREEBUSY" calendar components.
4176 Description: Within the "VEVENT" calendar component, this property
4177 defines the date and time by which the event ends. The value MUST
4178 be later in time than the value of the "DTSTART" property.
4180 Within the "VFREEBUSY" calendar component, this property defines
4181 the end date and time for the free or busy time information. The
4182 time MUST be specified in the UTC time format. The value MUST be
4183 later in time than the value of the "DTSTART" property.
4185 Format Definition: The property is defined by the following notation:
4187 dtend = "DTEND" dtendparam":" dtendval CRLF
4189 dtendparam = *(
4191 ; the following are optional,
4192 ; but MUST NOT occur more than once
4194 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
4195 (";" tzidparam) /
4197 ; the following is optional,
4198 ; and MAY occur more than once
4200 (";" xparam)
4202 )
4204 dtendval = date-time / date
4205 ;Value MUST match value type
4207 Example: The following is an example of this property:
4209 DTEND:19960401T235959Z
4211 DTEND;VALUE=DATE:19980704
4213 3.8.2.3. Date/Time Due
4215 Property Name: DUE
4217 Purpose: This property defines the date and time that a to-do is
4218 expected to be completed.
4220 Value Type: The default value type is DATE-TIME. The value type can
4221 be set to a DATE value type.
4223 Property Parameters: Non-standard, value data type, time zone
4224 identifier property parameters can be specified on this property.
4226 Conformance: The property can be specified once in a "VTODO" calendar
4227 component.
4229 Description: The value MUST be a date/time equal to or after the
4230 DTSTART value, if specified.
4232 Format Definition: The property is defined by the following notation:
4234 due = "DUE" dueparam":" dueval CRLF
4236 dueparam = *(
4237 ; the following are optional,
4238 ; but MUST NOT occur more than once
4240 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
4241 (";" tzidparam) /
4243 ; the following is optional,
4244 ; and MAY occur more than once
4246 *(";" xparam)
4248 )
4250 dueval = date-time / date
4251 ;Value MUST match value type
4253 Example: The following is an example of this property:
4255 DUE:19980430T235959Z
4257 3.8.2.4. Date/Time Start
4259 Property Name: DTSTART
4261 Purpose: This property specifies when the calendar component begins.
4263 Value Type: The default value type is DATE-TIME. The time value MUST
4264 be one of the forms defined for the DATE-TIME value type. The
4265 value type can be set to a DATE value type.
4267 Property Parameters: Non-standard, value data type, time zone
4268 identifier property parameters can be specified on this property.
4270 Conformance: This property can be specified in the "VEVENT", "VTODO",
4271 "VFREEBUSY", or "VTIMEZONE" calendar components.
4273 Description: Within the "VEVENT" calendar component, this property
4274 defines the start date and time for the event. The property is
4275 REQUIRED in "VEVENT" calendar components. Events can have a start
4276 date/time but no end date/time. In that case, the event does not
4277 take up any time.
4279 Within the "VFREEBUSY" calendar component, this property defines
4280 the start date and time for the free or busy time information.
4281 The time MUST be specified in UTC time.
4283 Within the "VTIMEZONE" calendar component, this property defines
4284 the effective start date and time for a time zone specification.
4285 This property is REQUIRED within each STANDARD and DAYLIGHT part
4286 included in "VTIMEZONE" calendar components and MUST be specified
4287 as a local DATE-TIME without the "TZID" property parameter.
4289 Format Definition: The property is defined by the following notation:
4291 dtstart = "DTSTART" dtstparam ":" dtstval CRLF
4293 dtstparam = *(
4295 ; the following are optional,
4296 ; but MUST NOT occur more than once
4298 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
4299 (";" tzidparam) /
4301 ; the following is optional,
4302 ; and MAY occur more than once
4304 *(";" xparam)
4306 )
4308 dtstval = date-time / date
4309 ;Value MUST match value type
4311 Example: The following is an example of this property:
4313 DTSTART:19980118T073000Z
4315 3.8.2.5. Duration
4317 Property Name: DURATION
4319 Purpose: The property specifies a positive duration of time.
4321 Value Type: DURATION
4323 Property Parameters: Non-standard property parameters can be
4324 specified on this property.
4326 Conformance: The property can be specified in "VEVENT", "VTODO",
4327 "VFREEBUSY" or "VALARM" calendar components.
4329 Description: In a "VEVENT" calendar component the property may be
4330 used to specify a duration of the event, instead of an explicit
4331 end date/time. In a "VTODO" calendar component the property may
4332 be used to specify a duration for the to-do, instead of an
4333 explicit due date/time. In a "VFREEBUSY" calendar component the
4334 property may be used to specify the interval of free time being
4335 requested. In a "VALARM" calendar component the property may be
4336 used to specify the delay period prior to repeating an alarm.
4338 Format Definition: The property is defined by the following notation:
4340 duration = "DURATION" durparam ":" dur-value CRLF
4341 ;consisting of a positive duration of time.
4343 durparam = *(";" xparam)
4345 Example: The following is an example of this property that specifies
4346 an interval of time of 1 hour and zero minutes and zero seconds:
4348 DURATION:PT1H0M0S
4350 The following is an example of this property that specifies an
4351 interval of time of 15 minutes.
4353 DURATION:PT15M
4355 3.8.2.6. Free/Busy Time
4357 Property Name: FREEBUSY
4359 Purpose: The property defines one or more free or busy time
4360 intervals.
4362 Value Type: PERIOD. The date and time values MUST be in an UTC time
4363 format.
4365 Property Parameters: Non-standard or free/busy time type property
4366 parameters can be specified on this property.
4368 Conformance: The property can be specified in a "VFREEBUSY" calendar
4369 component.
4371 Description: These time periods can be specified as either a start
4372 and end date-time or a start date-time and duration. The date and
4373 time MUST be a UTC time format.
4375 "FREEBUSY" properties within the "VFREEBUSY" calendar component
4376 SHOULD be sorted in ascending order, based on start time and then
4377 end time, with the earliest periods first.
4379 The "FREEBUSY" property can specify more than one value, separated
4380 by the COMMA character (US-ASCII decimal 44). In such cases, the
4381 "FREEBUSY" property values SHOULD all be of the same "FBTYPE"
4382 property parameter type (e.g., all values of a particular "FBTYPE"
4383 listed together in a single property).
4385 Format Definition: The property is defined by the following notation:
4387 freebusy = "FREEBUSY" fbparam ":" fbvalue
4388 CRLF
4390 fbparam = *(
4391 ; the following is optional,
4392 ; but MUST NOT occur more than once
4394 (";" fbtypeparam) /
4396 ; the following is optional,
4397 ; and MAY occur more than once
4399 (";" xparam)
4401 )
4403 fbvalue = period *["," period]
4404 ;Time value MUST be in the UTC time format.
4406 Example: The following are some examples of this property:
4408 FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M
4410 FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H
4412 FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H,
4413 19970308T230000Z/19970309T000000Z
4415 3.8.2.7. Time Transparency
4416 Property Name: TRANSP
4418 Purpose: This property defines whether an event is transparent or not
4419 to busy time searches.
4421 Value Type: TEXT
4423 Property Parameters: Non-standard property parameters can be
4424 specified on this property.
4426 Conformance: This property can be specified once in a "VEVENT"
4427 calendar component.
4429 Description: Time Transparency is the characteristic of an event that
4430 determines whether it appears to consume time on a calendar.
4431 Events that consume actual time for the individual or resource
4432 associated with the calendar SHOULD be recorded as OPAQUE,
4433 allowing them to be detected by free-busy time searches. Other
4434 events, which do not take up the individual's (or resource's) time
4435 SHOULD be recorded as TRANSPARENT, making them invisible to free-
4436 busy time searches.
4438 Format Definition: The property is defined by the following notation:
4440 transp = "TRANSP" tranparam ":" transvalue CRLF
4442 tranparam = *(";" xparam)
4444 transvalue = "OPAQUE" ;Blocks or opaque on busy time searches.
4445 / "TRANSPARENT" ;Transparent on busy time searches.
4446 ;Default value is OPAQUE
4448 Example: The following is an example of this property for an event
4449 that is transparent or does not block on free/busy time searches:
4451 TRANSP:TRANSPARENT
4453 The following is an example of this property for an event that is
4454 opaque or blocks on free/busy time searches:
4456 TRANSP:OPAQUE
4458 3.8.3. Time Zone Component Properties
4460 The following properties specify time zone information in calendar
4461 components.
4463 3.8.3.1. Time Zone Identifier
4465 Property Name: TZID
4467 Purpose: This property specifies the text value that uniquely
4468 identifies the "VTIMEZONE" calendar component.
4470 Value Type: TEXT
4472 Property Parameters: Non-standard property parameters can be
4473 specified on this property.
4475 Conformance: This property MUST be specified in a "VTIMEZONE"
4476 calendar component.
4478 Description: This is the label by which a time zone calendar
4479 component is referenced by any iCalendar properties whose data
4480 type is either DATE-TIME or TIME and not intended to specify a UTC
4481 or a "floating" time. The presence of the SOLIDUS character (US-
4482 ASCII decimal 47) as a prefix, indicates that this TZID represents
4483 an unique ID in a globally defined time zone registry (when such
4484 registry is defined).
4486 Note: This document does not define a naming convention for
4487 time zone identifiers. Implementers may want to use the naming
4488 conventions defined in existing time zone specifications such
4489 as the public-domain Olson database [TZDB]. The specification
4490 of globally unique time zone identifiers is not addressed by
4491 this document and is left for future study.
4493 Format Definition: The property is defined by the following notation:
4495 tzid = "TZID" tzidpropparam ":" [tzidprefix] text CRLF
4497 tzidpropparam = *(";" xparam)
4499 ;tzidprefix = "/"
4500 ; Defined previously. Just listed here for reader convenience.
4502 Example: The following are examples of non-globally unique time zone
4503 identifiers:
4505 TZID:US-Eastern
4507 TZID:California-Los_Angeles
4509 The following is an example of a fictitious globally unique time
4510 zone identifier:
4512 TZID:/US-New_York-New_York
4514 3.8.3.2. Time Zone Name
4516 Property Name: TZNAME
4518 Purpose: This property specifies the customary designation for a time
4519 zone description.
4521 Value Type: TEXT
4523 Property Parameters: Non-standard and language property parameters
4524 can be specified on this property.
4526 Conformance: This property can be specified in a "VTIMEZONE" calendar
4527 component.
4529 Description: This property may be specified in multiple languages; in
4530 order to provide for different language requirements.
4532 Format Definition: The property is defined by the following notation:
4534 tzname = "TZNAME" tznparam ":" text CRLF
4536 tznparam = *(
4538 ; the following is optional,
4539 ; but MUST NOT occur more than once
4541 (";" languageparam) /
4543 ; the following is optional,
4544 ; and MAY occur more than once
4546 (";" xparam)
4548 )
4550 Example: The following are example of this property:
4552 TZNAME:EST
4554 The following is an example of this property when two different
4555 languages for the time zone name are specified:
4557 TZNAME;LANGUAGE=en:EST
4558 TZNAME;LANGUAGE=fr-CA:HNE
4560 3.8.3.3. Time Zone Offset From
4562 Property Name: TZOFFSETFROM
4564 Purpose: This property specifies the offset which is in use prior to
4565 this time zone observance.
4567 Value Type: UTC-OFFSET
4569 Property Parameters: Non-standard property parameters can be
4570 specified on this property.
4572 Conformance: This property MUST be specified in a "VTIMEZONE"
4573 calendar component.
4575 Description: This property specifies the offset which is in use prior
4576 to this time observance. It is used to calculate the absolute
4577 time at which the transition to a given observance takes place.
4578 This property MUST only be specified in a "VTIMEZONE" calendar
4579 component. A "VTIMEZONE" calendar component MUST include this
4580 property. The property value is a signed numeric indicating the
4581 number of hours and possibly minutes from UTC. Positive numbers
4582 represent time zones east of the prime meridian, or ahead of UTC.
4583 Negative numbers represent time zones west of the prime meridian,
4584 or behind UTC.
4586 Format Definition: The property is defined by the following notation:
4588 tzoffsetfrom = "TZOFFSETFROM" frmparam ":" utc-offset
4589 CRLF
4591 frmparam = *(";" xparam)
4593 Example: The following are examples of this property:
4595 TZOFFSETFROM:-0500
4597 TZOFFSETFROM:+1345
4599 3.8.3.4. Time Zone Offset To
4601 Property Name: TZOFFSETTO
4603 Purpose: This property specifies the offset which is in use in this
4604 time zone observance.
4606 Value Type: UTC-OFFSET
4608 Property Parameters: Non-standard property parameters can be
4609 specified on this property.
4611 Conformance: This property MUST be specified in a "VTIMEZONE"
4612 calendar component.
4614 Description: This property specifies the offset which is in use in
4615 this time zone observance. It is used to calculate the absolute
4616 time for the new observance. The property value is a signed
4617 numeric indicating the number of hours and possibly minutes from
4618 UTC. Positive numbers represent time zones east of the prime
4619 meridian, or ahead of UTC. Negative numbers represent time zones
4620 west of the prime meridian, or behind UTC.
4622 Format Definition: The property is defined by the following notation:
4624 tzoffsetto = "TZOFFSETTO" toparam ":" utc-offset CRLF
4626 toparam = *(";" xparam)
4628 Example: The following are examples of this property:
4630 TZOFFSETTO:-0400
4632 TZOFFSETTO:+1245
4634 3.8.3.5. Time Zone URL
4636 Property Name: TZURL
4638 Purpose: The TZURL provides a means for a VTIMEZONE component to
4639 point to a network location that can be used to retrieve an up-to-
4640 date version of itself.
4642 Value Type: URI
4643 Property Parameters: Non-standard property parameters can be
4644 specified on this property.
4646 Conformance: This property can be specified in a "VTIMEZONE" calendar
4647 component.
4649 Description: The TZURL provides a means for a VTIMEZONE component to
4650 point to a network location that can be used to retrieve an up-to-
4651 date version of itself. This provides a hook to handle changes
4652 government bodies impose upon time zone definitions. Retrieval of
4653 this resource results in an iCalendar object containing a single
4654 VTIMEZONE component and a METHOD property set to PUBLISH.
4656 Format Definition: The property is defined by the following notation:
4658 tzurl = "TZURL" tzurlparam ":" uri CRLF
4660 tzurlparam = *(";" xparam)
4662 Example: The following is an example of this property:
4664 TZURL:http://timezones.r.us.net/tz/US-California-Los_Angeles
4666 3.8.4. Relationship Component Properties
4668 The following properties specify relationship information in calendar
4669 components.
4671 3.8.4.1. Attendee
4673 Property Name: ATTENDEE
4675 Purpose: The property defines an "Attendee" within a calendar
4676 component.
4678 Value Type: CAL-ADDRESS
4680 Property Parameters: Non-standard, language, calendar user type,
4681 group or list membership, participation role, participation
4682 status, RSVP expectation, delegatee, delegator, sent by, common
4683 name or directory entry reference property parameters can be
4684 specified on this property.
4686 Conformance: This property MUST be specified in an iCalendar object
4687 that specifies a group scheduled calendar entity. This property
4688 MUST NOT be specified in an iCalendar object when publishing the
4689 calendar information (e.g., NOT in an iCalendar object that
4690 specifies the publication of a calendar user's busy time, event,
4691 to-do or journal). This property is not specified in an iCalendar
4692 object that specifies only a time zone definition or that defines
4693 calendar entities that are not group scheduled entities, but are
4694 entities only on a single user's calendar.
4696 Description: The property MUST only be specified within calendar
4697 components to specify participants, non-participants and the chair
4698 of a group scheduled calendar entity. The property is specified
4699 within an "EMAIL" category of the "VALARM" calendar component to
4700 specify an email address that is to receive the email type of
4701 iCalendar alarm.
4703 The property parameter CN is for the common or displayable name
4704 associated with the calendar address; ROLE, for the intended role
4705 that the attendee will have in the calendar component; PARTSTAT,
4706 for the status of the attendee's participation; RSVP, for
4707 indicating whether the favor of a reply is requested; CUTYPE, to
4708 indicate the type of calendar user; MEMBER, to indicate the groups
4709 that the attendee belongs to; DELEGATED-TO, to indicate the
4710 calendar users that the original request was delegated to; and
4711 DELEGATED-FROM, to indicate whom the request was delegated from;
4712 SENT-BY, to indicate whom is acting on behalf of the ATTENDEE; and
4713 DIR, to indicate the URI that points to the directory information
4714 corresponding to the attendee. These property parameters can be
4715 specified on an "ATTENDEE" property in either a "VEVENT", "VTODO"
4716 or "VJOURNAL" calendar component. They MUST not be specified in
4717 an "ATTENDEE" property in a "VFREEBUSY" or "VALARM" calendar
4718 component. If the LANGUAGE property parameter is specified, the
4719 identified language applies to the CN parameter.
4721 A recipient delegated a request MUST inherit the RSVP and ROLE
4722 values from the attendee that delegated the request to them.
4724 Multiple attendees can be specified by including multiple
4725 "ATTENDEE" properties within the calendar component.
4727 Format Definition: The property is defined by the following notation:
4729 attendee = "ATTENDEE" attparam ":" cal-address CRLF
4731 attparam = *(
4733 ; the following are optional,
4734 ; but MUST NOT occur more than once
4736 (";" cutypeparam) / (";"memberparam) /
4737 (";" roleparam) / (";" partstatparam) /
4738 (";" rsvpparam) / (";" deltoparam) /
4739 (";" delfromparam) / (";" sentbyparam) /
4740 (";"cnparam) / (";" dirparam) /
4741 (";" languageparam) /
4743 ; the following is optional,
4744 ; and MAY occur more than once
4746 (";" xparam)
4748 )
4750 Example: The following are examples of this property's use for a
4751 to-do:
4753 ORGANIZER:MAILTO:jsmith@host1.com
4754 ATTENDEE;MEMBER="MAILTO:DEV-GROUP@host2.com":
4755 MAILTO:joecool@host2.com
4756 ATTENDEE;DELEGATED-FROM="MAILTO:immud@host3.com":
4757 MAILTO:ildoit@host1.com
4759 The following is an example of this property used for specifying
4760 multiple attendees to an event:
4762 ORGANIZER:MAILTO:jsmith@host1.com
4763 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Henry Cabot
4764 :MAILTO:hcabot@host2.com
4765 ATTENDEE;ROLE=REQ-PARTICIPANT;DELEGATED-FROM="MAILTO:bob@host.com"
4766 ;PARTSTAT=ACCEPTED;CN=Jane Doe:MAILTO:jdoe@host1.com
4768 The following is an example of this property with a URI to the
4769 directory information associated with the attendee:
4771 ATTENDEE;CN=John Smith;DIR="ldap://host.com:6666/o=eDABC%
4772 20Industries,c=3DUS??(cn=3DBJim%20Dolittle)":MAILTO:jimdo@
4773 host1.com
4774 The following is an example of this property with "delegatee" and
4775 "delegator" information for an event:
4777 ORGANIZER;CN=John Smith:MAILTO:jsmith@host.com
4778 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;DELEGATED-FROM=
4779 "MAILTO:iamboss@host2.com";CN=Henry Cabot:MAILTO:hcabot@
4780 host2.com
4781 ATTENDEE;ROLE=NON-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO=
4782 "MAILTO:hcabot@host2.com";CN=The Big Cheese:MAILTO:iamboss
4783 @host2.com
4784 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Jane Doe
4785 :MAILTO:jdoe@host1.com
4787 Example: The following is an example of this property's use when
4788 another calendar user is acting on behalf of the "Attendee":
4790 ATTENDEE;SENT-BY=MAILTO:jan_doe@host1.com;CN=John Smith:MAILTO:
4791 jsmith@host1.com
4793 3.8.4.2. Contact
4795 Property Name: CONTACT
4797 Purpose: The property is used to represent contact information or
4798 alternately a reference to contact information associated with the
4799 calendar component.
4801 Value Type: TEXT
4803 Property Parameters: Non-standard, alternate text representation and
4804 language property parameters can be specified on this property.
4806 Conformance: The property can be specified in a "VEVENT", "VTODO",
4807 "VJOURNAL" or "VFREEBUSY" calendar component.
4809 Description: The property value consists of textual contact
4810 information. An alternative representation for the property value
4811 can also be specified that refers to a URI pointing to an
4812 alternate form, such as a vCard [RFC2426], for the contact
4813 information.
4815 Format Definition: The property is defined by the following notation:
4817 contact = "CONTACT" contparam ":" text CRLF
4819 contparam = *(
4820 ; the following are optional,
4821 ; but MUST NOT occur more than once
4823 (";" altrepparam) / (";" languageparam) /
4825 ; the following is optional,
4826 ; and MAY occur more than once
4828 (";" xparam)
4830 )
4832 Example: The following is an example of this property referencing
4833 textual contact information:
4835 CONTACT:Jim Dolittle\, ABC Industries\, +1-919-555-1234
4837 The following is an example of this property with an alternate
4838 representation of a LDAP URI to a directory entry containing the
4839 contact information:
4841 CONTACT;ALTREP="ldap://host.com:6666/o=3DABC%20Industries\,
4842 c=3DUS??(cn=3DBJim%20Dolittle)":Jim Dolittle\, ABC Industries\,
4843 +1-919-555-1234
4845 The following is an example of this property with an alternate
4846 representation of a MIME body part containing the contact
4847 information, such as a vCard [RFC2426] embedded in a [MIME-DIR]
4848 content-type:
4850 CONTACT;ALTREP="CID=":Jim
4851 Dolittle\, ABC Industries\, +1-919-555-1234
4853 The following is an example of this property referencing a network
4854 resource, such as a vCard [RFC2426] object containing the contact
4855 information:
4857 CONTACT;ALTREP="http://host.com/pdi/jdoe.vcf":Jim
4858 Dolittle\, ABC Industries\, +1-919-555-1234
4860 3.8.4.3. Organizer
4861 Property Name: ORGANIZER
4863 Purpose: The property defines the organizer for a calendar component.
4865 Value Type: CAL-ADDRESS
4867 Property Parameters: Non-standard, language, common name, directory
4868 entry reference, sent by property parameters can be specified on
4869 this property.
4871 Conformance: This property MUST be specified in an iCalendar object
4872 that specifies a group scheduled calendar entity. This property
4873 MUST be specified in an iCalendar object that specifies the
4874 publication of a calendar user's busy time. This property MUST
4875 NOT be specified in an iCalendar object that specifies only a time
4876 zone definition or that defines calendar entities that are not
4877 group scheduled entities, but are entities only on a single user's
4878 calendar.
4880 Description: The property is specified within the "VEVENT", "VTODO",
4881 "VJOURNAL calendar components to specify the organizer of a group
4882 scheduled calendar entity. The property is specified within the
4883 "VFREEBUSY" calendar component to specify the calendar user
4884 requesting the free or busy time. When publishing a "VFREEBUSY"
4885 calendar component, the property is used to specify the calendar
4886 that the published busy time came from.
4888 The property has the property parameters CN, for specifying the
4889 common or display name associated with the "Organizer", DIR, for
4890 specifying a pointer to the directory information associated with
4891 the "Organizer", SENT-BY, for specifying another calendar user
4892 that is acting on behalf of the "Organizer". The non-standard
4893 parameters may also be specified on this property. If the
4894 LANGUAGE property parameter is specified, the identified language
4895 applies to the CN parameter value.
4897 Format Definition: The property is defined by the following notation:
4899 organizer = "ORGANIZER" orgparam ":"
4900 cal-address CRLF
4902 orgparam = *(
4904 ; the following are optional,
4905 ; but MUST NOT occur more than once
4907 (";" cnparam) / (";" dirparam) / (";" sentbyparam) /
4908 (";" languageparam) /
4910 ; the following is optional,
4911 ; and MAY occur more than once
4913 (";" xparam)
4915 )
4917 Example: The following is an example of this property:
4919 ORGANIZER;CN=John Smith:MAILTO:jsmith@host1.com
4921 The following is an example of this property with a pointer to the
4922 directory information associated with the organizer:
4924 ORGANIZER;CN=JohnSmith;DIR="ldap://host.com:6666/o=3DDC%20Associ
4925 ates,c=3DUS??(cn=3DJohn%20Smith)":MAILTO:jsmith@host1.com
4927 The following is an example of this property used by another
4928 calendar user who is acting on behalf of the organizer, with
4929 responses intended to be sent back to the organizer, not the other
4930 calendar user:
4932 ORGANIZER;SENT-BY="MAILTO:jane_doe@host.com":
4933 MAILTO:jsmith@host1.com
4935 3.8.4.4. Recurrence ID
4937 Property Name: RECURRENCE-ID
4939 Purpose: This property is used in conjunction with the "UID" and
4940 "SEQUENCE" property to identify a specific instance of a recurring
4941 "VEVENT", "VTODO" or "VJOURNAL" calendar component. The property
4942 value is the effective value of the "DTSTART" property of the
4943 recurrence instance.
4945 Value Type: The default value type for this property is DATE-TIME.
4946 The time format can be any of the valid forms defined for a DATE-
4947 TIME value type. See DATE-TIME value type definition for specific
4948 interpretations of the various forms. The value type can be set
4949 to DATE.
4951 Property Parameters: Non-standard property, value data type, time
4952 zone identifier and recurrence identifier range parameters can be
4953 specified on this property.
4955 Conformance: This property can be specified in an iCalendar object
4956 containing a recurring calendar component.
4958 Description: The full range of calendar components specified by a
4959 recurrence set is referenced by referring to just the "UID"
4960 property value corresponding to the calendar component. The
4961 "RECURRENCE-ID" property allows the reference to an individual
4962 instance within the recurrence set.
4964 If the value of the "DTSTART" property is a DATE type value, then
4965 the value MUST be the calendar date for the recurrence instance.
4967 The date/time value is set to the time when the original
4968 recurrence instance would occur; meaning that if the intent is to
4969 change a Friday meeting to Thursday, the date/time is still set to
4970 the original Friday meeting.
4972 The "RECURRENCE-ID" property is used in conjunction with the "UID"
4973 and "SEQUENCE" property to identify a particular instance of a
4974 recurring event, to-do or journal. For a given pair of "UID" and
4975 "SEQUENCE" property values, the "RECURRENCE-ID" value for a
4976 recurrence instance is fixed. When the definition of the
4977 recurrence set for a calendar component changes, and hence the
4978 "SEQUENCE" property value changes, the "RECURRENCE-ID" for a given
4979 recurrence instance might also change.The "RANGE" parameter is
4980 used to specify the effective range of recurrence instances from
4981 the instance specified by the "RECURRENCE-ID" property value. The
4982 default value for the range parameter is the single recurrence
4983 instance only. The value can also be "THISANDPRIOR" to indicate a
4984 range defined by the given recurrence instance and all prior
4985 instances or the value can be "THISANDFUTURE" to indicate a range
4986 defined by the given recurrence instance and all subsequent
4987 instances.
4989 Format Definition: The property is defined by the following notation:
4991 recurid = "RECURRENCE-ID" ridparam ":" ridval CRLF
4993 ridparam = *(
4995 ; the following are optional,
4996 ; but MUST NOT occur more than once
4998 (";" "VALUE" "=" ("DATE-TIME" / "DATE)) /
4999 (";" tzidparam) / (";" rangeparam) /
5001 ; the following is optional,
5002 ; and MAY occur more than once
5004 (";" xparam)
5006 )
5008 ridval = date-time / date
5009 ;Value MUST match value type
5011 Example: The following are examples of this property:
5013 RECURRENCE-ID;VALUE=DATE:19960401
5015 RECURRENCE-ID;RANGE=THISANDFUTURE:19960120T120000Z
5017 3.8.4.5. Related To
5019 Property Name: RELATED-TO
5021 Purpose: The property is used to represent a relationship or
5022 reference between one calendar component and another.
5024 Value Type: TEXT
5026 Property Parameters: Non-standard and relationship type property
5027 parameters can be specified on this property.
5029 Conformance: The property can be specified one or more times in the
5030 "VEVENT", "VTODO" or "VJOURNAL" calendar components.
5032 Description: The property value consists of the persistent, globally
5033 unique identifier of another calendar component. This value would
5034 be represented in a calendar component by the "UID" property.
5036 By default, the property value points to another calendar
5037 component that has a PARENT relationship to the referencing
5038 object. The "RELTYPE" property parameter is used to either
5039 explicitly state the default PARENT relationship type to the
5040 referenced calendar component or to override the default PARENT
5041 relationship type and specify either a CHILD or SIBLING
5042 relationship. The PARENT relationship indicates that the calendar
5043 component is a subordinate of the referenced calendar component.
5044 The CHILD relationship indicates that the calendar component is a
5045 superior of the referenced calendar component. The SIBLING
5046 relationship indicates that the calendar component is a peer of
5047 the referenced calendar component.
5049 Changes to a calendar component referenced by this property can
5050 have an implicit impact on the related calendar component. For
5051 example, if a group event changes its start or end date or time,
5052 then the related, dependent events will need to have their start
5053 and end dates changed in a corresponding way. Similarly, if a
5054 PARENT calendar component is canceled or deleted, then there is an
5055 implied impact to the related CHILD calendar components. This
5056 property is intended only to provide information on the
5057 relationship of calendar components. It is up to the target
5058 calendar system to maintain any property implications of this
5059 relationship.
5061 Format Definition: The property is defined by the following notation:
5063 related = "RELATED-TO" [relparam] ":" text CRLF
5065 relparam = *(
5067 ; the following is optional,
5068 ; but MUST NOT occur more than once
5070 (";" reltypeparam) /
5072 ; the following is optional,
5073 ; and MAY occur more than once
5075 (";" xparm)
5077 )
5079 The following is an example of this property:
5081 RELATED-TO:
5083 RELATED-TO:<19960401-080045-4000F192713-0052@host1.com>
5085 3.8.4.6. Uniform Resource Locator
5087 Property Name: URL
5089 Purpose: This property defines a Uniform Resource Locator (URL)
5090 associated with the iCalendar object.
5092 Value Type: URI
5094 Property Parameters: Non-standard property parameters can be
5095 specified on this property.
5097 Conformance: This property can be specified once in the "VEVENT",
5098 "VTODO", "VJOURNAL" or "VFREEBUSY" calendar components.
5100 Description: This property may be used in a calendar component to
5101 convey a location where a more dynamic rendition of the calendar
5102 information associated with the calendar component can be found.
5103 This memo does not attempt to standardize the form of the URI, nor
5104 the format of the resource pointed to by the property value. If
5105 the URL property and Content-Location MIME header are both
5106 specified, they MUST point to the same resource.
5108 Format Definition: The property is defined by the following notation:
5110 url = "URL" urlparam ":" uri CRLF
5112 urlparam = *(";" xparam)
5114 Example: The following is an example of this property:
5116 URL:http://abc.com/pub/calendars/jsmith/mytime.ics
5118 3.8.4.7. Unique Identifier
5120 Property Name: UID
5122 Purpose: This property defines the persistent, globally unique
5123 identifier for the calendar component.
5125 Value Type: TEXT
5127 Property Parameters: Non-standard property parameters can be
5128 specified on this property.
5130 Conformance: The property MUST be specified in the "VEVENT", "VTODO",
5131 "VJOURNAL" or "VFREEBUSY" calendar components.
5133 Description: The UID itself MUST be a globally unique identifier.
5134 The generator of the identifier MUST guarantee that the identifier
5135 is unique. There are several algorithms that can be used to
5136 accomplish this. The identifier is RECOMMENDED to be the
5137 identical syntax to the [RFC0822] addr-spec. A good method to
5138 assure uniqueness is to put the domain name or a domain literal IP
5139 address of the host on which the identifier was created on the
5140 right hand side of the "@", and on the left hand side, put a
5141 combination of the current calendar date and time of day (i.e.,
5142 formatted in as a DATE-TIME value) along with some other currently
5143 unique (perhaps sequential) identifier available on the system
5144 (for example, a process id number). Using a date/time value on
5145 the left hand side and a domain name or domain literal on the
5146 right hand side makes it possible to guarantee uniqueness since no
5147 two hosts should be using the same domain name or IP address at
5148 the same time. Though other algorithms will work, it is
5149 RECOMMENDED that the right hand side contain some domain
5150 identifier (either of the host itself or otherwise) such that the
5151 generator of the message identifier can guarantee the uniqueness
5152 of the left hand side within the scope of that domain.
5154 This is the method for correlating scheduling messages with the
5155 referenced "VEVENT", "VTODO", or "VJOURNAL" calendar component.
5157 The full range of calendar components specified by a recurrence
5158 set is referenced by referring to just the "UID" property value
5159 corresponding to the calendar component. The "RECURRENCE-ID"
5160 property allows the reference to an individual instance within the
5161 recurrence set.
5163 This property is an important method for group scheduling
5164 applications to match requests with later replies, modifications
5165 or deletion requests. Calendaring and scheduling applications
5166 MUST generate this property in "VEVENT", "VTODO" and "VJOURNAL"
5167 calendar components to assure interoperability with other group
5168 scheduling applications. This identifier is created by the
5169 calendar system that generates an iCalendar object.
5171 Implementations MUST be able to receive and persist values of at
5172 least 255 characters for this property.
5174 Format Definition: The property is defined by the following notation:
5176 uid = "UID" uidparam ":" text CRLF
5177 uidparam = *(";" xparam)
5179 Example: The following is an example of this property:
5181 UID:19960401T080045Z-4000F192713-0052@host1.com
5183 3.8.5. Recurrence Component Properties
5185 The following properties specify recurrence information in calendar
5186 components.
5188 3.8.5.1. Exception Date/Times
5190 Property Name: EXDATE
5192 Purpose: This property defines the list of date/time exceptions for a
5193 recurring calendar component.
5195 Value Type: The default value type for this property is DATE-TIME.
5196 The value type can be set to DATE.
5198 Property Parameters: Non-standard, value data type and time zone
5199 identifier property parameters can be specified on this property.
5201 Conformance: This property can be specified in an iCalendar object
5202 that includes a recurring calendar component.
5204 Description: The exception dates, if specified, are used in computing
5205 the recurrence set. The recurrence set is the complete set of
5206 recurrence instances for a calendar component. The recurrence set
5207 is generated by considering the initial "DTSTART" property along
5208 with the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties
5209 contained within the iCalendar object. The "DTSTART" property
5210 defines the first instance in the recurrence set. Multiple
5211 instances of the "RRULE" and "EXRULE" properties can also be
5212 specified to define more sophisticated recurrence sets. The final
5213 recurrence set is generated by gathering all of the start date-
5214 times generated by any of the specified "RRULE" and "RDATE"
5215 properties, and then excluding any start date and times which fall
5216 within the union of start date and times generated by any
5217 specified "EXRULE" and "EXDATE" properties. This implies that
5218 start date and times within exclusion related properties (i.e.,
5219 "EXDATE" and "EXRULE") take precedence over those specified by
5220 inclusion properties (i.e., "RDATE" and "RRULE"). Where duplicate
5221 instances are generated by the "RRULE" and "RDATE" properties,
5222 only one recurrence is considered. Duplicate instances are
5223 ignored.
5225 The "EXDATE" property can be used to exclude the value specified
5226 in "DTSTART". However, in such cases the original "DTSTART" date
5227 MUST still be maintained by the calendaring and scheduling system
5228 because the original "DTSTART" value has inherent usage
5229 dependencies by other properties such as the "RECURRENCE-ID".
5231 Format Definition: The property is defined by the following notation:
5233 exdate = "EXDATE" exdtparam ":" exdtval *("," exdtval) CRLF
5235 exdtparam = *(
5237 ; the following are optional,
5238 ; but MUST NOT occur more than once
5240 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
5242 (";" tzidparam) /
5244 ; the following is optional,
5245 ; and MAY occur more than once
5247 (";" xparam)
5249 )
5251 exdtval = date-time / date
5252 ;Value MUST match value type
5254 Example: The following is an example of this property:
5256 EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z
5258 3.8.5.2. Exception Rule
5260 Property Name: EXRULE
5262 Purpose: This property defines a rule or repeating pattern for an
5263 exception to a recurrence set.
5265 Value Type: RECUR
5267 Property Parameters: Non-standard property parameters can be
5268 specified on this property.
5270 Conformance: This property can be specified in "VEVENT", "VTODO" or
5271 "VJOURNAL" calendar components.
5273 Description: The exception rule, if specified, is used in computing
5274 the recurrence set. The recurrence set is the complete set of
5275 recurrence instances for a calendar component. The recurrence set
5276 is generated by considering the initial "DTSTART" property along
5277 with the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties
5278 contained within the iCalendar object. The "DTSTART" defines the
5279 first instance in the recurrence set. Multiple instances of the
5280 "RRULE" and "EXRULE" properties can also be specified to define
5281 more sophisticated recurrence sets. The final recurrence set is
5282 generated by gathering all of the start date-times generated by
5283 any of the specified "RRULE" and "RDATE" properties, and excluding
5284 any start date and times which fall within the union of start date
5285 and times generated by any specified "EXRULE" and "EXDATE"
5286 properties. This implies that start date and times within
5287 exclusion related properties (i.e., "EXDATE" and "EXRULE") take
5288 precedence over those specified by inclusion properties (i.e.,
5289 "RDATE" and "RRULE"). Where duplicate instances are generated by
5290 the "RRULE" and "RDATE" properties, only one recurrence is
5291 considered. Duplicate instances are ignored.
5293 The "EXRULE" property can be used to exclude the value specified
5294 in "DTSTART". However, in such cases the original "DTSTART" date
5295 MUST still be maintained by the calendaring and scheduling system
5296 because the original "DTSTART" value has inherent usage
5297 dependencies by other properties such as the "RECURRENCE-ID".
5299 Format Definition: The property is defined by the following notation:
5301 exrule = "EXRULE" exrparam ":" recur CRLF
5303 exrparam = *(";" xparam)
5305 Example: The following are examples of this property. Except every
5306 other week, on Tuesday and Thursday for 4 occurrences:
5308 EXRULE:FREQ=WEEKLY;COUNT=4;INTERVAL=2;BYDAY=TU,TH
5310 Except daily for 10 occurrences:
5312 EXRULE:FREQ=DAILY;COUNT=10
5314 Except yearly in June and July for 8 occurrences:
5316 EXRULE:FREQ=YEARLY;COUNT=8;BYMONTH=6,7
5318 3.8.5.3. Recurrence Date/Times
5320 Property Name: RDATE
5322 Purpose: This property defines the list of date/times for a
5323 recurrence set.
5325 Value Type: The default value type for this property is DATE-TIME.
5326 The value type can be set to DATE or PERIOD.
5328 Property Parameters: Non-standard, value data type and time zone
5329 identifier property parameters can be specified on this property.
5331 Conformance: The property can be specified in "VEVENT", "VTODO",
5332 "VJOURNAL" or "VTIMEZONE" calendar components.
5334 Description: This property can appear along with the "RRULE" property
5335 to define an aggregate set of repeating occurrences. When they
5336 both appear in an iCalendar object, the recurring events are
5337 defined by the union of occurrences defined by both the "RDATE"
5338 and "RRULE".
5340 The recurrence dates, if specified, are used in computing the
5341 recurrence set. The recurrence set is the complete set of
5342 recurrence instances for a calendar component. The recurrence set
5343 is generated by considering the initial "DTSTART" property along
5344 with the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties
5345 contained within the iCalendar object. The "DTSTART" property
5346 defines the first instance in the recurrence set. Multiple
5347 instances of the "RRULE" and "EXRULE" properties can also be
5348 specified to define more sophisticated recurrence sets. The final
5349 recurrence set is generated by gathering all of the start date/
5350 times generated by any of the specified "RRULE" and "RDATE"
5351 properties, and excluding any start date/times which fall within
5352 the union of start date/times generated by any specified "EXRULE"
5353 and "EXDATE" properties. This implies that start date/times
5354 within exclusion related properties (i.e., "EXDATE" and "EXRULE")
5355 take precedence over those specified by inclusion properties
5356 (i.e., "RDATE" and "RRULE"). Where duplicate instances are
5357 generated by the "RRULE" and "RDATE" properties, only one
5358 recurrence is considered. Duplicate instances are ignored.
5360 Format Definition: The property is defined by the following notation:
5362 rdate = "RDATE" rdtparam ":" rdtval *("," rdtval) CRLF
5364 rdtparam = *(
5366 ; the following are optional,
5367 ; but MUST NOT occur more than once
5369 (";" "VALUE" "=" ("DATE-TIME" / "DATE" / "PERIOD")) /
5370 (";" tzidparam) /
5372 ; the following is optional,
5373 ; and MAY occur more than once
5375 (";" xparam)
5377 )
5379 rdtval = date-time / date / period
5380 ;Value MUST match value type
5382 Example: The following are examples of this property:
5384 RDATE:19970714T123000Z
5386 RDATE;TZID=US-EASTERN:19970714T083000
5388 RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z,
5389 19960404T010000Z/PT3H
5391 RDATE;VALUE=DATE:19970101,19970120,19970217,19970421
5392 19970526,19970704,19970901,19971014,19971128,19971129,19971225
5394 3.8.5.4. Recurrence Rule
5396 Property Name: RRULE
5398 Purpose: This property defines a rule or repeating pattern for
5399 recurring events, to-dos, or time zone definitions.
5401 Value Type: RECUR
5403 Property Parameters: Non-standard property parameters can be
5404 specified on this property.
5406 Conformance: This property can be specified one or more times in
5407 recurring "VEVENT", "VTODO" and "VJOURNAL" calendar components.
5408 It can also be specified once in each STANDARD or DAYLIGHT sub-
5409 component of the "VTIMEZONE" calendar component.
5411 Description: The recurrence rule, if specified, is used in computing
5412 the recurrence set. The recurrence set is the complete set of
5413 recurrence instances for a calendar component. The recurrence set
5414 is generated by considering the initial "DTSTART" property along
5415 with the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties
5416 contained within the iCalendar object. The "DTSTART" property
5417 defines the first instance in the recurrence set. Multiple
5418 instances of the "RRULE" and "EXRULE" properties can also be
5419 specified to define more sophisticated recurrence sets. The final
5420 recurrence set is generated by gathering all of the start date/
5421 times generated by any of the specified "RRULE" and "RDATE"
5422 properties, and excluding any start date/times which fall within
5423 the union of start date/times generated by any specified "EXRULE"
5424 and "EXDATE" properties. This implies that start date/times
5425 within exclusion related properties (i.e., "EXDATE" and "EXRULE")
5426 take precedence over those specified by inclusion properties
5427 (i.e., "RDATE" and "RRULE"). Where duplicate instances are
5428 generated by the "RRULE" and "RDATE" properties, only one
5429 recurrence is considered. Duplicate instances are ignored.
5431 The "DTSTART" and "DTEND" property pair or "DTSTART" and
5432 "DURATION" property pair, specified within the iCalendar object
5433 defines the first instance of the recurrence. When used with a
5434 recurrence rule, the "DTSTART" and "DTEND" properties MUST be
5435 specified in local time and the appropriate set of "VTIMEZONE"
5436 calendar components MUST be included. For detail on the usage of
5437 the "VTIMEZONE" calendar component, see the "VTIMEZONE" calendar
5438 component definition.
5440 Any duration associated with the iCalendar object applies to all
5441 members of the generated recurrence set. Any modified duration
5442 for specific recurrences MUST be explicitly specified using the
5443 "RDATE" property.
5445 Format Definition: The property is defined by the following notation:
5447 rrule = "RRULE" rrulparam ":" recur CRLF
5449 rrulparam = *(";" xparam)
5451 Example: All examples assume the Eastern United States time zone.
5453 Daily for 10 occurrences:
5455 DTSTART;TZID=US-Eastern:19970902T090000
5456 RRULE:FREQ=DAILY;COUNT=10
5458 ==> (1997 9:00 AM EDT)September 2-11
5460 Daily until December 24, 1997:
5462 DTSTART;TZID=US-Eastern:19970902T090000
5463 RRULE:FREQ=DAILY;UNTIL=19971224T000000Z
5465 ==> (1997 9:00 AM EDT)September 2-30;October 1-25
5466 (1997 9:00 AM EST)October 26-31;November 1-30;December 1-23
5468 Every other day - forever:
5470 DTSTART;TZID=US-Eastern:19970902T090000
5471 RRULE:FREQ=DAILY;INTERVAL=2
5473 ==> (1997 9:00 AM EDT)September2,4,6,8...24,26,28,30;
5474 October 2,4,6...20,22,24
5475 (1997 9:00 AM EST)October 26,28,30;November 1,3,5,7...25,27,29;
5476 Dec 1,3,...
5478 Every 10 days, 5 occurrences:
5480 DTSTART;TZID=US-Eastern:19970902T090000
5481 RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5
5483 ==> (1997 9:00 AM EDT)September 2,12,22;October 2,12
5485 Everyday in January, for 3 years:
5487 DTSTART;TZID=US-Eastern:19980101T090000
5488 RRULE:FREQ=YEARLY;UNTIL=20000131T090000Z;
5489 BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA
5490 or
5491 RRULE:FREQ=DAILY;UNTIL=20000131T090000Z;BYMONTH=1
5493 ==> (1998 9:00 AM EDT)January 1-31
5494 (1999 9:00 AM EDT)January 1-31
5495 (2000 9:00 AM EDT)January 1-31
5497 Weekly for 10 occurrences
5499 DTSTART;TZID=US-Eastern:19970902T090000
5500 RRULE:FREQ=WEEKLY;COUNT=10
5502 ==> (1997 9:00 AM EDT)September 2,9,16,23,30;October 7,14,21
5503 (1997 9:00 AM EST)October 28;November 4
5505 Weekly until December 24, 1997
5507 DTSTART;TZID=US-Eastern:19970902T090000
5508 RRULE:FREQ=WEEKLY;UNTIL=19971224T000000Z
5510 ==> (1997 9:00 AM EDT)September 2,9,16,23,30;October 7,14,21
5511 (1997 9:00 AM EST)October 28;November 4,11,18,25;
5512 December 2,9,16,23
5514 Every other week - forever:
5516 DTSTART;TZID=US-Eastern:19970902T090000
5517 RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=SU
5519 ==> (1997 9:00 AM EDT)September 2,16,30;October 14
5520 (1997 9:00 AM EST)October 28;November 11,25;December 9,23
5521 (1998 9:00 AM EST)January 6,20;February
5522 ...
5524 Weekly on Tuesday and Thursday for 5 weeks:
5526 DTSTART;TZID=US-Eastern:19970902T090000
5527 RRULE:FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH
5528 or
5530 RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH
5532 ==> (1997 9:00 AM EDT)September 2,4,9,11,16,18,23,25,30;October 2
5534 Every other week on Monday, Wednesday and Friday until December
5535 24, 1997, but starting on Tuesday, September 2, 1997:
5537 DTSTART;TZID=US-Eastern:19970902T090000
5538 RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;
5539 BYDAY=MO,WE,FR
5541 ==> (1997 9:00 AM EDT)September 2,3,5,15,17,19,29;October
5542 1,3,13,15,17
5543 (1997 9:00 AM EST)October 27,29,31;November 10,12,14,24,26,28;
5544 December 8,10,12,22
5546 Every other week on Tuesday and Thursday, for 8 occurrences:
5548 DTSTART;TZID=US-Eastern:19970902T090000
5549 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH
5551 ==> (1997 9:00 AM EDT)September 2,4,16,18,30;October 2,14,16
5553 Monthly on the 1st Friday for ten occurrences:
5555 DTSTART;TZID=US-Eastern:19970905T090000
5556 RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR
5558 ==> (1997 9:00 AM EDT)September 5;October 3
5559 (1997 9:00 AM EST)November 7;Dec 5
5560 (1998 9:00 AM EST)January 2;February 6;March 6;April 3
5561 (1998 9:00 AM EDT)May 1;June 5
5563 Monthly on the 1st Friday until December 24, 1997:
5565 DTSTART;TZID=US-Eastern:19970905T090000
5566 RRULE:FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR
5568 ==> (1997 9:00 AM EDT)September 5;October 3
5569 (1997 9:00 AM EST)November 7;December 5
5571 Every other month on the 1st and last Sunday of the month for 10
5572 occurrences:
5574 DTSTART;TZID=US-Eastern:19970907T090000
5575 RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU
5577 ==> (1997 9:00 AM EDT)September 7,28
5578 (1997 9:00 AM EST)November 2,30
5579 (1998 9:00 AM EST)January 4,25;March 1,29
5580 (1998 9:00 AM EDT)May 3,31
5582 Monthly on the second to last Monday of the month for 6 months:
5584 DTSTART;TZID=US-Eastern:19970922T090000
5585 RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO
5587 ==> (1997 9:00 AM EDT)September 22;October 20
5588 (1997 9:00 AM EST)November 17;December 22
5589 (1998 9:00 AM EST)January 19;February 16
5591 Monthly on the third to the last day of the month, forever:
5593 DTSTART;TZID=US-Eastern:19970928T090000
5594 RRULE:FREQ=MONTHLY;BYMONTHDAY=-3
5596 ==> (1997 9:00 AM EDT)September 28
5597 (1997 9:00 AM EST)October 29;November 28;December 29
5598 (1998 9:00 AM EST)January 29;February 26
5599 ...
5601 Monthly on the 2nd and 15th of the month for 10 occurrences:
5603 DTSTART;TZID=US-Eastern:19970902T090000
5604 RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15
5606 ==> (1997 9:00 AM EDT)September 2,15;October 2,15
5607 (1997 9:00 AM EST)November 2,15;December 2,15
5608 (1998 9:00 AM EST)January 2,15
5610 Monthly on the first and last day of the month for 10 occurrences:
5612 DTSTART;TZID=US-Eastern:19970930T090000
5613 RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1
5615 ==> (1997 9:00 AM EDT)September 30;October 1
5616 (1997 9:00 AM EST)October 31;November 1,30;December 1,31
5617 (1998 9:00 AM EST)January 1,31;February 1
5619 Every 18 months on the 10th thru 15th of the month for 10
5620 occurrences:
5622 DTSTART;TZID=US-Eastern:19970910T090000
5623 RRULE:FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,13,14,
5624 15
5626 ==> (1997 9:00 AM EDT)September 10,11,12,13,14,15
5627 (1999 9:00 AM EST)March 10,11,12,13
5629 Every Tuesday, every other month:
5631 DTSTART;TZID=US-Eastern:19970902T090000
5632 RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU
5634 ==> (1997 9:00 AM EDT)September 2,9,16,23,30
5635 (1997 9:00 AM EST)November 4,11,18,25
5636 (1998 9:00 AM EST)January 6,13,20,27;March 3,10,17,24,31
5637 ...
5639 Yearly in June and July for 10 occurrences:
5641 DTSTART;TZID=US-Eastern:19970610T090000
5642 RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7
5643 ==> (1997 9:00 AM EDT)June 10;July 10
5644 (1998 9:00 AM EDT)June 10;July 10
5645 (1999 9:00 AM EDT)June 10;July 10
5646 (2000 9:00 AM EDT)June 10;July 10
5647 (2001 9:00 AM EDT)June 10;July 10
5648 Note: Since none of the BYDAY, BYMONTHDAY or BYYEARDAY components
5649 are specified, the day is gotten from DTSTART
5651 Every other year on January, February, and March for 10
5652 occurrences:
5654 DTSTART;TZID=US-Eastern:19970310T090000
5655 RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3
5657 ==> (1997 9:00 AM EST)March 10
5658 (1999 9:00 AM EST)January 10;February 10;March 10
5659 (2001 9:00 AM EST)January 10;February 10;March 10
5660 (2003 9:00 AM EST)January 10;February 10;March 10
5662 Every 3rd year on the 1st, 100th and 200th day for 10 occurrences:
5664 DTSTART;TZID=US-Eastern:19970101T090000
5665 RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200
5667 ==> (1997 9:00 AM EST)January 1
5668 (1997 9:00 AM EDT)April 10;July 19
5669 (2000 9:00 AM EST)January 1
5670 (2000 9:00 AM EDT)April 9;July 18
5671 (2003 9:00 AM EST)January 1
5672 (2003 9:00 AM EDT)April 10;July 19
5673 (2006 9:00 AM EST)January 1
5675 Every 20th Monday of the year, forever:
5677 DTSTART;TZID=US-Eastern:19970519T090000
5678 RRULE:FREQ=YEARLY;BYDAY=20MO
5680 ==> (1997 9:00 AM EDT)May 19
5681 (1998 9:00 AM EDT)May 18
5682 (1999 9:00 AM EDT)May 17
5683 ...
5685 Monday of week number 20 (where the default start of the week is
5686 Monday), forever:
5688 DTSTART;TZID=US-Eastern:19970512T090000
5689 RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO
5691 ==> (1997 9:00 AM EDT)May 12
5692 (1998 9:00 AM EDT)May 11
5693 (1999 9:00 AM EDT)May 17
5694 ...
5696 Every Thursday in March, forever:
5698 DTSTART;TZID=US-Eastern:19970313T090000
5699 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH
5701 ==> (1997 9:00 AM EST)March 13,20,27
5702 (1998 9:00 AM EST)March 5,12,19,26
5703 (1999 9:00 AM EST)March 4,11,18,25
5704 ...
5706 Every Thursday, but only during June, July, and August, forever:
5708 DTSTART;TZID=US-Eastern:19970605T090000
5709 RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8
5711 ==> (1997 9:00 AM EDT)June 5,12,19,26;July 3,10,17,24,31;
5712 August 7,14,21,28
5713 (1998 9:00 AM EDT)June 4,11,18,25;July 2,9,16,23,30;
5714 August 6,13,20,27
5715 (1999 9:00 AM EDT)June 3,10,17,24;July 1,8,15,22,29;
5716 August 5,12,19,26
5717 ...
5719 Every Friday the 13th, forever:
5721 DTSTART;TZID=US-Eastern:19970902T090000
5722 EXDATE;TZID=US-Eastern:19970902T090000
5723 RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13
5725 ==> (1998 9:00 AM EST)February 13;March 13;November 13
5726 (1999 9:00 AM EDT)August 13
5727 (2000 9:00 AM EDT)October 13
5728 ...
5730 The first Saturday that follows the first Sunday of the month,
5731 forever:
5733 DTSTART;TZID=US-Eastern:19970913T090000
5734 RRULE:FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13
5736 ==> (1997 9:00 AM EDT)September 13;October 11
5737 (1997 9:00 AM EST)November 8;December 13
5738 (1998 9:00 AM EST)January 10;February 7;March 7
5739 (1998 9:00 AM EDT)April 11;May 9;June 13...
5740 ...
5742 Every four years, the first Tuesday after a Monday in November,
5743 forever (U.S. Presidential Election day):
5745 DTSTART;TZID=US-Eastern:19961105T090000
5746 RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,
5747 5,6,7,8
5749 ==> (1996 9:00 AM EST)November 5
5750 (2000 9:00 AM EST)November 7
5751 (2004 9:00 AM EST)November 2
5752 ...
5754 The 3rd instance into the month of one of Tuesday, Wednesday or
5755 Thursday, for the next 3 months:
5757 DTSTART;TZID=US-Eastern:19970904T090000
5758 RRULE:FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3
5760 ==> (1997 9:00 AM EDT)September 4;October 7
5761 (1997 9:00 AM EST)November 6
5763 The 2nd to last weekday of the month:
5765 DTSTART;TZID=US-Eastern:19970929T090000
5766 RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2
5768 ==> (1997 9:00 AM EDT)September 29
5769 (1997 9:00 AM EST)October 30;November 27;December 30
5770 (1998 9:00 AM EST)January 29;February 26;March 30
5771 ...
5773 Every 3 hours from 9:00 AM to 5:00 PM on a specific day:
5775 DTSTART;TZID=US-Eastern:19970902T090000
5776 RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z
5777 ==> (September 2, 1997 EDT)09:00,12:00,15:00
5779 Every 15 minutes for 6 occurrences:
5781 DTSTART;TZID=US-Eastern:19970902T090000
5782 RRULE:FREQ=MINUTELY;INTERVAL=15;COUNT=6
5784 ==> (September 2, 1997 EDT)09:00,09:15,09:30,09:45,10:00,10:15
5786 Every hour and a half for 4 occurrences:
5788 DTSTART;TZID=US-Eastern:19970902T090000
5789 RRULE:FREQ=MINUTELY;INTERVAL=90;COUNT=4
5791 ==> (September 2, 1997 EDT)09:00,10:30;12:00;13:30
5793 Every 20 minutes from 9:00 AM to 4:40 PM every day:
5795 DTSTART;TZID=US-Eastern:19970902T090000
5796 RRULE:FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40
5797 or
5798 RRULE:FREQ=MINUTELY;INTERVAL=20;BYHOUR=9,10,11,12,13,14,15,16
5800 ==> (September 2, 1997 EDT)9:00,9:20,9:40,10:00,10:20,
5801 ... 16:00,16:20,16:40
5802 (September 3, 1997 EDT)9:00,9:20,9:40,10:00,10:20,
5803 ...16:00,16:20,16:40
5804 ...
5806 An example where the days generated makes a difference because of
5807 WKST:
5809 DTSTART;TZID=US-Eastern:19970805T090000
5810 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO
5812 ==> (1997 EDT)Aug 5,10,19,24
5814 changing only WKST from MO to SU, yields different results...
5816 DTSTART;TZID=US-Eastern:19970805T090000
5817 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU
5818 ==> (1997 EDT)August 5,17,19,31
5820 3.8.6. Alarm Component Properties
5822 The following properties specify alarm information in calendar
5823 components.
5825 3.8.6.1. Action
5827 Property Name: ACTION
5829 Purpose: This property defines the action to be invoked when an alarm
5830 is triggered.
5832 Value Type: TEXT
5834 Property Parameters: Non-standard property parameters can be
5835 specified on this property.
5837 Conformance: This property MUST be specified once in a "VALARM"
5838 calendar component.
5840 Description: Each "VALARM" calendar component has a particular type
5841 of action associated with it. This property specifies the type of
5842 action
5844 Format Definition: The property is defined by the following notation:
5846 action = "ACTION" actionparam ":" actionvalue CRLF
5848 actionparam = *(";" xparam)
5850 actionvalue = "AUDIO" / "DISPLAY" / "EMAIL" / "PROCEDURE"
5851 / iana-token / x-name
5853 Example: The following are examples of this property in a "VALARM"
5854 calendar component:
5856 ACTION:AUDIO
5858 ACTION:DISPLAY
5860 ACTION:PROCEDURE
5862 3.8.6.2. Repeat Count
5864 Property Name: REPEAT
5866 Purpose: This property defines the number of time the alarm should be
5867 repeated, after the initial trigger.
5869 Value Type: INTEGER
5870 Property Parameters: Non-standard property parameters can be
5871 specified on this property.
5873 Conformance: This property can be specified in a "VALARM" calendar
5874 component.
5876 Description: If the alarm triggers more than once, then this property
5877 MUST be specified along with the "DURATION" property.
5879 Format Definition: The property is defined by the following notation:
5881 repeatcnt = "REPEAT" repparam ":" integer CRLF
5882 ;Default is "0", zero.
5884 repparam = *(";" xparam)
5886 Example: The following is an example of this property for an alarm
5887 that repeats 4 additional times with a 5 minute delay after the
5888 initial triggering of the alarm:
5890 REPEAT:4
5891 DURATION:PT5M
5893 3.8.6.3. Trigger
5895 Property Name: TRIGGER
5897 Purpose: This property specifies when an alarm will trigger.
5899 Value Type: The default value type is DURATION. The value type can
5900 be set to a DATE-TIME value type, in which case the value MUST
5901 specify a UTC formatted DATE-TIME value.
5903 Property Parameters: Non-standard, value data type, time zone
5904 identifier or trigger relationship property parameters can be
5905 specified on this property. The trigger relationship property
5906 parameter MUST only be specified when the value type is DURATION.
5908 Conformance: This property MUST be specified in the "VALARM" calendar
5909 component.
5911 Description: Within the "VALARM" calendar component, this property
5912 defines when the alarm will trigger. The default value type is
5913 DURATION, specifying a relative time for the trigger of the alarm.
5914 The default duration is relative to the start of an event or to-do
5915 that the alarm is associated with. The duration can be explicitly
5916 set to trigger from either the end or the start of the associated
5917 event or to-do with the "RELATED" parameter. A value of START
5918 will set the alarm to trigger off the start of the associated
5919 event or to-do. A value of END will set the alarm to trigger off
5920 the end of the associated event or to-do.
5922 Either a positive or negative duration may be specified for the
5923 "TRIGGER" property. An alarm with a positive duration is
5924 triggered after the associated start or end of the event or to-do.
5925 An alarm with a negative duration is triggered before the
5926 associated start or end of the event or to-do.
5928 The "RELATED" property parameter is not valid if the value type of
5929 the property is set to DATE-TIME (i.e., for an absolute date and
5930 time alarm trigger). If a value type of DATE-TIME is specified,
5931 then the property value MUST be specified in the UTC time format.
5932 If an absolute trigger is specified on an alarm for a recurring
5933 event or to-do, then the alarm will only trigger for the specified
5934 absolute date/time, along with any specified repeating instances.
5936 If the trigger is set relative to START, then the "DTSTART"
5937 property MUST be present in the associated "VEVENT" or "VTODO"
5938 calendar component. If an alarm is specified for an event with
5939 the trigger set relative to the END, then the "DTEND" property or
5940 the "DSTART" and "DURATION' properties MUST be present in the
5941 associated "VEVENT" calendar component. If the alarm is specified
5942 for a to-do with a trigger set relative to the END, then either
5943 the "DUE" property or the "DTSTART" and "DURATION" properties MUST
5944 be present in the associated "VTODO" calendar component.
5946 Alarms specified in an event or to-do which is defined in terms of
5947 a DATE value type will be triggered relative to 00:00:00 UTC on
5948 the specified date. For example, if "DTSTART:19980205, then the
5949 duration trigger will be relative to19980205T000000Z.
5951 Format Definition: The property is defined by the following notation:
5953 trigger = "TRIGGER" (trigrel / trigabs)
5955 trigrel = *(
5957 ; the following are optional,
5958 ; but MUST NOT occur more than once
5960 (";" "VALUE" "=" "DURATION") /
5961 (";" trigrelparam) /
5963 ; the following is optional,
5964 ; and MAY occur more than once
5966 (";" xparam)
5967 ) ":" dur-value
5969 trigabs = 1*(
5971 ; the following is REQUIRED,
5972 ; but MUST NOT occur more than once
5974 (";" "VALUE" "=" "DATE-TIME") /
5976 ; the following is optional,
5977 ; and MAY occur more than once
5979 (";" xparam)
5981 ) ":" date-time
5983 Example: A trigger set 15 minutes prior to the start of the event or
5984 to-do.
5986 TRIGGER:-P15M
5988 A trigger set 5 minutes after the end of the event or to-do.
5990 TRIGGER;RELATED=END:P5M
5992 A trigger set to an absolute date/time.
5994 TRIGGER;VALUE=DATE-TIME:19980101T050000Z
5996 3.8.7. Change Management Component Properties
5998 The following properties specify change management information in
5999 calendar components.
6001 3.8.7.1. Date/Time Created
6003 Property Name: CREATED
6005 Purpose: This property specifies the date and time that the calendar
6006 information was created by the calendar user agent in the calendar
6007 store.
6009 Note: This is analogous to the creation date and time for a
6010 file in the file system.
6012 Value Type: DATE-TIME
6014 Property Parameters: Non-standard property parameters can be
6015 specified on this property.
6017 Conformance: The property can be specified once in "VEVENT", "VTODO"
6018 or "VJOURNAL" calendar components.
6020 Description: The date and time is a UTC value.
6022 Format Definition: The property is defined by the following notation:
6024 created = "CREATED" creaparam ":" date-time CRLF
6026 creaparam = *(";" xparam)
6028 Example: The following is an example of this property:
6030 CREATED:19960329T133000Z
6032 3.8.7.2. Date/Time Stamp
6034 Property Name: DTSTAMP
6036 Purpose: The property indicates the date/time that the instance of
6037 the iCalendar object was created.
6039 Value Type: DATE-TIME
6041 Property Parameters: Non-standard property parameters can be
6042 specified on this property.
6044 Conformance: This property MUST be included in the "VEVENT", "VTODO",
6045 "VJOURNAL" or "VFREEBUSY" calendar components.
6047 Description: The value MUST be specified in the UTC time format.
6049 This property is also useful to protocols such as [I-D.ietf-
6050 calsify-rfc2447bis] that have inherent latency issues with the
6051 delivery of content. This property will assist in the proper
6052 sequencing of messages containing iCalendar objects.
6054 This property is different than the "CREATED" and "LAST-MODIFIED"
6055 properties. These two properties are used to specify when the
6056 particular calendar data in the calendar store was created and
6057 last modified. This is different than when the iCalendar object
6058 representation of the calendar service information was created or
6059 last modified.
6061 Format Definition: The property is defined by the following notation:
6063 dtstamp = "DTSTAMP" stmparam ":" date-time CRLF
6065 stmparam = *(";" xparam)
6067 Example:
6069 DTSTAMP:19971210T080000Z
6071 3.8.7.3. Last Modified
6073 Property Name: LAST-MODIFIED
6075 Purpose: The property specifies the date and time that the
6076 information associated with the calendar component was last
6077 revised in the calendar store.
6079 Note: This is analogous to the modification date and time for a
6080 file in the file system.
6082 Value Type: DATE-TIME
6084 Property Parameters: Non-standard property parameters can be
6085 specified on this property.
6087 Conformance: This property can be specified in the "EVENT", "VTODO",
6088 "VJOURNAL" or "VTIMEZONE" calendar components.
6090 Description: The property value MUST be specified in the UTC time
6091 format.
6093 Format Definition: The property is defined by the following notation:
6095 last-mod = "LAST-MODIFIED" lstparam ":" date-time CRLF
6097 lstparam = *(";" xparam)
6099 Example: The following is are examples of this property:
6101 LAST-MODIFIED:19960817T133000Z
6103 3.8.7.4. Sequence Number
6105 Property Name: SEQUENCE
6107 Purpose: This property defines the revision sequence number of the
6108 calendar component within a sequence of revisions.
6110 Value Type: integer
6112 Property Parameters: Non-standard property parameters can be
6113 specified on this property.
6115 Conformance: The property can be specified in "VEVENT", "VTODO" or
6116 "VJOURNAL" calendar component.
6118 Description: When a calendar component is created, its sequence
6119 number is zero (US-ASCII decimal 48). It is monotonically
6120 incremented by the "Organizer's" CUA each time the "Organizer"
6121 makes a significant revision to the calendar component. When the
6122 "Organizer" makes changes to one of the following properties, the
6123 sequence number MUST be incremented:
6125 "DTSTART"
6127 "DTEND"
6129 "DUE"
6131 "RDATE"
6133 "RRULE"
6135 "EXDATE"
6137 "EXRULE"
6138 "STATUS"
6140 In addition, changes made by the "Organizer" to other properties
6141 can also force the sequence number to be incremented. The
6142 "Organizer" CUA MUST increment the sequence number when ever it
6143 makes changes to properties in the calendar component that the
6144 "Organizer" deems will jeopardize the validity of the
6145 participation status of the "Attendees". For example, changing
6146 the location of a meeting from one locale to another distant
6147 locale could effectively impact the participation status of the
6148 "Attendees".
6150 The "Organizer" includes this property in an iCalendar object that
6151 it sends to an "Attendee" to specify the current version of the
6152 calendar component.
6154 The "Attendee" includes this property in an iCalendar object that
6155 it sends to the "Organizer" to specify the version of the calendar
6156 component that the "Attendee" is referring to.
6158 A change to the sequence number is not the mechanism that an
6159 "Organizer" uses to request a response from the "Attendees". The
6160 "RSVP" parameter on the "ATTENDEE" property is used by the
6161 "Organizer" to indicate that a response from the "Attendees" is
6162 requested.
6164 Format Definition: The property is defined by the following notation:
6166 seq = "SEQUENCE" seqparam ":" integer CRLF
6167 ; Default is "0"
6169 seqparam = *(";" xparam)
6171 Example: The following is an example of this property for a calendar
6172 component that was just created by the "Organizer".
6174 SEQUENCE:0
6176 The following is an example of this property for a calendar
6177 component that has been revised two different times by the
6178 "Organizer".
6180 SEQUENCE:2
6182 3.8.8. Miscellaneous Component Properties
6184 The following properties specify information about a number of
6185 miscellaneous features of calendar components.
6187 3.8.8.1. Non-standard Properties
6189 Property Name: Any property name with a "X-" prefix
6191 Purpose: This class of property provides a framework for defining
6192 non-standard properties.
6194 Value Type: TEXT
6196 Property Parameters: Non-standard and language property parameters
6197 can be specified on this property.
6199 Conformance: This property can be specified in any calendar
6200 component.
6202 Description: The MIME Calendaring and Scheduling Content Type
6203 provides a "standard mechanism for doing non-standard things".
6204 This extension support is provided for implementers to "push the
6205 envelope" on the existing version of the memo. Extension
6206 properties are specified by property and/or property parameter
6207 names that have the prefix text of "X-" (the two character
6208 sequence: LATIN CAPITAL LETTER X character followed by the HYPEN-
6209 MINUS character). It is recommended that vendors concatenate onto
6210 this sentinel another short prefix text to identify the vendor.
6211 This will facilitate readability of the extensions and minimize
6212 possible collision of names between different vendors. User
6213 agents that support this content type are expected to be able to
6214 parse the extension properties and property parameters but can
6215 ignore them.
6217 At present, there is no registration authority for names of
6218 extension properties and property parameters. The data type for
6219 this property is TEXT. Optionally, the data type can be any of
6220 the other valid data types.
6222 Format Definition: The property is defined by the following notation:
6224 x-prop = x-name *(";" xparam) [";" languageparam] ":" text CRLF
6225 ; Lines longer than 75 octets should be folded
6227 Example: The following might be the ABC vendor's extension for an
6228 audio-clip form of subject property:
6230 X-ABC-MMSUBJ;X-ABC-MMSUBJTYPE=wave:http://load.noise.org/mysubj.wav
6232 3.8.8.2. Request Status
6234 Property Name: REQUEST-STATUS
6236 Purpose: This property defines the status code returned for a
6237 scheduling request.
6239 Value Type: TEXT
6241 Property Parameters: Non-standard and language property parameters
6242 can be specified on this property.
6244 Conformance: The property can be specified in "VEVENT", "VTODO",
6245 "VJOURNAL" or "VFREEBUSY" calendar component.
6247 Description: This property is used to return status code information
6248 related to the processing of an associated iCalendar object. The
6249 data type for this property is TEXT.
6251 The value consists of a short return status component, a longer
6252 return status description component, and optionally a status-
6253 specific data component. The components of the value are
6254 separated by the SEMICOLON character (US-ASCII decimal 59).
6256 The short return status is a PERIOD character (US-ASCII decimal
6257 46) separated 3-tuple of integers. For example, "3.1.1". The
6258 successive levels of integers provide for a successive level of
6259 status code granularity.
6261 The following are initial classes for the return status code.
6262 Individual iCalendar object methods will define specific return
6263 status codes for these classes. In addition, other classes for
6264 the return status code may be defined using the registration
6265 process defined later in this memo.
6267 |==============+===============================================|
6268 | Short Return | Longer Return Status Description |
6269 | Status Code | |
6270 |==============+===============================================|
6271 | 1.xx | Preliminary success. This class of status |
6272 | | of status code indicates that the request has |
6273 | | request has been initially processed but that |
6274 | | completion is pending. |
6275 |==============+===============================================|
6276 | 2.xx | Successful. This class of status code |
6277 | | indicates that the request was completed |
6278 | | successfuly. However, the exact status code |
6279 | | can indicate that a fallback has been taken. |
6280 |==============+===============================================|
6281 | 3.xx | Client Error. This class of status code |
6282 | | indicates that the request was not successful.|
6283 | | The error is the result of either a syntax or |
6284 | | a semantic error in the client formatted |
6285 | | request. Request should not be retried until |
6286 | | the condition in the request is corrected. |
6287 |==============+===============================================|
6288 | 4.xx | Scheduling Error. This class of status code |
6289 | | indicates that the request was not successful.|
6290 | | Some sort of error occurred within the |
6291 | | calendaring and scheduling service, not |
6292 | | directly related to the request itself. |
6293 |==============+===============================================|
6295 Format Definition: The property is defined by the following notation:
6297 rstatus = "REQUEST-STATUS" rstatparam ":"
6298 statcode ";" statdesc [";" extdata]
6300 rstatparam = *(
6302 ; the following is optional,
6303 ; but MUST NOT occur more than once
6305 (";" languageparm) /
6307 ; the following is optional,
6308 ; and MAY occur more than once
6310 (";" xparam)
6312 )
6314 statcode = 1*DIGIT *("." 1*DIGIT)
6315 ;Hierarchical, numeric return status code
6317 statdesc = text
6318 ;Textual status description
6320 extdata = text
6321 ;Textual exception data. For example, the offending property
6322 ;name and value or complete property line.
6324 Example: The following are some possible examples of this property.
6326 The COMMA and SEMICOLON separator characters in the property value
6327 are BACKSLASH character escaped because they appear in a text
6328 value.
6330 REQUEST-STATUS:2.0;Success
6332 REQUEST-STATUS:3.1;Invalid property value;DTSTART:96-Apr-01
6334 REQUEST-STATUS:2.8; Success\, repeating event ignored. Scheduled
6335 as a single event.;RRULE:FREQ=WEEKLY\;INTERVAL=2
6337 REQUEST-STATUS:4.1;Event conflict. Date/time is busy.
6339 REQUEST-STATUS:3.7;Invalid calendar user;ATTENDEE:
6340 MAILTO:jsmith@host.com
6342 4. iCalendar Object Examples
6344 The following examples are provided as an informational source of
6345 illustrative iCalendar objects consistent with this content type.
6347 The following example specifies a three-day conference that begins at
6348 8:00 AM EDT, September 18, 1996 and end at 6:00 PM EDT, September 20,
6349 1996.
6351 BEGIN:VCALENDAR
6352 PRODID:-//xyz Corp//NONSGML PDA Calendar Version 1.0//EN
6353 VERSION:2.0
6354 BEGIN:VEVENT
6355 DTSTAMP:19960704T120000Z
6356 UID:uid1@host.com
6357 ORGANIZER:MAILTO:jsmith@host.com
6358 DTSTART:19960918T143000Z
6359 DTEND:19960920T220000Z
6360 STATUS:CONFIRMED
6361 CATEGORIES:CONFERENCE
6362 SUMMARY:Networld+Interop Conference
6363 DESCRIPTION:Networld+Interop Conference
6364 and Exhibit\nAtlanta World Congress Center\n
6365 Atlanta, Georgia
6366 END:VEVENT
6367 END:VCALENDAR
6369 The following example specifies a group scheduled meeting that begin
6370 at 8:30 AM EST on March 12, 1998 and end at 9:30 AM EST on March 12,
6371 1998. The "Organizer" has scheduled the meeting with one or more
6372 calendar users in a group. A time zone specification for Eastern
6373 United States has been specified.
6375 BEGIN:VCALENDAR
6376 PRODID:-//RDU Software//NONSGML HandCal//EN
6377 VERSION:2.0
6378 BEGIN:VTIMEZONE
6379 TZID:US-Eastern
6380 BEGIN:STANDARD
6381 DTSTART:19981025T020000
6382 RDATE:19981025T020000
6383 TZOFFSETFROM:-0400
6384 TZOFFSETTO:-0500
6385 TZNAME:EST
6386 END:STANDARD
6387 BEGIN:DAYLIGHT
6388 DTSTART:19990404T020000
6389 RDATE:19990404T020000
6390 TZOFFSETFROM:-0500
6391 TZOFFSETTO:-0400
6392 TZNAME:EDT
6393 END:DAYLIGHT
6394 END:VTIMEZONE
6395 BEGIN:VEVENT
6396 DTSTAMP:19980309T231000Z
6397 UID:guid-1.host1.com
6398 ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@host.com
6399 ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP:
6400 MAILTO:employee-A@host.com
6401 DESCRIPTION:Project XYZ Review Meeting
6402 CATEGORIES:MEETING
6403 CLASS:PUBLIC
6404 CREATED:19980309T130000Z
6405 SUMMARY:XYZ Project Review
6406 DTSTART;TZID=US-Eastern:19980312T083000
6407 DTEND;TZID=US-Eastern:19980312T093000
6408 LOCATION:1CP Conference Room 4350
6409 END:VEVENT
6410 END:VCALENDAR
6412 The following is an example of an iCalendar object passed in a MIME
6413 message with a single body part consisting of a "text/calendar"
6414 Content Type.
6416 TO:jsmith@host1.com
6417 FROM:jdoe@host1.com
6418 MIME-VERSION:1.0
6419 MESSAGE-ID:
6420 CONTENT-TYPE:text/calendar
6422 BEGIN:VCALENDAR
6423 METHOD:xyz
6424 VERSION:2.0
6425 PRODID:-//ABC Corporation//NONSGML My Product//EN
6426 BEGIN:VEVENT
6427 DTSTAMP:19970324T120000Z
6428 SEQUENCE:0
6429 UID:uid3@host1.com
6430 ORGANIZER:MAILTO:jdoe@host1.com
6431 ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host1.com
6432 DTSTART:19970324T123000Z
6433 DTEND:19970324T210000Z
6434 CATEGORIES:MEETING,PROJECT
6435 CLASS:PUBLIC
6436 SUMMARY:Calendaring Interoperability Planning Meeting
6437 DESCRIPTION:Discuss how we can test c&s interoperability\n
6438 using iCalendar and other IETF standards.
6439 LOCATION:LDB Lobby
6440 ATTACH;FMTTYPE=application/postscript:ftp://xyzCorp.com/pub/
6441 conf/bkgrnd.ps
6442 END:VEVENT
6443 END:VCALENDAR
6445 The following is an example of a to-do due on April 15, 1998. An
6446 audio alarm has been specified to remind the calendar user at noon,
6447 the day before the to-do is expected to be completed and repeat
6448 hourly, four additional times. The to-do definition has been
6449 modified twice since it was initially created.
6451 BEGIN:VCALENDAR
6452 VERSION:2.0
6453 PRODID:-//ABC Corporation//NONSGML My Product//EN
6454 BEGIN:VTODO
6455 DTSTAMP:19980130T134500Z
6456 SEQUENCE:2
6457 UID:uid4@host1.com
6458 ORGANIZER:MAILTO:unclesam@us.gov
6459 ATTENDEE;PARTSTAT=ACCEPTED:MAILTO:jqpublic@host.com
6460 DUE:19980415T235959
6461 STATUS:NEEDS-ACTION
6462 SUMMARY:Submit Income Taxes
6463 BEGIN:VALARM
6464 ACTION:AUDIO
6465 TRIGGER:19980403T120000
6466 ATTACH;FMTTYPE=audio/basic:http://host.com/pub/audio-
6467 files/ssbanner.aud
6468 REPEAT:4
6469 DURATION:PT1H
6470 END:VALARM
6471 END:VTODO
6472 END:VCALENDAR
6474 The following is an example of a journal entry.
6476 BEGIN:VCALENDAR
6477 VERSION:2.0
6478 PRODID:-//ABC Corporation//NONSGML My Product//EN
6479 BEGIN:VJOURNAL
6480 DTSTAMP:19970324T120000Z
6481 UID:uid5@host1.com
6482 ORGANIZER:MAILTO:jsmith@host.com
6483 STATUS:DRAFT
6484 CLASS:PUBLIC
6485 CATEGORY:Project Report, XYZ, Weekly Meeting
6486 DESCRIPTION:Project xyz Review Meeting Minutes\n
6487 Agenda\n1. Review of project version 1.0 requirements.\n2.
6488 Definition
6489 of project processes.\n3. Review of project schedule.\n
6490 Participants: John Smith, Jane Doe, Jim Dandy\n-It was
6491 decided that the requirements need to be signed off by
6492 product marketing.\n-Project processes were accepted.\n
6493 -Project schedule needs to account for scheduled holidays
6494 and employee vacation time. Check with HR for specific
6495 dates.\n-New schedule will be distributed by Friday.\n-
6496 Next weeks meeting is cancelled. No meeting until 3/23.
6497 END:VJOURNAL
6498 END:VCALENDAR
6500 The following is an example of published busy time information. The
6501 iCalendar object might be placed in the network resource
6502 www.host.com/calendar/busytime/jsmith.ifb.
6504 BEGIN:VCALENDAR
6505 VERSION:2.0
6506 PRODID:-//RDU Software//NONSGML HandCal//EN
6507 BEGIN:VFREEBUSY
6508 ORGANIZER:MAILTO:jsmith@host.com
6509 DTSTART:19980313T141711Z
6510 DTEND:19980410T141711Z
6511 FREEBUSY:19980314T233000Z/19980315T003000Z
6512 FREEBUSY:19980316T153000Z/19980316T163000Z
6513 FREEBUSY:19980318T030000Z/19980318T040000Z
6514 URL:http://www.host.com/calendar/busytime/jsmith.ifb
6515 END:VFREEBUSY
6516 END:VCALENDAR
6518 5. Recommended Practices
6520 These recommended practices should be followed in order to assure
6521 consistent handling of the following cases for an iCalendar object.
6523 1. Content lines longer than 75 octets SHOULD be folded.
6525 2. A calendar entry with a "DTSTART" property but no "DTEND"
6526 property does not take up any time. It is intended to represent
6527 an event that is associated with a given calendar date and time
6528 of day, such as an anniversary. Since the event does not take
6529 up any time, it MUST NOT be used to record busy time no matter
6530 what the value for the "TRANSP" property.
6532 3. When the "DTSTART" and "DTEND", for "VEVENT", "VJOURNAL" and
6533 "VFREEBUSY" calendar components, and "DTSTART" and "DUE", for
6534 "VTODO" calendar components, have the same value data type
6535 (e.g., DATE-TIME), they SHOULD specify values in the same time
6536 format (e.g., UTC time format).
6538 4. When the combination of the "RRULE" and "RDATE" properties on an
6539 iCalendar object produces multiple instances having the same
6540 start date/time, they should be collapsed to, and considered as,
6541 a single instance.
6543 5. When a calendar user receives multiple requests for the same
6544 calendar component (e.g., REQUEST for a "VEVENT" calendar
6545 component) as a result of being on multiple mailing lists
6546 specified by "ATTENDEE" properties in the request, they SHOULD
6547 respond to only one of the requests. The calendar user SHOULD
6548 also specify (using the "MEMBER" parameter of the "ATTENDEE"
6549 property) which mailing list they are a member of.
6551 6. An implementation can truncate a "SUMMARY" property value to 255
6552 characters.
6554 7. If seconds of the minute are not supported by an implementation,
6555 then a value of "00" SHOULD be specified for the seconds
6556 component in a time value.
6558 8. If the value type parameter (VALUE=) contains an unknown value
6559 type, it SHOULD be treated as TEXT.
6561 9. TZURL values SHOULD NOT be specified as a FILE URI type. This
6562 URI form can be useful within an organization, but is
6563 problematic in the Internet.
6565 10. Some possible English values for CATEGORIES property include
6566 "ANNIVERSARY", "APPOINTMENT", "BUSINESS", "EDUCATION",
6567 "HOLIDAY", "MEETING", "MISCELLANEOUS", "NON-WORKING HOURS", "NOT
6568 IN OFFICE", "PERSONAL", "PHONE CALL", "SICK DAY", "SPECIAL
6569 OCCASION", "TRAVEL", "VACATION". Categories can be specified in
6570 any registered language.
6572 11. Some possible English values for RESOURCES property include
6573 "CATERING", "CHAIRS", "COMPUTER PROJECTOR", "EASEL", "OVERHEAD
6574 PROJECTOR", "SPEAKER PHONE", "TABLE", "TV", "VCR", "VIDEO
6575 PHONE", "VEHICLE". Resources can be specified in any registered
6576 language.
6578 6. Registration of Content Type Elements
6580 This section provides the process for registration of MIME
6581 Calendaring and Scheduling Content Type iCalendar object methods and
6582 new or modified properties.
6584 6.1. Registration of New and Modified iCalendar Object Methods
6586 New MIME Calendaring and Scheduling Content Type iCalendar object
6587 methods are registered by the publication of an IETF Request for
6588 Comments (RFC). Changes to an iCalendar object method are registered
6589 by the publication of a revision of the RFC defining the method.
6591 6.2. Registration of New Properties
6593 This section defines procedures by which new properties or enumerated
6594 property values for the MIME Calendaring and Scheduling Content Type
6595 can be registered with the IANA. Non-IANA properties can be used by
6596 bilateral agreement, provided the associated properties names follow
6597 the "X-" convention.
6599 The procedures defined here are designed to allow public comment and
6600 review of new properties, while posing only a small impediment to the
6601 definition of new properties.
6603 Registration of a new property is accomplished by the following
6604 steps.
6606 6.2.1. Define the property
6608 A property is defined by completing the following template.
6610 To: ietf-calendar@imc.org
6612 Subject: Registration of text/calendar MIME property XXX
6614 Property name:
6616 Property purpose:
6618 Property value type(s):
6620 Property parameter (s):
6622 Conformance:
6624 Description:
6626 Format definition:
6628 Examples:
6630 The meaning of each field in the template is as follows.
6632 Property name: The name of the property, as it will appear in the
6633 body of an text/calendar MIME Content-Type "property: value" line
6634 to the left of the colon ":".
6636 Property purpose: The purpose of the property (e.g., to indicate a
6637 delegate for the event or to-do, etc.). Give a short but clear
6638 description.
6640 Property value type (s): Any of the valid value types for the
6641 property value needs to be specified. The default value type also
6642 needs to be specified. If a new value type is specified, it needs
6643 to be declared in this section.
6645 Property parameter (s): Any of the valid property parameters for the
6646 property needs to be specified.
6648 Conformance: The calendar components that the property can appear in
6649 needs to be specified.
6651 Description: Any special notes about the property, how it is to be
6652 used, etc.
6654 Format definition: The ABNF for the property definition needs to be
6655 specified.
6657 Examples: One or more examples of instances of the property needs to
6658 be specified.
6660 6.2.2. Post the Property definition
6662 The property description MUST be posted to the new property
6663 discussion list, ietf-calendar@imc.org.
6665 6.2.3. Allow a comment period
6667 Discussion on the new property MUST be allowed to take place on the
6668 list for a minimum of two weeks. Consensus MUST be reached on the
6669 property before proceeding to the next step.
6671 6.2.4. Submit the property for approval
6673 Once the two-week comment period has elapsed, and the proposer is
6674 convinced consensus has been reached on the property, the
6675 registration application should be submitted to the Method Reviewer
6676 for approval. The Method Reviewer is appointed to the Application
6677 Area Directors and can either accept or reject the property
6678 registration. An accepted registration should be passed on by the
6679 Method Reviewer to the IANA for inclusion in the official IANA method
6680 registry. The registration can be rejected for any of the following
6681 reasons. 1) Insufficient comment period; 2) Consensus not reached; 3)
6682 Technical deficiencies raised on the list or elsewhere have not been
6683 addressed. The Method Reviewer's decision to reject a property can
6684 be appealed by the proposer to the IESG, or the objections raised can
6685 be addressed by the proposer and the property resubmitted.
6687 6.3. Property Change Control
6689 Existing properties can be changed using the same process by which
6690 they were registered.
6692 1. Define the change
6694 2. Post the change
6696 3. Allow a comment period
6698 4. Submit the property for approval
6700 Note that the original author or any other interested party can
6701 propose a change to an existing property, but that such changes
6702 should only be proposed when there are serious omissions or errors in
6703 the published memo. The Method Reviewer can object to a change if it
6704 is not backward compatible, but is not required to do so.
6706 Property definitions can never be deleted from the IANA registry, but
6707 properties which are no longer believed to be useful can be declared
6708 OBSOLETE by a change to their "intended use" field.
6710 7. Internationalization Considerations
6712 8. Security Considerations
6714 SPOOFING: In this memo, the "Organizer" is the only person authorized
6715 to make changes to an existing "VEVENT", "VTODO", "VJOURNAL"
6716 calendar component and redistribute the updates to the
6717 "Attendees". An iCalendar object that maliciously changes or
6718 cancels an existing "VEVENT", "VTODO" or "VJOURNAL" or "VFREEBUSY"
6719 calendar component might be constructed by someone other than the
6720 "Organizer" and sent to the "Attendees". In addition in this
6721 memo, other than the "Organizer", an "Attendee" of a "VEVENT",
6722 "VTODO", "VJOURNAL" calendar component is the only other person
6723 authorized to update any parameter associated with their
6724 "ATTENDEE" property and send it to the "Organizer". An iCalendar
6725 object that maliciously changes the "ATTENDEE" parameters can be
6726 constructed by someone other than the real "Attendee" and sent to
6727 the "Organizer".
6729 PROCEDURAL ALARMS: An iCalendar object can be created that contains a
6730 "VEVENT" and "VTODO" calendar component with "VALARM" calendar
6731 components. The "VALARM" calendar component can be of type
6732 PROCEDURE and can have an attachment containing some sort of
6733 executable program. Implementations that incorporate these types
6734 of alarms are subject to any virus or malicious attack that might
6735 occur as a result of executing the attachment.
6737 ATTACHMENTS: An iCalendar object can include references to Uniform
6738 Resource Locators that can be programmed resources.
6740 Implementers and users of this memo should be aware of the network
6741 security implications of accepting and parsing such information.
6742 In addition, the security considerations observed by
6743 implementations of electronic mail systems should be followed for
6744 this memo.
6746 9. IANA Consideration
6748 9.1. Media Type Registration Information
6750 The Calendaring and Scheduling Core Object Specification is intended
6751 for use as a MIME content type. However, the implementation of the
6752 memo is in no way limited solely as a MIME content type.
6754 To: ietf-types@iana.org
6755 Subject: Registration of media type text/calendar
6757 Type name: text
6759 Subtype name: calendar
6761 Required parameters: none
6763 Optional parameters: charset, method, component and optinfo
6765 The "charset" parameter is defined in [RFC2046] for other body
6766 parts. It is used to identify the default character set used
6767 within the body part.
6769 The "method" parameter is used to convey the iCalendar object
6770 method or transaction semantics for the calendaring and scheduling
6771 information. It also is an identifier for the restricted set of
6772 properties and values that the iCalendar object consists of. The
6773 parameter is to be used as a guide for applications interpreting
6774 the information contained within the body part. It SHOULD NOT be
6775 used to exclude or require particular pieces of information unless
6776 the identified method definition specifically calls for this
6777 behavior. Unless specifically forbidden by a particular method
6778 definition, a text/calendar content type can contain any set of
6779 properties permitted by the Calendaring and Scheduling Core Object
6780 Specification. The "method" parameter MUST be the same value as
6781 that specified in the "METHOD" component property in the iCalendar
6782 object. If one is present, the other MUST also be present.
6784 The value for the "method" parameter is defined as follows:
6786 method = 1*(ALPHA / DIGIT / "-")
6787 ; IANA registered iCalendar object method
6789 The "component" parameter conveys the type of iCalendar calendar
6790 component within the body part. If the iCalendar object contains
6791 more than one calendar component type, then multiple component
6792 parameters MUST be specified.
6794 The value for the "component" parameter is defined as follows:
6796 component = "VEVENT"
6797 / "VTODO"
6798 / "VJOURNAL"
6799 / "VFREEBUSY"
6800 / "VTIMEZONE"
6801 / x-name
6802 / iana-token
6804 The "optinfo" parameter conveys optional information about the
6805 iCalendar object within the body part. This parameter can only
6806 specify semantics already specified by the iCalendar object and
6807 that can be otherwise determined by parsing the body part. In
6808 addition, the optional information specified by this parameter
6809 MUST be consistent with that information specified by the
6810 iCalendar object. For example, it can be used to convey the
6811 "Attendee" response status to a meeting request. The parameter
6812 value consists of a string value.
6814 The parameter can be specified multiple times.
6816 This parameter MAY only specify semantics already specified by the
6817 iCalendar object and that can be otherwise determined by parsing
6818 the body part.
6820 The value for the "optinfo" parameter is defined as follows:
6822 optinfo = infovalue / qinfovalue
6824 infovalue = iana-token / x-name
6826 qinfovalue = DQUOTE (infovalue) DQUOTE
6828 Encoding considerations: This media type can contain 8bit characters,
6829 so the use of quoted-printable or base64 MIME Content-Transfer-
6830 Encodings might be necessary when iCalendar objects are
6831 transferred across protocols restricted to the 7bit repertoire.
6832 Note that a text valued property in the content entity can also
6833 have content encoding of special characters using a BACKSLASH
6834 character (US-ASCII decimal 92) escapement technique. This means
6835 that content values can end up encoded twice.
6837 Security considerations: See Section 8.
6839 Interoperability considerations: This media type is intended to
6840 define a common format for conveying calendaring and scheduling
6841 information between different systems. It is heavily based on the
6842 earlier [VCAL] industry specification.
6844 Published specification: This specification.
6846 Applications which use this media type: This media type is designed
6847 for widespread use by Internet calendaring and scheduling
6848 applications. In addition, applications in the workflow and
6849 document management area might find this content-type applicable.
6850 The iTIP [I-D.ietf-calsify-2446bis], iMIP [I-D.ietf-calsify-
6851 rfc2447bis] and CalDAV [I-D.dusseault-caldav] Internet protocols
6852 directly use this media type also.
6854 Additional information:
6856 Magic number(s): None.
6858 File extension(s): The file extension of "ics" is to be used to
6859 designate a file containing (an arbitrary set of) calendaring
6860 and scheduling information consistent with this MIME content
6861 type.
6863 The file extension of "ifb" is to be used to designate a file
6864 containing free or busy time information consistent with this
6865 MIME content type.
6867 Macintosh file type code(s): The file type code of "iCal" is to be
6868 used in Apple MacIntosh operating system environments to
6869 designate a file containing calendaring and scheduling
6870 information consistent with this MIME media type.
6872 The file type code of "iFBf" is to be used in Apple MacIntosh
6873 operating system environments to designate a file containing
6874 free or busy time information consistent with this MIME media
6875 type.
6877 Person & email address to contact for further information: TBD
6879 Intended usage: COMMON
6881 Restrictions on usage: There are no restrictions on where this media
6882 type can be used.
6884 Author: TBD
6886 Change controller: IETF
6888 10. Acknowledgments
6890 The editor of this document wish to thank Frank Dawson and Stenerson
6891 Derik, the original author of RFC2445.
6893 The editor would also like to thank the Calendaring and Scheduling
6894 Consortium for advice with this specification, and for organizing
6895 interoperability testing events to help refine it.
6897 11. References
6899 11.1. Normative References
6901 [I-D.ietf-calsify-2446bis]
6902 Daboo, C., "iCalendar Transport-Independent
6903 Interoperability Protocol (iTIP)",
6904 draft-ietf-calsify-2446bis-01 (work in progress),
6905 March 2006.
6907 [I-D.ietf-calsify-rfc2447bis]
6908 Melnikov, A., "iCalendar Message-Based Interoperability
6909 Protocol(iMIP)", draft-ietf-calsify-rfc2447bis-02 (work in
6910 progress), June 2006.
6912 [ISO.8601.1988]
6913 International Organization for Standardization, "Data
6914 elements and interchange formats - Information interchange
6915 - Representation of dates and times",
6916 .
6918 [ISO.9070.1991]
6919 International Organization for Standardization,
6920 "Information Technology_SGML Support Facilities --
6921 Registration Procedures for Public Text Owner Identifiers,
6922 Second Edition", April 1991, .
6925 [RFC0822] Crocker, D., "Standard for the format of ARPA Internet
6926 text messages", STD 11, RFC 822, August 1982.
6928 [RFC1738] Berners-Lee, T., Masinter, L., and M. McCahill, "Uniform
6929 Resource Locators (URL)", RFC 1738, December 1994.
6931 [RFC1766] Alvestrand, H., "Tags for the Identification of
6932 Languages", RFC 1766, March 1995.
6934 [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
6935 Extensions (MIME) Part One: Format of Internet Message
6936 Bodies", RFC 2045, November 1996.
6938 [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
6939 Extensions (MIME) Part Two: Media Types", RFC 2046,
6940 November 1996.
6942 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
6943 Requirement Levels", BCP 14, RFC 2119, March 1997.
6945 [RFC2234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
6946 Specifications: ABNF", RFC 2234, November 1997.
6948 [RFC2279] Yergeau, F., "UTF-8, a transformation format of ISO
6949 10646", RFC 2279, January 1998.
6951 [RFC2425] Howes, T., Smith, M., and F. Dawson, "A MIME Content-Type
6952 for Directory Information", RFC 2425, September 1998.
6954 [RFC2426] Dawson, F. and T. Howes, "vCard MIME Directory Profile",
6955 RFC 2426, September 1998.
6957 [TZDB] "Time zone code and data", October 2005,
6958 .
6960 [VCAL] Internet Mail Consortium, "vCalendar: The Electronic
6961 Calendaring and Scheduling Exchange Format",
6962 September 1996, .
6964 11.2. Informative References
6966 [I-D.dusseault-caldav]
6967 Dusseault, L., "Calendaring Extensions to WebDAV
6968 (CalDAV)", draft-dusseault-caldav-12 (work in progress),
6969 April 2006.
6971 URIs
6973 [1]
6975 Author's Address
6977 Bernard Desruisseaux (editor)
6978 Oracle Corporation
6979 600 blvd. de Maisonneuve West
6980 Suite 1900
6981 Montreal, QC H3A 3J2
6982 CA
6984 Email: bernard.desruisseaux@oracle.com
6985 URI: http://www.oracle.com/
6987 Intellectual Property Statement
6989 The IETF takes no position regarding the validity or scope of any
6990 Intellectual Property Rights or other rights that might be claimed to
6991 pertain to the implementation or use of the technology described in
6992 this document or the extent to which any license under such rights
6993 might or might not be available; nor does it represent that it has
6994 made any independent effort to identify any such rights. Information
6995 on the procedures with respect to rights in RFC documents can be
6996 found in BCP 78 and BCP 79.
6998 Copies of IPR disclosures made to the IETF Secretariat and any
6999 assurances of licenses to be made available, or the result of an
7000 attempt made to obtain a general license or permission for the use of
7001 such proprietary rights by implementers or users of this
7002 specification can be obtained from the IETF on-line IPR repository at
7003 http://www.ietf.org/ipr.
7005 The IETF invites any interested party to bring to its attention any
7006 copyrights, patents or patent applications, or other proprietary
7007 rights that may cover technology that may be required to implement
7008 this standard. Please address the information to the IETF at
7009 ietf-ipr@ietf.org.
7011 Disclaimer of Validity
7013 This document and the information contained herein are provided on an
7014 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
7015 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
7016 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
7017 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
7018 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
7019 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
7021 Copyright Statement
7023 Copyright (C) The Internet Society (2006). This document is subject
7024 to the rights, licenses and restrictions contained in BCP 78, and
7025 except as set forth therein, the authors retain all their rights.
7027 Acknowledgment
7029 Funding for the RFC Editor function is currently provided by the
7030 Internet Society.