idnits 2.17.1 draft-ietf-calsch-ical21-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity -- however, there's a paragraph with a matching beginning. Boilerplate error? == No 'Intended status' indicated for this document; assuming Proposed Standard == The page length should not exceed 58 lines per page, but there was 1 longer page, the longest (page 1) being 8463 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack an Authors' Addresses Section. ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** The abstract seems to contain references ([RFC2048], [RFC2445], [ITIP]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. == There are 1 instance of lines with non-RFC2606-compliant FQDNs in the document. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year == Line 2978 has weird spacing: '...he base offse...' == Line 3925 has weird spacing: '...ld this meeti...' == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords -- however, there's a paragraph with a matching beginning. Boilerplate error? (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'SHOULD not' in this paragraph: This property SHOULD not be used to alter the interpretation of an iCalendar object beyond the semantics specified in this memo. For example, it is not to be used to further the understanding of non-standard properties. == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'MUST not' in this paragraph: The property parameter CN is for the common or displayable name associated with the calendar address; ROLE, for the intended role that the attendee will have in the calendar component; PARTSTAT, for the status of the attendee's participation; RSVP, for indicating whether the favor of a reply is requested; CUTYPE, to indicate the type of calendar user; MEMBER, to indicate the groups that the attendee belongs to; DELEGATED-TO, to indicate the calendar users that the original request was delegated to; and DELEGATED-FROM, to indicate whom the request was delegated from; SENT-BY, to indicate whom is acting on behalf of the ATTENDEE; and DIR, to indicate the URI that points to the directory information corresponding to the attendee. These property parameters can be specified on an "ATTENDEE" property in either a "VEVENT", "VTODO" or "VJOURNAL" calendar component. They MUST not be specified in an "ATTENDEE" property in a "VFREEBUSY" or "VALARM" calendar component. If the LANGUAGE property parameter is specified, the identified language applies to the CN parameter. -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (June 18, 1999) is 9079 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: 'RFC 2445' is mentioned on line 36, but not defined ** Obsolete undefined reference: RFC 2445 (Obsoleted by RFC 5545) == Missing Reference: 'MIME-DIR' is mentioned on line 5132, but not defined ** Obsolete normative reference: RFC 2445 (ref. 'ICAL') (Obsoleted by RFC 5545) ** Obsolete normative reference: RFC 2447 (ref. 'IMIP') (Obsoleted by RFC 6047) ** Obsolete normative reference: RFC 2446 (ref. 'ITIP') (Obsoleted by RFC 5546) -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO 8601' -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO 9070' ** Obsolete normative reference: RFC 822 (Obsoleted by RFC 2822) ** Obsolete normative reference: RFC 1738 (Obsoleted by RFC 4248, RFC 4266) ** Obsolete normative reference: RFC 1766 (Obsoleted by RFC 3066, RFC 3282) ** Obsolete normative reference: RFC 2048 (Obsoleted by RFC 4288, RFC 4289) ** Obsolete normative reference: RFC 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. 'TZ' -- Possible downref: Non-RFC (?) normative reference: ref. 'VCAL' Summary: 19 errors (**), 0 flaws (~~), 11 warnings (==), 6 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group Frank Dawson, Lotus 3 Internet Draft Derik Stenerson, Microsoft 4 5 Expires six months after: June 18, 1999 7 Internet Calendaring and Scheduling Core Object Specification 8 (iCalendar) 10 Status of this Memo 12 This document is an Internet-Draft and is in full conformance with 13 all provisions of Section 10 of RFC2026. 15 Internet-Drafts are working documents of the Internet Engineering 16 Task Force (IETF), its areas, and its working groups. Note that other 17 groups may also distribute working documents as Internet-Drafts. 18 Internet-Drafts are draft documents valid for a maximum of six months 19 and may be updated, replaced, or obsoleted by other documents at any 20 time. It is inappropriate to use Internet- Drafts as reference 21 material or to cite them other than as "work in progress." 23 The list of current Internet-Drafts can be accessed at 24 http://www.ietf.org/ietf/1id-abstracts.txt 25 The list of Internet-Draft Shadow Directories can be accessed at 26 http://www.ietf.org/shadow.html. 28 Distribution of this memo is unlimited. 30 Copyright Notice 32 Copyright (C) The Internet Society 1999. All Rights Reserved. 34 Abstract 36 This memo is an editorial update to [RFC 2445]. This memo corrects 37 textual prose and ABNF syntatical errors found in the iCalendar RFC. 38 The memo also clarifies ambiguous or inconsistent text. These changes 39 are the result of implementation and interoperability testing 40 experience. 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 per 51 [RFC 2048]. However, the format in this memo is equally applicable 52 for use outside of a MIME message content type. 54 Dawson/Stenerson 1 Expires December 1999 55 The proposed media type value is "text/calendar". This string would 56 label a media type containing calendaring and scheduling information 57 encoded as text characters formatted in a manner outlined below. 59 This MIME media type provides a standard content type for capturing 60 calendar event, to-do and journal entry information. It also can be 61 used to convey free/busy time information. The content type is 62 suitable as a MIME message entity that can be transferred over MIME 63 based email systems, using HTTP or some other Internet transport. In 64 addition, the content type is useful as an object for interactions 65 between desktop applications using the operating system clipboard, 66 drag/drop or file systems capabilities. 68 This memo is based on the earlier work of the vCalendar specification 69 for the exchange of personal calendaring and scheduling information. 70 In order to avoid confusion with this referenced work, this memo is 71 to be known as the iCalendar specification. 73 This memo defines the format for specifying iCalendar object methods. 74 An iCalendar object method is a set of usage constraints for the 75 iCalendar object. For example, these methods might define scheduling 76 messages that request an event be scheduled, reply to an event 77 request, send a cancellation notice for an event, modify or replace 78 the definition of an event, provide a counter proposal for an 79 original event request, delegate an event request to another 80 individual, request free or busy time, reply to a free or busy time 81 request, or provide similar scheduling messages for a to-do or 82 journal entry calendar component. The iCalendar Transport-indendent 83 Interoperability Protocol (iTIP) defined in [ITIP] is one such 84 scheduling protocol. 86 Dawson/Stenerson 2 Expires December 1999 87 Table of Contents 89 1 Introduction.........................................................6 90 2 Basic Grammar and Conventions........................................6 91 2.1 Formatting Conventions ...........................................7 92 2.2 Related Memos ....................................................8 93 2.3 International Considerations .....................................8 94 3 Registration Information.............................................8 95 3.1 Content Type .....................................................8 96 3.2 Parameters .......................................................9 97 3.3 Content Header Fields ...........................................10 98 3.4 Encoding Considerations .........................................10 99 3.5 Security Considerations .........................................10 100 3.6 Interoperability Considerations .................................11 101 3.7 Applications Which Use This Media Type ..........................11 102 3.8 Additional Information ..........................................11 103 3.9 Magic Numbers ...................................................11 104 3.10 File Extensions ................................................11 105 3.11 Contact for Further Information: ...............................11 106 3.12 Intended Usage .................................................12 107 3.13 Authors/Change Controllers .....................................12 108 4 iCalendar Object Specification......................................12 109 4.1 Content Lines ...................................................12 110 4.1.1 List and Field Separators ....................................15 111 4.1.2 Multiple Values ..............................................15 112 4.1.3 Binary Content ...............................................15 113 4.1.4 Character Set ................................................16 114 4.2 Property Parameters .............................................16 115 4.2.1 Alternate Text Representation ................................17 116 4.2.2 Common Name ..................................................18 117 4.2.3 Calendar User Type ...........................................18 118 4.2.4 Delegators ...................................................19 119 4.2.5 Delegatees ...................................................19 120 4.2.6 Directory Entry Reference ....................................20 121 4.2.7 Inline Encoding ..............................................20 122 4.2.8 Format Type ..................................................21 123 4.2.9 Free/Busy Time Type ..........................................21 124 4.2.10 Language ....................................................22 125 4.2.11 Group or List Membership ....................................23 126 4.2.12 Participation Status ........................................23 127 4.2.13 Recurrence Identifier Range .................................24 128 4.2.14 Alarm Trigger Relationship ..................................25 129 4.2.15 Relationship Type ...........................................25 130 4.2.16 Participation Role ..........................................26 131 4.2.17 RSVP Expectation ............................................27 132 4.2.18 Sent By .....................................................27 133 4.2.19 Time Zone Identifier ........................................28 134 4.2.20 Value Data Types ............................................29 135 4.3 Property Value Data Types .......................................29 136 4.3.1 Binary .......................................................30 137 4.3.2 Boolean ......................................................30 138 4.3.3 Calendar User Address ........................................31 140 Dawson/Stenerson 3 Expires December 1999 141 4.3.4 Date .........................................................31 142 4.3.5 Date-Time ....................................................32 143 4.3.6 Duration .....................................................33 144 4.3.7 Float ........................................................34 145 4.3.8 Integer ......................................................35 146 4.3.9 Period of Time ...............................................35 147 4.3.10 Recurrence Rule .............................................36 148 4.3.11 Text ........................................................41 149 4.3.12 Time ........................................................42 150 4.3.13 URI .........................................................44 151 4.3.14 UTC Offset ..................................................44 152 4.4 iCalendar Object ................................................45 153 4.5 Property ........................................................45 154 4.6 Calendar Components .............................................46 155 4.6.1 Event Component ..............................................47 156 4.6.2 To-do Component ..............................................49 157 4.6.3 Journal Component ............................................50 158 4.6.4 Free/Busy Component ..........................................52 159 4.6.5 Time Zone Component ..........................................54 160 4.6.6 Alarm Component ..............................................60 161 4.7 Calendar Properties .............................................66 162 4.7.1 Calendar Scale ...............................................66 163 4.7.2 Method .......................................................66 164 4.7.3 Product Identifier ...........................................67 165 4.7.4 Version ......................................................68 166 4.8 Component Properties ............................................69 167 4.8.1 Descriptive Component Properties .............................69 168 4.8.1.1 Attachment ...............................................69 169 4.8.1.2 Categories ...............................................70 170 4.8.1.3 Classification ...........................................71 171 4.8.1.4 Comment ..................................................72 172 4.8.1.5 Description ..............................................73 173 4.8.1.6 Geographic Position ......................................74 174 4.8.1.7 Location .................................................75 175 4.8.1.8 Percent Complete .........................................76 176 4.8.1.9 Priority .................................................77 177 4.8.1.10 Resources ...............................................78 178 4.8.1.11 Status ..................................................79 179 4.8.1.12 Summary .................................................80 180 4.8.2 Date and Time Component Properties ...........................81 181 4.8.2.1 Date/Time Completed ......................................81 182 4.8.2.2 Date/Time End ............................................81 183 4.8.2.3 Date/Time Due ............................................82 184 4.8.2.4 Date/Time Start ..........................................83 185 4.8.2.5 Duration .................................................84 186 4.8.2.6 Free/Busy Time ...........................................85 187 4.8.2.7 Time Transparency ........................................86 188 4.8.3 Time Zone Component Properties ...............................87 189 4.8.3.1 Time Zone Identifier .....................................87 190 4.8.3.2 Time Zone Name ...........................................88 191 4.8.3.3 Time Zone Offset From ....................................89 192 4.8.3.4 Time Zone Offset To ......................................90 193 4.8.3.5 Time Zone URL ............................................90 194 4.8.4 Relationship Component Properties ............................91 196 Dawson/Stenerson 4 Expires December 1999 197 4.8.4.1 Attendee .................................................91 198 4.8.4.2 Contact ..................................................93 199 4.8.4.3 Organizer ................................................95 200 4.8.4.4 Recurrence ID ............................................96 201 4.8.4.5 Related To ...............................................98 202 4.8.4.6 Uniform Resource Locator .................................99 203 4.8.4.7 Unique Identifier ........................................99 204 4.8.5 Recurrence Component Properties .............................101 205 4.8.5.1 Exception Date/Times ....................................101 206 4.8.5.2 Exception Rule ..........................................102 207 4.8.5.3 Recurrence Date/Times ...................................103 208 4.8.5.4 Recurrence Rule .........................................104 209 4.8.6 Alarm Component Properties ..................................112 210 4.8.6.1 Action ..................................................112 211 4.8.6.2 Repeat Count ............................................113 212 4.8.6.3 Trigger .................................................114 213 4.8.7 Change Management Component Properties ......................116 214 4.8.7.1 Date/Time Created .......................................116 215 4.8.7.2 Date/Time Stamp .........................................116 216 4.8.7.3 Last Modified ...........................................117 217 4.8.7.4 Sequence Number .........................................118 218 4.8.8 Miscellaneous Component Properties ..........................119 219 4.8.8.1 Non-standard Properties .................................119 220 4.8.8.2 Request Status ..........................................120 221 5 iCalendar Object Examples..........................................122 222 6 Recommended Practices..............................................125 223 7 Registration of Content Type Elements..............................126 224 7.1 Registration of New and Modified iCalendar Object Methods ......126 225 7.2 Registration of New Properties .................................127 226 7.2.1 Define the property .........................................127 227 7.2.2 Post the Property definition ................................128 228 7.2.3 Allow a comment period ......................................128 229 7.2.4 Submit the property for approval ............................128 230 7.3 Property Change Control ........................................128 231 8 References.........................................................129 232 9 Acknowledgments....................................................130 233 10 Authors' and Chairs' Addresses....................................130 234 11 Full Copyright Statement..........................................131 236 Dawson/Stenerson 5 Expires December 1999 237 1 Introduction 239 The use of calendaring and scheduling has grown considerably in the 240 last decade. Enterprise and inter-enterprise business has become 241 dependent on rapid scheduling of events and actions using this 242 information technology. However, the longer term growth of 243 calendaring and scheduling, is currently limited by the lack of 244 Internet standards for the message content types that are central to 245 these knowledgeware applications. This memo is intended to progress 246 the level of interoperability possible between dissimilar calendaring 247 and scheduling applications. This memo defines a MIME content type 248 for exchanging electronic calendaring and scheduling information. The 249 Internet Calendaring and Scheduling Core Object Specification, or 250 iCalendar, allows for the capture and exchange of information 251 normally stored within a calendaring and scheduling application; such 252 as a Personal Information Manager (PIM) or a Group Scheduling 253 product. 255 The iCalendar format is suitable as an exchange format between 256 applications or systems. The format is defined in terms of a MIME 257 content type. This will enable the object to be exchanged using 258 several transports, including but not limited to SMTP, HTTP, a file 259 system, desktop interactive protocols such as the use of a memory- 260 based clipboard or drag/drop interactions, point-to-point 261 asynchronous communication, wired-network transport, or some form of 262 unwired transport such as infrared might also be used. 264 The memo also provides for the definition of iCalendar object methods 265 that will map this content type to a set of messages for supporting 266 calendaring and scheduling operations such as requesting, replying 267 to, modifying, and canceling meetings or appointments, to-dos and 268 journal entries. The iCalendar object methods can be used to define 269 other calendaring and scheduling operations such a requesting for and 270 replying with free/busy time data. Such a scheduling protocol is 271 defined in the iCalendar Transport-independent Interoperability 272 Protocol (iTIP) defined in [ITIP]. 274 The memo also includes a formal grammar for the content type based on 275 the Internet ABNF defined in [RFC 2234]. This ABNF is required for 276 the implementation of parsers and to serve as the definitive 277 reference when ambiguities or questions arise in interpreting the 278 descriptive prose definition of the memo. 280 2 Basic Grammar and Conventions 282 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 283 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" and 284 "OPTIONAL" in this document are to be interoperated as described in 285 [RFC 2119]. 287 This memo makes use of both a descriptive prose and a more formal 288 notation for defining the calendaring and scheduling format. 290 Dawson/Stenerson 6 Expires December 1999 291 The notation used in this memo is the ABNF notation of [RFC 2234]. 292 Readers intending on implementing this format defined in this memo 293 should be familiar with this notation in order to properly interpret 294 the specifications of this memo. 296 All numeric and hexadecimal values used in this memo are given in 297 decimal notation. 299 All names of properties, property parameters, enumerated property 300 values and property parameter values are case-insensitive. However, 301 all other property values are case-sensitive, unless otherwise 302 stated. 304 Note: All indented editorial notes, such as this one, are 305 intended to provide the reader with additional information. The 306 information is not essential to the building of an 307 implementation conformant with this memo. The information is 308 provided to highlight a particular feature or characteristic of 309 the memo. 311 The format for the iCalendar object is based on the syntax of the 312 [RFC 2425] content type. While the iCalendar object is not a profile 313 of the [RFC 2425] content type, it does reuse a number of the 314 elements from the [RFC 2425] specification. 316 2.1 Formatting Conventions 318 The mechanisms defined in this memo are defined in prose. Many of the 319 terms used to describe these have common usage that is different than 320 the standards usage of this memo. In order to reference within this 321 memo elements of the calendaring and scheduling model, core object 322 (this memo) or interoperability protocol [ITIP] some formatting 323 conventions have been used. Calendaring and scheduling roles are 324 referred to in quoted-strings of text with the first character of 325 each word in upper case. For example, "Organizer" refers to a role of 326 a "Calendar User" within the scheduling protocol defined by [ITIP]. 327 Calendar components defined by this memo are referred to with 328 capitalized, quoted-strings of text. All calendar components start 329 with the letter "V". For example, "VEVENT" refers to the event 330 calendar component, "VTODO" refers to the to-do calendar component 331 and "VJOURNAL" refers to the daily journal calendar component. 332 Scheduling methods defined by [ITIP] are referred to with 333 capitalized, quoted-strings of text. For example, "REQUEST" refers to 334 the method for requesting a scheduling calendar component be created 335 or modified, "REPLY" refers to the method a recipient of a request 336 uses to update their status with the "Organizer" of the calendar 337 component. 339 The properties defined by this memo are referred to with capitalized, 340 quoted-strings of text, followed by the word "property". For example, 341 "ATTENDEE" property refers to the iCalendar property used to convey 342 the calendar address of a calendar user. Property parameters defined 343 by this memo are referred to with lowercase, quoted-strings of text, 344 followed by the word "parameter". For example, "value" parameter 346 Dawson/Stenerson 7 Expires December 1999 347 refers to the iCalendar property parameter used to override the 348 default data type for a property value. Enumerated values defined by 349 this memo are referred to with capitalized text, either alone or 350 followed by the word "value". For example, the "MINUTELY" value can 351 be used with the "FREQ" component of the "RECUR" data type to specify 352 repeating components based on an interval of one minute or more. 354 2.2 Related Memos 356 Implementers will need to be familiar with several other memos that, 357 along with this memo, form a framework for Internet calendaring and 358 scheduling standards. This memo, [ICAL], specifies a core 359 specification of objects, data types, properties and property 360 parameters. 362 [ITIP] - specifies an interoperability protocol for scheduling 363 between different implementations; 365 [IMIP] specifies an Internet email binding for [ITIP]. 367 This memo does not attempt to repeat the specification of concepts or 368 definitions from these other memos. Where possible, references are 369 made to the memo that provides for the specification of these 370 concepts or definitions. 372 2.3 International Considerations 374 In the rest of this document, descriptions of characters are of the 375 form "character name (codepoint)", where "codepoint" is from the US- 376 ASCII character set. The "character name" is the authoritative 377 description; (codepoint) is a reference to that character in US- 378 ASCII or US-ASCII compatible sets (for example the ISO-8859-x family, 379 UTF-8, ISO-2022-xx, KOI8-R). If a non-US-ASCII compatible character 380 set is used, appropriate code-point from that character set MUST be 381 chosen instead. Use of non-US-ASCII-compatible character sets is NOT 382 recommended. 384 3 Registration Information 386 The Calendaring and Scheduling Core Object Specification is intended 387 for use as a MIME content type. However, the implementation of the 388 memo is in no way limited solely as a MIME content type. 390 3.1 Content Type 392 The following text is intended to register this memo as the MIME 393 content type "text/calendar". 395 To: ietf-types@uninett.no 397 Subject: Registration of MIME content type text/calendar. 399 MIME media type name: text 401 Dawson/Stenerson 8 Expires December 1999 402 MIME subtype name: calendar 404 3.2 Parameters 406 Required parameters: none 408 Optional parameters: charset, method, component and optinfo 410 The "charset" parameter is defined in [RFC 2046] for other body 411 parts. It is used to identify the default character set used within 412 the body part. 414 The "method" parameter is used to convey the iCalendar object method 415 or transaction semantics for the calendaring and scheduling 416 information. It also is an identifier for the restricted set of 417 properties and values that the iCalendar object consists of. The 418 parameter is to be used as a guide for applications interpreting the 419 information contained within the body part. It SHOULD NOT be used to 420 exclude or require particular pieces of information unless the 421 identified method definition specifically calls for this behavior. 422 Unless specifically forbidden by a particular method definition, a 423 text/calendar content type can contain any set of properties 424 permitted by the Calendaring and Scheduling Core Object 425 Specification. The "method" parameter MUST be the same value as that 426 specified in the "METHOD" component property in the iCalendar object. 427 If one is present, the other MUST also be present. 429 The value for the "method" parameter is defined as follows: 431 method = 1*(ALPHA / DIGIT / "-") 432 ; IANA registered iCalendar object method 434 The "component" parameter conveys the type of iCalendar calendar 435 component within the body part. If the iCalendar object contains more 436 than one calendar component type, then multiple component parameters 437 MUST be specified. 439 The value for the "component" parameter is defined as follows: 441 component = ("VEVENT" / "VTODO" / "VJOURNAL" / "VFREEBUSY" 442 / "VTIMEZONE" / x-name / iana-token) 444 The "optinfo" parameter conveys optional information about the 445 iCalendar object within the body part. This parameter can only 446 specify semantics already specified by the iCalendar object and that 447 can be otherwise determined by parsing the body part. In addition, 448 the optional information specified by this parameter MUST be 449 consistent with that information specified by the iCalendar object. 450 For example, it can be used to convey the "Attendee" response status 451 to a meeting request. The parameter value consists of a string value. 452 The parameter can be specified multiple times. 454 Dawson/Stenerson 9 Expires December 1999 455 This parameter MAY only specify semantics already specified by the 456 iCalendar object and that can be otherwise determined by parsing the 457 body part. 459 The value for the "optinfo" parameter is defined as follows: 461 optinfo = infovalue / qinfovalue 463 infovalue = iana-token / x-name 465 qinfovalue = DQUOTE (infovalue) DQUOTE 467 3.3 Content Header Fields 469 Optional content header fields: Any header fields defined by [RFC 470 2045]. 472 3.4 Encoding Considerations 474 This MIME content type can contain 8bit characters, so the use of 475 quoted-printable or BASE64 MIME content-transfer-encodings might be 476 necessary when iCalendar objects are transferred across protocols 477 restricted to the 7bit repertoire. Note that a text valued property 478 in the content entity can also have content encoding of special 479 characters using a BACKSLASH character (US-ASCII decimal 92) 480 escapement technique. This means that content values can end up 481 encoded twice. 483 3.5 Security Considerations 485 SPOOFING - - In this memo, the "Organizer" is the only person 486 authorized to make changes to an existing "VEVENT", "VTODO", 487 "VJOURNAL" calendar component and redistribute the updates to the 488 "Attendees". An iCalendar object that maliciously changes or cancels 489 an existing "VEVENT", "VTODO" or "VJOURNAL" or "VFREEBUSY" calendar 490 component might be constructed by someone other than the "Organizer" 491 and sent to the "Attendees". In addition in this memo, other than the 492 "Organizer", an "Attendee" of a "VEVENT", "VTODO", "VJOURNAL" 493 calendar component is the only other person authorized to update any 494 parameter associated with their "ATTENDEE" property and send it to 495 the "Organizer". An iCalendar object that maliciously changes the 496 "ATTENDEE" parameters can be constructed by someone other than the 497 real "Attendee" and sent to the "Organizer". 499 PROCEDURAL ALARMS - - An iCalendar object can be created that 500 contains a "VEVENT" and "VTODO" calendar component with "VALARM" 501 calendar components. The "VALARM" calendar component can be of type 502 PROCEDURE and can have an attachment containing some sort of 503 executable program. Implementations that incorporate these types of 504 alarms are subject to any virus or malicious attack that might occur 505 as a result of executing the attachment. 507 ATTACHMENTS - - An iCalendar object can include references to Uniform 508 Resource Locators that can be programmed resources. 510 Dawson/Stenerson 10 Expires December 1999 511 Implementers and users of this memo should be aware of the network 512 security implications of accepting and parsing such information. In 513 addition, the security considerations observed by implementations of 514 electronic mail systems should be followed for this memo. 516 3.6 Interoperability Considerations 518 This MIME content type is intended to define a common format for 519 conveying calendaring and scheduling information between different 520 systems. It is heavily based on the earlier [VCAL] industry 521 specification. 523 3.7 Applications Which Use This Media Type 525 This content-type is designed for widespread use by Internet 526 calendaring and scheduling applications. In addition, applications in 527 the workflow and document management area might find this content- 528 type applicable. The [ITIP] and [IMIP] Internet protocols directly 529 use this content-type also. Future work on an Internet calendar 530 access protocol will utilize this content-type too. 532 3.8 Additional Information 534 This memo defines this content-type. 536 3.9 Magic Numbers 538 None. 540 3.10 File Extensions 542 The file extension of "ics" is to be used to designate a file 543 containing (an arbitrary set of) calendaring and scheduling 544 information consistent with this MIME content type. 546 The file extension of "ifb" is to be used to designate a file 547 containing free or busy time information consistent with this MIME 548 content type. 550 Macintosh file type codes: The file type code of "iCal" is to be used 551 in Apple MacIntosh operating system environments to designate a file 552 containing calendaring and scheduling information consistent with 553 this MIME media type. 555 The file type code of "iFBf" is to be used in Apple MacIntosh 556 operating system environments to designate a file containing free or 557 busy time information consistent with this MIME media type. 559 3.11 Contact for Further Information: 561 Frank Dawson 562 6544 Battleford Drive 563 Raleigh, NC 27613-3502 564 919-676-9515 (Telephone) 566 Dawson/Stenerson 11 Expires December 1999 567 919-676-9564 (Data/Facsimile) 568 Frank_Dawson@Lotus.com (Internet Mail) 570 Derik Stenerson 571 One Microsoft Way 572 Redmond, WA 98052-6399 573 425-936-5522 (Telephone) 574 425-936-7329 (Facsimile) 575 deriks@microsoft.com (Internet Mail) 577 3.12 Intended Usage 579 COMMON 581 3.13 Authors/Change Controllers 583 Frank Dawson 584 6544 Battleford Drive 585 Raleigh, NC 27613-3502 586 919-676-9515 (Telephone) 587 919-676-9564 (Data/Facsimile) 588 Frank_Dawson@Lotus.com (Internet Mail) 590 Derik Stenerson 591 One Microsoft Way 592 Redmond, WA 98052-6399 593 425-936-5522 (Telephone) 594 425-936-7329 (Facsimile) 595 deriks@microsoft.com (Internet Mail) 597 4 iCalendar Object Specification 599 The following sections define the details of a Calendaring and 600 Scheduling Core Object Specification. This information is intended to 601 be an integral part of the MIME content type registration. In 602 addition, this information can be used independent of such content 603 registration. In particular, this memo has direct applicability for 604 use as a calendaring and scheduling exchange format in file-, memory- 605 or network-based transport mechanisms. 607 4.1 Content Lines 609 The iCalendar object is organized into individual lines of text, 610 called content lines. Content lines are delimited by a line break, 611 which is a CRLF sequence (US-ASCII decimal 13, followed by US-ASCII 612 decimal 10). 614 Lines of text SHOULD NOT be longer than 75 octets, excluding the line 615 break. Long content lines SHOULD be split into a multiple line 616 representations using a line "folding" technique. That is, a long 617 line can be split between any two characters by inserting a CRLF 618 immediately followed by a single linear white space character (i.e., 619 SPACE, US-ASCII decimal 32 or HTAB, US-ASCII decimal 9). Any sequence 621 Dawson/Stenerson 12 Expires December 1999 622 of CRLF followed immediately by a single linear white space character 623 is ignored (i.e., removed) when processing the content type. 625 For example the line: 627 DESCRIPTION:This is a long description that exists on a long line. 629 Can be represented as: 631 DESCRIPTION:This is a lo 632 ng description 633 that exists on a long line. 635 The process of moving from this folded multiple line representation 636 to its single line representation is called "unfolding". Unfolding is 637 accomplished by removing the CRLF character and the linear white 638 space character that immediately follows. 640 When parsing a content line, folded lines MUST first be unfolded 641 according to the unfolding procedure described above. When generating 642 a content line, lines longer than 75 octets SHOULD be folded 643 according to the folding procedure described above. 645 The content information associated with an iCalendar object is 646 formatted using a syntax similar to that defined by [RFC 2425]. That 647 is, the content information consists of CRLF-separated content lines. 649 The following notation defines the lines of content in an iCalendar 650 object: 652 contentline = name *(";" param ) ":" value CRLF 653 ; This ABNF is just a general definition for an initial parsing 654 ; of the content line into its property name, parameter list, 655 ; and value string 657 ; When parsing a content line, folded lines MUST first 658 ; be unfolded according to the unfolding procedure 659 ; described above. When generating a content line, lines 660 ; longer than 75 octets SHOULD be folded according to 661 ; the folding procedure described above. 663 name = x-name / iana-token 665 iana-token = 1*(ALPHA / DIGIT / "-") 666 ; iCalendar identifier registered with IANA 668 x-name = "X-" [vendorid "-"] 1*(ALPHA / DIGIT / "-") 669 ; Reservered for experimental use. Not intended for use in 670 ; released products. 672 vendorid = 3*(ALPHA / DIGIT) ;Vendor identification 674 param = param-name "=" param-value 675 *("," param-value) 677 Dawson/Stenerson 13 Expires December 1999 678 ; Each property defines the specific ABNF for the parameters 679 ; allowed on the property. Refer to specific properties for 680 ; precise parameter ABNF. 682 param-name = iana-token / x-name 684 param-value = paramtext / quoted-string 686 paramtext = *SAFE-CHAR 688 value = *VALUE-CHAR 690 quoted-string = DQUOTE *QSAFE-CHAR DQUOTE 692 NON-US-ASCII = %x80-F8 693 ; Use restricted by charset parameter 694 ; on outer MIME object (UTF-8 preferred) 696 QSAFE-CHAR = WSP / %x21 / %x23-7E / NON-US-ASCII 697 ; Any character except CTLs and DQUOTE 699 SAFE-CHAR = WSP / %x21 / %x23-2B / %x2D-39 / %x3C-7E 700 / NON-US-ASCII 701 ; Any character except CTLs, DQUOTE, ";", ":", "," 703 VALUE-CHAR = WSP / %x21-7E / NON-US-ASCII 704 ; Any textual character 706 CR = %x0D 707 ; carriage return 709 LF = %x0A 710 ; line feed 712 CRLF = CR LF 713 ; Internet standard newline 715 CTL = %x00-08 / %x0A-1F / %x7F 716 ; Controls 718 ALPHA = %x41-5A / %x61-7A ; A-Z / a-z 720 DIGIT = %x30-39 721 ; 0-9 723 DQUOTE = %x22 724 ; Quotation Mark 726 WSP = SPACE / HTAB 728 SPACE = %x20 730 HTAB = %x09 732 Dawson/Stenerson 14 Expires December 1999 733 The property value component of a content line has a format that is 734 property specific. Refer to the section describing each property for 735 a definition of this format. 737 All names of properties, property parameters, enumerated property 738 values and property parameter values are case-insensitive. However, 739 all other property values are case-sensitive, unless otherwise 740 stated. 742 4.1.1 List and Field Separators 744 Some properties and parameters allow a list of values. Values in a 745 list of values MUST be separated by a COMMA character (US-ASCII 746 decimal 44). There is no significance to the order of values in a 747 list. For those parameter values (such as those that specify URI 748 values) that are specified in quoted-strings, the individual quoted- 749 strings are separated by a COMMA character (US-ASCII decimal 44). 751 Some property values are defined in terms of multiple parts. These 752 structured property values MUST have their value parts separated by a 753 SEMICOLON character (US-ASCII decimal 59). 755 Some properties allow a list of parameters. Each property parameter 756 in a list of property parameters MUST be separated by a SEMICOLON 757 character (US-ASCII decimal 59). 759 Property parameters with values containing a COLON, a SEMICOLON or a 760 COMMA character MUST be placed in quoted text. 762 For example, in the following properties a SEMICOLON is used to 763 separate property parameters from each other, and a COMMA is used to 764 separate property values in a value list. 766 ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT:MAILTO: 767 jsmith@host.com 769 RDATE;VALUE=DATE:19970304,19970504,19970704,19970904 771 4.1.2 Multiple Values 773 Some properties defined in the iCalendar object can have multiple 774 values. The general rule for encoding multi-valued items is to simply 775 create a new content line for each value, including the property 776 name. However, it should be noted that some properties support 777 encoding multiple values in a single property by separating the 778 values with a COMMA character (US-ASCII decimal 44). Individual 779 property definitions should be consulted for determining whether a 780 specific property allows multiple values and in which of these two 781 forms. 783 4.1.3 Binary Content 785 Binary content information in an iCalendar object SHOULD be 786 referenced using a URI within a property value. That is the binary 788 Dawson/Stenerson 15 Expires December 1999 789 content information SHOULD be placed in an external MIME entity that 790 can be referenced by a URI from within the iCalendar object. In 791 applications where this is not feasible, binary content information 792 can be included within an iCalendar object, but only after first 793 encoding it into text using the "BASE64" encoding method defined in 794 [RFC 2045]. Inline binary contact SHOULD only be used in applications 795 whose special circumstances demand that an iCalendar object be 796 expressed as a single entity. A property containing inline binary 797 content information MUST specify the "ENCODING" property parameter. 798 Binary content information placed external to the iCalendar object 799 MUST be referenced by a uniform resource identifier (URI). 801 The following example specifies an "ATTACH" property that references 802 an attachment external to the iCalendar object with a URI reference: 804 ATTACH:http://xyz.com/public/quarterly-report.doc 806 The following example specifies an "ATTACH" property with inline 807 binary encoded content information: 809 ATTACH;FMTTYPE=image/basic;ENCODING=BASE64;VALUE=BINARY: 810 MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1U 811 EBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bmljYXRpb25zIE 812 <...remainder of "BASE64" encoded binary data...> 814 4.1.4 Character Set 816 There is not a property parameter to declare the character set used 817 in a property value. The default character set for an iCalendar 818 object is UTF-8 as defined in [RFC 2279]. 820 The "charset" Content-Type parameter can be used in MIME transports 821 to specify any other IANA registered character set. 823 4.2 Property Parameters 825 A property can have attributes associated with it. These "property 826 parameters" contain meta-information about the property or the 827 property value. Property parameters are provided to specify such 828 information as the location of an alternate text representation for a 829 property value, the language of a text property value, the data type 830 of the property value and other attributes. 832 Property parameter values that contain the COLON (US-ASCII decimal 833 58), SEMICOLON (US-ASCII decimal 59) or COMMA (US-ASCII decimal 44) 834 character separators MUST be specified as quoted-string text values. 835 Property parameter values MUST NOT contain the DOUBLE-QUOTE (US-ASCII 836 decimal 22) character. The DOUBLE-QUOTE (US-ASCII decimal 22) 837 character is used as a delimiter for parameter values that contain 838 restricted characters or URI text. For example: 840 DESCRIPTION;ALTREP="http://www.wiz.org":The Fall'98 Wild Wizards 841 Conference - - Las Vegas, NV, USA 843 Dawson/Stenerson 16 Expires December 1999 844 Property parameter values that are not in quoted strings are case 845 insensitive. 847 The general property parameters defined by this memo are defined by 848 the following notation: 850 parameter = altrepparam ; Alternate text representation 851 / cnparam ; Common name 852 / cutypeparam ; Calendar user type 853 / delfromparam ; Delegator 854 / deltoparam ; Delegatee 855 / dirparam ; Directory entry 856 / encodingparam ; Inline encoding 857 / fmttypeparam ; Format type 858 / fbtypeparam ; Free/busy time type 859 / languageparam ; Language for text 860 / memberparam ; Group or list membership 861 / partstatparam ; Participation status 862 / rangeparam ; Recurrence identifier range 863 / trigrelparam ; Alarm trigger relationship 864 / reltypeparam ; Relationship type 865 / roleparam ; Participation role 866 / rsvpparam ; RSVP expectation 867 / sentbyparam ; Sent by 868 / tzidparam ; Reference to time zone object 869 / valuetypeparam ; Property value data type 870 / ianaparam 871 ; Some other IANA registered iCalendar parameter. 872 / xparam 873 ; A non-standard, experimental parameter. 875 ianaparam = iana-token "=" param-value *("," param-value) 877 xparam =x-name "=" param-value *("," param-value) 879 4.2.1 Alternate Text Representation 881 Parameter Name: ALTREP 883 Purpose: To specify an alternate text representation for the property 884 value. 886 Format Definition: The property parameter is defined by the following 887 notation: 889 altrepparam = "ALTREP" "=" DQUOTE uri DQUOTE 891 Description: The parameter specifies a URI that points to an 892 alternate representation for a textual property value. A property 893 specifying this parameter MUST also include a value that reflects the 894 default representation of the text value. The individual URI 895 parameter values MUST each be specified in a quoted-string. 897 Example: 899 Dawson/Stenerson 17 Expires December 1999 900 DESCRIPTION;ALTREP="CID:":Project 901 XYZ Review Meeting will include the following agenda items: (a) 902 Market Overview, (b) Finances, (c) Project Management 904 The "ALTREP" property parameter value might point to a "text/html" 905 content portion. 907 Content-Type:text/html 908 Content-Id: 910 911

Project XYZ Review Meeting will include the following 912 agenda items:

  1. Market 913 Overview
  2. Finances
  3. Project Management

914 916 4.2.2 Common Name 918 Parameter Name: CN 920 Purpose: To specify the common name to be associated with the 921 calendar user specified by the property. 923 Format Definition: The property parameter is defined by the following 924 notation: 926 cnparam = "CN" "=" param-value 928 Description: This parameter can be specified on properties with a 929 CAL-ADDRESS value type. The parameter specifies the common name to be 930 associated with the calendar user specified by the property. The 931 parameter value is text. The parameter value can be used for display 932 text to be associated with the calendar address specified by the 933 property. 935 Example: 937 ORGANIZER;CN="John Smith":MAILTO:jsmith@host.com 939 4.2.3 Calendar User Type 941 Parameter Name: CUTYPE 943 Purpose: To specify the type of calendar user specified by the 944 property. 946 Format Definition: The property parameter is defined by the following 947 notation: 949 cutypeparam = "CUTYPE" "=" 950 ("INDIVIDUAL" ; An individual 951 / "GROUP" ; A group of individuals 952 / "RESOURCE" ; A physical resource 953 / "ROOM" ; A room resource 955 Dawson/Stenerson 18 Expires December 1999 956 / "UNKNOWN" ; Otherwise not known 957 / x-name ; Experimental type 958 / iana-token) ; Other IANA registered 959 ; type 960 ; Default is INDIVIDUAL 962 Description: This parameter can be specified on properties with a 963 CAL-ADDRESS value type. The parameter identifies the type of calendar 964 user specified by the property. If not specified on a property that 965 allows this parameter, the default is INDIVIDUAL. 967 Example: 969 ATTENDEE;CUTYPE=GROUP:MAILTO:ietf-calsch@imc.org 971 4.2.4 Delegators 973 Parameter Name: DELEGATED-FROM 975 Purpose: To specify the calendar users that have delegated their 976 participation to the calendar user specified by the property. 978 Format Definition: The property parameter is defined by the following 979 notation: 981 delfromparam = "DELEGATED-FROM" "=" DQUOTE cal-address DQUOTE 982 *("," DQUOTE cal-address DQUOTE) 984 Description: This parameter can be specified on properties with a 985 CAL-ADDRESS value type. This parameter can be specified on a property 986 that has a value type of calendar address. This parameter specifies 987 those calendar users that have delegated their participation in a 988 group scheduled event or to-do to the calendar user specified by the 989 property. The value MUST be a MAILTO URI as defined in [RFC 1738]. 990 The individual calendar address parameter values MUST each be 991 specified in a quoted-string. 993 Example: 995 ATTENDEE;DELEGATED-FROM="MAILTO:jsmith@host.com":MAILTO: 996 jdoe@host.com 998 4.2.5 Delegatees 1000 Parameter Name: DELEGATED-TO 1002 Purpose: To specify the calendar users to whom the calendar user 1003 specified by the property has delegated participation. 1005 Format Definition: The property parameter is defined by the following 1006 notation: 1008 deltoparam = "DELEGATED-TO" "=" DQUOTE cal-address DQUOTE 1009 *("," DQUOTE cal-address DQUOTE) 1011 Dawson/Stenerson 19 Expires December 1999 1012 Description: This parameter can be specified on properties with a 1013 CAL-ADDRESS value type. This parameter specifies those calendar users 1014 whom have been delegated participation in a group scheduled event or 1015 to-do by the calendar user specified by the property. The value MUST 1016 be a MAILTO URI as defined in [RFC 1738]. The individual calendar 1017 address parameter values MUST each be specified in a quoted-string. 1019 Example: 1021 ATTENDEE;DELEGATED-TO="MAILTO:jdoe@host.com","MAILTO:jqpublic@ 1022 host.com":MAILTO:jsmith@host.com 1024 4.2.6 Directory Entry Reference 1026 Parameter Name: DIR 1028 Purpose: To specify reference to a directory entry associated with 1029 the calendar user specified by the property. 1031 Format Definition: The property parameter is defined by the following 1032 notation: 1034 dirparam = "DIR" "=" DQUOTE uri DQUOTE 1036 Description: This parameter can be specified on properties with a 1037 CAL-ADDRESS value type. The parameter specifies a reference to the 1038 directory entry associated with the calendar user specified by the 1039 property. The parameter value is a URI. The individual URI parameter 1040 values MUST each be specified in a quoted-string. 1042 Example: 1044 ORGANIZER;DIR="ldap://host.com:6666/o=eDABC%20Industries,c=3DUS?? 1045 (cn=3DBJim%20Dolittle)":MAILTO:jimdo@host1.com 1047 4.2.7 Inline Encoding 1049 Parameter Name: ENCODING 1051 Purpose: To specify an alternate inline encoding for the property 1052 value. 1054 Format Definition: The property parameter is defined by the following 1055 notation: 1057 encodingparam = "ENCODING" "=" 1058 ("8BIT" 1059 ; "8bit" text encoding is defined in [RFC 2045] 1060 / "BASE64" 1061 ; "BASE64" binary encoding format is defined in [RFC 2045] 1062 / iana-token 1063 ; Some other IANA registered iCalendar encoding type 1064 / x-name) 1065 ; A non-standard, experimental encoding type 1067 Dawson/Stenerson 20 Expires December 1999 1068 Description: The property parameter identifies the inline encoding 1069 used in a property value. The default encoding is "8BIT", 1070 corresponding to a property value consisting of text. The "BASE64" 1071 encoding type corresponds to a property value encoded using the 1072 "BASE64" encoding defined in [RFC 2045]. 1074 If the value type parameter is ";VALUE=BINARY", then the inline 1075 encoding parameter MUST be specified with the value 1076 ";ENCODING=BASE64". 1078 Example: 1080 ATTACH;FMTYPE=IMAGE/JPEG;ENCODING=BASE64;VALUE=BINARY:MIICajC 1081 CAdOgAwIBAgICBEUwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDA 1082 qBgNVBAoTI05ldHNjYXBlIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uMRw 1083 <...remainder of "BASE64" encoded binary data...> 1085 4.2.8 Format Type 1087 Parameter Name: FMTTYPE 1089 Purpose: To specify the content type of a referenced object. 1091 Format Definition: The property parameter is defined by the following 1092 notation: 1094 fmttypeparam = "FMTTYPE" "=" iana-token 1095 ; A IANA registered content type 1096 / x-name 1097 ; A non-standard content type 1099 Description: This parameter can be specified on properties that are 1100 used to reference an object. The parameter specifies the content type 1101 of the referenced object. For example, on the "ATTACH" property, a 1102 FTP type URI value does not, by itself, necessarily convey the type 1103 of content associated with the resource. The parameter value MUST be 1104 the TEXT for either an IANA registered content type or a non-standard 1105 content type. 1107 Example: 1109 ATTACH;FMTTYPE=application/binary:ftp://domain.com/pub/docs/ 1110 agenda.doc 1112 4.2.9 Free/Busy Time Type 1114 Parameter Name: FBTYPE 1116 Purpose: To specify the free or busy time type. 1118 Format Definition: The property parameter is defined by the following 1119 notation: 1121 Dawson/Stenerson 21 Expires December 1999 1122 fbtypeparam = "FBTYPE" "=" ("FREE" / "BUSY" 1123 / "BUSY-UNAVAILABLE" / "BUSY-TENTATIVE" 1124 / x-name 1125 ; Some experimental iCalendar data type. 1126 / iana-token) 1127 ; Some other IANA registered iCalendar data type. 1129 Description: The parameter specifies the free or busy time type. The 1130 value FREE indicates that the time interval is free for scheduling. 1131 The value BUSY indicates that the time interval is busy because one 1132 or more events have been scheduled for that interval. The value BUSY- 1133 UNAVAILABLE indicates that the time interval is busy and that the 1134 interval can not be scheduled. The value BUSY-TENTATIVE indicates 1135 that the time interval is busy because one or more events have been 1136 tentatively scheduled for that interval. If not specified on a 1137 property that allows this parameter, the default is BUSY. 1139 Example: The following is an example of this parameter on a FREEBUSY 1140 property. 1142 FREEBUSY;FBTYPE=BUSY:19980415T133000Z/19980415T170000Z 1144 4.2.10 Language 1146 Parameter Name: LANGUAGE 1148 Purpose: To specify the language for text values in a property or 1149 property parameter. 1151 Format Definition: The property parameter is defined by the following 1152 notation: 1154 languageparam = "LANGUAGE" "=" language 1156 language = 1158 Description: This parameter can be specified on properties with a 1159 text value type. The parameter identifies the language of the text in 1160 the property or property parameter value. The value of the "language" 1161 property parameter is that defined in [RFC 1766]. 1163 For transport in a MIME entity, the Content-Language header field can 1164 be used to set the default language for the entire body part. 1165 Otherwise, no default language is assumed. 1167 Example: 1169 SUMMARY;LANGUAGE=us-EN:Company Holiday Party 1171 LOCATION;LANGUAGE=en:Germany 1172 LOCATION;LANGUAGE=no:Tyskland 1174 The following example makes use of the Quoted-Printable encoding in 1175 order to represent non-ASCII characters. 1177 Dawson/Stenerson 22 Expires December 1999 1178 LOCATION;LANGUAGE=da:K=F8benhavn 1179 LOCATION;LANGUAGE=en:Copenhagen 1181 4.2.11 Group or List Membership 1183 Parameter Name: MEMBER 1185 Purpose: To specify the group or list membership of the calendar user 1186 specified by the property. 1188 Format Definition: The property parameter is defined by the following 1189 notation: 1191 memberparam = "MEMBER" "=" DQUOTE cal-address DQUOTE 1192 *("," DQUOTE cal-address DQUOTE) 1194 Description: This parameter can be specified on properties with a 1195 CAL-ADDRESS value type. The parameter identifies the groups or list 1196 membership for the calendar user specified by the property. The 1197 parameter value either a single calendar address in a quoted-string 1198 or a COMMA character (US-ASCII decimal 44) list of calendar 1199 addresses, each in a quoted-string. The individual calendar address 1200 parameter values MUST each be specified in a quoted-string. 1202 Example: 1204 ATTENDEE;MEMBER="MAILTO:ietf-calsch@imc.org":MAILTO:jsmith@host.com 1206 ATTENDEE;MEMBER="MAILTO:projectA@host.com","MAILTO:projectB@host. 1207 com":MAILTO:janedoe@host.com 1209 4.2.12 Participation Status 1211 Parameter Name: PARTSTAT 1213 Purpose: To specify the participation status for the calendar user 1214 specified by the property. 1216 Format Definition: The property parameter is defined by the following 1217 notation: 1219 partstatparam = "PARTSTAT" "=" 1220 ("NEEDS-ACTION" ; Event needs action 1221 / "ACCEPTED" ; Event accepted 1222 / "DECLINED" ; Event declined 1223 / "TENTATIVE" ; Event tentatively 1224 ; accepted 1225 / "DELEGATED" ; Event delegated 1226 / x-name ; Experimental status 1227 / iana-token) ; Other IANA registered 1228 ; status 1229 ; These are the participation statuses for a "VEVENT". Default is 1230 ; NEEDS-ACTION 1232 Dawson/Stenerson 23 Expires December 1999 1233 partstatparam /= "PARTSTAT" "=" 1234 ("NEEDS-ACTION" ; To-do needs action 1235 / "ACCEPTED" ; To-do accepted 1236 / "DECLINED" ; To-do declined 1237 / "TENTATIVE" ; To-do tentatively 1238 ; accepted 1239 / "DELEGATED" ; To-do delegated 1240 / "COMPLETED" ; To-do completed. 1241 ; COMPLETED property has 1242 ;date/time completed. 1243 / "IN-PROCESS" ; To-do in process of 1244 ; being completed 1245 / x-name ; Experimental status 1246 / iana-token) ; Other IANA registered 1247 ; status 1248 ; These are the participation statuses for a "VTODO". Default is 1249 ; NEEDS-ACTION 1251 partstatparam /= "PARTSTAT" "=" 1252 ("NEEDS-ACTION" ; Journal needs action 1253 / "ACCEPTED" ; Journal accepted 1254 / "DECLINED" ; Journal declined 1255 / x-name ; Experimental status 1256 / iana-token) ; Other IANA registered 1257 ; status 1258 ; These are the participation statuses for a "VJOURNAL". Default is 1259 ; NEEDS-ACTION 1261 Description: This parameter can be specified on properties with a 1262 CAL-ADDRESS value type. The parameter identifies the participation 1263 status for the calendar user specified by the property value. The 1264 parameter values differ depending on whether they are associated with 1265 a group scheduled "VEVENT", "VTODO" or "VJOURNAL". The values MUST 1266 match one of the values allowed for the given calendar component. If 1267 not specified on a property that allows this parameter, the default 1268 value is NEEDS-ACTION. 1270 Example: 1272 ATTENDEE;PARTSTAT=DECLINED:MAILTO:jsmith@host.com 1274 4.2.13 Recurrence Identifier Range 1276 Parameter Name: RANGE 1278 Purpose: To specify the effective range of recurrence instances from 1279 the instance specified by the recurrence identifier specified by the 1280 property. 1282 Format Definition: The property parameter is defined by the following 1283 notation: 1285 rangeparam = "RANGE" "=" ("THISANDPRIOR" 1286 ; To specify all instances prior to the recurrence identifier 1288 Dawson/Stenerson 24 Expires December 1999 1289 / "THISANDFUTURE") 1290 ; To specify the instance specified by the recurrence identifier 1291 ; and all subsequent recurrence instances 1293 Description: The parameter can be specified on a property that 1294 specifies a recurrence identifier. The parameter specifies the 1295 effective range of recurrence instances that is specified by the 1296 property. The effective range is from the recurrence identified 1297 specified by the property. If this parameter is not specified an 1298 allowed property, then the default range is the single instance 1299 specified by the recurrence identifier value of the property. The 1300 parameter value can be "THISANDPRIOR" to indicate a range defined by 1301 the recurrence identified value of the property and all prior 1302 instances. The parameter value can also be "THISANDFUTURE" to 1303 indicate a range defined by the recurrence identifier and all 1304 subsequent instances. 1306 Example: 1308 RECURRENCE-ID;RANGE=THISANDPRIOR:19980401T133000Z 1310 4.2.14 Alarm Trigger Relationship 1312 Parameter Name: RELATED 1314 Purpose: To specify the relationship of the alarm trigger with 1315 respect to the start or end of the calendar component. 1317 Format Definition: The property parameter is defined by the following 1318 notation: 1320 trigrelparam = "RELATED" "=" 1321 ("START" ; Trigger off of start 1322 / "END") ; Trigger off of end 1324 Description: The parameter can be specified on properties that 1325 specify an alarm trigger with a DURATION value type. The parameter 1326 specifies whether the alarm will trigger relative to the start or end 1327 of the calendar component. The parameter value START will set the 1328 alarm to trigger off the start of the calendar component; the 1329 parameter value END will set the alarm to trigger off the end of the 1330 calendar component. If the parameter is not specified on an allowable 1331 property, then the default is START. 1333 Example: 1335 TRIGGER;RELATED=END:PT5M 1337 4.2.15 Relationship Type 1339 Parameter Name: RELTYPE 1341 Purpose: To specify the type of hierarchical relationship associated 1342 with the calendar component specified by the property. 1344 Dawson/Stenerson 25 Expires December 1999 1345 Format Definition: The property parameter is defined by the following 1346 notation: 1348 reltypeparam = "RELTYPE" "=" 1349 ("PARENT" ; Parent relationship. Default. 1350 / "CHILD" ; Child relationship 1351 / "SIBLING ; Sibling relationship 1352 / iana-token ; Some other IANA registered 1353 ; iCalendar relationship type 1354 / x-name) ; A non-standard, experimental 1355 ; relationship type 1357 Description: This parameter can be specified on a property that 1358 references another related calendar. The parameter specifies the 1359 hierarchical relationship type of the calendar component referenced 1360 by the property. The parameter value can be PARENT, to indicate that 1361 the referenced calendar component is a superior of calendar 1362 component; CHILD to indicate that the referenced calendar component 1363 is a subordinate of the calendar component; SIBLING to indicate that 1364 the referenced calendar component is a peer of the calendar 1365 component. If this parameter is not specified on an allowable 1366 property, the default relationship type is PARENT. 1368 Example: 1370 RELATED-TO;RELTYPE=SIBLING:<19960401-080045-4000F192713@host.com> 1372 4.2.16 Participation Role 1374 Parameter Name: ROLE 1376 Purpose: To specify the participation role for the calendar user 1377 specified by the property. 1379 Format Definition: The property parameter is defined by the following 1380 notation: 1382 roleparam = "ROLE" "=" 1383 ("CHAIR" ; Indicates chair of the 1384 ; calendar entity 1385 / "REQ-PARTICIPANT" ; Indicates a participant whose 1386 ; participation is required 1387 / "OPT-PARTICIPANT" ; Indicates a participant whose 1388 ; participation is optional 1389 / "NON-PARTICIPANT" ; Indicates a participant who is 1390 ; copied for information 1391 ; purposes only 1392 / x-name ; Experimental role 1393 / iana-token) ; Other IANA role 1394 ; Default is REQ-PARTICIPANT 1396 Description: This parameter can be specified on properties with a 1397 CAL-ADDRESS value type. The parameter specifies the participation 1398 role for the calendar user specified by the property in the group 1400 Dawson/Stenerson 26 Expires December 1999 1401 schedule calendar component. If not specified on a property that 1402 allows this parameter, the default value is REQ-PARTICIPANT. 1404 Example: 1406 ATTENDEE;ROLE=CHAIR:MAILTO:mrbig@host.com 1408 4.2.17 RSVP Expectation 1410 Parameter Name: RSVP 1412 Purpose: To specify whether there is an expectation of a favor of a 1413 reply from the calendar user specified by the property value. 1415 Format Definition: The property parameter is defined by the following 1416 notation: 1418 rsvpparam = "RSVP" "=" ("TRUE" / "FALSE") 1419 ; Default is FALSE 1421 Description: This parameter can be specified on properties with a 1422 CAL-ADDRESS value type. The parameter identifies the expectation of a 1423 reply from the calendar user specified by the property value. This 1424 parameter is used by the "Organizer" to request a participation 1425 status reply from an "Attendee" of a group scheduled event or to-do. 1426 If not specified on a property that allows this parameter, the 1427 default value is FALSE. 1429 Example: 1431 ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host.com 1433 4.2.18 Sent By 1435 Parameter Name: SENT-BY 1437 Purpose: To specify the calendar user that is acting on behalf of the 1438 calendar user specified by the property. 1440 Format Definition: The property parameter is defined by the following 1441 notation: 1443 sentbyparam = "SENT-BY" "=" DQUOTE cal-address DQUOTE 1445 Description: This parameter can be specified on properties with a 1446 CAL-ADDRESS value type. The parameter specifies the calendar user 1447 that is acting on behalf of the calendar user specified by the 1448 property. The parameter value MUST be a MAILTO URI as defined in [RFC 1449 1738]. The individual calendar address parameter values MUST each be 1450 specified in a quoted-string. 1452 Example: 1454 ORGANIZER;SENT-BY:"MAILTO:sray@host.com":MAILTO:jsmith@host.com 1456 Dawson/Stenerson 27 Expires December 1999 1457 4.2.19 Time Zone Identifier 1459 Parameter Name: TZID 1461 Purpose: To specify the identifier for the time zone definition for a 1462 time component in the property value. 1464 Format Definition: This property parameter is defined by the 1465 following notation: 1467 tzidparam = "TZID" "=" [tzidprefix] paramtext CRLF 1469 tzidprefix = "/" 1471 Description: The parameter MUST be specified on the "DTSTART", 1472 "DTEND", "DUE", "EXDATE" and "RDATE" properties when either a DATE- 1473 TIME or TIME value type is specified and when the value is not either 1474 a UTC or a "floating" time. Refer to the DATE-TIME or TIME value type 1475 definition for a description of UTC and "floating time" formats. This 1476 property parameter specifies a text value which uniquely identifies 1477 the "VTIMEZONE" calendar component to be used when evaluating the 1478 time portion of the property. The value of the TZID property 1479 parameter will be equal to the value of the TZID property for the 1480 matching time zone definition. An individual "VTIMEZONE" calendar 1481 component MUST be specified for each unique "TZID" parameter value 1482 specified in the iCalendar object. 1484 The parameter MUST be specified on properties with a DATE-TIME value 1485 if the DATE-TIME is not either a UTC or a "floating" time. 1487 The presence of the SOLIDUS character (US-ASCII decimal 47) as a 1488 prefix, indicates that this TZID represents a unique ID in a globally 1489 defined time zone registry (when such registry is defined). 1491 Note: This document does not define a naming convention for time 1492 zone identifiers. Implementers may want to use the naming 1493 conventions defined in existing time zone specifications such as 1494 the public-domain Olson database [TZ]. The specification of 1495 globally unique time zone identifiers is not addressed by this 1496 document and is left for future study. 1498 The following are examples of this property parameter: 1500 DTSTART;TZID=US-Eastern:19980119T020000 1502 DTEND;TZID=US-Eastern:19980119T030000 1504 The TZID property parameter MUST NOT be applied to DATE-TIME or TIME 1505 properties whose time values are specified in UTC. 1507 The use of local time in a DATE-TIME or TIME value without the TZID 1508 property parameter is to be interpreted as a local time value, 1509 regardless of the existence of "VTIMEZONE" calendar components in the 1510 iCalendar object. 1512 Dawson/Stenerson 28 Expires December 1999 1513 For more information see the sections on the data types DATE-TIME and 1514 TIME. 1516 4.2.20 Value Data Types 1518 Parameter Name: VALUE 1520 Purpose: To explicitly specify the data type format for a property 1521 value. 1523 Format Definition: The "VALUE" property parameter is defined by the 1524 following notation: 1526 valuetypeparam = "VALUE" "=" valuetype 1528 valuetype = ("BINARY" 1529 / "BOOLEAN" 1530 / "CAL-ADDRESS" 1531 / "DATE" 1532 / "DATE-TIME" 1533 / "DURATION" 1534 / "FLOAT" 1535 / "INTEGER" 1536 / "PERIOD" 1537 / "RECUR" 1538 / "TEXT" 1539 / "TIME" 1540 / "URI" 1541 / "UTC-OFFSET" 1542 / x-name 1543 ; Some experimental iCalendar data type. 1544 / iana-token) 1545 ; Some other IANA registered iCalendar data type. 1547 Description: The parameter specifies the data type and format of the 1548 property value. The property values MUST be of a single value type. 1549 For example, a "RDATE" property cannot have a combination of DATE- 1550 TIME and TIME value types. 1552 If the property's value is the default value type, then this 1553 parameter need not be specified. However, if the property's default 1554 value type is overridden by some other allowable value type, then 1555 this parameter MUST be specified. 1557 4.3 Property Value Data Types 1559 The properties in an iCalendar object are strongly typed. The 1560 definition of each property restricts the value to be one of the 1561 value data types, or simply value types, defined in this section. The 1562 value type for a property will either be specified implicitly as the 1563 default value type or will be explicitly specified with the "VALUE" 1564 parameter. If the value type of a property is one of the alternate 1565 valid types, then it MUST be explicitly specified with the "VALUE" 1566 parameter. 1568 Dawson/Stenerson 29 Expires December 1999 1569 4.3.1 Binary 1571 Value Name: BINARY 1573 Purpose: This value type is used to identify properties that contain 1574 a character encoding of inline binary data. For example, an inline 1575 attachment of an object code might be included in an iCalendar 1576 object. 1578 Formal Definition: The value type is defined by the following 1579 notation: 1581 binary = *(4b-char) [b-end] 1582 ; A "BASE64" encoded character string, as defined by [RFC 2045]. 1584 b-end = (2b-char "==") / (3b-char "=") 1586 b-char = ALPHA / DIGIT / "+" / "/" 1588 Description: Property values with this value type MUST also include 1589 the inline encoding parameter sequence of ";ENCODING=BASE64". That 1590 is, all inline binary data MUST first be character encoded using the 1591 "BASE64" encoding method defined in [RFC 2045]. No additional content 1592 value encoding (i.e., BACKSLASH character encoding) is defined for 1593 this value type. 1595 Example: The following is an abridged example of a "BASE64" encoded 1596 binary value data. 1598 ATTACH;VALUE=BINARY;ENCODING=BASE64:MIICajCCAdOgAwIBAgICBEUwDQY 1599 JKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlI 1600 ENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZv 1601 <...remainder of "BASE64" encoded binary data...> 1603 4.3.2 Boolean 1605 Value Name: BOOLEAN 1607 Purpose: This value type is used to identify properties that contain 1608 either a "TRUE" or "FALSE" Boolean value. 1610 Formal Definition: The value type is defined by the following 1611 notation: 1613 boolean = "TRUE" / "FALSE" 1615 Description: These values are case insensitive text. No additional 1616 content value encoding (i.e., BACKSLASH character encoding) is 1617 defined for this value type. 1619 Example: The following is an example of a hypothetical property that 1620 has a BOOLEAN value type: 1622 GIBBERISH:TRUE 1624 Dawson/Stenerson 30 Expires December 1999 1625 4.3.3 Calendar User Address 1627 Value Name: CAL-ADDRESS 1629 Purpose: This value type is used to identify properties that contain 1630 a calendar user address. 1632 Formal Definition: The value type is as defined by the following 1633 notation: 1635 cal-address = uri 1637 Description: The value is a URI as defined by [RFC 1738] or any other 1638 IANA registered form for a URI. When used to address an Internet 1639 email transport address for a calendar user, the value MUST be a 1640 MAILTO URI, as defined by [RFC 1738]. No additional content value 1641 encoding (i.e., BACKSLASH character encoding) is defined for this 1642 value type. 1644 Example: 1646 ATTENDEE:MAILTO:jane_doe@host.com 1648 4.3.4 Date 1650 Value Name: DATE 1652 Purpose: This value type is used to identify values that contain a 1653 calendar date. 1655 Formal Definition: The value type is defined by the following 1656 notation: 1658 date = date-value 1660 date-value = date-fullyear date-month date-mday 1661 date-fullyear = 4DIGIT 1662 date-month = 2DIGIT ;01-12 1663 date-mday = 2DIGIT ;01-28, 01-29, 01-30, 01-31 1664 ;based on month/year 1666 Description: If the property permits, multiple "date" values are 1667 specified as a COMMA character (US-ASCII decimal 44) separated list 1668 of values. The format for the value type is expressed as the [ISO 1669 8601] complete representation, basic format for a calendar date. The 1670 textual format specifies a four-digit year, two-digit month, and two- 1671 digit day of the month. There are no separator characters between the 1672 year, month and day component text. 1674 No additional content value encoding (i.e., BACKSLASH character 1675 encoding) is defined for this value type. 1677 Example: The following represents July 14, 1997: 1679 Dawson/Stenerson 31 Expires December 1999 1680 19970714 1682 4.3.5 Date-Time 1684 Value Name: DATE-TIME 1686 Purpose: This value type is used to identify values that specify a 1687 precise calendar date and time of day. 1689 Formal Definition: The value type is defined by the following 1690 notation: 1692 date-time = date "T" time ;As specified in the date and time 1693 ;value definitions 1695 Description: If the property permits, multiple "date-time" values are 1696 specified as a COMMA character (US-ASCII decimal 44) separated list 1697 of values. No additional content value encoding (i.e., BACKSLASH 1698 character encoding) is defined for this value type. 1700 The "DATE-TIME" data type is used to identify values that contain a 1701 precise calendar date and time of day. The format is based on the 1702 [ISO 8601] complete representation, basic format for a calendar date 1703 and time of day. The text format is a concatenation of the "date", 1704 followed by the LATIN CAPITAL LETTER T character (US-ASCII decimal 1705 84) time designator, followed by the "time" format. 1707 The "DATE-TIME" data type expresses time values in three forms: 1709 The form of date and time with UTC offset MUST NOT be used. For 1710 example, the following is not valid for a date-time value: 1712 DTSTART:19980119T230000-0800 ;Invalid time format 1714 FORM #1: DATE WITH LOCAL TIME 1716 The date with local time form is simply a date-time value that does 1717 not contain the UTC designator nor does it reference a time zone. For 1718 example, the following represents Janurary 18, 1998, at 11 PM: 1720 DTSTART:19980118T230000 1722 Date-time values of this type are said to be "floating" and are not 1723 bound to any time zone in particular. They are used to represent the 1724 same hour, minute, and second value regardless of which time zone is 1725 currently being observed. For example, an event can be defined that 1726 indicates that an individual will be busy from 11:00 AM to 1:00 PM 1727 every day, no matter which time zone the person is in. In these 1728 cases, a local time can be specified. The recipient of an iCalendar 1729 object with a property value consisting of a local time, without any 1730 relative time zone information, SHOULD interpret the value as being 1731 fixed to whatever time zone the ATTENDEE is in at any given moment. 1732 This means that two ATTENDEEs, in different time zones, receiving the 1733 same event definition as a floating time, may be participating in the 1735 Dawson/Stenerson 32 Expires December 1999 1736 event at different actual times. Floating time SHOULD only be used 1737 where that is the reasonable behavior. 1739 In most cases, a fixed time is desired. To properly communicate a 1740 fixed time in a property value, either UTC time or local time with 1741 time zone reference MUST be specified. 1743 The use of local time in a DATE-TIME value without the TZID property 1744 parameter is to be interpreted as floating time, regardless of the 1745 existence of "VTIMEZONE" calendar components in the iCalendar object. 1747 FORM #2: DATE WITH UTC TIME 1749 The date with UTC time, or absolute time, is identified by a LATIN 1750 CAPITAL LETTER Z suffix character (US-ASCII decimal 90), the UTC 1751 designator, appended to the time value. For example, the following 1752 represents January 19, 1998, at 0700 UTC: 1754 DTSTART:19980119T070000Z 1756 The TZID property parameter MUST NOT be applied to DATE-TIME 1757 properties whose time values are specified in UTC. 1759 FORM #3: DATE WITH LOCAL TIME AND TIME ZONE REFERENCE 1761 The date and local time with reference to time zone information is 1762 identified by the use the TZID property parameter to reference the 1763 appropriate time zone definition. TZID is discussed in detail in the 1764 section on Time Zone. For example, the following represents 2 AM in 1765 New York on Janurary 19, 1998: 1767 DTSTART;TZID=US-Eastern:19980119T020000 1769 Example: The following represents July 14, 1997, at 1:30 PM in New 1770 York City in each of the three time formats, using the "DTSTART" 1771 property. 1773 DTSTART:19970714T133000 ;Local time 1774 DTSTART:19970714T173000Z ;UTC time 1775 DTSTART;TZID=US-Eastern:19970714T133000 ;Local time and time 1776 ; zone reference 1778 A time value MUST ONLY specify 60 seconds when specifying the 1779 periodic "leap second" in the time value. For example: 1781 COMPLETED:19970630T235960Z 1783 4.3.6 Duration 1785 Value Name: DURATION 1787 Purpose: This value type is used to identify properties that contain 1788 a duration of time. 1790 Dawson/Stenerson 33 Expires December 1999 1791 Formal Definition: The value type is defined by the following 1792 notation: 1794 dur-value = (["+"] / "-") "P" (dur-date / dur-time / dur-week) 1796 dur-date = dur-day [dur-time] 1797 dur-time = "T" (dur-hour / dur-minute / dur-second) 1798 dur-week = 1*DIGIT "W" 1799 dur-hour = 1*DIGIT "H" [dur-minute] 1800 dur-minute = 1*DIGIT "M" [dur-second] 1801 dur-second = 1*DIGIT "S" 1802 dur-day = 1*DIGIT "D" 1804 Description: If the property permits, multiple "duration" values are 1805 specified by a COMMA character (US-ASCII decimal 44) separated list 1806 of values. The format is expressed as the [ISO 8601] basic format for 1807 the duration of time. The format can represent durations in terms of 1808 weeks, days, hours, minutes, and seconds. 1810 No additional content value encoding (i.e., BACKSLASH character 1811 encoding) are defined for this value type. 1813 Example: A duration of 15 days, 5 hours and 20 seconds would be: 1815 P15DT5H0M20S 1817 A duration of 7 weeks would be: 1819 P7W 1821 4.3.7 Float 1823 Value Name: FLOAT 1825 Purpose: This value type is used to identify properties that contain 1826 a real number value. 1828 Formal Definition: The value type is defined by the following 1829 notation: 1831 float = (["+"] / "-") 1*DIGIT ["." 1*DIGIT] 1833 Description: If the property permits, multiple "float" values are 1834 specified by a COMMA character (US-ASCII decimal 44) separated list 1835 of values. 1837 No additional content value encoding (i.e., BACKSLASH character 1838 encoding) is defined for this value type. 1840 Example: 1842 1000000.0000001 1843 1.333 1844 -3.14 1846 Dawson/Stenerson 34 Expires December 1999 1847 4.3.8 Integer 1849 Value Name:INTEGER 1851 Purpose: This value type is used to identify properties that contain 1852 a signed integer value. 1854 Formal Definition: The value type is defined by the following 1855 notation: 1857 integer = (["+"] / "-") 1*DIGIT 1859 Description: If the property permits, multiple "integer" values are 1860 specified by a COMMA character (US-ASCII decimal 44) separated list 1861 of values. The valid range for "integer" is -2147483648 to 1862 2147483647. If the sign is not specified, then the value is assumed 1863 to be positive. 1865 No additional content value encoding (i.e., BACKSLASH character 1866 encoding) is defined for this value type. 1868 Example: 1870 1234567890 1871 -1234567890 1872 +1234567890 1873 432109876 1875 4.3.9 Period of Time 1877 Value Name: PERIOD 1879 Purpose: This value type is used to identify values that contain a 1880 precise period of time. 1882 Formal Definition: The data type is defined by the following 1883 notation: 1885 period = period-explicit / period-start 1887 period-explicit = date-time "/" date-time 1888 ; [ISO 8601] complete representation basic format for a period of 1889 ; time consisting of a start and end. The start MUST be before the 1890 ; end. 1892 period-start = date-time "/" dur-value 1893 ; [ISO 8601] complete representation basic format for a period of 1894 ; time consisting of a start and positive duration of time. 1896 Description: If the property permits, multiple "period" values are 1897 specified by a COMMA character (US-ASCII decimal 44) separated list 1898 of values. There are two forms of a period of time. First, a period 1899 of time is identified by its start and its end. This format is 1900 expressed as the [ISO 8601] complete representation, basic format for 1902 Dawson/Stenerson 35 Expires December 1999 1903 "DATE-TIME" start of the period, followed by a SOLIDUS character (US- 1904 ASCII decimal 47), followed by the "DATE-TIME" of the end of the 1905 period. The start of the period MUST be before the end of the period. 1906 Second, a period of time can also be defined by a start and a 1907 positive duration of time. The format is expressed as the [ISO 8601] 1908 complete representation, basic format for the "DATE-TIME" start of 1909 the period, followed by a SOLIDUS character (US-ASCII decimal 47), 1910 followed by the [ISO 8601] basic format for "DURATION" of the period. 1912 Example: The period starting at 18:00:00 UTC, on January 1, 1997 and 1913 ending at 07:00:00 UTC on January 2, 1997 would be: 1915 19970101T180000Z/19970102T070000Z 1917 The period start at 18:00:00 on January 1, 1997 and lasting 5 hours 1918 and 30 minutes would be: 1920 19970101T180000Z/PT5H30M 1922 No additional content value encoding (i.e., BACKSLASH character 1923 encoding) is defined for this value type. 1925 4.3.10 Recurrence Rule 1927 Value Name: RECUR 1929 Purpose: This value type is used to identify properties that contain 1930 a recurrence rule specification. 1932 Formal Definition: The value type is defined by the following 1933 notation: 1935 recur = "FREQ" "=" freq *( 1937 ; either UNTIL or COUNT may appear in a 'recur', 1938 ; but UNTIL and COUNT MUST NOT occur in the same 'recur' 1940 ( ";" "UNTIL" "=" enddate ) / 1941 ( ";" "COUNT" "=" 1*DIGIT ) / 1943 ; the rest of these keywords are optional, 1944 ; but MUST NOT occur more than once 1946 ( ";" "INTERVAL" "=" 1*DIGIT ) / 1947 ( ";" "BYSECOND" "=" byseclist ) / 1948 ( ";" "BYMINUTE" "=" byminlist ) / 1949 ( ";" "BYHOUR" "=" byhrlist ) / 1950 ( ";" "BYDAY" "=" bywdaylist ) / 1951 ( ";" "BYMONTHDAY" "=" bymodaylist ) / 1952 ( ";" "BYYEARDAY" "=" byyrdaylist ) / 1953 ( ";" "BYWEEKNO" "=" bywknolist ) / 1954 ( ";" "BYMONTH" "=" bymolist ) / 1955 ( ";" "BYSETPOS" "=" bysplist ) / 1956 ( ";" "WKST" "=" weekday ) / 1958 Dawson/Stenerson 36 Expires December 1999 1959 ( ";" x-name "=" text ) 1960 ) 1962 freq = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY" 1963 / "WEEKLY" / "MONTHLY" / "YEARLY" 1965 enddate = date / date-date ;A UTC value 1967 byseclist = seconds / ( seconds *("," seconds) ) 1969 seconds = 1DIGIT / 2DIGIT ;0 to 59 1971 byminlist = minutes / ( minutes *("," minutes) ) 1973 minutes = 1DIGIT / 2DIGIT ;0 to 59 1975 byhrlist = hour / ( hour *("," hour) ) 1977 hour = 1DIGIT / 2DIGIT ;0 to 23 1979 bywdaylist = weekdaynum / ( weekdaynum *("," weekdaynum) ) 1981 weekdaynum = [([plus] ordwk / minus ordwk)] weekday 1983 plus = "+" 1985 minus = "-" 1987 ordwk = 1DIGIT / 2DIGIT ;1 to 53 1989 weekday = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA" 1990 ;Corresponding to SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, 1991 ;FRIDAY, SATURDAY and SUNDAY days of the week. 1993 bymodaylist = monthdaynum / ( monthdaynum *("," monthdaynum) ) 1995 monthdaynum = ([plus] ordmoday) / (minus ordmoday) 1997 ordmoday = 1DIGIT / 2DIGIT ;1 to 31 1999 byyrdaylist = yeardaynum / ( yeardaynum *("," yeardaynum) ) 2001 yeardaynum = ([plus] ordyrday) / (minus ordyrday) 2003 ordyrday = 1DIGIT / 2DIGIT / 3DIGIT ;1 to 366 2005 bywknolist = weeknum / ( weeknum *("," weeknum) ) 2007 weeknum = ([plus] ordwk) / (minus ordwk) 2009 bymolist = monthnum / ( monthnum *("," monthnum) ) 2011 Dawson/Stenerson 37 Expires December 1999 2012 monthnum = 1DIGIT / 2DIGIT ;1 to 12 2014 bysplist = setposday / ( setposday *("," setposday) ) 2016 setposday = yeardaynum 2018 Description: If the property permits, multiple "recur" values are 2019 specified by a COMMA character (US-ASCII decimal 44) separated list 2020 of values. The value type is a structured value consisting of a list 2021 of one or more recurrence grammar parts. Each rule part is defined by 2022 a NAME=VALUE pair. The rule parts are separated from each other by 2023 the SEMICOLON character (US-ASCII decimal 59). The rule parts are not 2024 ordered in any particular sequence. Individual rule parts MUST only 2025 be specified once. 2027 The FREQ rule part identifies the type of recurrence rule. This rule 2028 part MUST be specified in the recurrence rule. Valid values include 2029 SECONDLY, to specify repeating events based on an interval of a 2030 second or more; MINUTELY, to specify repeating events based on an 2031 interval of a minute or more; HOURLY, to specify repeating events 2032 based on an interval of an hour or more; DAILY, to specify repeating 2033 events based on an interval of a day or more; WEEKLY, to specify 2034 repeating events based on an interval of a week or more; MONTHLY, to 2035 specify repeating events based on an interval of a month or more; and 2036 YEARLY, to specify repeating events based on an interval of a year or 2037 more. 2039 The INTERVAL rule part contains a positive integer representing how 2040 often the recurrence rule repeats. The default value is "1", meaning 2041 every second for a SECONDLY rule, or every minute for a MINUTELY 2042 rule, every hour for an HOURLY rule, every day for a DAILY rule, 2043 every week for a WEEKLY rule, every month for a MONTHLY rule and 2044 every year for a YEARLY rule. 2046 The UNTIL rule part defines a date-time value which bounds the 2047 recurrence rule in an inclusive manner. If the value specified by 2048 UNTIL is synchronized with the specified recurrence, this date or 2049 date-time becomes the last instance of the recurrence. If specified 2050 as a date-time value, then it MUST be specified in an UTC time 2051 format. If not present, and the COUNT rule part is also not present, 2052 the RRULE is considered to repeat forever. 2054 The COUNT rule part defines the number of occurrences at which to 2055 range-bound the recurrence. The "DTSTART" property value, if 2056 specified, counts as the first occurrence. 2058 The BYSECOND rule part specifies a COMMA character (US-ASCII decimal 2059 44) separated list of seconds within a minute. Valid values are 0 to 2060 59. The BYMINUTE rule part specifies a COMMA character (US-ASCII 2061 decimal 44) separated list of minutes within an hour. Valid values 2062 are 0 to 59. The BYHOUR rule part specifies a COMMA character (US- 2063 ASCII decimal 44) separated list of hours of the day. Valid values 2064 are 0 to 23. 2066 Dawson/Stenerson 38 Expires December 1999 2067 The BYDAY rule part specifies a COMMA character (US-ASCII decimal 44) 2068 separated list of days of the week; MO indicates Monday; TU indicates 2069 Tuesday; WE indicates Wednesday; TH indicates Thursday; FR indicates 2070 Friday; SA indicates Saturday; SU indicates Sunday. 2072 Each BYDAY value can also be preceded by a positive (+n) or negative 2073 (-n) integer. If present, this indicates the nth occurrence of the 2074 specific day within the MONTHLY or YEARLY RRULE. For example, within 2075 a MONTHLY rule, +1MO (or simply 1MO) represents the first Monday 2076 within the month, whereas -1MO represents the last Monday of the 2077 month. If an integer modifier is not present, it means all days of 2078 this type within the specified frequency. For example, within a 2079 MONTHLY rule, MO represents all Mondays within the month. 2081 The BYMONTHDAY rule part specifies a COMMA character (ASCII decimal 2082 44) separated list of days of the month. Valid values are 1 to 31 or 2083 -31 to -1. For example, -10 represents the tenth to the last day of 2084 the month. 2086 The BYYEARDAY rule part specifies a COMMA character (US-ASCII 2087 decimal 44) separated list of days of the year. Valid values are 1 to 2088 366 or -366 to -1. For example, -1 represents the last day of the 2089 year (December 31st) and -306 represents the 306th to the last day of 2090 the year (March 1st). 2092 The BYWEEKNO rule part specifies a COMMA character (US-ASCII decimal 2093 44) separated list of ordinals specifying weeks of the year. Valid 2094 values are 1 to 53 or -53 to -1. This corresponds to weeks according 2095 to week numbering as defined in [ISO 8601]. A week is defined as a 2096 seven day period, starting on the day of the week defined to be the 2097 week start (see WKST). Week number one of the calendar year is the 2098 first week which contains at least four (4) days in that calendar 2099 year. This rule part is only valid for YEARLY rules. For example, 3 2100 represents the third week of the year. 2102 Note: Assuming a Monday week start, week 53 can only occur when 2103 Thursday is January 1 or if it is a leap year and Wednesday is 2104 January 1. 2106 The BYMONTH rule part specifies a COMMA character (US-ASCII decimal 2107 44) separated list of months of the year. Valid values are 1 to 12. 2109 The WKST rule part specifies the day on which the workweek starts. 2110 Valid values are MO, TU, WE, TH, FR, SA and SU. This is significant 2111 when a WEEKLY RRULE has an interval greater than 1, and a BYDAY rule 2112 part is specified. This is also significant when in a YEARLY RRULE 2113 when a BYWEEKNO rule part is specified. The default value is MO. 2115 The BYSETPOS rule part specifies a COMMA character (US-ASCII decimal 2116 44) separated list of values which corresponds to the nth occurrence 2117 within the set of events specified by the rule. Valid values are 1 to 2118 366 or -366 to -1. It MUST only be used in conjunction with another 2119 BYxxx rule part. For example "the last work day of the month" could 2120 be represented as: 2122 Dawson/Stenerson 39 Expires December 1999 2123 RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1 2125 Each BYSETPOS value can include a positive (+n) or negative (-n) 2126 integer. If present, this indicates the nth occurrence of the 2127 specific occurrence within the set of events specified by the rule. 2129 If BYxxx rule part values are found which are beyond the available 2130 scope (ie, BYMONTHDAY=30 in February), they are simply ignored. 2132 Information, not contained in the rule, necessary to determine the 2133 various recurrence instance start time and dates are derived from the 2134 Start Time (DTSTART) entry attribute. For example, 2135 "FREQ=YEARLY;BYMONTH=1" doesn't specify a specific day within the 2136 month or a time. This information would be the same as what is 2137 specified for DTSTART. 2139 BYxxx rule parts modify the recurrence in some manner. BYxxx rule 2140 parts for a period of time which is the same or greater than the 2141 frequency generally reduce or limit the number of occurrences of the 2142 recurrence generated. For example, "FREQ=DAILY;BYMONTH=1" reduces the 2143 number of recurrence instances from all days (if BYMONTH tag is not 2144 present) to all days in January. BYxxx rule parts for a period of 2145 time less than the frequency generally increase or expand the number 2146 of occurrences of the recurrence. For example, 2147 "FREQ=YEARLY;BYMONTH=1,2" increases the number of days within the 2148 yearly recurrence set from 1 (if BYMONTH tag is not present) to 2. 2150 If multiple BYxxx rule parts are specified, then after evaluating the 2151 specified FREQ and INTERVAL rule parts, the BYxxx rule parts are 2152 applied to the current set of evaluated occurrences in the following 2153 order: BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY, BYHOUR, 2154 BYMINUTE, BYSECOND and BYSETPOS; then COUNT and UNTIL are evaluated. 2156 Here is an example of evaluating multiple BYxxx rule parts. 2158 DTSTART;TZID=US-Eastern:19970105T083000 2159 RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9; 2160 BYMINUTE=30 2162 First, the "INTERVAL=2" would be applied to "FREQ=YEARLY" to arrive 2163 at "every other year". Then, "BYMONTH=1" would be applied to arrive 2164 at "every January, every other year". Then, "BYDAY=SU" would be 2165 applied to arrive at "every Sunday in January, every other year". 2166 Then, "BYHOUR=8,9" would be applied to arrive at "every Sunday in 2167 January at 8 AM and 9 AM, every other year". Then, "BYMINUTE=30" 2168 would be applied to arrive at "every Sunday in January at 8:30 AM and 2169 9:30 AM, every other year". Then, lacking information from RRULE, the 2170 second is derived from DTSTART, to end up in "every Sunday in January 2171 at 8:30:00 AM and 9:30:00 AM, every other year". Similarly, if the 2172 BYMINUTE, BYHOUR, BYDAY, BYMONTHDAY or BYMONTH rule part were 2173 missing, the appropriate minute, hour, day or month would have been 2174 retrieved from the "DTSTART" property. 2176 Dawson/Stenerson 40 Expires December 1999 2177 No additional content value encoding (i.e., BACKSLASH character 2178 encoding) is defined for this value type. 2180 Example: The following is a rule which specifies 10 meetings which 2181 occur every other day: 2183 FREQ=DAILY;COUNT=10;INTERVAL=2 2185 There are other examples specified in the "RRULE" specification. 2187 4.3.11 Text 2189 Value Name: TEXT 2191 Purpose This value type is used to identify values that contain human 2192 readable text. 2194 Formal Definition: The character sets supported by this revision of 2195 iCalendar are UTF-8 and US ASCII thereof. The applicability to other 2196 character sets is for future work. The value type is defined by the 2197 following notation. 2199 text = *(TSAFE-CHAR / ":" / DQUOTE / ESCAPED-CHAR) 2200 ; Folded according to description above 2202 ESCAPED-CHAR = ("\\" / "\;" / "\," / "\N" / "\n") 2203 ; \\ encodes \, \N or \n encodes newline 2204 ; \; encodes ;, \, encodes , 2206 TSAFE-CHAR = %x20-21 / %x23-2B / %x2D-39 / %x3C-5B 2207 %x5D-7E / NON-US-ASCII 2208 ; Any character except CTLs not needed by the current 2209 ; character set, DQUOTE, ";", ":", "\", "," 2211 Note: Certain other character sets may require modification of the 2212 above definitions, but this is beyond the scope of this document. 2214 Description: If the property permits, multiple "text" values are 2215 specified by a COMMA character (US-ASCII decimal 44) separated list 2216 of values. 2218 The language in which the text is represented can be controlled by 2219 the "LANGUAGE" property parameter. 2221 An intentional formatted text line break MUST only be included in a 2222 "TEXT" property value by representing the line break with the 2223 character sequence of BACKSLASH (US-ASCII decimal 92), followed by a 2224 LATIN SMALL LETTER N (US-ASCII decimal 110) or a LATIN CAPITAL LETTER 2225 N (US-ASCII decimal 78), that is "\n" or "\N". 2227 The "TEXT" property values may also contain special characters that 2228 are used to signify delimiters, such as a COMMA character for lists 2229 of values or a SEMICOLON character for structured values. In order to 2230 support the inclusion of these special characters in "TEXT" property 2232 Dawson/Stenerson 41 Expires December 1999 2233 values, they MUST be escaped with a BACKSLASH character. A BACKSLASH 2234 character (US-ASCII decimal 92) in a "TEXT" property value MUST be 2235 escaped with another BACKSLASH character. A COMMA character in a 2236 "TEXT" property value MUST be escaped with a BACKSLASH character (US- 2237 ASCII decimal 92). A SEMICOLON character in a "TEXT" property value 2238 MUST be escaped with a BACKSLASH character (US-ASCII decimal 92). 2239 However, a COLON character in a "TEXT" property value SHALL NOT be 2240 escaped with a BACKSLASH character.Example: A multiple line value of: 2242 Project XYZ Final Review 2243 Conference Room - 3B 2244 Come Prepared. 2246 would be represented as: 2248 Project XYZ Final Review\nConference Room - 3B\nCome Prepared. 2250 4.3.12 Time 2252 Value Name: TIME 2254 Purpose: This value type is used to identify values that contain a 2255 time of day. 2257 Formal Definition: The data type is defined by the following 2258 notation: 2260 time = time-hour time-minute time-second [time-utc] 2262 time-hour = 2DIGIT ;00-23 2263 time-minute = 2DIGIT ;00-59 2264 time-second = 2DIGIT ;00-60 2265 ;The "60" value is used to account for "leap" seconds. 2267 time-utc = "Z" 2269 Description: If the property permits, multiple "time" values are 2270 specified by a COMMA character (US-ASCII decimal 44) separated list 2271 of values. No additional content value encoding (i.e., BACKSLASH 2272 character encoding) is defined for this value type. 2274 The "TIME" data type is used to identify values that contain a time 2275 of day. The format is based on the [ISO 8601] complete 2276 representation, basic format for a time of day. The text format 2277 consists of a two-digit 24-hour of the day (i.e., values 0-23), two- 2278 digit minute in the hour (i.e., values 0-59), and two-digit seconds 2279 in the minute (i.e., values 0-60). The seconds value of 60 MUST only 2280 to be used to account for "leap" seconds. Fractions of a second are 2281 not supported by this format. 2283 In parallel to the "DATE-TIME" definition above, the "TIME" data type 2284 expresses time values in three forms: 2286 Dawson/Stenerson 42 Expires December 1999 2287 The form of time with UTC offset MUST NOT be used. For example, the 2288 following is NOT VALID for a time value: 2290 230000-0800 ;Invalid time format 2292 FORM #1 LOCAL TIME 2294 The local time form is simply a time value that does not contain the 2295 UTC designator nor does it reference a time zone. For example, 11:00 2296 PM: 2298 230000 2300 Time values of this type are said to be "floating" and are not bound 2301 to any time zone in particular. They are used to represent the same 2302 hour, minute, and second value regardless of which time zone is 2303 currently being observed. For example, an event can be defined that 2304 indicates that an individual will be busy from 11:00 AM to 1:00 PM 2305 every day, no matter which time zone the person is in. In these 2306 cases, a local time can be specified. The recipient of an iCalendar 2307 object with a property value consisting of a local time, without any 2308 relative time zone information, SHOULD interpret the value as being 2309 fixed to whatever time zone the ATTENDEE is in at any given moment. 2310 This means that two ATTENDEEs may participate in the same event at 2311 different UTC times; floating time SHOULD only be used where that is 2312 reasonable behavior. 2314 In most cases, a fixed time is desired. To properly communicate a 2315 fixed time in a property value, either UTC time or local time with 2316 time zone reference MUST be specified. 2318 The use of local time in a TIME value without the TZID property 2319 parameter is to be interpreted as a local time value, regardless of 2320 the existence of "VTIMEZONE" calendar components in the iCalendar 2321 object. 2323 FORM #2: UTC TIME 2325 UTC time, or absolute time, is identified by a LATIN CAPITAL LETTER Z 2326 suffix character (US-ASCII decimal 90), the UTC designator, appended 2327 to the time value. For example, the following represents 07:00 AM 2328 UTC: 2330 070000Z 2332 The TZID property parameter MUST NOT be applied to TIME properties 2333 whose time values are specified in UTC. 2335 FORM #3: LOCAL TIME AND TIME ZONE REFERENCE 2337 The local time with reference to time zone information form is 2338 identified by the use the TZID property parameter to reference the 2339 appropriate time zone definition. TZID is discussed in detail in the 2340 section on Time Zone. 2342 Dawson/Stenerson 43 Expires December 1999 2343 Example: The following represents 8:30 AM in New York in Winter, five 2344 hours behind UTC, in each of the three formats using the "X- 2345 TIMEOFDAY" non-standard property: 2347 X-TIMEOFDAY:083000 2349 X-TIMEOFDAY:133000Z 2351 X-TIMEOFDAY;TZID=US-Eastern:083000 2353 4.3.13 URI 2355 Value Name: URI 2357 Purpose: This value type is used to identify values that contain a 2358 uniform resource identifier (URI) type of reference to the property 2359 value. 2361 Formal Definition: The data type is defined by the following 2362 notation: 2364 uri = 2366 Description: This data type might be used to reference binary 2367 information, for values that are large, or otherwise undesirable to 2368 include directly in the iCalendar object. 2370 The URI value formats in RFC 1738, RFC 2111 and any other IETF 2371 registered value format can be specified. 2373 Any IANA registered URI format can be used. These include, but are 2374 not limited to, those defined in RFC 1738 and RFC 2111. 2376 When a property parameter value is a URI value type, the URI MUST be 2377 specified as a quoted-string value. 2379 No additional content value encoding (i.e., BACKSLASH character 2380 encoding) is defined for this value type. 2382 Example: The following is a URI for a network file: 2384 http://host1.com/my-report.txt 2386 4.3.14 UTC Offset 2388 Value Name: UTC-OFFSET 2390 Purpose: This value type is used to identify properties that contain 2391 an offset from UTC to local time. 2393 Formal Definition: The data type is defined by the following 2394 notation: 2396 utc-offset = time-numzone ;As defined above in time data type 2398 Dawson/Stenerson 44 Expires December 1999 2399 time-numzone = ("+" / "-") time-hour time-minute [time- 2400 second] 2402 Description: The PLUS SIGN character MUST be specified for positive 2403 UTC offsets (i.e., ahead of UTC). The value of "-0000" and "-000000" 2404 are not allowed. The time-second, if present, may not be 60; if 2405 absent, it defaults to zero. 2407 No additional content value encoding (i.e., BACKSLASH character 2408 encoding) is defined for this value type. 2410 Example: The following UTC offsets are given for standard time for 2411 New York (five hours behind UTC) and Geneva (one hour ahead of UTC): 2413 -0500 2415 +0100 2417 4.4 iCalendar Object 2419 The Calendaring and Scheduling Core Object is a collection of 2420 calendaring and scheduling information. Typically, this information 2421 will consist of a single iCalendar object. However, multiple 2422 iCalendar objects can be sequentially grouped together. The first 2423 line and last line of the iCalendar object MUST contain a pair of 2424 iCalendar object delimiter strings. The syntax for an iCalendar 2425 object is as follows: 2427 icalobject = 1*("BEGIN" ":" "VCALENDAR" CRLF 2428 icalbody 2429 "END" ":" "VCALENDAR" CRLF) 2431 The following is a simple example of an iCalendar object: 2433 BEGIN:VCALENDAR 2434 VERSION:2.0 2435 PRODID:-//hacksw/handcal//NONSGML v1.0//EN 2436 BEGIN:VEVENT 2437 DTSTART:19970714T170000Z 2438 DTEND:19970715T035959Z 2439 SUMMARY:Bastille Day Party 2440 END:VEVENT 2441 END:VCALENDAR 2443 4.5 Property 2445 A property is the definition of an individual attribute describing a 2446 calendar or a calendar component. A property takes the form defined 2447 by the "contentline" notation defined in section 4.1.1. 2449 The following is an example of a property: 2451 DTSTART:19960415T133000Z 2453 Dawson/Stenerson 45 Expires December 1999 2454 This memo imposes no ordering of properties within an iCalendar 2455 object. 2457 Property names, parameter names and enumerated parameter values are 2458 case insensitive. For example, the property name "DUE" is the same as 2459 "due" and "Due", DTSTART;TZID=US-Eastern:19980714T120000 is the same 2460 as DtStart;TzID=US-Eastern:19980714T120000. 2462 4.6 Calendar Components 2464 The body of the iCalendar object consists of a sequence of calendar 2465 properties and one or more calendar components. The calendar 2466 properties are attributes that apply to the calendar as a whole. The 2467 calendar components are collections of properties that express a 2468 particular calendar semantic. For example, the calendar component can 2469 specify an event, a to-do, a journal entry, time zone information, or 2470 free/busy time information, or an alarm. 2472 The body of the iCalendar object is defined by the following 2473 notation: 2475 icalbody = calprops component 2477 calprops = 2*( 2479 ; 'prodid' and 'version' are both REQUIRED, 2480 ; but MUST NOT occur more than once 2482 prodid /version / 2484 ; 'calscale' and 'method' are optional, 2485 ; but MUST NOT occur more than once 2487 calscale / 2488 method / 2490 x-prop 2492 ) 2494 component = 1*(eventc / todoc / journalc / freebusyc / 2495 / timezonec / iana-comp / x-comp) 2497 iana-comp = "BEGIN" ":" iana-token CRLF 2499 1*contentline 2501 "END" ":" iana-token CRLF 2503 x-comp = "BEGIN" ":" x-name CRLF 2505 1*contentline 2507 "END" ":" x-name CRLF 2509 Dawson/Stenerson 46 Expires December 1999 2510 An iCalendar object MUST include the "PRODID" and "VERSION" calendar 2511 properties. In addition, it MUST include at least one calendar 2512 component. Special forms of iCalendar objects are possible to publish 2513 just busy time (i.e., only a "VFREEBUSY" calendar component) or time 2514 zone (i.e., only a "VTIMEZONE" calendar component) information. In 2515 addition, a complex iCalendar object is possible that is used to 2516 capture a complete snapshot of the contents of a calendar (e.g., 2517 composite of many different calendar components). More commonly, an 2518 iCalendar object will consist of just a single "VEVENT", "VTODO" or 2519 "VJOURNAL" calendar component. 2521 4.6.1 Event Component 2523 Component Name: "VEVENT" 2525 Purpose: Provide a grouping of component properties that describe an 2526 event. 2528 Format Definition: A "VEVENT" calendar component is defined by the 2529 following notation: 2531 eventc = "BEGIN" ":" "VEVENT" CRLF 2532 eventprop *alarmc 2533 "END" ":" "VEVENT" CRLF 2535 eventprop = *( 2537 ; the following are optional, 2538 ; but MUST NOT occur more than once 2540 class / created / description / dtstart / geo / 2541 last-mod / location / organizer / priority / 2542 dtstamp / seq / status / summary / transp / 2543 uid / url / recurid / 2545 ; either 'dtend' or 'duration' may appear in 2546 ; a 'eventprop', but 'dtend' and 'duration' 2547 ; MUST NOT occur in the same 'eventprop' 2549 dtend / duration / 2551 ; the following are optional, 2552 ; and MAY occur more than once 2554 attach / attendee / categories / comment / 2555 contact / exdate / exrule / rstatus / related / 2556 resources / rdate / rrule / x-prop 2558 ) 2560 Description: A "VEVENT" calendar component is a grouping of component 2561 properties, and possibly including "VALARM" calendar components, that 2562 represents a scheduled amount of time on a calendar. For example, it 2563 can be an activity; such as a one-hour long, department meeting from 2565 Dawson/Stenerson 47 Expires December 1999 2566 8:00 AM to 9:00 AM, tomorrow. Generally, an event will take up time 2567 on an individual calendar. Hence, the event will appear as an opaque 2568 interval in a search for busy time. Alternately, the event can have 2569 its Time Transparency set to "TRANSPARENT" in order to prevent 2570 blocking of the event in searches for busy time. 2572 The "VEVENT" is also the calendar component used to specify an 2573 anniversary or daily reminder within a calendar. These events have a 2574 DATE value type for the "DTSTART" property instead of the default 2575 data type of DATE-TIME. If such a "VEVENT" has a "DTEND" property, it 2576 MUST be specified as a DATE value also. The anniversary type of 2577 "VEVENT" can span more than one date (i.e, "DTEND" property value is 2578 set to a calendar date after the "DTSTART" property value). 2580 The "DTSTART" property for a "VEVENT" specifies the inclusive start 2581 of the event. For recurring events, it also specifies the very first 2582 instance in the recurrence set. The "DTEND" property for a "VEVENT" 2583 calendar component specifies the non-inclusive end of the event. For 2584 cases where a "VEVENT" calendar component specifies a "DTSTART" 2585 property with a DATE data type but no "DTEND" property, the events 2586 non-inclusive end is the end of the calendar date specified by the 2587 "DTSTART" property. For cases where a "VEVENT" calendar component 2588 specifies a "DTSTART" property with a DATE-TIME data type but no 2589 "DTEND" property, the event ends on the same calendar date and time 2590 of day specified by the "DTSTART" property. 2592 The "VEVENT" calendar component cannot be nested within another 2593 calendar component. However, "VEVENT" calendar components can be 2594 related to each other or to a "VTODO" or to a "VJOURNAL" calendar 2595 component with the "RELATED-TO" property. 2597 Example: The following is an example of the "VEVENT" calendar 2598 component used to represent a meeting that will also be opaque to 2599 searches for busy time: 2601 BEGIN:VEVENT 2602 UID:19970901T130000Z-123401@host.com 2603 DTSTAMP:19970901T1300Z 2604 DTSTART:19970903T163000Z 2605 DTEND:19970903T190000Z 2606 SUMMARY:Annual Employee Review 2607 CLASS:PRIVATE 2608 CATEGORIES:BUSINESS,HUMAN RESOURCES 2609 END:VEVENT 2611 The following is an example of the "VEVENT" calendar component used 2612 to represent a reminder that will not be opaque, but rather 2613 transparent, to searches for busy time: 2615 BEGIN:VEVENT 2616 UID:19970901T130000Z-123402@host.com 2617 DTSTAMP:19970901T1300Z 2618 DTSTART:19970401T163000Z 2619 DTEND:19970402T010000Z 2621 Dawson/Stenerson 48 Expires December 1999 2622 SUMMARY:Laurel is in sensitivity awareness class. 2623 CLASS:PUBLIC 2624 CATEGORIES:BUSINESS,HUMAN RESOURCES 2625 TRANSP:TRANSPARENT 2626 END:VEVENT 2628 The following is an example of the "VEVENT" calendar component used 2629 to represent an anniversary that will occur annually. Since it takes 2630 up no time, it will not appear as opaque in a search for busy time; 2631 no matter what the value of the "TRANSP" property indicates: 2633 BEGIN:VEVENT 2634 UID:19970901T130000Z-123403@host.com 2635 DTSTAMP:19970901T1300Z 2636 DTSTART:19971102 2637 SUMMARY:Our Blissful Anniversary 2638 CLASS:CONFIDENTIAL 2639 CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION 2640 RRULE:FREQ=YEARLY 2641 END:VEVENT 2643 4.6.2 To-do Component 2645 Component Name: VTODO 2647 Purpose: Provide a grouping of calendar properties that describe a 2648 to-do. 2650 Formal Definition: A "VTODO" calendar component is defined by the 2651 following notation: 2653 todoc = "BEGIN" ":" "VTODO" CRLF 2654 todoprop *alarmc 2655 "END" ":" "VTODO" CRLF 2657 todoprop = *( 2659 ; the following are optional, 2660 ; but MUST NOT occur more than once 2662 class / completed / created / description / dtstamp / 2663 dtstart / geo / last-mod / location / organizer / 2664 percent / priority / recurid / seq / status / 2665 summary / uid / url / 2667 ; either 'due' or 'duration' may appear in 2668 ; a 'todoprop', but 'due' and 'duration' 2669 ; MUST NOT occur in the same 'todoprop' 2671 due / duration / 2673 ; the following are optional, 2674 ; and MAY occur more than once 2676 Dawson/Stenerson 49 Expires December 1999 2677 attach / attendee / categories / comment / contact / 2678 exdate / exrule / rstatus / related / resources / 2679 rdate / rrule / x-prop 2681 ) 2683 Description: A "VTODO" calendar component is a grouping of component 2684 properties and possibly "VALARM" calendar components that represent 2685 an action-item or assignment. For example, it can be used to 2686 represent an item of work assigned to an individual; such as "turn in 2687 travel expense today". 2689 The "VTODO" calendar component cannot be nested within another 2690 calendar component. However, "VTODO" calendar components can be 2691 related to each other or to a "VTODO" or to a "VJOURNAL" calendar 2692 component with the "RELATED-TO" property. 2694 A "VTODO" calendar component without the "DTSTART" and "DUE" (or 2695 "DURATION") properties specifies a to-do that will be associated with 2696 each successive calendar date, until it is completed. 2698 Example: The following is an example of a "VTODO" calendar component: 2700 BEGIN:VTODO 2701 UID:19970901T130000Z-123404@host.com 2702 DTSTAMP:19970901T1300Z 2703 DTSTART:19970415T133000Z 2704 DUE:19970416T045959Z 2705 SUMMARY:1996 Income Tax Preparation 2706 CLASS:CONFIDENTIAL 2707 CATEGORIES:FAMILY,FINANCE 2708 PRIORITY:1 2709 STATUS:NEEDS-ACTION 2710 END:VTODO 2712 4.6.3 Journal Component 2714 Component Name: VJOURNAL 2716 Purpose: Provide a grouping of component properties that describe a 2717 journal entry. 2719 Formal Definition: A "VJOURNAL" calendar component is defined by the 2720 following notation: 2722 journalc = "BEGIN" ":" "VJOURNAL" CRLF 2723 jourprop 2724 "END" ":" "VJOURNAL" CRLF 2726 jourprop = *( 2728 ; the following are optional, 2729 ; but MUST NOT occur more than once 2731 Dawson/Stenerson 50 Expires December 1999 2732 class / created / description / dtstart / dtstamp / 2733 last-mod / organizer / recurid / seq / status / 2734 summary / uid / url / 2736 ; the following are optional, 2737 ; and MAY occur more than once 2739 attach / attendee / categories / comment / 2740 contact / exdate / exrule / related / rdate / 2741 rrule / rstatus / x-prop 2743 ) 2745 Description: A "VJOURNAL" calendar component is a grouping of 2746 component properties that represent one or more descriptive text 2747 notes associated with a particular calendar date. The "DTSTART" 2748 property is used to specify the calendar date that the journal entry 2749 is associated with. Generally, it will have a DATE value data type, 2750 but it can also be used to specify a DATE-TIME value data type. 2751 Examples of a journal entry include a daily record of a legislative 2752 body or a journal entry of individual telephone contacts for the day 2753 or an ordered list of accomplishments for the day. The "VJOURNAL" 2754 calendar component can also be used to associate a document with a 2755 calendar date. 2757 The "VJOURNAL" calendar component does not take up time on a 2758 calendar. Hence, it does not play a role in free or busy time 2759 searches - - it is as though it has a time transparency value of 2760 TRANSPARENT. It is transparent to any such searches. 2762 The "VJOURNAL" calendar component cannot be nested within another 2763 calendar component. However, "VJOURNAL" calendar components can be 2764 related to each other or to a "VEVENT" or to a "VTODO" calendar 2765 component, with the "RELATED-TO" property. 2767 Example: The following is an example of the "VJOURNAL" calendar 2768 component: 2770 BEGIN:VJOURNAL 2771 UID:19970901T130000Z-123405@host.com 2772 DTSTAMP:19970901T1300Z 2773 DTSTART;VALUE=DATE:19970317 2774 SUMMARY:Staff meeting minutes 2775 DESCRIPTION:1. Staff meeting: Participants include Joe\, Lisa 2776 and Bob. Aurora project plans were reviewed. There is currently 2777 no budget reserves for this project. Lisa will escalate to 2778 management. Next meeting on Tuesday.\n 2779 2. Telephone Conference: ABC Corp. sales representative called 2780 to discuss new printer. Promised to get us a demo by Friday.\n 2781 3. Henry Miller (Handsoff Insurance): Car was totaled by tree. 2782 Is looking into a loaner car. 654-2323 (tel). 2783 END:VJOURNAL 2785 Dawson/Stenerson 51 Expires December 1999 2786 4.6.4 Free/Busy Component 2788 Component Name: VFREEBUSY 2790 Purpose: Provide a grouping of component properties that describe 2791 either a request for free/busy time, describe a response to a request 2792 for free/busy time or describe a published set of busy time. 2794 Formal Definition: A "VFREEBUSY" calendar component is defined by the 2795 following notation: 2797 freebusyc = "BEGIN" ":" "VFREEBUSY" CRLF 2798 fbprop 2799 "END" ":" "VFREEBUSY" CRLF 2801 fbprop = *( 2803 ; the following are optional, 2804 ; but MUST NOT occur more than once 2806 contact / dtstart / dtend / duration / dtstamp / 2807 organizer / uid / url / 2809 ; the following are optional, 2810 ; and MAY occur more than once 2812 attendee / comment / freebusy / rstatus / x-prop 2814 ) 2816 Description: A "VFREEBUSY" calendar component is a grouping of 2817 component properties that represents either a request for, a reply to 2818 a request for free or busy time information or a published set of 2819 busy time information. 2821 When used to request free/busy time information, the "ATTENDEE" 2822 property specifies the calendar users whose free/busy time is being 2823 requested; the "ORGANIZER" property specifies the calendar user who 2824 is requesting the free/busy time; the "DTSTART" and "DTEND" 2825 properties specify the window of time for which the free/busy time is 2826 being requested; the "UID" and "DTSTAMP" properties are specified to 2827 assist in proper sequencing of multiple free/busy time requests. 2829 When used to reply to a request for free/busy time, the "ATTENDEE" 2830 property specifies the calendar user responding to the free/busy time 2831 request; the "ORGANIZER" property specifies the calendar user that 2832 originally requested the free/busy time; the "FREEBUSY" property 2833 specifies the free/busy time information (if it exists); and the 2834 "UID" and "DTSTAMP" properties are specified to assist in proper 2835 sequencing of multiple free/busy time replies. 2837 When used to publish busy time, the "ORGANIZER" property specifies 2838 the calendar user associated with the published busy time; the 2839 "DTSTART" and "DTEND" properties specify an inclusive time window 2841 Dawson/Stenerson 52 Expires December 1999 2842 that surrounds the busy time information; the "FREEBUSY" property 2843 specifies the published busy time information; and the "DTSTAMP" 2844 property specifies the date/time that iCalendar object was created. 2846 The "VFREEBUSY" calendar component cannot be nested within another 2847 calendar component. Multiple "VFREEBUSY" calendar components can be 2848 specified within an iCalendar object. This permits the grouping of 2849 Free/Busy information into logical collections, such as monthly 2850 groups of busy time information. 2852 The "VFREEBUSY" calendar component is intended for use in iCalendar 2853 object methods involving requests for free time, requests for busy 2854 time, requests for both free and busy, and the associated replies. 2856 Free/Busy information is represented with the "FREEBUSY" property. 2857 This property provides a terse representation of time periods. One or 2858 more "FREEBUSY" properties can be specified in the "VFREEBUSY" 2859 calendar component. 2861 When present in a "VFREEBUSY" calendar component, the "DTSTART" and 2862 "DTEND" properties SHOULD be specified prior to any "FREEBUSY" 2863 properties. In a free time request, these properties can be used in 2864 combination with the "DURATION" property to represent a request for a 2865 duration of free time within a specified window of time. 2867 The recurrence properties ("RRULE", "EXRULE", "RDATE", "EXDATE") are 2868 not permitted within a "VFREEBUSY" calendar component. Any recurring 2869 events are resolved into their individual busy time periods using the 2870 "FREEBUSY" property. 2872 Example: The following is an example of a "VFREEBUSY" calendar 2873 component used to request free or busy time information: 2875 BEGIN:VFREEBUSY 2876 ORGANIZER:MAILTO:jane_doe@host1.com 2877 ATTENDEE:MAILTO:john_public@host2.com 2878 DTSTART:19971015T050000Z 2879 DTEND:19971016T050000Z 2880 DTSTAMP:19970901T083000Z 2881 END:VFREEBUSY 2883 The following is an example of a "VFREEBUSY" calendar component used 2884 to reply to the request with busy time information: 2886 BEGIN:VFREEBUSY 2887 ORGANIZER:MAILTO:jane_doe@host1.com 2888 ATTENDEE:MAILTO:john_public@host2.com 2889 DTSTAMP:19970901T100000Z 2890 FREEBUSY;VALUE=PERIOD:19971015T050000Z/PT8H30M, 2891 19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M 2892 URL:http://host2.com/pub/busy/jpublic-01.ifb 2893 COMMENT:This iCalendar file contains busy time information for 2894 the next three months. 2895 END:VFREEBUSY 2897 Dawson/Stenerson 53 Expires December 1999 2898 The following is an example of a "VFREEBUSY" calendar component used 2899 to publish busy time information. 2901 BEGIN:VFREEBUSY 2902 ORGANIZER:jsmith@host.com 2903 DTSTART:19980313T141711Z 2904 DTEND:19980410T141711Z 2905 FREEBUSY:19980314T233000Z/19980315T003000Z 2906 FREEBUSY:19980316T153000Z/19980316T163000Z 2907 FREEBUSY:19980318T030000Z/19980318T040000Z 2908 URL:http://www.host.com/calendar/busytime/jsmith.ifb 2909 END:VFREEBUSY 2911 4.6.5 Time Zone Component 2913 Component Name: VTIMEZONE 2915 Purpose: Provide a grouping of component properties that defines a 2916 time zone. 2918 Formal Definition: A "VTIMEZONE" calendar component is defined by the 2919 following notation: 2921 timezonec = "BEGIN" ":" "VTIMEZONE" CRLF 2923 2*( 2925 ; 'tzid' is required, but MUST NOT occur more 2926 ; than once 2928 tzid / 2930 ; 'last-mod' and 'tzurl' are optional, 2931 but MUST NOT occur more than once 2933 last-mod / tzurl / 2935 ; one of 'standardc' or 'daylightc' MUST occur 2936 ..; and each MAY occur more than once. 2938 standardc / daylightc / 2940 ; the following is optional, 2941 ; and MAY occur more than once 2943 x-prop 2945 ) 2947 "END" ":" "VTIMEZONE" CRLF 2949 standardc = "BEGIN" ":" "STANDARD" CRLF 2951 tzprop 2953 Dawson/Stenerson 54 Expires December 1999 2954 "END" ":" "STANDARD" CRLF 2956 daylightc = "BEGIN" ":" "DAYLIGHT" CRLF 2958 tzprop 2960 "END" ":" "DAYLIGHT" CRLF 2962 tzprop = 3*( 2964 ; the following are each REQUIRED, 2965 ; but MUST NOT occur more than once 2967 dtstart / tzoffsetto / tzoffsetfrom / 2969 ; the following are optional, 2970 ; and MAY occur more than once 2972 comment / rdate / rrule / tzname / x-prop 2974 ) 2976 Description: A time zone is unambiguously defined by the set of time 2977 measurement rules determined by the governing body for a given 2978 geographic area. These rules describe at a minimum the base offset 2979 from UTC for the time zone, often referred to as the Standard Time 2980 offset. Many locations adjust their Standard Time forward or backward 2981 by one hour, in order to accommodate seasonal changes in number of 2982 daylight hours, often referred to as Daylight Saving Time. Some 2983 locations adjust their time by a fraction of an hour. Standard Time 2984 is also known as Winter Time. Daylight Saving Time is also known as 2985 Advanced Time, Summer Time, or Legal Time in certain countries. The 2986 following table shows the changes in time zone rules in effect for 2987 New York City starting from 1967. Each line represents a description 2988 or rule for a particular observance. 2990 Effective Observance Rule 2992 Date (Date/Time) Offset Abbreviation 2994 1967-* last Sun in Oct, 02:00 -0500 EST 2996 1967-1973 last Sun in Apr, 02:00 -0400 EDT 2998 1974-1974 Jan 6, 02:00 -0400 EDT 3000 1975-1975 Feb 23, 02:00 -0400 EDT 3002 1976-1986 last Sun in Apr, 02:00 -0400 EDT 3004 1987-* first Sun in Apr, 02:00 -0400 EDT 3006 Note: The specification of a global time zone registry is not 3007 addressed by this document and is left for future study. 3009 Dawson/Stenerson 55 Expires December 1999 3010 However, implementers may find the Olson time zone database [TZ] 3011 a useful reference. It is an informal, public-domain collection 3012 of time zone information, which is currently being maintained by 3013 volunteer Internet participants, and is used in several 3014 operating systems. This database contains current and historical 3015 time zone information for a wide variety of locations around the 3016 globe; it provides a time zone identifier for every unique time 3017 zone rule set in actual use since 1970, with historical data 3018 going back to the introduction of standard time. 3020 Interoperability between two calendaring and scheduling applications, 3021 especially for recurring events, to-dos or journal entries, is 3022 dependent on the ability to capture and convey date and time 3023 information in an unambiguous format. The specification of current 3024 time zone information is integral to this behavior. 3026 If present, the "VTIMEZONE" calendar component defines the set of 3027 Standard Time and Daylight Saving Time observances (or rules) for a 3028 particular time zone for a given interval of time. The "VTIMEZONE" 3029 calendar component cannot be nested within other calendar components. 3030 Multiple "VTIMEZONE" calendar components can exist in an iCalendar 3031 object. In this situation, each "VTIMEZONE" MUST represent a unique 3032 time zone definition. This is necessary for some classes of events, 3033 such as airline flights, that start in one time zone and end in 3034 another. 3036 The "VTIMEZONE" calendar component MUST be present if the iCalendar 3037 object contains an RRULE that generates dates on both sides of a time 3038 zone shift (e.g. both in Standard Time and Daylight Saving Time) 3039 unless the iCalendar object intends to convey a floating time (See 3040 the section "4.1.10.11 Time" for proper interpretation of floating 3041 time). It can be present if the iCalendar object does not contain 3042 such a RRULE. In addition, if a RRULE is present, there MUST be valid 3043 time zone information for all recurrence instances. 3045 The "VTIMEZONE" calendar component MUST include the "TZID" property 3046 and at least one definition of a standard or daylight component. The 3047 standard or daylight component MUST include the "DTSTART", 3048 "TZOFFSETFROM" and "TZOFFSETTO" properties. 3050 An individual "VTIMEZONE" calendar component MUST be specified for 3051 each unique "TZID" parameter value specified in the iCalendar object. 3053 Each "VTIMEZONE" calendar component consists of a collection of one 3054 or more sub-components that describe the rule for a particular 3055 observance (either a Standard Time or a Daylight Saving Time 3056 observance). The "STANDARD" sub-component consists of a collection of 3057 properties that describe Standard Time. The "DAYLIGHT" sub-component 3058 consists of a collection of properties that describe Daylight Saving 3059 Time. In general this collection of properties consists of: 3061 - the first onset date-time for the observance 3063 Dawson/Stenerson 56 Expires December 1999 3064 - the last onset date-time for the observance, if a last onset 3065 is known. 3067 - the offset to be applied for the observance 3069 - a rule that describes the day and time when the observance 3070 takes effect 3072 - an optional name for the observance 3074 For a given time zone, there may be multiple unique definitions of 3075 the observances over a period of time. Each observance is described 3076 using either a "STANDARD" or "DAYLIGHT" sub-component. The collection 3077 of these sub-components is used to describe the time zone for a given 3078 period of time. The offset to apply at any given time is found by 3079 locating the observance that has the last onset date and time before 3080 the time in question, and using the offset value from that 3081 observance. 3083 The top-level properties in a "VTIMEZONE" calendar component are: 3085 The mandatory "TZID" property is a text value that uniquely 3086 identifies the VTIMZONE calendar component within the scope of an 3087 iCalendar object. 3089 The optional "LAST-MODIFIED" property is a UTC value that specifies 3090 the date and time that this time zone definition was last updated. 3092 The optional "TZURL" property is url value that points to a published 3093 VTIMEZONE definition. TZURL SHOULD refer to a resource that is 3094 accessible by anyone who might need to interpret the object. This 3095 SHOULD NOT normally be a file: URL or other URL that is not widely- 3096 accessible. 3098 The collection of properties that are used to define the STANDARD and 3099 DAYLIGHT sub-components include: 3101 The mandatory "DTSTART" property gives the effective onset date and 3102 local time for the time zone sub-component definition. "DTSTART" in 3103 this usage MUST be specified as a local DATE-TIME value. 3105 The mandatory "TZOFFSETFROM" property gives the UTC offset which is 3106 in use when the onset of this time zone observance begins. 3107 "TZOFFSETFROM" is combined with "DTSTART" to define the effective 3108 onset for the time zone sub-component definition. For example, the 3109 following represents the time at which the observance of Standard 3110 Time took effect in Fall 1967 for New York City: 3112 DTSTART:19671029T020000 3114 TZOFFSETFROM:-0400 3116 Dawson/Stenerson 57 Expires December 1999 3117 The mandatory "TZOFFSETTO " property gives the UTC offset for the 3118 time zone sub-component (Standard Time or Daylight Saving Time) when 3119 this observance is in use. 3121 The optional "TZNAME" property is the customary name for the time 3122 zone. It may be specified multiple times, to allow for specifying 3123 multiple language variants of the time zone names. This could be used 3124 for displaying dates. 3126 If specified, the onset for the observance defined by the time zone 3127 sub-component is defined by either the "RRULE" or "RDATE" property. 3128 If neither is specified, only one sub-component can be specified in 3129 the "VTIMEZONE" calendar component and it is assumed that the single 3130 observance specified is always in effect. 3132 The "RRULE" property defines the recurrence rule for the onset of the 3133 observance defined by this time zone sub-component. Some specific 3134 requirements for the usage of RRULE for this purpose include: 3136 - If observance is known to have an effective end date, the 3137 "UNTIL" recurrence rule parameter MUST be used to specify the 3138 last valid onset of this observance (i.e., the UNTIL date-time 3139 will be equal to the last instance generated by the recurrence 3140 pattern). It MUST be specified in UTC time. 3142 - The "DTSTART" and the "TZOFFSETTO" properties MUST be used 3143 when generating the onset date-time values (instances) from the 3144 RRULE. 3146 Alternatively, the "RDATE" property can be used to define the onset 3147 of the observance by giving the individual onset date and times. 3148 "RDATE" in this usage MUST be specified as a local DATE-TIME value in 3149 UTC time. 3151 The optional "COMMENT" property is also allowed for descriptive 3152 explanatory text. 3154 Example: The following are examples of the "VTIMEZONE" calendar 3155 component: 3157 This is an example showing time zone information for the Eastern 3158 United States using "RDATE" property. Note that this is only suitable 3159 for a recurring event that starts on or later than April 6, 1997 at 3160 03:00:00 EDT (i.e., the earliest effective transition date and time) 3161 and ends no later than April 7, 1998 02:00:00 EST (i.e., latest valid 3162 date and time for EST in this scenario). For example, this can be 3163 used for a recurring event that occurs every Friday, 8am-9:00 AM, 3164 starting June 1, 1997, ending December 31, 1997. 3166 BEGIN:VTIMEZONE 3167 TZID:US-Eastern 3168 LAST-MODIFIED:19870101T000000Z 3169 BEGIN:STANDARD 3170 DTSTART:19971026T020000 3172 Dawson/Stenerson 58 Expires December 1999 3173 RDATE:19971026T020000 3174 TZOFFSETFROM:-0400 3175 TZOFFSETTO:-0500 3176 TZNAME:EST 3177 END:STANDARD 3178 BEGIN:DAYLIGHT 3179 DTSTART:19971026T020000 3180 RDATE:19970406T020000 3181 TZOFFSETFROM:-0500 3182 TZOFFSETTO:-0400 3183 TZNAME:EDT 3184 END:DAYLIGHT 3185 END:VTIMEZONE 3187 This is a simple example showing the current time zone rules for the 3188 Eastern United States using a RRULE recurrence pattern. Note that 3189 there is no effective end date to either of the Standard Time or 3190 Daylight Time rules. This information would be valid for a recurring 3191 event starting today and continuing indefinitely. 3193 BEGIN:VTIMEZONE 3194 TZID:US-Eastern 3195 LAST-MODIFIED:19870101T000000Z 3196 TZURL:http://zones.stds_r_us.net/tz/US-Eastern 3197 BEGIN:STANDARD 3198 DTSTART:19671029T020000 3199 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 3200 TZOFFSETFROM:-0400 3201 TZOFFSETTO:-0500 3202 TZNAME:EST 3203 END:STANDARD 3204 BEGIN:DAYLIGHT 3205 DTSTART:19870405T020000 3206 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4 3207 TZOFFSETFROM:-0500 3208 TZOFFSETTO:-0400 3209 TZNAME:EDT 3210 END:DAYLIGHT 3211 END:VTIMEZONE 3213 This is an example showing a fictitious set of rules for the Eastern 3214 United States, where the Daylight Time rule has an effective end date 3215 (i.e., after that date, Daylight Time is no longer observed). 3217 BEGIN:VTIMEZONE 3218 TZID:US--Fictitious-Eastern 3219 LAST-MODIFIED:19870101T000000Z 3220 BEGIN:STANDARD 3221 DTSTART:19671029T020000 3222 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 3223 TZOFFSETFROM:-0400 3224 TZOFFSETTO:-0500 3225 TZNAME:EST 3226 END:STANDARD 3228 Dawson/Stenerson 59 Expires December 1999 3229 BEGIN:DAYLIGHT 3230 DTSTART:19870405T020000 3231 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z 3232 TZOFFSETFROM:-0500 3233 TZOFFSETTO:-0400 3234 TZNAME:EDT 3235 END:DAYLIGHT 3236 END:VTIMEZONE 3238 This is an example showing a fictitious set of rules for the Eastern 3239 United States, where the first Daylight Time rule has an effective 3240 end date. There is a second Daylight Time rule that picks up where 3241 the other left off. 3243 BEGIN:VTIMEZONE 3244 TZID:US--Fictitious-Eastern 3245 LAST-MODIFIED:19870101T000000Z 3246 BEGIN:STANDARD 3247 DTSTART:19671029T020000 3248 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 3249 TZOFFSETFROM:-0400 3250 TZOFFSETTO:-0500 3251 TZNAME:EST 3252 END:STANDARD 3253 BEGIN:DAYLIGHT 3254 DTSTART:19870405T020000 3255 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z 3256 TZOFFSETFROM:-0500 3257 TZOFFSETTO:-0400 3258 TZNAME:EDT 3259 END:DAYLIGHT 3260 BEGIN:DAYLIGHT 3261 DTSTART:19990424T020000 3262 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=4 3263 TZOFFSETFROM:-0500 3264 TZOFFSETTO:-0400 3265 TZNAME:EDT 3266 END:DAYLIGHT 3267 END:VTIMEZONE 3269 4.6.6 Alarm Component 3271 Component Name: VALARM 3273 Purpose: Provide a grouping of component properties that define an 3274 alarm. 3276 Formal Definition: A "VALARM" calendar component is defined by the 3277 following notation: 3279 alarmc = "BEGIN" ":" "VALARM" CRLF 3280 (audioprop / dispprop / emailprop / procprop) 3281 "END" ":" "VALARM" CRLF 3283 Dawson/Stenerson 60 Expires December 1999 3284 audioprop = 2*( 3286 ; 'action' and 'trigger' are both REQUIRED, 3287 ; but MUST NOT occur more than once 3289 action / trigger / 3291 ; 'duration' and 'repeat' are both optional, 3292 ; and MUST NOT occur more than once each, 3293 ; but if one occurs, so MUST the other 3295 duration / repeat / 3297 ; the following is optional, 3298 ; but MUST NOT occur more than once 3300 attach / 3302 ; the following is optional, 3303 ; and MAY occur more than once 3305 x-prop 3307 ) 3309 dispprop = 3*( 3311 ; the following are all REQUIRED, 3312 ; but MUST NOT occur more than once 3314 action / description / trigger / 3316 ; 'duration' and 'repeat' are both optional, 3317 ; and MUST NOT occur more than once each, 3318 ; but if one occurs, so MUST the other 3320 duration / repeat / 3322 ; the following is optional, 3323 ; and MAY occur more than once 3325 *x-prop 3327 ) 3329 emailprop = 5*( 3331 ; the following are all REQUIRED, 3332 ; but MUST NOT occur more than once 3334 Dawson/Stenerson 61 Expires December 1999 3335 action / description / trigger / summary 3337 ; the following is REQUIRED, 3338 ; and MAY occur more than once 3340 attendee / 3342 ; 'duration' and 'repeat' are both optional, 3343 ; and MUST NOT occur more than once each, 3344 ; but if one occurs, so MUST the other 3346 duration / repeat / 3348 ; the following are optional, 3349 ; and MAY occur more than once 3351 attach / x-prop 3353 ) 3355 procprop = 3*( 3357 ; the following are all REQUIRED, 3358 ; but MUST NOT occur more than once 3360 action / attach / trigger / 3362 ; 'duration' and 'repeat' are both optional, 3363 ; and MUST NOT occur more than once each, 3364 ; but if one occurs, so MUST the other 3366 duration / repeat / 3368 ; 'description' is optional, 3369 ; and MUST NOT occur more than once 3371 description / 3373 ; the following is optional, 3374 ; and MAY occur more than once 3376 x-prop 3378 ) 3380 Description: A "VALARM" calendar component is a grouping of component 3381 properties that is a reminder or alarm for an event or a to-do. For 3382 example, it may be used to define a reminder for a pending event or 3383 an overdue to-do. 3385 Dawson/Stenerson 62 Expires December 1999 3386 The "VALARM" calendar component MUST include the "ACTION" and 3387 "TRIGGER" properties. The "ACTION" property further constrains the 3388 "VALARM" calendar component in the following ways: 3390 When the action is "AUDIO", the alarm can also include one and only 3391 one "ATTACH" property, which MUST point to a sound resource, which is 3392 rendered when the alarm is triggered. 3394 When the action is "DISPLAY", the alarm MUST also include a 3395 "DESCRIPTION" property, which contains the text to be displayed when 3396 the alarm is triggered. 3398 When the action is "EMAIL", the alarm MUST include a "DESCRIPTION" 3399 property, which contains the text to be used as the message body, a 3400 "SUMMARY" property, which contains the text to be used as the message 3401 subject, and one or more "ATTENDEE" properties, which contain the 3402 email address of attendees to receive the message. It can also 3403 include one or more "ATTACH" properties, which are intended to be 3404 sent as message attachments. When the alarm is triggered, the email 3405 message is sent. 3407 When the action is "PROCEDURE", the alarm MUST include one and only 3408 one "ATTACH" property, which MUST point to a procedure resource, 3409 which is invoked when the alarm is triggered. 3411 The "VALARM" calendar component MUST only appear within either a 3412 "VEVENT" or "VTODO" calendar component. "VALARM" calendar components 3413 cannot be nested. Multiple mutually independent "VALARM" calendar 3414 components can be specified for a single "VEVENT" or "VTODO" calendar 3415 component. 3417 The "TRIGGER" property specifies when the alarm will be triggered. 3418 The "TRIGGER" property specifies a duration prior to the start of an 3419 event or a to-do. The "TRIGGER" edge may be explicitly set to be 3420 relative to the "START" or "END" of the event or to-do with the 3421 "RELATED" parameter of the "TRIGGER" property. The "TRIGGER" property 3422 value type can alternatively be set to an absolute calendar date and 3423 time of day value. 3425 In an alarm set to trigger on the "START" of an event or to-do, the 3426 "DTSTART" property MUST be present in the associated event or to-do. 3427 In an alarm in a "VEVENT" calendar component set to trigger on the 3428 "END" of the event, either the "DTEND" property MUST be present, or 3429 the "DTSTART" and "DURATION" properties MUST both be present. In an 3430 alarm in a "VTODO" calendar component set to trigger on the "END" of 3431 the to-do, either the "DUE" property MUST be present, or the 3432 "DTSTART" and "DURATION" properties MUST both be present. 3434 The alarm can be defined such that it triggers repeatedly. A 3435 definition of an alarm with a repeating trigger MUST include both the 3436 "DURATION" and "REPEAT" properties. The "DURATION" property specifies 3437 the delay period, after which the alarm will repeat. The "REPEAT" 3438 property specifies the number of additional repetitions that the 3439 alarm will triggered. This repitition count is in addition to the 3441 Dawson/Stenerson 63 Expires December 1999 3442 initial triggering of the alarm. Both of these properties MUST be 3443 present in order to specify a repeating alarm. If one of these two 3444 properties is absent, then the alarm will not repeat beyond the 3445 initial trigger. 3447 The "ACTION" property is used within the "VALARM" calendar component 3448 to specify the type of action invoked when the alarm is triggered. 3449 The "VALARM" properties provide enough information for a specific 3450 action to be invoked. It is typically the responsibility of a 3451 "Calendar User Agent" (CUA) to deliver the alarm in the specified 3452 fashion. An "ACTION" property value of AUDIO specifies an alarm that 3453 causes a sound to be played to alert the user; DISPLAY specifies an 3454 alarm that causes a text message to be displayed to the user; EMAIL 3455 specifies an alarm that causes an electronic email message to be 3456 delivered to one or more email addresses; and PROCEDURE specifies an 3457 alarm that causes a procedure to be executed. The "ACTION" property 3458 MUST specify one and only one of these values. 3460 In an AUDIO alarm, if the optional "ATTACH" property is included, it 3461 MUST specify an audio sound resource. The intention is that the sound 3462 will be played as the alarm effect. If an "ATTACH" property is 3463 specified that does not refer to a sound resource, or if the 3464 specified sound resource cannot be rendered (because its format is 3465 unsupported, or because it cannot be retrieved), then the CUA or 3466 other entity responsible for playing the sound may choose a fallback 3467 action, such as playing a built-in default sound, or playing no sound 3468 at all. 3470 In a DISPLAY alarm, the intended alarm effect is for the text value 3471 of the "DESCRIPTION" property to be displayed to the user. 3473 In an EMAIL alarm, the intended alarm effect is for an email message 3474 to be composed and delivered to all the addresses specified by the 3475 "ATTENDEE" properties in the "VALARM" calendar component. The 3476 "DESCRIPTION" property of the "VALARM" calendar component MUST be 3477 used as the body text of the message, and the "SUMMARY" property MUST 3478 be used as the subject text. Any "ATTACH" properties in the "VALARM" 3479 calendar component SHOULD be sent as attachments to the message. 3481 In a PROCEDURE alarm, the "ATTACH" property in the "VALARM" calendar 3482 component MUST specify a procedure or program that is intended to be 3483 invoked as the alarm effect. If the procedure or program is in a 3484 format that cannot be rendered, then no procedure alarm will be 3485 invoked. If the "DESCRIPTION" property is present, its value 3486 specifies the argument string to be passed to the procedure or 3487 program. "Calendar User Agents" that receive an iCalendar object with 3488 this category of alarm, can disable or allow the "Calendar User" to 3489 disable, or otherwise ignore this type of alarm. While a very useful 3490 alarm capability, the PROCEDURE type of alarm SHOULD be treated by 3491 the "Calendar User Agent" as a potential security risk. 3493 Example: The following example is for a "VALARM" calendar component 3494 that specifies an audio alarm that will sound at a precise time and 3495 repeat 4 more times at 15 minute intervals: 3497 Dawson/Stenerson 64 Expires December 1999 3498 BEGIN:VALARM 3499 TRIGGER;VALUE=DATE-TIME:19970317T133000Z 3500 REPEAT:4 3501 DURATION:PT15M 3502 ACTION:AUDIO 3503 ATTACH;FMTTYPE=audio/basic:ftp://host.com/pub/sounds/bell-01.aud 3504 END:VALARM 3506 The following example is for a "VALARM" calendar component that 3507 specifies a display alarm that will trigger 30 minutes before the 3508 scheduled start of the event or the due date/time of the to-do it is 3509 associated with and will repeat 2 more times at 15 minute intervals: 3511 BEGIN:VALARM 3512 TRIGGER:-PT30M 3513 REPEAT:2 3514 DURATION:PT15M 3515 ACTION:DISPLAY 3516 DESCRIPTION:Breakfast meeting with executive\n 3517 team at 8:30 AM EST. 3518 END:VALARM 3520 The following example is for a "VALARM" calendar component that 3521 specifies an email alarm that will trigger 2 days before the 3522 scheduled due date/time of a to-do it is associated with. It does not 3523 repeat. The email has a subject, body and attachment link. 3525 BEGIN:VALARM 3526 TRIGGER:-P2D 3527 ACTION:EMAIL 3528 ATTENDEE:MAILTO:john_doe@host.com 3529 SUMMARY:*** REMINDER: SEND AGENDA FOR WEEKLY STAFF MEETING *** 3530 DESCRIPTION:A draft agenda needs to be sent out to the attendees 3531 to the weekly managers meeting (MGR-LIST). Attached is a 3532 pointer the document template for the agenda file. 3533 ATTACH;FMTTYPE=application/binary:http://host.com/templates/agen 3534 da.doc 3535 END:VALARM 3537 The following example is for a "VALARM" calendar component that 3538 specifies a procedural alarm that will trigger at a precise date/time 3539 and will repeat 23 more times at one hour intervals. The alarm will 3540 invoke a procedure file. 3542 BEGIN:VALARM 3543 TRIGGER;VALUE=DATE-TIME:19980101T050000Z 3544 REPEAT:23 3545 DURATION:PT1H 3546 ACTION:PROCEDURE 3547 ATTACH;FMTTYPE=application/binary:ftp://host.com/novo- 3548 procs/felizano.exe 3549 END:VALARM 3551 Dawson/Stenerson 65 Expires December 1999 3552 4.7 Calendar Properties 3554 The Calendar Properties are attributes that apply to the iCalendar 3555 object, as a whole. These properties do not appear within a calendar 3556 component. They SHOULD be specified after the "BEGIN:VCALENDAR" 3557 property and prior to any calendar component. 3559 4.7.1 Calendar Scale 3561 Property Name: CALSCALE 3563 Purpose: This property defines the calendar scale used for the 3564 calendar information specified in the iCalendar object. 3566 Value Type: TEXT 3568 Property Parameters: Non-standard property parameters can be 3569 specified on this property. 3571 Conformance: Property can be specified in an iCalendar object. The 3572 default value is "GREGORIAN". 3574 Description: This memo is based on the Gregorian calendar scale. The 3575 Gregorian calendar scale is assumed if this property is not specified 3576 in the iCalendar object. It is expected that other calendar scales 3577 will be defined in other specifications or by future versions of this 3578 memo. 3580 Format Definition: The property is defined by the following notation: 3582 calscale = "CALSCALE" calparam ":" calvalue CRLF 3584 calparam = *(";" xparam) 3586 calvalue = "GREGORIAN" / iana-token 3588 Example: The following is an example of this property: 3590 CALSCALE:GREGORIAN 3592 4.7.2 Method 3594 Property Name: METHOD 3596 Purpose: This property defines the iCalendar object method associated 3597 with the calendar object. 3599 Value Type: TEXT 3601 Property Parameters: Non-standard property parameters can be 3602 specified on this property. 3604 Conformance: The property can be specified in an iCalendar object. 3606 Dawson/Stenerson 66 Expires December 1999 3607 Description: When used in a MIME message entity, the value of this 3608 property MUST be the same as the Content-Type "method" parameter 3609 value. This property can only appear once within the iCalendar 3610 object. If either the "METHOD" property or the Content-Type "method" 3611 parameter is specified, then the other MUST also be specified. 3613 No methods are defined by this specification. This is the subject of 3614 other specifications, such as the iCalendar Transport-independent 3615 Interoperability Protocol (iTIP) defined by [ITIP]. 3617 If this property is not present in the iCalendar object, then a 3618 scheduling transaction MUST NOT be assumed. In such cases, the 3619 iCalendar object is merely being used to transport a snapshot of some 3620 calendar information; without the intention of conveying a scheduling 3621 semantic. 3623 Format Definition: The property is defined by the following notation: 3625 method = "METHOD" metparam ":" metvalue CRLF 3627 metparam = *(";" xparam) 3629 metvalue = iana-token 3631 Example: The following is a hypothetical example of this property to 3632 convey that the iCalendar object is a request for a meeting: 3634 METHOD:REQUEST 3636 4.7.3 Product Identifier 3638 Property Name: PRODID 3640 Purpose: This property specifies the identifier for the product that 3641 created the iCalendar object. 3643 Value Type: TEXT 3645 Property Parameters: Non-standard property parameters can be 3646 specified on this property. 3648 Conformance: The property MUST be specified once in an iCalendar 3649 object. 3651 Description: The vendor of the implementation SHOULD assure that this 3652 is a globally unique identifier; using some technique such as an FPI 3653 value, as defined in [ISO 9070]. 3655 This property SHOULD not be used to alter the interpretation of an 3656 iCalendar object beyond the semantics specified in this memo. For 3657 example, it is not to be used to further the understanding of non- 3658 standard properties. 3660 Format Definition: The property is defined by the following notation: 3662 Dawson/Stenerson 67 Expires December 1999 3663 prodid = "PRODID" pidparam ":" pidvalue CRLF 3665 pidparam = *(";" xparam) 3667 pidvalue = text 3668 ;Any text that describes the product and version 3669 ;and that is generally assured of being unique. 3671 Example: The following is an example of this property. It does not 3672 imply that English is the default language. 3674 PRODID:-//ABC Corporation//NONSGML My Product//EN 3676 4.7.4 Version 3678 Property Name: VERSION 3680 Purpose: This property specifies the identifier corresponding to the 3681 highest version number or the minimum and maximum range of the 3682 iCalendar specification that is required in order to interpret the 3683 iCalendar object. 3685 Value Type: TEXT 3687 Property Parameters: Non-standard property parameters can be 3688 specified on this property. 3690 Conformance: This property MUST be specified by an iCalendar object, 3691 but MUST only be specified once. 3693 Description: A value of "2.0" corresponds to this memo. Version 3694 numbers for iCalendar are specified by registering with IANA 3695 revisions to this specification (i.e., publication of a new RFC) as 3696 specified in section 7. 3698 Format Definition: The property is defined by the following notation: 3700 version = "VERSION" verparam ":" vervalue CRLF 3702 verparam = *(";" xparam) 3704 vervalue = "2.0" ;This memo 3706 / (minver [";" maxver]) 3707 / ";" maxver 3709 minver = 3710 ;Minimum iCalendar version needed to parse the iCalendar object 3712 maxver = 3713 ;Maximum iCalendar version needed to parse the iCalendar object 3715 Dawson/Stenerson 68 Expires December 1999 3716 Example: The following is an example of this property specifying a 3717 minimum version number corresponding to the version of iCalendar 3718 defined by this document: 3720 VERSION:2.0 3722 The following is an example of this property specifying a minimum 3723 version of 2.0 and a maximum version number of 2.5 (a fictitious 3724 version number): 3726 VERSION:2.0;2.5 3728 The following is an example of this property specifying a maximum 3729 version number of 3.0 (a fictitious version number): 3731 VERSION:;3.0 3733 4.8 Component Properties 3735 The following properties can appear within calendar components, as 3736 specified by each component property definition. 3738 4.8.1 Descriptive Component Properties 3740 The following properties specify descriptive information about 3741 calendar components. 3743 4.8.1.1 Attachment 3745 Property Name: ATTACH 3747 Purpose: The property provides the capability to associate a document 3748 object with a calendar component. 3750 Value Type: The default value type for this property is URI. The 3751 value type can also be set to BINARY to indicate inline binary 3752 encoded content information. 3754 Property Parameters: Non-standard, inline encoding, format type and 3755 value data type property parameters can be specified on this 3756 property. 3758 Conformance: The property can be specified in a "VEVENT", "VTODO", 3759 "VJOURNAL" or "VALARM" calendar components. 3761 Description: The property can be specified within "VEVENT", "VTODO", 3762 "VJOURNAL", or "VALARM" calendar components. This property can be 3763 specified multiple times within an iCalendar object. 3765 Format Definition: The property is defined by the following notation: 3767 attach = "ATTACH" attparam ":" uri CRLF 3769 Dawson/Stenerson 69 Expires December 1999 3770 attach =/ "ATTACH" attparam ";" "ENCODING" "=" "BASE64" 3771 ";" "VALUE" "=" "BINARY" ":" binary 3773 attparam = *( 3775 ; the following is optional, 3776 ; but MUST NOT occur more than once 3778 (";" fmttypeparam) / 3780 ; the following is optional, 3781 ; and MAY occur more than once 3783 (";" xparam) 3785 ) 3787 Example: The following are examples of this property: 3789 ATTACH:CID:jsmith.part3.960817T083000.xyzMail@host1.com 3791 ATTACH;FMTTYPE=application/postscript:ftp://xyzCorp.com/pub/ 3792 reports/r-960812.ps 3794 4.8.1.2 Categories 3796 Property Name: CATEGORIES 3798 Purpose: This property defines the categories for a calendar 3799 component. 3801 Value Type: TEXT 3803 Property Parameters: Non-standard and language property parameters 3804 can be specified on this property. 3806 Conformance: The property can be specified within "VEVENT", "VTODO" 3807 or "VJOURNAL" calendar components. 3809 Description: This property is used to specify categories or subtypes 3810 of the calendar component. The categories are useful in searching for 3811 a calendar component of a particular type and category. Within the 3812 "VEVENT", "VTODO" or "VJOURNAL" calendar components, more than one 3813 category can be specified as a list of categories separated by the 3814 COMMA character (US-ASCII decimal 44). 3816 Format Definition: The property is defined by the following notation: 3818 categories = "CATEGORIES" catparam ":" text *("," text) 3819 CRLF 3821 catparam = *( 3823 Dawson/Stenerson 70 Expires December 1999 3824 ; the following is optional, 3825 ; but MUST NOT occur more than once 3827 (";" languageparam ) / 3829 ; the following is optional, 3830 ; and MAY occur more than once 3832 (";" xparam) 3834 ) 3836 Example: The following are examples of this property: 3838 CATEGORIES:APPOINTMENT,EDUCATION 3840 CATEGORIES:MEETING 3842 4.8.1.3 Classification 3844 Property Name: CLASS 3846 Purpose: This property defines the access classification for a 3847 calendar component. 3849 Value Type: TEXT 3851 Property Parameters: Non-standard property parameters can be 3852 specified on this property. 3854 Conformance: The property can be specified once in a "VEVENT", 3855 "VTODO" or "VJOURNAL" calendar components. 3857 Description: An access classification is only one component of the 3858 general security system within a calendar application. It provides a 3859 method of capturing the scope of the access the calendar owner 3860 intends for information within an individual calendar entry. The 3861 access classification of an individual iCalendar component is useful 3862 when measured along with the other security components of a calendar 3863 system (e.g., calendar user authentication, authorization, access 3864 rights, access role, etc.). Hence, the semantics of the individual 3865 access classifications cannot be completely defined by this memo 3866 alone. Additionally, due to the "blind" nature of most exchange 3867 processes using this memo, these access classifications cannot serve 3868 as an enforcement statement for a system receiving an iCalendar 3869 object. Rather, they provide a method for capturing the intention of 3870 the calendar owner for the access to the calendar component. 3872 Format Definition: The property is defined by the following notation: 3874 class = "CLASS" classparam ":" classvalue CRLF 3876 classparam = *(";" xparam) 3878 Dawson/Stenerson 71 Expires December 1999 3879 classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token 3880 / x-name 3881 ;Default is PUBLIC 3883 Example: The following is an example of this property: 3885 CLASS:PUBLIC 3887 4.8.1.4 Comment 3889 Property Name: COMMENT 3891 Purpose: This property specifies non-processing information intended 3892 to provide a comment to the calendar user. 3894 Value Type: TEXT 3896 Property Parameters: Non-standard, alternate text representation and 3897 language property parameters can be specified on this property. 3899 Conformance: This property can be specified in "VEVENT", "VTODO", 3900 "VJOURNAL", "VTIMEZONE" or "VFREEBUSY" calendar components. 3902 Description: The property can be specified multiple times. 3904 Format Definition: The property is defined by the following notation: 3906 comment = "COMMENT" commparam ":" text CRLF 3908 commparam = *( 3910 ; the following are optional, 3911 ; but MUST NOT occur more than once 3913 (";" altrepparam) / (";" languageparam) / 3915 ; the following is optional, 3916 ; and MAY occur more than once 3918 (";" xparam) 3920 ) 3922 Example: The following is an example of this property: 3924 COMMENT:The meeting really needs to include both ourselves 3925 and the customer. We can't hold this meeting without them. 3926 As a matter of fact\, the venue for the meeting ought to be at 3927 their site. - - John 3929 The data type for this property is TEXT. 3931 Dawson/Stenerson 72 Expires December 1999 3932 4.8.1.5 Description 3934 Property Name: DESCRIPTION 3936 Purpose: This property provides a more complete description of the 3937 calendar component, than that provided by the "SUMMARY" property. 3939 Value Type: TEXT 3941 Property Parameters: Non-standard, alternate text representation and 3942 language property parameters can be specified on this property. 3944 Conformance: The property can be specified in the "VEVENT", "VTODO", 3945 "VJOURNAL" or "VALARM" calendar components. The property can be 3946 specified multiple times only within a "VJOURNAL" calendar component. 3948 Description: This property is used in the "VEVENT" and "VTODO" to 3949 capture lengthy textual decriptions associated with the activity. 3951 This property is used in the "VJOURNAL" calendar component to capture 3952 one more textual journal entries. 3954 This property is used in the "VALARM" calendar component to capture 3955 the display text for a DISPLAY category of alarm, to capture the body 3956 text for an EMAIL category of alarm and to capture the argument 3957 string for a PROCEDURE category of alarm. 3959 Format Definition: The property is defined by the following notation: 3961 description = "DESCRIPTION" descparam ":" text CRLF 3963 descparam = *( 3965 ; the following are optional, 3966 ; but MUST NOT occur more than once 3968 (";" altrepparam) / (";" languageparam) / 3970 ; the following is optional, 3971 ; and MAY occur more than once 3973 (";" xparam) 3975 ) 3977 Example: The following is an example of the property with formatted 3978 line breaks in the property value: 3980 DESCRIPTION:Meeting to provide technical review for "Phoenix" 3981 design.\n Happy Face Conference Room. Phoenix design team 3982 MUST attend this meeting.\n RSVP to team leader. 3984 The following is an example of the property with folding of long 3985 lines: 3987 Dawson/Stenerson 73 Expires December 1999 3988 DESCRIPTION:Last draft of the new novel is to be completed 3989 for the editor's proof today. 3991 4.8.1.6 Geographic Position 3993 Property Name: GEO 3995 Purpose: This property specifies information related to the global 3996 position for the activity specified by a calendar component. 3998 Value Type: FLOAT. The value MUST be two SEMICOLON separated FLOAT 3999 values. 4001 Property Parameters: Non-standard property parameters can be 4002 specified on this property. 4004 Conformance: This property can be specified in "VEVENT" or "VTODO" 4005 calendar components.. 4007 Description: The property value specifies latitude and longitude, in 4008 that order (i.e., "LAT LON" ordering). The longitude represents the 4009 location east or west of the prime meridian as a positive or negative 4010 real number, respectively. The longitude and latitude values MAY be 4011 specified up to six decimal places, which will allow for accuracy to 4012 within one meter of geographical position. Receiving applications 4013 MUST accept values of this precision and MAY truncate values of 4014 greater precision. 4016 Values for latitude and longitude shall be expressed as decimal 4017 fractions of degrees. Whole degrees of latitude shall be represented 4018 by a two-digit decimal number ranging from 0 through 90. Whole 4019 degrees of longitude shall be represented by a decimal number ranging 4020 from 0 through 180. When a decimal fraction of a degree is specified, 4021 it shall be separated from the whole number of degrees by a decimal 4022 point. 4024 Latitudes north of the equator shall be specified by a plus sign (+), 4025 or by the absence of a minus sign (-), preceding the digits 4026 designating degrees. Latitudes south of the Equator shall be 4027 designated by a minus sign (-) preceding the digits designating 4028 degrees. A point on the Equator shall be assigned to the Northern 4029 Hemisphere. 4031 Longitudes east of the prime meridian shall be specified by a plus 4032 sign (+), or by the absence of a minus sign (-), preceding the digits 4033 designating degrees. Longitudes west of the meridian shall be 4034 designated by minus sign (-) preceding the digits designating 4035 degrees. A point on the prime meridian shall be assigned to the 4036 Eastern Hemisphere. A point on the 180th meridian shall be assigned 4037 to the Western Hemisphere. One exception to this last convention is 4038 permitted. For the special condition of describing a band of latitude 4039 around the earth, the East Bounding Coordinate data element shall be 4040 assigned the value +180 (180) degrees. 4042 Dawson/Stenerson 74 Expires December 1999 4043 Any spatial address with a latitude of +90 (90) or -90 degrees will 4044 specify the position at the North or South Pole, respectively. The 4045 component for longitude may have any legal value. 4047 With the exception of the special condition described above, this 4048 form is specified in Department of Commerce, 1986, Representation of 4049 geographic point locations for information interchange (Federal 4050 Information Processing Standard 70-1): Washington, Department of 4051 Commerce, National Institute of Standards and Technology. 4053 The simple formula for converting degrees-minutes-seconds into 4054 decimal degrees is: 4056 decimal = degrees + minutes/60 + seconds/3600. 4058 Format Definition: The property is defined by the following notation: 4060 geo = "GEO" geoparam ":" geovalue CRLF 4062 geoparam = *(";" xparam) 4064 geovalue = float ";" float 4065 ;Latitude and Longitude components 4067 Example: The following is an example of this property: 4069 GEO:37.386013;-122.082932 4071 4.8.1.7 Location 4073 Property Name: LOCATION 4075 Purpose: The property defines the intended venue for the activity 4076 defined by a calendar component. 4078 Value Type: TEXT 4080 Property Parameters: Non-standard, alternate text representation and 4081 language property parameters can be specified on this property. 4083 Conformance: This property can be specified in "VEVENT" or "VTODO" 4084 calendar component. 4086 Description: Specific venues such as conference or meeting rooms may 4087 be explicitly specified using this property. An alternate 4088 representation may be specified that is a URI that points to 4089 directory information with more structured specification of the 4090 location. For example, the alternate representation may specify 4091 either an LDAP URI pointing to an LDAP server entry or a CID URI 4092 pointing to a MIME body part containing a vCard [RFC 2426] for the 4093 location. 4095 Format Definition: The property is defined by the following notation: 4097 Dawson/Stenerson 75 Expires December 1999 4098 location = "LOCATION locparam ":" text CRLF 4100 locparam = *( 4102 ; the following are optional, 4103 ; but MUST NOT occur more than once 4105 (";" altrepparam) / (";" languageparam) / 4107 ; the following is optional, 4108 ; and MAY occur more than once 4110 (";" xparam) 4112 ) 4114 Example: The following are some examples of this property: 4116 LOCATION:Conference Room - F123, Bldg. 002 4118 LOCATION;ALTREP="http://xyzcorp.com/conf-rooms/f123.vcf": 4119 Conference Room - F123, Bldg. 002 4121 4.8.1.8 Percent Complete 4123 Property Name: PERCENT-COMPLETE 4125 Purpose: This property is used by an assignee or delegatee of a to-do 4126 to convey the percent completion of a to-do to the Organizer. 4128 Value Type: INTEGER 4130 Property Parameters: Non-standard property parameters can be 4131 specified on this property. 4133 Conformance: This property can be specified in a "VTODO" calendar 4134 component. 4136 Description: The property value is a positive integer between zero 4137 and one hundred. A value of "0" indicates the to-do has not yet been 4138 started. A value of "100" indicates that the to-do has been 4139 completed. Integer values in between indicate the percent partially 4140 complete. 4142 When a to-do is assigned to multiple individuals, the property value 4143 indicates the percent complete for that portion of the to-do assigned 4144 to the assignee or delegatee. For example, if a to-do is assigned to 4145 both individuals "A" and "B". A reply from "A" with a percent 4146 complete of "70" indicates that "A" has completed 70% of the to-do 4147 assigned to them. A reply from "B" with a percent complete of "50" 4148 indicates "B" has completed 50% of the to-do assigned to them. 4150 Format Definition: The property is defined by the following notation: 4152 Dawson/Stenerson 76 Expires December 1999 4153 percent = "PERCENT-COMPLETE" pctparam ":" integer CRLF 4155 pctparam = *(";" xparam) 4157 Example: The following is an example of this property to show 39% 4158 completion: 4160 PERCENT-COMPLETE:39 4162 4.8.1.9 Priority 4164 Property Name: PRIORITY 4166 Purpose: The property defines the relative priority for a calendar 4167 component. 4169 Value Type: INTEGER 4171 Property Parameters: Non-standard property parameters can be 4172 specified on this property. 4174 Conformance: The property can be specified in a "VEVENT" or "VTODO" 4175 calendar component. 4177 Description: The priority is specified as an integer in the range 4178 zero to nine. A value of zero (US-ASCII decimal 48) specifies an 4179 undefined priority. A value of one (US-ASCII decimal 49) is the 4180 highest priority. A value of two (US-ASCII decimal 50) is the second 4181 highest priority. Subsequent numbers specify a decreasing ordinal 4182 priority. A value of nine (US-ASCII decimal 58) is the lowest 4183 priority. 4185 A CUA with a three-level priority scheme of "HIGH", "MEDIUM" and 4186 "LOW" is mapped into this property such that a property value in the 4187 range of one (US-ASCII decimal 49) to four (US-ASCII decimal 52) 4188 specifies "HIGH" priority. A value of five (US-ASCII decimal 53) is 4189 the normal or "MEDIUM" priority. A value in the range of six (US- 4190 ASCII decimal 54) to nine (US-ASCII decimal 58) is "LOW" priority. 4192 A CUA with a priority schema of "A1", "A2", "A3", "B1", "B2", ..., 4193 "C3" is mapped into this property such that a property value of one 4194 (US-ASCII decimal 49) specifies "A1", a property value of two (US- 4195 ASCII decimal 50) specifies "A2", a property value of three (US-ASCII 4196 decimal 51) specifies "A3", and so forth up to a property value of 9 4197 (US-ASCII decimal 58) specifies "C3". 4199 Other integer values are reserved for future use. 4201 Within a "VEVENT" calendar component, this property specifies a 4202 priority for the event. This property may be useful when more than 4203 one event is scheduled for a given time period. 4205 Dawson/Stenerson 77 Expires December 1999 4206 Within a "VTODO" calendar component, this property specified a 4207 priority for the to-do. This property is useful in prioritizing 4208 multiple action items for a given time period. 4210 Format Definition: The property is specified by the following 4211 notation: 4213 priority = "PRIORITY" prioparam ":" privalue CRLF 4214 ;Default is zero 4216 prioparam = *(";" xparam) 4218 privalue = integer ;Must be in the range [0..9] 4219 ; All other values are reserved for future use 4221 The following is an example of a property with the highest priority: 4223 PRIORITY:1 4225 The following is an example of a property with a next highest 4226 priority: 4228 PRIORITY:2 4230 Example: The following is an example of a property with no priority. 4231 This is equivalent to not specifying the "PRIORITY" property: 4233 PRIORITY:0 4235 4.8.1.10 Resources 4237 Property Name: RESOURCES 4239 Purpose: This property defines the equipment or resources anticipated 4240 for an activity specified by a calendar entity.. 4242 Value Type: TEXT 4244 Property Parameters: Non-standard, alternate text representation and 4245 language property parameters can be specified on this property. 4247 Conformance: This property can be specified in "VEVENT" or "VTODO" 4248 calendar component. 4250 Description: The property value is an arbitrary text. More than one 4251 resource can be specified as a list of resources separated by the 4252 COMMA character (US-ASCII decimal 44). 4254 Format Definition: The property is defined by the following notation: 4256 resources = "RESOURCES" resrcparam ":" text *("," text) CRLF 4258 resrcparam = *( 4260 Dawson/Stenerson 78 Expires December 1999 4261 ; the following are optional, 4262 ; but MUST NOT occur more than once 4264 (";" altrepparam) / (";" languageparam) / 4266 ; the following is optional, 4267 ; and MAY occur more than once 4269 (";" xparam) 4271 ) 4273 Example: The following is an example of this property: 4275 RESOURCES:EASEL,PROJECTOR,VCR 4277 RESOURCES;LANGUAGE=fr:1 raton-laveur 4279 4.8.1.11 Status 4281 Property Name: STATUS 4283 Purpose: This property defines the overall status or confirmation for 4284 the calendar component. 4286 Value Type: TEXT 4288 Property Parameters: Non-standard property parameters can be 4289 specified on this property. 4291 Conformance: This property can be specified in "VEVENT", "VTODO" or 4292 "VJOURNAL" calendar components. 4294 Description: In a group scheduled calendar component, the property is 4295 used by the "Organizer" to provide a confirmation of the event to the 4296 "Attendees". For example in a "VEVENT" calendar component, the 4297 "Organizer" can indicate that a meeting is tentative, confirmed or 4298 cancelled. In a "VTODO" calendar component, the "Organizer" can 4299 indicate that an action item needs action, is completed, is in 4300 process or being worked on, or has been cancelled. In a "VJOURNAL" 4301 calendar component, the "Organizer" can indicate that a journal entry 4302 is draft, final or has been cancelled or removed. 4304 Format Definition: The property is defined by the following notation: 4306 status = "STATUS" statparam ":" statvalue CRLF 4308 statparam = *(";" xparam) 4310 statvalue = "TENTATIVE" ;Indicates event is 4311 ;tentative. 4312 / "CONFIRMED" ;Indicates event is 4313 ;definite. 4314 / "CANCELLED" ;Indicates event was 4316 Dawson/Stenerson 79 Expires December 1999 4317 ;cancelled. 4318 ;Status values for a "VEVENT" 4320 statvalue =/ "NEEDS-ACTION" ;Indicates to-do needs action. 4321 / "COMPLETED" ;Indicates to-do completed. 4322 / "IN-PROCESS" ;Indicates to-do in process of 4323 / "CANCELLED" ;Indicates to-do was cancelled. 4324 ;Status values for "VTODO". 4326 statvalue =/ "DRAFT" ;Indicates journal is draft. 4327 / "FINAL" ;Indicates journal is final. 4328 / "CANCELLED" ;Indicates journal is removed. 4329 ;Status values for "VJOURNAL". 4331 Example: The following is an example of this property for a "VEVENT" 4332 calendar component: 4334 STATUS:TENTATIVE 4336 The following is an example of this property for a "VTODO" calendar 4337 component: 4339 STATUS:NEEDS-ACTION 4341 The following is an example of this property for a "VJOURNAL" 4342 calendar component: 4344 STATUS:DRAFT 4346 4.8.1.12 Summary 4348 Property Name: SUMMARY 4350 Purpose: This property defines a short summary or subject for the 4351 calendar component. 4353 Value Type: TEXT 4355 Property Parameters: Non-standard, alternate text representation and 4356 language property parameters can be specified on this property. 4358 Conformance: The property can be specified in "VEVENT", "VTODO", 4359 "VJOURNAL" or "VALARM" calendar components. 4361 Description: This property is used in the "VEVENT", "VTODO" and 4362 "VJOURNAL" calendar components to capture a short, one line summary 4363 about the activity or journal entry. 4365 This property is used in the "VALARM" calendar component to capture 4366 the subject of an EMAIL category of alarm. 4368 Format Definition: The property is defined by the following notation: 4370 summary = "SUMMARY" summparam ":" text CRLF 4372 Dawson/Stenerson 80 Expires December 1999 4373 summparam = *( 4375 ; the following are optional, 4376 ; but MUST NOT occur more than once 4378 (";" altrepparam) / (";" languageparam) / 4380 ; the following is optional, 4381 ; and MAY occur more than once 4383 (";" xparam) 4385 ) 4387 Example: The following is an example of this property: 4389 SUMMARY:Department Party 4391 4.8.2 Date and Time Component Properties 4393 The following properties specify date and time related information in 4394 calendar components. 4396 4.8.2.1 Date/Time Completed 4398 Property Name: COMPLETED 4400 Purpose: This property defines the date and time that a to-do was 4401 actually completed. 4403 Value Type: DATE-TIME 4405 Property Parameters: Non-standard property parameters can be 4406 specified on this property. 4408 Conformance: The property can be specified in a "VTODO" calendar 4409 component. 4411 Description: The date and time MUST be in a UTC format. 4413 Format Definition: The property is defined by the following notation: 4415 completed = "COMPLETED" compparam ":" date-time CRLF 4417 compparam = *(";" xparam) 4419 Example: The following is an example of this property: 4421 COMPLETED:19960401T235959Z 4423 4.8.2.2 Date/Time End 4425 Property Name: DTEND 4427 Dawson/Stenerson 81 Expires December 1999 4428 Purpose: This property specifies the date and time that a calendar 4429 component ends. 4431 Value Type: The default value type is DATE-TIME. The value type can 4432 be set to a DATE value type. 4434 Property Parameters: Non-standard, value data type, time zone 4435 identifier property parameters can be specified on this property. 4437 Conformance: This property can be specified in "VEVENT" or 4438 "VFREEBUSY" calendar components. 4440 Description: Within the "VEVENT" calendar component, this property 4441 defines the date and time by which the event ends. The value MUST be 4442 later in time than the value of the "DTSTART" property. 4444 Within the "VFREEBUSY" calendar component, this property defines the 4445 end date and time for the free or busy time information. The time 4446 MUST be specified in the UTC time format. The value MUST be later in 4447 time than the value of the "DTSTART" property. 4449 Format Definition: The property is defined by the following notation: 4451 dtend = "DTEND" dtendparam":" dtendval CRLF 4453 dtendparam = *( 4455 ; the following are optional, 4456 ; but MUST NOT occur more than once 4458 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) / 4459 (";" tzidparam) / 4461 ; the following is optional, 4462 ; and MAY occur more than once 4464 (";" xparam) 4466 ) 4468 dtendval = date-time / date 4469 ;Value MUST match value type 4471 Example: The following is an example of this property: 4473 DTEND:19960401T235959Z 4475 DTEND;VALUE=DATE:19980704 4477 4.8.2.3 Date/Time Due 4479 Property Name: DUE 4481 Dawson/Stenerson 82 Expires December 1999 4482 Purpose: This property defines the date and time that a to-do is 4483 expected to be completed. 4485 Value Type: The default value type is DATE-TIME. The value type can 4486 be set to a DATE value type. 4488 Property Parameters: Non-standard, value data type, time zone 4489 identifier property parameters can be specified on this property. 4491 Conformance: The property can be specified once in a "VTODO" calendar 4492 component. 4494 Description: The value MUST be a date/time equal to or after the 4495 DTSTART value, if specified. 4497 Format Definition: The property is defined by the following notation: 4499 due = "DUE" dueparam":" dueval CRLF 4501 dueparam = *( 4503 ; the following are optional, 4504 ; but MUST NOT occur more than once 4506 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) / 4507 (";" tzidparam) / 4509 ; the following is optional, 4510 ; and MAY occur more than once 4512 *(";" xparam) 4514 ) 4516 dueval = date-time / date 4517 ;Value MUST match value type 4519 Example: The following is an example of this property: 4521 DUE:19980430T235959Z 4523 4.8.2.4 Date/Time Start 4525 Property Name: DTSTART 4527 Purpose: This property specifies when the calendar component begins. 4529 Value Type: The default value type is DATE-TIME. The time value MUST 4530 be one of the forms defined for the DATE-TIME value type. The value 4531 type can be set to a DATE value type. 4533 Dawson/Stenerson 83 Expires December 1999 4534 Property Parameters: Non-standard, value data type, time zone 4535 identifier property parameters can be specified on this property. 4537 Conformance: This property can be specified in the "VEVENT", "VTODO", 4538 "VFREEBUSY", or "VTIMEZONE" calendar components. 4540 Description: Within the "VEVENT" calendar component, this property 4541 defines the start date and time for the event. The property is 4542 REQUIRED in "VEVENT" calendar components. Events can have a start 4543 date/time but no end date/time. In that case, the event does not take 4544 up any time. 4546 Within the "VFREEBUSY" calendar component, this property defines the 4547 start date and time for the free or busy time information. The time 4548 MUST be specified in UTC time. 4550 Within the "VTIMEZONE" calendar component, this property defines the 4551 effective start date and time for a time zone specification. This 4552 property is REQUIRED within each STANDARD and DAYLIGHT part included 4553 in "VTIMEZONE" calendar components and MUST be specified as a local 4554 DATE-TIME without the "TZID" property parameter. 4556 Format Definition: The property is defined by the following notation: 4558 dtstart = "DTSTART" dtstparam ":" dtstval CRLF 4560 dtstparam = *( 4562 ; the following are optional, 4563 ; but MUST NOT occur more than once 4565 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) / 4566 (";" tzidparam) / 4568 ; the following is optional, 4569 ; and MAY occur more than once 4571 *(";" xparam) 4573 ) 4575 dtstval = date-time / date 4576 ;Value MUST match value type 4578 Example: The following is an example of this property: 4580 DTSTART:19980118T073000Z 4582 4.8.2.5 Duration 4584 Property Name: DURATION 4586 Dawson/Stenerson 84 Expires December 1999 4587 Purpose: The property specifies a positive duration of time . 4589 Value Type: DURATION 4591 Property Parameters: Non-standard property parameters can be 4592 specified on this property. 4594 Conformance: The property can be specified in "VEVENT", "VTODO", 4595 "VFREEBUSY" or "VALARM" calendar components. 4597 Description: In a "VEVENT" calendar component the property may be 4598 used to specify a duration of the event, instead of an explicit end 4599 date/time. In a "VTODO" calendar component the property may be used 4600 to specify a duration for the to-do, instead of an explicit due 4601 date/time. In a "VFREEBUSY" calendar component the property may be 4602 used to specify the interval of free time being requested. In a 4603 "VALARM" calendar component the property may be used to specify the 4604 delay period prior to repeating an alarm. 4606 Format Definition: The property is defined by the following notation: 4608 duration = "DURATION" durparam ":" dur-value CRLF 4609 ;consisting of a positive duration of time. 4611 durparam = *(";" xparam) 4613 Example: The following is an example of this property that specifies 4614 an interval of time of 1 hour and zero minutes and zero seconds: 4616 DURATION:PT1H0M0S 4618 The following is an example of this property that specifies an 4619 interval of time of 15 minutes. 4621 DURATION:PT15M 4623 4.8.2.6 Free/Busy Time 4625 Property Name: FREEBUSY 4627 Purpose: The property defines one or more free or busy time 4628 intervals. 4630 Value Type: PERIOD. The date and time values MUST be in an UTC time 4631 format. 4633 Property Parameters: Non-standard or free/busy time type property 4634 parameters can be specified on this property. 4636 Conformance: The property can be specified in a "VFREEBUSY" calendar 4637 component. 4639 Property Parameter: "FBTYPE" and non-standard parameters can be 4640 specified on this property. 4642 Dawson/Stenerson 85 Expires December 1999 4643 Description: These time periods can be specified as either a start 4644 and end date-time or a start date-time and duration. The date and 4645 time MUST be a UTC time format. 4647 "FREEBUSY" properties within the "VFREEBUSY" calendar component 4648 SHOULD be sorted in ascending order, based on start time and then end 4649 time, with the earliest periods first. 4651 The "FREEBUSY" property can specify more than one value, separated by 4652 the COMMA character (US-ASCII decimal 44). In such cases, the 4653 "FREEBUSY" property values SHOULD all be of the same "FBTYPE" 4654 property parameter type (e.g., all values of a particular "FBTYPE" 4655 listed together in a single property). 4657 Format Definition: The property is defined by the following notation: 4659 freebusy = "FREEBUSY" fbparam ":" fbvalue 4660 CRLF 4662 fbparam = *( 4664 ; the following is optional, 4665 ; but MUST NOT occur more than once 4667 (";" fbtypeparam) / 4669 ; the following is optional, 4670 ; and MAY occur more than once 4672 (";" xparam) 4674 ) 4676 fbvalue = period *["," period] 4677 ;Time value MUST be in the UTC time format. 4679 Example: The following are some examples of this property: 4681 FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M 4683 FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H 4685 FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H, 4686 19970308T230000Z/19970309T000000Z 4688 4.8.2.7 Time Transparency 4690 Property Name: TRANSP 4692 Purpose: This property defines whether an event is transparent or not 4693 to busy time searches. 4695 Value Type: TEXT 4697 Dawson/Stenerson 86 Expires December 1999 4698 Property Parameters: Non-standard property parameters can be 4699 specified on this property. 4701 Conformance: This property can be specified once in a "VEVENT" 4702 calendar component. 4704 Description: Time Transparency is the characteristic of an event that 4705 determines whether it appears to consume time on a calendar. Events 4706 that consume actual time for the individual or resource associated 4707 with the calendar SHOULD be recorded as OPAQUE, allowing them to be 4708 detected by free-busy time searches. Other events, which do not take 4709 up the individual's (or resource's) time SHOULD be recorded as 4710 TRANSPARENT, making them invisible to free-busy time searches. 4712 Format Definition: The property is specified by the following 4713 notation: 4715 transp = "TRANSP" tranparam ":" transvalue CRLF 4717 tranparam = *(";" xparam) 4719 transvalue = "OPAQUE" ;Blocks or opaque on busy time searches. 4720 / "TRANSPARENT" ;Transparent on busy time searches. 4721 ;Default value is OPAQUE 4723 Example: The following is an example of this property for an event 4724 that is transparent or does not block on free/busy time searches: 4726 TRANSP:TRANSPARENT 4728 The following is an example of this property for an event that is 4729 opaque or blocks on free/busy time searches: 4731 TRANSP:OPAQUE 4733 4.8.3 Time Zone Component Properties 4735 The following properties specify time zone information in calendar 4736 components. 4738 4.8.3.1 Time Zone Identifier 4740 Property Name: TZID 4742 Purpose: This property specifies the text value that uniquely 4743 identifies the "VTIMEZONE" calendar component. 4745 Value Type: TEXT 4747 Property Parameters: Non-standard property parameters can be 4748 specified on this property. 4750 Conformance: This property MUST be specified in a "VTIMEZONE" 4751 calendar component. 4753 Dawson/Stenerson 87 Expires December 1999 4754 Description: This is the label by which a time zone calendar 4755 component is referenced by any iCalendar properties whose data type 4756 is either DATE-TIME or TIME and not intended to specify a UTC or a 4757 "floating" time. The presence of the SOLIDUS character (US-ASCII 4758 decimal 47) as a prefix, indicates that this TZID represents an 4759 unique ID in a globally defined time zone registry (when such 4760 registry is defined). 4762 Note: This document does not define a naming convention for time 4763 zone identifiers. Implementers may want to use the naming 4764 conventions defined in existing time zone specifications such as 4765 the public-domain Olson database [TZ]. The specification of 4766 globally unique time zone identifiers is not addressed by this 4767 document and is left for future study. 4769 Format Definition: This property is defined by the following 4770 notation: 4772 tzid = "TZID" tzidpropparam ":" [tzidprefix] text CRLF 4774 tzidpropparam = *(";" xparam) 4776 ;tzidprefix = "/" 4777 ; Defined previously. Just listed here for reader convenience. 4779 Example: The following are examples of non-globally unique time zone 4780 identifiers: 4782 TZID:US-Eastern 4784 TZID:California-Los_Angeles 4786 The following is an example of a fictitious globally unique time zone 4787 identifier: 4789 TZID:/US-New_York-New_York 4791 4.8.3.2 Time Zone Name 4793 Property Name: TZNAME 4795 Purpose: This property specifies the customary designation for a time 4796 zone description. 4798 Value Type: TEXT 4800 Property Parameters: Non-standard and language property parameters 4801 can be specified on this property. 4803 Conformance: This property can be specified in a "VTIMEZONE" calendar 4804 component. 4806 Description: This property may be specified in multiple languages; in 4807 order to provide for different language requirements. 4809 Dawson/Stenerson 88 Expires December 1999 4810 Format Definition: This property is defined by the following 4811 notation: 4813 tzname = "TZNAME" tznparam ":" text CRLF 4815 tznparam = *( 4817 ; the following is optional, 4818 ; but MUST NOT occur more than once 4820 (";" languageparam) / 4822 ; the following is optional, 4823 ; and MAY occur more than once 4825 (";" xparam) 4827 ) 4829 Example: The following are example of this property: 4831 TZNAME:EST 4833 The following is an example of this property when two different 4834 languages for the time zone name are specified: 4836 TZNAME;LANGUAGE=en:EST 4837 TZNAME;LANGUAGE=fr-CA:HNE 4839 4.8.3.3 Time Zone Offset From 4841 Property Name: TZOFFSETFROM 4843 Purpose: This property specifies the offset which is in use prior to 4844 this time zone observance. 4846 Value Type: UTC-OFFSET 4848 Property Parameters: Non-standard property parameters can be 4849 specified on this property. 4851 Conformance: This property MUST be specified in a "VTIMEZONE" 4852 calendar component. 4854 Description: This property specifies the offset which is in use prior 4855 to this time observance. It is used to calculate the absolute time at 4856 which the transition to a given observance takes place. This property 4857 MUST only be specified in a "VTIMEZONE" calendar component. A 4858 "VTIMEZONE" calendar component MUST include this property. The 4859 property value is a signed numeric indicating the number of hours and 4860 possibly minutes from UTC. Positive numbers represent time zones east 4861 of the prime meridian, or ahead of UTC. Negative numbers represent 4862 time zones west of the prime meridian, or behind UTC. 4864 Dawson/Stenerson 89 Expires December 1999 4865 Format Definition: The property is defined by the following notation: 4867 tzoffsetfrom = "TZOFFSETFROM" frmparam ":" utc-offset 4868 CRLF 4870 frmparam = *(";" xparam) 4872 Example: The following are examples of this property: 4874 TZOFFSETFROM:-0500 4876 TZOFFSETFROM:+1345 4878 4.8.3.4 Time Zone Offset To 4880 Property Name: TZOFFSETTO 4882 Purpose: This property specifies the offset which is in use in this 4883 time zone observance. 4885 Value Type: UTC-OFFSET 4887 Property Parameters: Non-standard property parameters can be 4888 specified on this property. 4890 Conformance: This property MUST be specified in a "VTIMEZONE" 4891 calendar component. 4893 Description: This property specifies the offset which is in use in 4894 this time zone observance. It is used to calculate the absolute time 4895 for the new observance. The property value is a signed numeric 4896 indicating the number of hours and possibly minutes from UTC. 4897 Positive numbers represent time zones east of the prime meridian, or 4898 ahead of UTC. Negative numbers represent time zones west of the prime 4899 meridian, or behind UTC. 4901 Format Definition: The property is defined by the following notation: 4903 tzoffsetto = "TZOFFSETTO" toparam ":" utc-offset CRLF 4905 toparam = *(";" xparam) 4907 Example: The following are examples of this property: 4909 TZOFFSETTO:-0400 4911 TZOFFSETTO:+1245 4913 4.8.3.5 Time Zone URL 4915 Property Name: TZURL 4917 Dawson/Stenerson 90 Expires December 1999 4918 Purpose: The TZURL provides a means for a VTIMEZONE component to 4919 point to a network location that can be used to retrieve an up-to- 4920 date version of itself. 4922 Value Type: URI 4924 Property Parameters: Non-standard property parameters can be 4925 specified on this property. 4927 Conformance: This property can be specified in a "VTIMEZONE" calendar 4928 component. 4930 Description: The TZURL provides a means for a VTIMEZONE component to 4931 point to a network location that can be used to retrieve an up-to- 4932 date version of itself. This provides a hook to handle changes 4933 government bodies impose upon time zone definitions. Retrieval of 4934 this resource results in an iCalendar object containing a single 4935 VTIMEZONE component and a METHOD property set to PUBLISH. 4937 Format Definition: The property is defined by the following notation: 4939 tzurl = "TZURL" tzurlparam ":" uri CRLF 4941 tzurlparam = *(";" xparam) 4943 Example: The following is an example of this property: 4945 TZURL:http://timezones.r.us.net/tz/US-California-Los_Angeles 4947 4.8.4 Relationship Component Properties 4949 The following properties specify relationship information in calendar 4950 components. 4952 4.8.4.1 Attendee 4954 Property Name: ATTENDEE 4956 Purpose: The property defines an "Attendee" within a calendar 4957 component. 4959 Value Type: CAL-ADDRESS 4961 Property Parameters: Non-standard, language, calendar user type, 4962 group or list membership, participation role, participation status, 4963 RSVP expectation, delegatee, delegator, sent by, common name or 4964 directory entry reference property parameters can be specified on 4965 this property. 4967 Conformance: This property MUST be specified in an iCalendar object 4968 that specifies a group scheduled calendar entity. This property MUST 4969 NOT be specified in an iCalendar object when publishing the calendar 4970 information (e.g., NOT in an iCalendar object that specifies the 4971 publication of a calendar user's busy time, event, to-do or journal). 4973 Dawson/Stenerson 91 Expires December 1999 4974 This property is not specified in an iCalendar object that specifies 4975 only a time zone definition or that defines calendar entities that 4976 are not group scheduled entities, but are entities only on a single 4977 user's calendar. 4979 Description: The property MUST only be specified within calendar 4980 components to specify participants, non-participants and the chair of 4981 a group scheduled calendar entity. The property is specified within 4982 an "EMAIL" category of the "VALARM" calendar component to specify an 4983 email address that is to receive the email type of iCalendar alarm. 4985 The property parameter CN is for the common or displayable name 4986 associated with the calendar address; ROLE, for the intended role 4987 that the attendee will have in the calendar component; PARTSTAT, for 4988 the status of the attendee's participation; RSVP, for indicating 4989 whether the favor of a reply is requested; CUTYPE, to indicate the 4990 type of calendar user; MEMBER, to indicate the groups that the 4991 attendee belongs to; DELEGATED-TO, to indicate the calendar users 4992 that the original request was delegated to; and DELEGATED-FROM, to 4993 indicate whom the request was delegated from; SENT-BY, to indicate 4994 whom is acting on behalf of the ATTENDEE; and DIR, to indicate the 4995 URI that points to the directory information corresponding to the 4996 attendee. These property parameters can be specified on an "ATTENDEE" 4997 property in either a "VEVENT", "VTODO" or "VJOURNAL" calendar 4998 component. They MUST not be specified in an "ATTENDEE" property in a 4999 "VFREEBUSY" or "VALARM" calendar component. If the LANGUAGE property 5000 parameter is specified, the identified language applies to the CN 5001 parameter. 5003 A recipient delegated a request MUST inherit the RSVP and ROLE values 5004 from the attendee that delegated the request to them. 5006 Multiple attendees can be specified by including multiple "ATTENDEE" 5007 properties within the calendar component. 5009 Format Definition: The property is defined by the following notation: 5011 attendee = "ATTENDEE" attparam ":" cal-address CRLF 5013 attparam = *( 5015 ; the following are optional, 5016 ; but MUST NOT occur more than once 5018 (";" cutypeparam) / (";"memberparam) / 5019 (";" roleparam) / (";" partstatparam) / 5020 (";" rsvpparam) / (";" deltoparam) / 5021 (";" delfromparam) / (";" sentbyparam) / 5022 (";"cnparam) / (";" dirparam) / 5023 (";" languageparam) / 5025 ; the following is optional, 5026 ; and MAY occur more than once 5028 Dawson/Stenerson 92 Expires December 1999 5029 (";" xparam) 5031 ) 5033 Example: The following are examples of this property's use for a to- 5034 do: 5036 ORGANIZER:MAILTO:jsmith@host1.com 5037 ATTENDEE;MEMBER="MAILTO:DEV-GROUP@host2.com": 5038 MAILTO:joecool@host2.com 5039 ATTENDEE;DELEGATED-FROM="MAILTO:immud@host3.com": 5040 MAILTO:ildoit@host1.com 5042 The following is an example of this property used for specifying 5043 multiple attendees to an event: 5045 ORGANIZER:MAILTO:jsmith@host1.com 5046 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Henry Cabot 5047 :MAILTO:hcabot@host2.com 5048 ATTENDEE;ROLE=REQ-PARTICIPANT;DELEGATED-FROM="MAILTO:bob@host.com" 5049 ;PARTSTAT=ACCEPTED;CN=Jane Doe:MAILTO:jdoe@host1.com 5051 The following is an example of this property with a URI to the 5052 directory information associated with the attendee: 5054 ATTENDEE;CN=John Smith;DIR="ldap://host.com:6666/o=eDABC% 5055 20Industries,c=3DUS??(cn=3DBJim%20Dolittle)":MAILTO:jimdo@ 5056 host1.com 5058 The following is an example of this property with "delegatee" and 5059 "delegator" information for an event: 5061 ORGANIZER;CN=John Smith:MAILTO:jsmith@host.com 5062 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;DELEGATED-FROM= 5063 "MAILTO:iamboss@host2.com";CN=Henry Cabot:MAILTO:hcabot@ 5064 host2.com 5065 ATTENDEE;ROLE=NON-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO= 5066 "MAILTO:hcabot@host2.com";CN=The Big Cheese:MAILTO:iamboss 5067 @host2.com 5068 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Jane Doe 5069 :MAILTO:jdoe@host1.com 5071 Example: The following is an example of this property's use when 5072 another calendar user is acting on behalf of the "Attendee": 5074 ATTENDEE;SENT-BY=MAILTO:jan_doe@host1.com;CN=John Smith:MAILTO: 5075 jsmith@host1.com 5077 4.8.4.2 Contact 5079 Property Name: CONTACT 5081 Dawson/Stenerson 93 Expires December 1999 5082 Purpose: The property is used to represent contact information or 5083 alternately a reference to contact information associated with the 5084 calendar component. 5086 Value Type: TEXT 5088 Property Parameters: Non-standard, alternate text representation and 5089 language property parameters can be specified on this property. 5091 Conformance: The property can be specified in a "VEVENT", "VTODO", 5092 "VJOURNAL" or "VFREEBUSY" calendar component. 5094 Description: The property value consists of textual contact 5095 information. An alternative representation for the property value can 5096 also be specified that refers to a URI pointing to an alternate form, 5097 such as a vCard [RFC 2426], for the contact information. 5099 Format Definition: The property is defined by the following notation: 5101 contact = "CONTACT" contparam ":" text CRLF 5103 contparam = *( 5105 ; the following are optional, 5106 ; but MUST NOT occur more than once 5108 (";" altrepparam) / (";" languageparam) / 5110 ; the following is optional, 5111 ; and MAY occur more than once 5113 (";" xparam) 5115 ) 5117 Example: The following is an example of this property referencing 5118 textual contact information: 5120 CONTACT:Jim Dolittle\, ABC Industries\, +1-919-555-1234 5122 The following is an example of this property with an alternate 5123 representation of a LDAP URI to a directory entry containing the 5124 contact information: 5126 CONTACT;ALTREP="ldap://host.com:6666/o=3DABC%20Industries\, 5127 c=3DUS??(cn=3DBJim%20Dolittle)":Jim Dolittle\, ABC Industries\, 5128 +1-919-555-1234 5130 The following is an example of this property with an alternate 5131 representation of a MIME body part containing the contact 5132 information, such as a vCard [RFC 2426] embedded in a [MIME-DIR] 5133 content-type: 5135 Dawson/Stenerson 94 Expires December 1999 5136 CONTACT;ALTREP="CID=":Jim 5137 Dolittle\, ABC Industries\, +1-919-555-1234 5139 The following is an example of this property referencing a network 5140 resource, such as a vCard [RFC 2426] object containing the contact 5141 information: 5143 CONTACT;ALTREP="http://host.com/pdi/jdoe.vcf":Jim 5144 Dolittle\, ABC Industries\, +1-919-555-1234 5146 4.8.4.3 Organizer 5148 Property Name: ORGANIZER 5150 Purpose: The property defines the organizer for a calendar component. 5152 Value Type: CAL-ADDRESS 5154 Property Parameters: Non-standard, language, common name, directory 5155 entry reference, sent by property parameters can be specified on this 5156 property. 5158 Conformance: This property MUST be specified in an iCalendar object 5159 that specifies a group scheduled calendar entity. This property MUST 5160 be specified in an iCalendar object that specifies the publication of 5161 a calendar user's busy time. This property MUST NOT be specified in 5162 an iCalendar object that specifies only a time zone definition or 5163 that defines calendar entities that are not group scheduled entities, 5164 but are entities only on a single user's calendar. 5166 Description: The property is specified within the "VEVENT", "VTODO", 5167 "VJOURNAL calendar components to specify the organizer of a group 5168 scheduled calendar entity. The property is specified within the 5169 "VFREEBUSY" calendar component to specify the calendar user 5170 requesting the free or busy time. When publishing a "VFREEBUSY" 5171 calendar component, the property is used to specify the calendar that 5172 the published busy time came from. 5174 The property has the property parameters CN, for specifying the 5175 common or display name associated with the "Organizer", DIR, for 5176 specifying a pointer to the directory information associated with the 5177 "Organizer", SENT-BY, for specifying another calendar user that is 5178 acting on behalf of the "Organizer". The non-standard parameters may 5179 also be specified on this property. If the LANGUAGE property 5180 parameter is specified, the identified language applies to the CN 5181 parameter value. 5183 Format Definition: The property is defined by the following notation: 5185 organizer = "ORGANIZER" orgparam ":" 5186 cal-address CRLF 5188 orgparam = *( 5190 Dawson/Stenerson 95 Expires December 1999 5191 ; the following are optional, 5192 ; but MUST NOT occur more than once 5194 (";" cnparam) / (";" dirparam) / (";" sentbyparam) / 5195 (";" languageparam) / 5197 ; the following is optional, 5198 ; and MAY occur more than once 5200 (";" xparam) 5202 ) 5204 Example: The following is an example of this property: 5206 ORGANIZER;CN=John Smith:MAILTO:jsmith@host1.com 5208 The following is an example of this property with a pointer to the 5209 directory information associated with the organizer: 5211 ORGANIZER;CN=JohnSmith;DIR="ldap://host.com:6666/o=3DDC%20Associ 5212 ates,c=3DUS??(cn=3DJohn%20Smith)":MAILTO:jsmith@host1.com 5214 The following is an example of this property used by another calendar 5215 user who is acting on behalf of the organizer, with responses 5216 intended to be sent back to the organizer, not the other calendar 5217 user: 5219 ORGANIZER;SENT-BY="MAILTO:jane_doe@host.com": 5220 MAILTO:jsmith@host1.com 5222 4.8.4.4 Recurrence ID 5224 Property Name: RECURRENCE-ID 5226 Purpose: This property is used in conjunction with the "UID" and 5227 "SEQUENCE" property to identify a specific instance of a recurring 5228 "VEVENT", "VTODO" or "VJOURNAL" calendar component. The property 5229 value is the effective value of the "DTSTART" property of the 5230 recurrence instance. 5232 Value Type: The default value type for this property is DATE-TIME. 5233 The time format can be any of the valid forms defined for a DATE-TIME 5234 value type. See DATE-TIME value type definition for specific 5235 interpretations of the various forms. The value type can be set to 5236 DATE. 5238 Property Parameters: Non-standard property, value data type, time 5239 zone identifier and recurrence identifier range parameters can be 5240 specified on this property. 5242 Conformance: This property can be specified in an iCalendar object 5243 containing a recurring calendar component. 5245 Dawson/Stenerson 96 Expires December 1999 5246 Description: The full range of calendar components specified by a 5247 recurrence set is referenced by referring to just the "UID" property 5248 value corresponding to the calendar component. The "RECURRENCE-ID" 5249 property allows the reference to an individual instance within the 5250 recurrence set. 5252 If the value of the "DTSTART" property is a DATE type value, then the 5253 value MUST be the calendar date for the recurrence instance. 5255 The date/time value is set to the time when the original recurrence 5256 instance would occur; meaning that if the intent is to change a 5257 Friday meeting to Thursday, the date/time is still set to the 5258 original Friday meeting. 5260 The "RECURRENCE-ID" property is used in conjunction with the "UID" 5261 and "SEQUENCE" property to identify a particular instance of a 5262 recurring event, to-do or journal. For a given pair of "UID" and 5263 "SEQUENCE" property values, the "RECURRENCE-ID" value for a 5264 recurrence instance is fixed. When the definition of the recurrence 5265 set for a calendar component changes, and hence the "SEQUENCE" 5266 property value changes, the "RECURRENCE-ID" for a given recurrence 5267 instance might also change.The "RANGE" parameter is used to specify 5268 the effective range of recurrence instances from the instance 5269 specified by the "RECURRENCE-ID" property value. The default value 5270 for the range parameter is the single recurrence instance only. The 5271 value can also be "THISANDPRIOR" to indicate a range defined by the 5272 given recurrence instance and all prior instances or the value can be 5273 "THISANDFUTURE" to indicate a range defined by the given recurrence 5274 instance and all subsequent instances. 5276 Format Definition: The property is defined by the following notation: 5278 recurid = "RECURRENCE-ID" ridparam ":" ridval CRLF 5280 ridparam = *( 5282 ; the following are optional, 5283 ; but MUST NOT occur more than once 5285 (";" "VALUE" "=" ("DATE-TIME" / "DATE)) / 5286 (";" tzidparam) / (";" rangeparam) / 5288 ; the following is optional, 5289 ; and MAY occur more than once 5291 (";" xparam) 5293 ) 5295 ridval = date-time / date 5296 ;Value MUST match value type 5298 Example: The following are examples of this property: 5300 Dawson/Stenerson 97 Expires December 1999 5301 RECURRENCE-ID;VALUE=DATE:19960401 5303 RECURRENCE-ID;RANGE=THISANDFUTURE:19960120T120000Z 5305 4.8.4.5 Related To 5307 Property Name: RELATED-TO 5309 Purpose: The property is used to represent a relationship or 5310 reference between one calendar component and another. 5312 Value Type: TEXT 5314 Property Parameters: Non-standard and relationship type property 5315 parameters can be specified on this property. 5317 Conformance: The property can be specified one or more times in the 5318 "VEVENT", "VTODO" or "VJOURNAL" calendar components. 5320 Description: The property value consists of the persistent, globally 5321 unique identifier of another calendar component. This value would be 5322 represented in a calendar component by the "UID" property. 5324 By default, the property value points to another calendar component 5325 that has a PARENT relationship to the referencing object. The 5326 "RELTYPE" property parameter is used to either explicitly state the 5327 default PARENT relationship type to the referenced calendar component 5328 or to override the default PARENT relationship type and specify 5329 either a CHILD or SIBLING relationship. The PARENT relationship 5330 indicates that the calendar component is a subordinate of the 5331 referenced calendar component. The CHILD relationship indicates that 5332 the calendar component is a superior of the referenced calendar 5333 component. The SIBLING relationship indicates that the calendar 5334 component is a peer of the referenced calendar component. 5336 Changes to a calendar component referenced by this property can have 5337 an implicit impact on the related calendar component. For example, if 5338 a group event changes its start or end date or time, then the 5339 related, dependent events will need to have their start and end dates 5340 changed in a corresponding way. Similarly, if a PARENT calendar 5341 component is cancelled or deleted, then there is an implied impact to 5342 the related CHILD calendar components. This property is intended only 5343 to provide information on the relationship of calendar components. It 5344 is up to the target calendar system to maintain any property 5345 implications of this relationship. 5347 Format Definition: The property is defined by the following notation: 5349 related = "RELATED-TO" relparam ":" text CRLF 5351 relparam = *( 5353 ; the following is optional, 5354 ; but MUST NOT occur more than once 5356 Dawson/Stenerson 98 Expires December 1999 5357 (";" reltypeparam) / 5359 ; the following is optional, 5360 ; and MAY occur more than once 5362 (";" xparam) 5364 ) 5366 The following is an example of this property: 5368 RELATED-TO: 5370 RELATED-TO:<19960401-080045-4000F192713-0052@host1.com> 5372 4.8.4.6 Uniform Resource Locator 5374 Property Name: URL 5376 Purpose: This property defines a Uniform Resource Locator (URL) 5377 associated with the iCalendar object. 5379 Value Type: URI 5381 Property Parameters: Non-standard property parameters can be 5382 specified on this property. 5384 Conformance: This property can be specified once in the "VEVENT", 5385 "VTODO", "VJOURNAL" or "VFREEBUSY" calendar components. 5387 Description: This property may be used in a calendar component to 5388 convey a location where a more dynamic rendition of the calendar 5389 information associated with the calendar component can be found. This 5390 memo does not attempt to standardize the form of the URI, nor the 5391 format of the resource pointed to by the property value. If the URL 5392 property and Content-Location MIME header are both specified, they 5393 MUST point to the same resource. 5395 Format Definition: The property is defined by the following notation: 5397 url = "URL" urlparam ":" uri CRLF 5399 urlparam = *(";" xparam) 5401 Example: The following is an example of this property: 5403 URL:http://abc.com/pub/calendars/jsmith/mytime.ics 5405 4.8.4.7 Unique Identifier 5407 Property Name: UID 5409 Purpose: This property defines the persistent, globally unique 5410 identifier for the calendar component. 5412 Dawson/Stenerson 99 Expires December 1999 5413 Value Type: TEXT 5415 Property Parameters: Non-standard property parameters can be 5416 specified on this property. 5418 Conformance: The property MUST be specified in the "VEVENT", "VTODO", 5419 "VJOURNAL" or "VFREEBUSY" calendar components. 5421 Description: The UID itself MUST be a globally unique identifier. The 5422 generator of the identifier MUST guarantee that the identifier is 5423 unique. There are several algorithms that can be used to accomplish 5424 this. The identifier is RECOMMENDED to be the identical syntax to the 5425 [RFC 822] addr-spec. A good method to assure uniqueness is to put the 5426 domain name or a domain literal IP address of the host on which the 5427 identifier was created on the right hand side of the "@", and on the 5428 left hand side, put a combination of the current calendar date and 5429 time of day (i.e., formatted in as a DATE-TIME value) along with some 5430 other currently unique (perhaps sequential) identifier available on 5431 the system (for example, a process id number). Using a date/time 5432 value on the left hand side and a domain name or domain literal on 5433 the right hand side makes it possible to guarantee uniqueness since 5434 no two hosts should be using the same domain name or IP address at 5435 the same time. Though other algorithms will work, it is RECOMMENDED 5436 that the right hand side contain some domain identifier (either of 5437 the host itself or otherwise) such that the generator of the message 5438 identifier can guarantee the uniqueness of the left hand side within 5439 the scope of that domain. 5441 This is the method for correlating scheduling messages with the 5442 referenced "VEVENT", "VTODO", or "VJOURNAL" calendar component. 5444 The full range of calendar components specified by a recurrence set 5445 is referenced by referring to just the "UID" property value 5446 corresponding to the calendar component. The "RECURRENCE-ID" property 5447 allows the reference to an individual instance within the recurrence 5448 set. 5450 This property is an important method for group scheduling 5451 applications to match requests with later replies, modifications or 5452 deletion requests. Calendaring and scheduling applications MUST 5453 generate this property in "VEVENT", "VTODO" and "VJOURNAL" calendar 5454 components to assure interoperability with other group scheduling 5455 applications. This identifier is created by the calendar system that 5456 generates an iCalendar object. 5458 Implementations MUST be able to receive and persist values of at 5459 least 255 characters for this property. 5461 Format Definition: The property is defined by the following notation: 5463 uid = "UID" uidparam ":" text CRLF 5465 uidparam = *(";" xparam) 5467 Dawson/Stenerson 100 Expires December 1999 5468 Example: The following is an example of this property: 5470 UID:19960401T080045Z-4000F192713-0052@host1.com 5472 4.8.5 Recurrence Component Properties 5474 The following properties specify recurrence information in calendar 5475 components. 5477 4.8.5.1 Exception Date/Times 5479 Property Name: EXDATE 5481 Purpose: This property defines the list of date/time exceptions for a 5482 recurring calendar component. 5484 Value Type: The default value type for this property is DATE-TIME. 5485 The value type can be set to DATE. 5487 Property Parameters: Non-standard, value data type and time zone 5488 identifier property parameters can be specified on this property. 5490 Conformance: This property can be specified in an iCalendar object 5491 that includes a recurring calendar component. 5493 Description: The exception dates, if specified, are used in computing 5494 the recurrence set. The recurrence set is the complete set of 5495 recurrence instances for a calendar component. The recurrence set is 5496 generated by considering the initial "DTSTART" property along with 5497 the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained 5498 within the iCalendar object. The "DTSTART" property defines the first 5499 instance in the recurrence set. Multiple instances of the "RRULE" and 5500 "EXRULE" properties can also be specified to define more 5501 sophisticated recurrence sets. The final recurrence set is generated 5502 by gathering all of the start date-times generated by any of the 5503 specified "RRULE" and "RDATE" properties, and then excluding any 5504 start date and times which fall within the union of start date and 5505 times generated by any specified "EXRULE" and "EXDATE" properties. 5506 This implies that start date and times within exclusion related 5507 properties (i.e., "EXDATE" and "EXRULE") take precedence over those 5508 specified by inclusion properties (i.e., "RDATE" and "RRULE"). Where 5509 duplicate instances are generated by the "RRULE" and "RDATE" 5510 properties, only one recurrence is considered. Duplicate instances 5511 are ignored. 5513 The "EXDATE" property can be used to exclude the value specified in 5514 "DTSTART". However, in such cases the original "DTSTART" date MUST 5515 still be maintained by the calendaring and scheduling system because 5516 the original "DTSTART" value has inherent usage dependencies by other 5517 properties such as the "RECURRENCE-ID". 5519 Format Definition: The property is defined by the following notation: 5521 exdate = "EXDATE" exdtparam ":" exdtval *("," exdtval) CRLF 5523 Dawson/Stenerson 101 Expires December 1999 5524 exdtparam = *( 5526 ; the following are optional, 5527 ; but MUST NOT occur more than once 5529 (";" "VALUE" "=" ("DATE-TIME" / "DATE")) / 5530 (";" tzidparam) / 5532 ; the following is optional, 5533 ; and MAY occur more than once 5535 (";" xparam) 5537 ) 5539 exdtval = date-time / date 5540 ;Value MUST match value type 5542 Example: The following is an example of this property: 5544 EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z 5546 4.8.5.2 Exception Rule 5548 Property Name: EXRULE 5550 Purpose: This property defines a rule or repeating pattern for an 5551 exception to a recurrence set. 5553 Value Type: RECUR 5555 Property Parameters: Non-standard property parameters can be 5556 specified on this property. 5558 Conformance: This property can be specified in "VEVENT", "VTODO" or 5559 "VJOURNAL" calendar components. 5561 Description: The exception rule, if specified, is used in computing 5562 the recurrence set. The recurrence set is the complete set of 5563 recurrence instances for a calendar component. The recurrence set is 5564 generated by considering the initial "DTSTART" property along with 5565 the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained 5566 within the iCalendar object. The "DTSTART" defines the first instance 5567 in the recurrence set. Multiple instances of the "RRULE" and "EXRULE" 5568 properties can also be specified to define more sophisticated 5569 recurrence sets. The final recurrence set is generated by gathering 5570 all of the start date-times generated by any of the specified "RRULE" 5571 and "RDATE" properties, and excluding any start date and times which 5572 fall within the union of start date and times generated by any 5573 specified "EXRULE" and "EXDATE" properties. This implies that start 5574 date and times within exclusion related properties (i.e., "EXDATE" 5575 and "EXRULE") take precedence over those specified by inclusion 5576 properties (i.e., "RDATE" and "RRULE"). Where duplicate instances are 5578 Dawson/Stenerson 102 Expires December 1999 5579 generated by the "RRULE" and "RDATE" properties, only one recurrence 5580 is considered. Duplicate instances are ignored. 5582 The "EXRULE" property can be used to exclude the value specified in 5583 "DTSTART". However, in such cases the original "DTSTART" date MUST 5584 still be maintained by the calendaring and scheduling system because 5585 the original "DTSTART" value has inherent usage dependencies by other 5586 properties such as the "RECURRENCE-ID". 5588 Format Definition: The property is defined by the following notation: 5590 exrule = "EXRULE" exrparam ":" recur CRLF 5592 exrparam = *(";" xparam) 5594 Example: The following are examples of this property. Except every 5595 other week, on Tuesday and Thursday for 4 occurrences: 5597 EXRULE:FREQ=WEEKLY;COUNT=4;INTERVAL=2;BYDAY=TU,TH 5599 Except daily for 10 occurrences: 5601 EXRULE:FREQ=DAILY;COUNT=10 5603 Except yearly in June and July for 8 occurrences: 5605 EXRULE:FREQ=YEARLY;COUNT=8;BYMONTH=6,7 5607 4.8.5.3 Recurrence Date/Times 5609 Property Name: RDATE 5611 Purpose: This property defines the list of date/times for a 5612 recurrence set. 5614 Value Type: The default value type for this property is DATE-TIME. 5615 The value type can be set to DATE or PERIOD. 5617 Property Parameters: Non-standard, value data type and time zone 5618 identifier property parameters can be specified on this property. 5620 Conformance: The property can be specified in "VEVENT", "VTODO", 5621 "VJOURNAL" or "VTIMEZONE" calendar components. 5623 Description: This property can appear along with the "RRULE" property 5624 to define an aggregate set of repeating occurrences. When they both 5625 appear in an iCalendar object, the recurring events are defined by 5626 the union of occurrences defined by both the "RDATE" and "RRULE". 5628 The recurrence dates, if specified, are used in computing the 5629 recurrence set. The recurrence set is the complete set of recurrence 5630 instances for a calendar component. The recurrence set is generated 5631 by considering the initial "DTSTART" property along with the "RRULE", 5632 "RDATE", "EXDATE" and "EXRULE" properties contained within the 5634 Dawson/Stenerson 103 Expires December 1999 5635 iCalendar object. The "DTSTART" property defines the first instance 5636 in the recurrence set. Multiple instances of the "RRULE" and "EXRULE" 5637 properties can also be specified to define more sophisticated 5638 recurrence sets. The final recurrence set is generated by gathering 5639 all of the start date/times generated by any of the specified "RRULE" 5640 and "RDATE" properties, and excluding any start date/times which fall 5641 within the union of start date/times generated by any specified 5642 "EXRULE" and "EXDATE" properties. This implies that start date/times 5643 within exclusion related properties (i.e., "EXDATE" and "EXRULE") 5644 take precedence over those specified by inclusion properties (i.e., 5645 "RDATE" and "RRULE"). Where duplicate instances are generated by the 5646 "RRULE" and "RDATE" properties, only one recurrence is considered. 5647 Duplicate instances are ignored. 5649 Format Definition: The property is defined by the following notation: 5651 rdate = "RDATE" rdtparam ":" rdtval *("," rdtval) CRLF 5653 rdtparam = *( 5655 ; the following are optional, 5656 ; but MUST NOT occur more than once 5658 (";" "VALUE" "=" ("DATE-TIME" / "DATE" / "PERIOD")) / 5659 (";" tzidparam) / 5661 ; the following is optional, 5662 ; and MAY occur more than once 5664 (";" xparam) 5666 ) 5668 rdtval = date-time / date / period 5669 ;Value MUST match value type 5671 Example: The following are examples of this property: 5673 RDATE:19970714T123000Z 5675 RDATE;TZID=US-EASTERN:19970714T083000 5677 RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z, 5678 19960404T010000Z/PT3H 5680 RDATE;VALUE=DATE:19970101,19970120,19970217,19970421 5681 19970526,19970704,19970901,19971014,19971128,19971129,19971225 5683 4.8.5.4 Recurrence Rule 5685 Property Name: RRULE 5687 Purpose: This property defines a rule or repeating pattern for 5688 recurring events, to-dos, or time zone definitions. 5690 Dawson/Stenerson 104 Expires December 1999 5691 Value Type: RECUR 5693 Property Parameters: Non-standard property parameters can be 5694 specified on this property. 5696 Conformance: This property can be specified one or more times in 5697 recurring "VEVENT", "VTODO" and "VJOURNAL" calendar components. It 5698 can also be specified once in each STANDARD or DAYLIGHT sub-component 5699 of the "VTIMEZONE" calendar component. 5701 Description: The recurrence rule, if specified, is used in computing 5702 the recurrence set. The recurrence set is the complete set of 5703 recurrence instances for a calendar component. The recurrence set is 5704 generated by considering the initial "DTSTART" property along with 5705 the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained 5706 within the iCalendar object. The "DTSTART" property defines the first 5707 instance in the recurrence set. Multiple instances of the "RRULE" and 5708 "EXRULE" properties can also be specified to define more 5709 sophisticated recurrence sets. The final recurrence set is generated 5710 by gathering all of the start date/times generated by any of the 5711 specified "RRULE" and "RDATE" properties, and excluding any start 5712 date/times which fall within the union of start date/times generated 5713 by any specified "EXRULE" and "EXDATE" properties. This implies that 5714 start date/times within exclusion related properties (i.e., "EXDATE" 5715 and "EXRULE") take precedence over those specified by inclusion 5716 properties (i.e., "RDATE" and "RRULE"). Where duplicate instances are 5717 generated by the "RRULE" and "RDATE" properties, only one recurrence 5718 is considered. Duplicate instances are ignored. 5720 The "DTSTART" and "DTEND" property pair or "DTSTART" and "DURATION" 5721 property pair, specified within the iCalendar object defines the 5722 first instance of the recurrence. When used with a recurrence rule, 5723 the "DTSTART" and "DTEND" properties MUST be specified in local time 5724 and the appropriate set of "VTIMEZONE" calendar components MUST be 5725 included. For detail on the usage of the "VTIMEZONE" calendar 5726 component, see the "VTIMEZONE" calendar component definition. 5728 Any duration associated with the iCalendar object applies to all 5729 members of the generated recurrence set. Any modified duration for 5730 specific recurrences MUST be explicitly specified using the "RDATE" 5731 property. 5733 Format Definition: This property is defined by the following 5734 notation: 5736 rrule = "RRULE" rrulparam ":" recur CRLF 5738 rrulparam = *(";" xparam) 5740 Example: All examples assume the Eastern United States time zone. 5742 Daily for 10 occurrences: 5744 DTSTART;TZID=US-Eastern:19970902T090000 5746 Dawson/Stenerson 105 Expires December 1999 5747 RRULE:FREQ=DAILY;COUNT=10 5749 ==> (1997 9:00 AM EDT)September 2-11 5751 Daily until December 24, 1997: 5753 DTSTART;TZID=US-Eastern:19970902T090000 5754 RRULE:FREQ=DAILY;UNTIL=19971224T000000Z 5756 ==> (1997 9:00 AM EDT)September 2-30;October 1-25 5757 (1997 9:00 AM EST)October 26-31;November 1-30;December 1-23 5759 Every other day - forever: 5761 DTSTART;TZID=US-Eastern:19970902T090000 5762 RRULE:FREQ=DAILY;INTERVAL=2 5763 ==> (1997 9:00 AM EDT)September2,4,6,8...24,26,28,30; 5764 October 2,4,6...20,22,24 5765 (1997 9:00 AM EST)October 26,28,30;November 1,3,5,7...25,27,29; 5766 Dec 1,3,... 5768 Every 10 days, 5 occurrences: 5770 DTSTART;TZID=US-Eastern:19970902T090000 5771 RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5 5773 ==> (1997 9:00 AM EDT)September 2,12,22;October 2,12 5775 Everyday in January, for 3 years: 5777 DTSTART;TZID=US-Eastern:19980101T090000 5778 RRULE:FREQ=YEARLY;UNTIL=20000131T090000Z; 5779 BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA 5780 or 5781 RRULE:FREQ=DAILY;UNTIL=20000131T090000Z;BYMONTH=1 5783 ==> (1998 9:00 AM EDT)January 1-31 5784 (1999 9:00 AM EDT)January 1-31 5785 (2000 9:00 AM EDT)January 1-31 5787 Weekly for 10 occurrences 5789 DTSTART;TZID=US-Eastern:19970902T090000 5790 RRULE:FREQ=WEEKLY;COUNT=10 5792 ==> (1997 9:00 AM EDT)September 2,9,16,23,30;October 7,14,21 5793 (1997 9:00 AM EST)October 28;November 4 5795 Weekly until December 24, 1997 5797 DTSTART;TZID=US-Eastern:19970902T090000 5798 RRULE:FREQ=WEEKLY;UNTIL=19971224T000000Z 5800 ==> (1997 9:00 AM EDT)September 2,9,16,23,30;October 7,14,21 5802 Dawson/Stenerson 106 Expires December 1999 5803 (1997 9:00 AM EST)October 28;November 4,11,18,25; 5804 December 2,9,16,23 5806 Every other week - forever: 5808 DTSTART;TZID=US-Eastern:19970902T090000 5809 RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=SU 5811 ==> (1997 9:00 AM EDT)September 2,16,30;October 14 5812 (1997 9:00 AM EST)October 28;November 11,25;December 9,23 5813 (1998 9:00 AM EST)January 6,20;February 5814 ... 5816 Weekly on Tuesday and Thursday for 5 weeks: 5818 DTSTART;TZID=US-Eastern:19970902T090000 5819 RRULE:FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH 5820 or 5821 RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH 5823 ==> (1997 9:00 AM EDT)September 2,4,9,11,16,18,23,25,30;October 2 5825 Every other week on Monday, Wednesday and Friday until December 24, 5826 1997, but starting on Tuesday, September 2, 1997: 5828 DTSTART;TZID=US-Eastern:19970902T090000 5829 RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU; 5830 BYDAY=MO,WE,FR 5831 ==> (1997 9:00 AM EDT)September 2,3,5,15,17,19,29;October 5832 1,3,13,15,17 5833 (1997 9:00 AM EST)October 27,29,31;November 10,12,14,24,26,28; 5834 December 8,10,12,22 5836 Every other week on Tuesday and Thursday, for 8 occurrences: 5838 DTSTART;TZID=US-Eastern:19970902T090000 5839 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH 5841 ==> (1997 9:00 AM EDT)September 2,4,16,18,30;October 2,14,16 5843 Monthly on the 1st Friday for ten occurrences: 5845 DTSTART;TZID=US-Eastern:19970905T090000 5846 RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR 5848 ==> (1997 9:00 AM EDT)September 5;October 3 5849 (1997 9:00 AM EST)November 7;Dec 5 5850 (1998 9:00 AM EST)January 2;February 6;March 6;April 3 5851 (1998 9:00 AM EDT)May 1;June 5 5853 Monthly on the 1st Friday until December 24, 1997: 5855 DTSTART;TZID=US-Eastern:19970905T090000 5857 Dawson/Stenerson 107 Expires December 1999 5858 RRULE:FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR 5860 ==> (1997 9:00 AM EDT)September 5;October 3 5861 (1997 9:00 AM EST)November 7;December 5 5863 Every other month on the 1st and last Sunday of the month for 10 5864 occurrences: 5866 DTSTART;TZID=US-Eastern:19970907T090000 5867 RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU 5869 ==> (1997 9:00 AM EDT)September 7,28 5870 (1997 9:00 AM EST)November 2,30 5871 (1998 9:00 AM EST)January 4,25;March 1,29 5872 (1998 9:00 AM EDT)May 3,31 5874 Monthly on the second to last Monday of the month for 6 months: 5876 DTSTART;TZID=US-Eastern:19970922T090000 5877 RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO 5879 ==> (1997 9:00 AM EDT)September 22;October 20 5880 (1997 9:00 AM EST)November 17;December 22 5881 (1998 9:00 AM EST)January 19;February 16 5883 Monthly on the third to the last day of the month, forever: 5885 DTSTART;TZID=US-Eastern:19970928T090000 5886 RRULE:FREQ=MONTHLY;BYMONTHDAY=-3 5888 ==> (1997 9:00 AM EDT)September 28 5889 (1997 9:00 AM EST)October 29;November 28;December 29 5890 (1998 9:00 AM EST)January 29;February 26 5891 ... 5893 Monthly on the 2nd and 15th of the month for 10 occurrences: 5895 DTSTART;TZID=US-Eastern:19970902T090000 5896 RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15 5898 ==> (1997 9:00 AM EDT)September 2,15;October 2,15 5899 (1997 9:00 AM EST)November 2,15;December 2,15 5900 (1998 9:00 AM EST)January 2,15 5902 Monthly on the first and last day of the month for 10 occurrences: 5904 DTSTART;TZID=US-Eastern:19970930T090000 5905 RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1 5907 ==> (1997 9:00 AM EDT)September 30;October 1 5908 (1997 9:00 AM EST)October 31;November 1,30;December 1,31 5909 (1998 9:00 AM EST)January 1,31;February 1 5911 Dawson/Stenerson 108 Expires December 1999 5912 Every 18 months on the 10th thru 15th of the month for 10 5913 occurrences: 5915 DTSTART;TZID=US-Eastern:19970910T090000 5916 RRULE:FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,13,14, 5917 15 5919 ==> (1997 9:00 AM EDT)September 10,11,12,13,14,15 5920 (1999 9:00 AM EST)March 10,11,12,13 5922 Every Tuesday, every other month: 5924 DTSTART;TZID=US-Eastern:19970902T090000 5925 RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU 5927 ==> (1997 9:00 AM EDT)September 2,9,16,23,30 5928 (1997 9:00 AM EST)November 4,11,18,25 5929 (1998 9:00 AM EST)January 6,13,20,27;March 3,10,17,24,31 5930 ... 5932 Yearly in June and July for 10 occurrences: 5934 DTSTART;TZID=US-Eastern:19970610T090000 5935 RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7 5937 ==> (1997 9:00 AM EDT)June 10;July 10 5938 (1998 9:00 AM EDT)June 10;July 10 5939 (1999 9:00 AM EDT)June 10;July 10 5940 (2000 9:00 AM EDT)June 10;July 10 5941 (2001 9:00 AM EDT)June 10;July 10 5942 Note: Since none of the BYDAY, BYMONTHDAY or BYYEARDAY components 5943 are specified, the day is gotten from DTSTART 5945 Every other year on January, February, and March for 10 occurrences: 5947 DTSTART;TZID=US-Eastern:19970310T090000 5948 RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3 5950 ==> (1997 9:00 AM EST)March 10 5951 (1999 9:00 AM EST)January 10;February 10;March 10 5952 (2001 9:00 AM EST)January 10;February 10;March 10 5953 (2003 9:00 AM EST)January 10;February 10;March 10 5955 Every 3rd year on the 1st, 100th and 200th day for 10 occurrences: 5957 DTSTART;TZID=US-Eastern:19970101T090000 5958 RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200 5960 ==> (1997 9:00 AM EST)January 1 5961 (1997 9:00 AM EDT)April 10;July 19 5962 (2000 9:00 AM EST)January 1 5963 (2000 9:00 AM EDT)April 9;July 18 5964 (2003 9:00 AM EST)January 1 5965 (2003 9:00 AM EDT)April 10;July 19 5967 Dawson/Stenerson 109 Expires December 1999 5968 (2006 9:00 AM EST)January 1 5970 Every 20th Monday of the year, forever: 5972 DTSTART;TZID=US-Eastern:19970519T090000 5973 RRULE:FREQ=YEARLY;BYDAY=20MO 5975 ==> (1997 9:00 AM EDT)May 19 5976 (1998 9:00 AM EDT)May 18 5977 (1999 9:00 AM EDT)May 17 5978 ... 5980 Monday of week number 20 (where the default start of the week is 5981 Monday), forever: 5983 DTSTART;TZID=US-Eastern:19970512T090000 5984 RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO 5986 ==> (1997 9:00 AM EDT)May 12 5987 (1998 9:00 AM EDT)May 11 5988 (1999 9:00 AM EDT)May 17 5989 ... 5991 Every Thursday in March, forever: 5993 DTSTART;TZID=US-Eastern:19970313T090000 5994 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH 5996 ==> (1997 9:00 AM EST)March 13,20,27 5997 (1998 9:00 AM EST)March 5,12,19,26 5998 (1999 9:00 AM EST)March 4,11,18,25 5999 ... 6001 Every Thursday, but only during June, July, and August, forever: 6003 DTSTART;TZID=US-Eastern:19970605T090000 6004 RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8 6006 ==> (1997 9:00 AM EDT)June 5,12,19,26;July 3,10,17,24,31; 6007 August 7,14,21,28 6008 (1998 9:00 AM EDT)June 4,11,18,25;July 2,9,16,23,30; 6009 August 6,13,20,27 6010 (1999 9:00 AM EDT)June 3,10,17,24;July 1,8,15,22,29; 6011 August 5,12,19,26 6012 ... 6014 Every Friday the 13th, forever: 6016 DTSTART;TZID=US-Eastern:19970902T090000 6017 EXDATE;TZID=US-Eastern:19970902T090000 6018 RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13 6020 ==> (1998 9:00 AM EST)February 13;March 13;November 13 6021 (1999 9:00 AM EDT)August 13 6023 Dawson/Stenerson 110 Expires December 1999 6024 (2000 9:00 AM EDT)October 13 6025 ... 6027 The first Saturday that follows the first Sunday of the month, 6028 forever: 6030 DTSTART;TZID=US-Eastern:19970913T090000 6031 RRULE:FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13 6033 ==> (1997 9:00 AM EDT)September 13;October 11 6034 (1997 9:00 AM EST)November 8;December 13 6035 (1998 9:00 AM EST)January 10;February 7;March 7 6036 (1998 9:00 AM EDT)April 11;May 9;June 13... 6037 ... 6039 Every four years, the first Tuesday after a Monday in November, 6040 forever (U.S. Presidential Election day): 6042 DTSTART;TZID=US-Eastern:19961105T090000 6043 RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4, 6044 5,6,7,8 6046 ==> (1996 9:00 AM EST)November 5 6047 (2000 9:00 AM EST)November 7 6048 (2004 9:00 AM EST)November 2 6049 ... 6051 The 3rd instance into the month of one of Tuesday, Wednesday or 6052 Thursday, for the next 3 months: 6054 DTSTART;TZID=US-Eastern:19970904T090000 6055 RRULE:FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3 6057 ==> (1997 9:00 AM EDT)September 4;October 7 6058 (1997 9:00 AM EST)November 6 6060 The 2nd to last weekday of the month: 6062 DTSTART;TZID=US-Eastern:19970929T090000 6063 RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2 6065 ==> (1997 9:00 AM EDT)September 29 6066 (1997 9:00 AM EST)October 30;November 27;December 30 6067 (1998 9:00 AM EST)January 29;February 26;March 30 6068 ... 6070 Every 3 hours from 9:00 AM to 5:00 PM on a specific day: 6072 DTSTART;TZID=US-Eastern:19970902T090000 6073 RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z 6075 ==> (September 2, 1997 EDT)09:00,12:00,15:00 6077 Every 15 minutes for 6 occurrences: 6079 Dawson/Stenerson 111 Expires December 1999 6080 DTSTART;TZID=US-Eastern:19970902T090000 6081 RRULE:FREQ=MINUTELY;INTERVAL=15;COUNT=6 6083 ==> (September 2, 1997 EDT)09:00,09:15,09:30,09:45,10:00,10:15 6085 Every hour and a half for 4 occurrences: 6087 DTSTART;TZID=US-Eastern:19970902T090000 6088 RRULE:FREQ=MINUTELY;INTERVAL=90;COUNT=4 6090 ==> (September 2, 1997 EDT)09:00,10:30;12:00;13:30 6092 Every 20 minutes from 9:00 AM to 4:40 PM every day: 6094 DTSTART;TZID=US-Eastern:19970902T090000 6095 RRULE:FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40 6096 or 6097 RRULE:FREQ=MINUTELY;INTERVAL=20;BYHOUR=9,10,11,12,13,14,15,16 6099 ==> (September 2, 1997 EDT)9:00,9:20,9:40,10:00,10:20, 6100 ... 16:00,16:20,16:40 6101 (September 3, 1997 EDT)9:00,9:20,9:40,10:00,10:20, 6102 ...16:00,16:20,16:40 6103 ... 6105 An example where the days generated makes a difference because of 6106 WKST: 6108 DTSTART;TZID=US-Eastern:19970805T090000 6109 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO 6111 ==> (1997 EDT)Aug 5,10,19,24 6113 changing only WKST from MO to SU, yields different results... 6115 DTSTART;TZID=US-Eastern:19970805T090000 6116 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU 6117 ==> (1997 EDT)August 5,17,19,31 6119 4.8.6 Alarm Component Properties 6121 The following properties specify alarm information in calendar 6122 components. 6124 4.8.6.1 Action 6126 Property Name: ACTION 6128 Purpose: This property defines the action to be invoked when an alarm 6129 is triggered. 6131 Value Type: TEXT 6133 Dawson/Stenerson 112 Expires December 1999 6134 Property Parameters: Non-standard property parameters can be 6135 specified on this property. 6137 Conformance: This property MUST be specified once in a "VALARM" 6138 calendar component. 6140 Description: Each "VALARM" calendar component has a particular type 6141 of action associated with it. This property specifies the type of 6142 action 6144 Format Definition: The property is defined by the following notation: 6146 action = "ACTION" actionparam ":" actionvalue CRLF 6148 actionparam = *(";" xparam) 6150 actionvalue = "AUDIO" / "DISPLAY" / "EMAIL" / "PROCEDURE" 6151 / iana-token / x-name 6153 Example: The following are examples of this property in a "VALARM" 6154 calendar component: 6156 ACTION:AUDIO 6158 ACTION:DISPLAY 6160 ACTION:PROCEDURE 6162 4.8.6.2 Repeat Count 6164 Property Name: REPEAT 6166 Purpose: This property defines the number of time the alarm should be 6167 repeated, after the initial trigger. 6169 Value Type: INTEGER 6171 Property Parameters: Non-standard property parameters can be 6172 specified on this property. 6174 Conformance: This property can be specified in a "VALARM" calendar 6175 component. 6177 Description: If the alarm triggers more than once, then this property 6178 MUST be specified along with the "DURATION" property. 6180 Format Definition: The property is defined by the following notation: 6182 repeatcnt = "REPEAT" repparam ":" integer CRLF 6183 ;Default is "0", zero. 6185 repparam = *(";" xparam) 6187 Dawson/Stenerson 113 Expires December 1999 6188 Example: The following is an example of this property for an alarm 6189 that repeats 4 additional times with a 5 minute delay after the 6190 initial triggering of the alarm: 6192 REPEAT:4 6193 DURATION:PT5M 6195 4.8.6.3 Trigger 6197 Property Name: TRIGGER 6199 Purpose: This property specifies when an alarm will trigger. 6201 Value Type: The default value type is DURATION. The value type can be 6202 set to a DATE-TIME value type, in which case the value MUST specify a 6203 UTC formatted DATE-TIME value. 6205 Property Parameters: Non-standard, value data type, time zone 6206 identifier or trigger relationship property parameters can be 6207 specified on this property. The trigger relationship property 6208 parameter MUST only be specified when the value type is DURATION. 6210 Conformance: This property MUST be specified in the "VALARM" calendar 6211 component. 6213 Description: Within the "VALARM" calendar component, this property 6214 defines when the alarm will trigger. The default value type is 6215 DURATION, specifying a relative time for the trigger of the alarm. 6216 The default duration is relative to the start of an event or to-do 6217 that the alarm is associated with. The duration can be explicitly set 6218 to trigger from either the end or the start of the associated event 6219 or to-do with the "RELATED" parameter. A value of START will set the 6220 alarm to trigger off the start of the associated event or to-do. A 6221 value of END will set the alarm to trigger off the end of the 6222 associated event or to-do. 6224 Either a positive or negative duration may be specified for the 6225 "TRIGGER" property. An alarm with a positive duration is triggered 6226 after the associated start or end of the event or to-do. An alarm 6227 with a negative duration is triggered before the associated start or 6228 end of the event or to-do. 6230 The "RELATED" property parameter is not valid if the value type of 6231 the property is set to DATE-TIME (i.e., for an absolute date and time 6232 alarm trigger). If a value type of DATE-TIME is specified, then the 6233 property value MUST be specified in the UTC time format. If an 6234 absolute trigger is specified on an alarm for a recurring event or 6235 to-do, then the alarm will only trigger for the specified absolute 6236 date/time, along with any specified repeating instances. 6238 If the trigger is set relative to START, then the "DTSTART" property 6239 MUST be present in the associated "VEVENT" or "VTODO" calendar 6240 component. If an alarm is specified for an event with the trigger set 6241 relative to the END, then the "DTEND" property or the "DSTART" and 6243 Dawson/Stenerson 114 Expires December 1999 6244 "DURATION' properties MUST be present in the associated "VEVENT" 6245 calendar component. If the alarm is specified for a to-do with a 6246 trigger set relative to the END, then either the "DUE" property or 6247 the "DSTART" and "DURATION' properties MUST be present in the 6248 associated "VTODO" calendar component. 6250 Alarms specified in an event or to-do which is defined in terms of a 6251 DATE value type will be triggered relative to 00:00:00 UTC on the 6252 specified date. For example, if "DTSTART:19980205, then the duration 6253 trigger will be relative to19980205T000000Z. 6255 Format Definition: The property is defined by the following notation: 6257 trigger = "TRIGGER" (trigrel / trigabs) 6259 trigrel = *( 6261 ; the following are optional, 6262 ; but MUST NOT occur more than once 6264 (";" "VALUE" "=" "DURATION") / 6265 (";" trigrelparam) / 6267 ; the following is optional, 6268 ; and MAY occur more than once 6270 (";" xparam) 6272 ) ":" dur-value 6274 trigabs = 1*( 6276 ; the following is REQUIRED, 6277 ; but MUST NOT occur more than once 6279 (";" "VALUE" "=" "DATE-TIME") / 6281 ; the following is optional, 6282 ; and MAY occur more than once 6284 (";" xparam) 6286 ) ":" date-time 6288 Example: A trigger set 15 minutes prior to the start of the event or 6289 to-do. 6291 TRIGGER:-PT15M 6293 A trigger set 5 minutes after the end of the event or to-do. 6295 TRIGGER;RELATED=END:PT5M 6297 A trigger set to an absolute date/time. 6299 Dawson/Stenerson 115 Expires December 1999 6300 TRIGGER;VALUE=DATE-TIME:19980101T050000Z 6302 4.8.7 Change Management Component Properties 6304 The following properties specify change management information in 6305 calendar components. 6307 4.8.7.1 Date/Time Created 6309 Property Name: CREATED 6311 Purpose: This property specifies the date and time that the calendar 6312 information was created by the calendar user agent in the calendar 6313 store. 6315 Note: This is analogous to the creation date and time for a file 6316 in the file system. 6318 Value Type: DATE-TIME 6320 Property Parameters: Non-standard property parameters can be 6321 specified on this property. 6323 Conformance: The property can be specified once in "VEVENT", "VTODO" 6324 or "VJOURNAL" calendar components. 6326 Description: The date and time is a UTC value. 6328 Format Definition: The property is defined by the following notation: 6330 created = "CREATED" creaparam ":" date-time CRLF 6332 creaparam = *(";" xparam) 6334 Example: The following is an example of this property: 6336 CREATED:19960329T133000Z 6338 4.8.7.2 Date/Time Stamp 6340 Property Name: DTSTAMP 6342 Purpose: The property indicates the date/time that the instance of 6343 the iCalendar object was created. 6345 Value Type: DATE-TIME 6347 Property Parameters: Non-standard property parameters can be 6348 specified on this property. 6350 Conformance: This property MUST be included in the "VEVENT", "VTODO", 6351 "VJOURNAL" or "VFREEBUSY" calendar components. 6353 Description: The value MUST be specified in the UTC time format. 6355 Dawson/Stenerson 116 Expires December 1999 6356 This property is also useful to protocols such as [IMIP] that have 6357 inherent latency issues with the delivery of content. This property 6358 will assist in the proper sequencing of messages containing iCalendar 6359 objects. 6361 This property is different than the "CREATED" and "LAST-MODIFIED" 6362 properties. These two properties are used to specify when the 6363 particular calendar data in the calendar store was created and last 6364 modified. This is different than when the iCalendar object 6365 representation of the calendar service information was created or 6366 last modified. 6368 Format Definition: The property is defined by the following notation: 6370 dtstamp = "DTSTAMP" stmparam ":" date-time CRLF 6372 stmparam = *(";" xparam) 6374 Example: 6376 DTSTAMP:19971210T080000Z 6378 4.8.7.3 Last Modified 6380 Property Name: LAST-MODIFIED 6382 Purpose: The property specifies the date and time that the 6383 information associated with the calendar component was last revised 6384 in the calendar store. 6386 Note: This is analogous to the modification date and time for a 6387 file in the file system. 6389 Value Type: DATE-TIME 6391 Property Parameters: Non-standard property parameters can be 6392 specified on this property. 6394 Conformance: This property can be specified in the "EVENT", "VTODO", 6395 "VJOURNAL" or "VTIMEZONE" calendar components. 6397 Description: The property value MUST be specified in the UTC time 6398 format. 6400 Format Definition: The property is defined by the following notation: 6402 last-mod = "LAST-MODIFIED" lstparam ":" date-time CRLF 6404 lstparam = *(";" xparam) 6406 Example: The following is are examples of this property: 6408 LAST-MODIFIED:19960817T133000Z 6410 Dawson/Stenerson 117 Expires December 1999 6411 4.8.7.4 Sequence Number 6413 Property Name: SEQUENCE 6415 Purpose: This property defines the revision sequence number of the 6416 calendar component within a sequence of revisions. 6418 Value Type: integer 6420 Property Parameters: Non-standard property parameters can be 6421 specified on this property. 6423 Conformance: The property can be specified in "VEVENT", "VTODO" or 6424 "VJOURNAL" calendar component. 6426 Description: When a calendar component is created, its sequence 6427 number is zero (US-ASCII decimal 48). It is monotonically incremented 6428 by the "Organizer's" CUA each time the "Organizer" makes a 6429 significant revision to the calendar component. When the "Organizer" 6430 makes changes to one of the following properties, the sequence number 6431 MUST be incremented: 6433 "DTSTART" 6435 "DTEND" 6437 "DUE" 6439 "RDATE" 6441 "RRULE" 6443 "EXDATE" 6445 "EXRULE" 6447 "STATUS" 6449 In addition, changes made by the "Organizer" to other properties can 6450 also force the sequence number to be incremented. The "Organizer" CUA 6451 MUST increment the sequence number when ever it makes changes to 6452 properties in the calendar component that the "Organizer" deems will 6453 jeopardize the validity of the participation status of the 6454 "Attendees". For example, changing the location of a meeting from one 6455 locale to another distant locale could effectively impact the 6456 participation status of the "Attendees". 6458 The "Organizer" includes this property in an iCalendar object that it 6459 sends to an "Attendee" to specify the current version of the calendar 6460 component. 6462 The "Attendee" includes this property in an iCalendar object that it 6463 sends to the "Organizer" to specify the version of the calendar 6464 component that the "Attendee" is referring to. 6466 Dawson/Stenerson 118 Expires December 1999 6467 A change to the sequence number is not the mechanism that an 6468 "Organizer" uses to request a response from the "Attendees". The 6469 "RSVP" parameter on the "ATTENDEE" property is used by the 6470 "Organizer" to indicate that a response from the "Attendees" is 6471 requested. 6473 Format Definition: This property is defined by the following 6474 notation: 6476 seq = "SEQUENCE" seqparam ":" integer CRLF 6477 ; Default is "0" 6479 seqparam = *(";" xparam) 6481 Example: The following is an example of this property for a calendar 6482 component that was just created by the "Organizer". 6484 SEQUENCE:0 6486 The following is an example of this property for a calendar component 6487 that has been revised two different times by the "Organizer". 6489 SEQUENCE:2 6491 4.8.8 Miscellaneous Component Properties 6493 The following properties specify information about a number of 6494 miscellaneous features of calendar components. 6496 4.8.8.1 Non-standard Properties 6498 Property Name: Any property name with a "X-" prefix 6500 Purpose: This class of property provides a framework for defining 6501 non-standard properties. 6503 Value Type: TEXT 6505 Property Parameters: Non-standard and language property parameters 6506 can be specified on this property. 6508 Conformance: This property can be specified in any calendar 6509 component. 6511 Description: The MIME Calendaring and Scheduling Content Type 6512 provides a "standard mechanism for doing non-standard things". This 6513 extension support is provided for implementers to "push the envelope" 6514 on the existing version of the memo. Extension properties are 6515 specified by property and/or property parameter names that have the 6516 prefix text of "X-" (the two character sequence: LATIN CAPITAL LETTER 6517 X character followed by the HYPEN-MINUS character). It is recommended 6518 that vendors concatenate onto this sentinel another short prefix text 6519 to identify the vendor. This will facilitate readability of the 6520 extensions and minimize possible collision of names between different 6522 Dawson/Stenerson 119 Expires December 1999 6523 vendors. User agents that support this content type are expected to 6524 be able to parse the extension properties and property parameters but 6525 can ignore them. 6527 At present, there is no registration authority for names of extension 6528 properties and property parameters. The data type for this property 6529 is TEXT. Optionally, the data type can be any of the other valid data 6530 types. 6532 Format Definition: The property is defined by the following notation: 6534 x-prop = x-name *(";" xparam) [";" languageparam] ":" text CRLF 6535 ; Lines longer than 75 octets should be folded 6537 Example: The following might be the ABC vendor's extension for an 6538 audio-clip form of subject property: 6540 X-ABC-MMSUBJ;X-ABC-MMSUBJTYPE=wave:http://load.noise.org/mysubj.wav 6542 4.8.8.2 Request Status 6544 Property Name: REQUEST-STATUS 6546 Purpose: This property defines the status code returned for a 6547 scheduling request. 6549 Value Type: TEXT 6551 Property Parameters: Non-standard and language property parameters 6552 can be specified on this property. 6554 Conformance: The property can be specified in "VEVENT", "VTODO", 6555 "VJOURNAL" or "VFREEBUSY" calendar component. 6557 Description: This property is used to return status code information 6558 related to the processing of an associated iCalendar object. The data 6559 type for this property is TEXT. 6561 The value consists of a short return status component, a longer 6562 return status description component, and optionally a status-specific 6563 data component. The components of the value are separated by the 6564 SEMICOLON character (US-ASCII decimal 59). 6566 The short return status is a PERIOD character (US-ASCII decimal 46) 6567 separated 3-tuple of integers. For example, "3.1.1". The successive 6568 levels of integers provide for a successive level of status code 6569 granularity. 6571 The following are initial classes for the return status code. 6572 Individual iCalendar object methods will define specific return 6573 status codes for these classes. In addition, other classes for the 6574 return status code may be defined using the registration process 6575 defined later in this memo. 6577 Dawson/Stenerson 120 Expires December 1999 6578 |==============+===============================================| 6579 | Short Return | Longer Return Status Description | 6580 | Status Code | | 6581 |==============+===============================================| 6582 | 1.xx | Preliminary success. This class of status | 6583 | | of status code indicates that the request has | 6584 | | request has been initially processed but that | 6585 | | completion is pending. | 6586 |==============+===============================================| 6587 | 2.xx | Successful. This class of status code | 6588 | | indicates that the request was completed | 6589 | | successfuly. However, the exact status code | 6590 | | can indicate that a fallback has been taken. | 6591 |==============+===============================================| 6592 | 3.xx | Client Error. This class of status code | 6593 | | indicates that the request was not successful.| 6594 | | The error is the result of either a syntax or | 6595 | | a semantic error in the client formatted | 6596 | | request. Request should not be retried until | 6597 | | the condition in the request is corrected. | 6598 |==============+===============================================| 6599 | 4.xx | Scheduling Error. This class of status code | 6600 | | indicates that the request was not successful.| 6601 | | Some sort of error occurred within the | 6602 | | calendaring and scheduling service, not | 6603 | | directly related to the request itself. | 6604 |==============+===============================================| 6606 Format Definition: The property is defined by the following notation: 6608 rstatus = "REQUEST-STATUS" rstatparam ":" 6609 statcode ";" statdesc [";" extdata] 6611 rstatparam = *( 6613 ; the following is optional, 6614 ; but MUST NOT occur more than once 6616 (";" languageparm) / 6618 ; the following is optional, 6619 ; and MAY occur more than once 6621 (";" xparam) 6623 ) 6625 statcode = 1*DIGIT *("." 1*DIGIT) 6626 ;Hierarchical, numeric return status code 6628 statdesc = text 6629 ;Textual status description 6631 Dawson/Stenerson 121 Expires December 1999 6632 extdata = text 6633 ;Textual exception data. For example, the offending property 6634 ;name and value or complete property line. 6636 Example: The following are some possible examples of this property. 6637 The COMMA and SEMICOLON separator characters in the property value 6638 are BACKSLASH character escaped because they appear in a text value. 6640 REQUEST-STATUS:2.0;Success 6642 REQUEST-STATUS:3.1;Invalid property value;DTSTART:96-Apr-01 6644 REQUEST-STATUS:2.8; Success\, repeating event ignored. Scheduled 6645 as a single event.;RRULE:FREQ=WEEKLY\;INTERVAL=2 6647 REQUEST-STATUS:4.1;Event conflict. Date/time is busy. 6649 REQUEST-STATUS:3.7;Invalid calendar user;ATTENDEE: 6650 MAILTO:jsmith@host.com 6652 5 iCalendar Object Examples 6654 The following examples are provided as an informational source of 6655 illustrative iCalendar objects consistent with this content type. 6657 The following example specifies a three-day conference that begins at 6658 8:00 AM EDT, September 18, 1996 and end at 6:00 PM EDT, September 20, 6659 1996. 6661 BEGIN:VCALENDAR 6662 PRODID:-//xyz Corp//NONSGML PDA Calendar Verson 1.0//EN 6663 VERSION:2.0 6664 BEGIN:VEVENT 6665 DTSTAMP:19960704T120000Z 6666 UID:uid1@host.com 6667 ORGANIZER:MAILTO:jsmith@host.com 6668 DTSTART:19960918T143000Z 6669 DTEND:19960920T220000Z 6670 STATUS:CONFIRMED 6671 CATEGORIES:CONFERENCE 6672 SUMMARY:Networld+Interop Conference 6673 DESCRIPTION:Networld+Interop Conference 6674 and Exhibit\nAtlanta World Congress Center\n 6675 Atlanta, Georgia 6676 END:VEVENT 6677 END:VCALENDAR 6679 The following example specifies a group scheduled meeting that begin 6680 at 8:30 AM EST on March 12, 1998 and end at 9:30 AM EST on March 12, 6681 1998. The "Organizer" has scheduled the meeting with one or more 6682 calendar users in a group. A time zone specification for Eastern 6683 United States has been specified. 6685 BEGIN:VCALENDAR 6687 Dawson/Stenerson 122 Expires December 1999 6688 PRODID:-//RDU Software//NONSGML HandCal//EN 6689 VERSION:2.0 6690 BEGIN:VTIMEZONE 6691 TZID:US-Eastern 6692 BEGIN:STANDARD 6693 DTSTART:19981025T020000 6694 RDATE:19981025T020000 6695 TZOFFSETFROM:-0400 6696 TZOFFSETTO:-0500 6697 TZNAME:EST 6698 END:STANDARD 6699 BEGIN:DAYLIGHT 6700 DTSTART:19990404T020000 6701 RDATE:19990404T020000 6702 TZOFFSETFROM:-0500 6703 TZOFFSETTO:-0400 6704 TZNAME:EDT 6705 END:DAYLIGHT 6706 END:VTIMEZONE 6707 BEGIN:VEVENT 6708 DTSTAMP:19980309T231000Z 6709 UID:guid-1.host1.com 6710 ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@host.com 6711 ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP: 6712 MAILTO:employee-A@host.com 6713 DESCRIPTION:Project XYZ Review Meeting 6714 CATEGORIES:MEETING 6715 CLASS:PUBLIC 6716 CREATED:19980309T130000Z 6717 SUMMARY:XYZ Project Review 6718 DTSTART;TZID=US-Eastern:19980312T083000 6719 DTEND;TZID=US-Eastern:19980312T093000 6720 LOCATION:1CP Conference Room 4350 6721 END:VEVENT 6722 END:VCALENDAR 6724 The following is an example of an iCalendar object passed in a MIME 6725 message with a single body part consisting of a "text/calendar" 6726 Content Type. 6728 TO:jsmith@host1.com 6729 FROM:jdoe@host1.com 6730 MIME-VERSION:1.0 6731 MESSAGE-ID: 6732 CONTENT-TYPE:text/calendar;METHOD=xyz;COMPONENT=VEVENT 6734 BEGIN:VCALENDAR 6735 METHOD:xyz 6736 VERSION:2.0 6737 PRODID:-//ABC Corporation//NONSGML My Product//EN 6738 BEGIN:VEVENT 6739 DTSTAMP:19970324T120000Z 6740 SEQUENCE:0 6741 UID:uid3@host1.com 6743 Dawson/Stenerson 123 Expires December 1999 6744 ORGANIZER:MAILTO:jdoe@host1.com 6745 ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host1.com 6746 DTSTART:19970324T123000Z 6747 DTEND:19970324T210000Z 6748 CATEGORIES:MEETING,PROJECT 6749 CLASS:PUBLIC 6750 SUMMARY:Calendaring Interoperability Planning Meeting 6751 DESCRIPTION:Discuss how we can test c&s interoperability\n 6752 using iCalendar and other IETF standards. 6753 LOCATION:LDB Lobby 6754 ATTACH;FMTTYPE=application/postscript:ftp://xyzCorp.com/pub/ 6755 conf/bkgrnd.ps 6756 END:VEVENT 6757 END:VCALENDAR 6759 The following is an example of a to-do due on April 15, 1998. An 6760 audio alarm has been specified to remind the calendar user at noon, 6761 the day before the to-do is expected to be completed and repeat 6762 hourly, four additional times. The to-do definition has been modified 6763 twice since it was initially created. 6765 BEGIN:VCALENDAR 6766 VERSION:2.0 6767 PRODID:-//ABC Corporation//NONSGML My Product//EN 6768 BEGIN:VTODO 6769 DTSTAMP:19980130T134500Z 6770 SEQUENCE:2 6771 UID:uid4@host1.com 6772 ORGANIZER:MAILTO:unclesam@us.gov 6773 ATTENDEE;PARTSTAT=ACCEPTED:MAILTO:jqpublic@host.com 6774 DUE:19980415T235959 6775 STATUS:NEEDS-ACTION 6776 SUMMARY:Submit Income Taxes 6777 BEGIN:VALARM 6778 ACTION:AUDIO 6779 TRIGGER:19980403T120000Z 6780 ATTACH;FMTTYPE=audio/basic:http://host.com/pub/audio- 6781 files/ssbanner.aud 6782 REPEAT:4 6783 DURATION:PT1H 6784 END:VALARM 6785 END:VTODO 6786 END:VCALENDAR 6788 The following is an example of a journal entry. 6790 BEGIN:VCALENDAR 6791 VERSION:2.0 6792 PRODID:-//ABC Corporation//NONSGML My Product//EN 6793 BEGIN:VJOURNAL 6794 DTSTAMP:19970324T120000Z 6795 UID:uid5@host1.com 6796 ORGANIZER:MAILTO:jsmith@host.com 6797 STATUS:DRAFT 6799 Dawson/Stenerson 124 Expires December 1999 6800 CLASS:PUBLIC 6801 CATEGORY:Project Report, XYZ, Weekly Meeting 6802 DESCRIPTION:Project xyz Review Meeting Minutes\n 6803 Agenda\n1. Review of project version 1.0 requirements.\n2. 6804 Definition 6805 of project processes.\n3. Review of project schedule.\n 6806 Participants: John Smith, Jane Doe, Jim Dandy\n-It was 6807 decided that the requirements need to be signed off by 6808 product marketing.\n-Project processes were accepted.\n 6809 -Project schedule needs to account for scheduled holidays 6810 and employee vacation time. Check with HR for specific 6811 dates.\n-New schedule will be distributed by Friday.\n- 6812 Next weeks meeting is cancelled. No meeting until 3/23. 6813 END:VJOURNAL 6814 END:VCALENDAR 6816 The following is an example of published busy time information. The 6817 iCalendar object might be placed in the network resource 6818 www.host.com/calendar/busytime/jsmith.ifb. 6820 BEGIN:VCALENDAR 6821 VERSION:2.0 6822 PRODID:-//RDU Software//NONSGML HandCal//EN 6823 BEGIN:VFREEBUSY 6824 ORGANIZER:MAILTO:jsmith@host.com 6825 DTSTART:19980313T141711Z 6826 DTEND:19980410T141711Z 6827 FREEBUSY:19980314T233000Z/19980315T003000Z 6828 FREEBUSY:19980316T153000Z/19980316T163000Z 6829 FREEBUSY:19980318T030000Z/19980318T040000Z 6830 URL:http://www.host.com/calendar/busytime/jsmith.ifb 6831 END:VFREEBUSY 6832 END:VCALENDAR 6834 6 Recommended Practices 6836 These recommended practices should be followed in order to assure 6837 consistent handling of the following cases for an iCalendar object. 6839 1. 6840 Content lines longer than 75 octets SHOULD be folded. 6842 2. 6843 A calendar entry with a "DTSTART" property but no "DTEND" property 6844 does not take up any time. It is intended to represent an event 6845 that is associated with a given calendar date and time of day, 6846 such as an anniversary. Since the event does not take up any time, 6847 it MUST NOT be used to record busy time no matter what the value 6848 for the "TRANSP" property. 6850 3. 6851 When the "DTSTART" and "DTEND", for "VEVENT", "VJOURNAL" and 6852 "VFREEBUSY" calendar components, and "DTSTART" and "DUE", for 6853 "VTODO" calendar components, have the same value data type (e.g., 6854 DATE-TIME), they SHOULD specify values in the same time format 6855 (e.g., UTC time format). 6857 Dawson/Stenerson 125 Expires December 1999 6858 4. 6859 When the combination of the "RRULE" and "RDATE" properties on an 6860 iCalendar object produces multiple instances having the same start 6861 date/time, they should be collapsed to, and considered as, a 6862 single instance. 6864 5. 6865 When a calendar user receives multiple requests for the same 6866 calendar component (e.g., REQUEST for a "VEVENT" calendar 6867 component) as a result of being on multiple mailing lists 6868 specified by "ATTENDEE" properties in the request, they SHOULD 6869 respond to only one of the requests. The calendar user SHOULD also 6870 specify (using the "MEMBER" parameter of the "ATTENDEE" property) 6871 which mailing list they are a member of. 6873 6. 6874 An implementation can truncate a "SUMMARY" property value to 255 6875 characters. 6877 7. 6878 If seconds of the minute are not supported by an implementation, 6879 then a value of "00" SHOULD be specified for the seconds component 6880 in a time value. 6882 8. 6883 If the value type parameter (VALUE=) contains an unknown value 6884 type, it SHOULD be treated as TEXT. 6886 9. 6887 TZURL values SHOULD NOT be specified as a FILE URI type. This URI 6888 form can be useful within an organization, but is problematic in 6889 the Internet. 6891 10. 6892 Some possible English values for CATEGORIES property include 6893 "ANNIVERSARY", "APPOINTMENT", "BUSINESS", "EDUCATION", "HOLIDAY", 6894 "MEETING", "MISCELLANEOUS", "NON-WORKING HOURS", "NOT IN OFFICE", 6895 "PERSONAL", "PHONE CALL", "SICK DAY", "SPECIAL OCCASION", 6896 "TRAVEL", "VACATION". Categories can be specified in any 6897 registered language. 6899 11. 6900 Some possible English values for RESOURCES property include 6901 "CATERING", "CHAIRS", "COMPUTER PROJECTOR", "EASEL", "OVERHEAD 6902 PROJECTOR", "SPEAKER PHONE", "TABLE", "TV", "VCR", "VIDEO PHONE", 6903 "VEHICLE". Resources can be specified in any registered language. 6905 7 Registration of Content Type Elements 6907 This section provides the process for registration of MIME 6908 Calendaring and Scheduling Content Type iCalendar object methods and 6909 new or modified properties. 6911 7.1 Registration of New and Modified iCalendar Object Methods 6913 New MIME Calendaring and Scheduling Content Type iCalendar object 6914 methods are registered by the publication of an IETF Request for 6915 Comment (RFC). Changes to an iCalendar object method are registered 6916 by the publication of a revision of the RFC defining the method. 6918 Dawson/Stenerson 126 Expires December 1999 6919 7.2 Registration of New Properties 6921 This section defines procedures by which new properties or enumerated 6922 property values for the MIME Calendaring and Scheduling Content Type 6923 can be registered with the IANA. Non-IANA properties can be used by 6924 bilateral agreement, provided the associated properties names follow 6925 the "X-" convention. 6927 The procedures defined here are designed to allow public comment and 6928 review of new properties, while posing only a small impediment to the 6929 definition of new properties. 6931 Registration of a new property is accomplished by the following 6932 steps. 6934 7.2.1 Define the property 6936 A property is defined by completing the following template. 6938 To: ietf-calendar@imc.org 6940 Subject: Registration of text/calendar MIME property XXX 6942 Property name: 6944 Property purpose: 6946 Property value type(s): 6948 Property parameter (s): 6950 Conformance: 6952 Description: 6954 Format definition: 6956 Examples: 6958 The meaning of each field in the template is as follows. 6960 Property name: The name of the property, as it will appear in the 6961 body of an text/calendar MIME Content-Type "property: value" line to 6962 the left of the colon ":". 6964 Property purpose: The purpose of the property (e.g., to indicate a 6965 delegate for the event or to-do, etc.). Give a short but clear 6966 description. 6968 Property value type (s): Any of the valid value types for the 6969 property value needs to be specified. The default value type also 6970 needs to be specified. If a new value type is specified, it needs to 6971 be declared in this section. 6973 Dawson/Stenerson 127 Expires December 1999 6974 Property parameter (s): Any of the valid property parameters for the 6975 property needs to be specified. 6977 Conformance: The calendar components that the property can appear in 6978 needs to be specified. 6980 Description: Any special notes about the property, how it is to be 6981 used, etc. 6983 Format definition: The ABNF for the property definition needs to be 6984 specified. 6986 Examples: One or more examples of instances of the property needs to 6987 be specified. 6989 7.2.2 Post the Property definition 6991 The property description MUST be posted to the new property 6992 discussion list, ietf-calendar@imc.org. 6994 7.2.3 Allow a comment period 6996 Discussion on the new property MUST be allowed to take place on the 6997 list for a minimum of two weeks. Consensus MUST be reached on the 6998 property before proceeding to the next step. 7000 7.2.4 Submit the property for approval 7002 Once the two-week comment period has elapsed, and the proposer is 7003 convinced consensus has been reached on the property, the 7004 registration application should be submitted to the Method Reviewer 7005 for approval. The Method Reviewer is appointed by the Application 7006 Area Directors and can either accept or reject the property 7007 registration. An accepted registration should be passed on by the 7008 Method Reviewer to the IANA for inclusion in the official IANA method 7009 registry. The registration can be rejected for any of the following 7010 reasons. 1) Insufficient comment period; 2) Consensus not reached; 3) 7011 Technical deficiencies raised on the list or elsewhere have not been 7012 addressed. The Method Reviewer's decision to reject a property can be 7013 appealed by the proposer to the IESG, or the objections raised can be 7014 addressed by the proposer and the property resubmitted. 7016 7.3 Property Change Control 7018 Existing properties can be changed using the same process by which 7019 they were registered. 7021 1. 7022 Define the change 7024 2. 7025 Post the change 7027 3. 7028 Allow a comment period 7030 4. 7031 Submit the property for approval 7033 Dawson/Stenerson 128 Expires December 1999 7034 Note that the original author or any other interested party can 7035 propose a change to an existing property, but that such changes 7036 should only be proposed when there are serious omissions or errors in 7037 the published memo. The Method Reviewer can object to a change if it 7038 is not backward compatible, but is not required to do so. 7040 Property definitions can never be deleted from the IANA registry, but 7041 properties which are no longer believed to be useful can be declared 7042 OBSOLETE by a change to their "intended use" field. 7044 8 References 7046 The following documents are referred to within this memo. 7048 [ICAL] "Internet Calendaring and Scheduling Core Object Specification 7049 (iCalendar", RFC 2445, November 1998, 7050 http://www.ietf.org/rfc/rfc2445.txt. 7052 [IMIP] "iCalendar Message-based Interoperability Protocol (IMIP)", 7053 RFC 2447, November 1998, http://www.ietf.org/rfc/rfc2447.txt. 7055 [ITIP] "iCalendar Transport-Independent Interoperability Protocol 7056 (iTIP) : Scheduling Events, Busy Time, To-dos and Journal Entries ", 7057 RFC 2446, November 1998, http://www.ietf.org/rfc/rfc2446.txt. 7059 [ISO 8601] ISO 8601, "Data elements and interchange formats_ 7060 Information interchange--Representation of dates and times", 7061 International Organization for Standardization, June, 1988. 7063 [ISO 9070] ISO/IEC 9070, "Information Technology_SGML Support 7064 Facilities--Registration Procedures for Public Text Owner 7065 Identifiers", Second Edition, International Organization for 7066 Standardization, April 1991. 7068 [RFC 822] Crocker, D., "Standard for the Format of ARPA Internet Text 7069 Messages", STD 11, RFC 822, August 1982. 7071 [RFC 1738] Berners-Lee, T., Masinter, L., McCahill, M., "Uniform 7072 Resource Locators (URL)", RFC 1738, December 1994. 7074 [RFC 1766] Alvestrand, H., "Tags for the Identification of 7075 Languages", RFC 1766, March 1995. 7077 [RFC 2045] Freed, N., Borenstein, N., " Multipurpose Internet Mail 7078 Extensions (MIME) - Part One: Format of Internet Message Bodies", RFC 7079 2045, November 1996. 7081 [RFC 2046] Freed, N., Borenstein, N., " Multipurpose Internet Mail 7082 Extensions (MIME) - Part Two: Media Types", RFC 2046, November 1996. 7084 [RFC 2048] Freed, N., J. Klensin, J. Postel, "Multipurpose Internet 7085 Mail Extensions (MIME) - Part Four: Registration Procedures", RFC 7086 2048, January 1997. 7088 Dawson/Stenerson 129 Expires December 1999 7090 [RFC 2119] Bradner, S., "Key words for use in RFCs to Indicate 7091 Requirement Levels", BCP 14, RFC 2119, March 1997. 7093 [RFC 2234] Crocker, D., Overell, P., "Augmented BNF for Syntax 7094 Specifications: ABNF", RFC 2234, November 1997. 7096 [RFC 2279] Yergeau, F., "UTF-8, a transformation format of ISO 7097 10646", RFC 2279, January 1998. 7099 [RFC 2425] Howes, T., Smith, M., Dawson, F. "A MIME Content-Type for 7100 Directory Information", RFC 2425, September 1998. 7102 [RFC 2426] Dawson, F., Howes, T., "vCard MIME Directory Profile", RFC 7103 2426, September 1998. 7105 [TZ] Olson, A.D., et al, Time zone code and data, 7106 ftp://elsie.nci.nih.gov/pub/, updated periodically. 7108 [VCAL] Internet Mail Consortium, "vCalendar - The Electronic 7109 Calendaring and Scheduling Exchange Format", 7110 http://www.imc.org/pdi/vcal-10.txt, September 18, 1996. 7112 9 Acknowledgments 7114 A hearty thanks to the IETF Calendaring and Scheduling Working Group 7115 and also the following individuals who have participated in the 7116 drafting, review and discussion of this memo: 7118 Roland Alden, Harald T. Alvestrand, Eric Berman, Denis Bigorgne, John 7119 Binici, Bill Bliss, Philippe Boucher, Steve Carter, Andre 7120 Courtemanche, Dave Crocker, David Curley, Alec Dun, John Evans, Ross 7121 Finlayson, Randell Flint, Ned Freed, Patrik Faltstrom, Chuck 7122 Grandgent, Mark Handley, Steve Hanna, Paul B. Hill, Paul Hoffman, 7123 Ross Hopson, Mark Horton, Daryl Huff, Bruce Kahn, C. Harald Koch, 7124 Ryan Jansen, Don Lavange, Antoine Leca, Theodore Lorek, Steve 7125 Mansour, Skip Montanaro, Keith Moore, Cecil Murray, Chris Newman, 7126 John Noerenberg, Ralph Patterson, Pete Resnick, Keith Rhodes, Robert 7127 Ripberger, John Rose, Doug Royer, Andras Salamar, Ted Schuh, Vinod 7128 Seraphin, Derrick Shadel, Ken Shan, Andrew Shuman, Steve Silverberg, 7129 William P. Spencer, John Sun, Mark Towfiq, Yvonne Tso, Robert Visnov, 7130 James L. Weiner, Mike Weston, William Wyatt. 7132 An additional thanks to the following individuals who have provided 7133 review/editorial comments correcting errors in RFC 2445: 7135 Eric Busboom, Mark Swanson, William Webber. 7137 10 Authors' and Chairs' Addresses 7139 The following address information is provided in a MIME-VCARD, 7140 Electronic Business Card, format. 7142 The authors of this draft are: 7144 Dawson/Stenerson 130 Expires December 1999 7145 BEGIN:VCARD 7146 VERSION:3.0 7147 N:Dawson;Frank 7148 FN:Frank Dawson 7149 ORG:Lotus Development Corporation 7150 ADR;TYPE=WORK,POSTAL,PARCEL:;6544 Battleford Drive; 7151 Raleigh;NC;27613-3502;USA 7152 TEL;TYPE=WORK,MSG:+1-919-676-9515 7153 TEL;TYPE=WORK,FAX:+1-919-676-9515 7154 EMAIL;TYPE=PREF,INTERNET:Frank_Dawson@Lotus.com 7155 EMAIL;TYPE=INTERNET:fdawson@earthlink.net 7156 URL:http://home.earthlink.net/~fdawson 7157 END:VCARD 7159 BEGIN:VCARD 7160 VERSION:3.0 7161 N:Stenerson;Derik 7162 FN:Derik Stenerson 7163 ORG:Microsoft Corporation 7164 ADR;TYPE=WORK,POSTAL,PARCEL:;One Microsoft Way; 7165 Redmond;WA;98052-6399;USA 7166 TEL;TYPE=WORK,MSG:+1-425-936-5522 7167 TEL;TYPE=WORK,FAX:+1-425-936-7329 7168 EMAIL;TYPE=INTERNET:deriks@Microsoft.com 7169 END:VCARD 7171 The iCalendar object is a result of the work of the Internet 7172 Engineering Task Force Calendaring and Scheduling Working Group. The 7173 chairman of that working group at the time of this Internet-Draft 7174 publication is: 7176 BEGIN:VCARD 7177 VERSION:2.1 7178 FN:Pat Egen 7179 N:Egen;Pat 7180 EMAIL:pregen@egenconsulting.com 7181 URL:www.egenconsulting.com 7182 ADR;WORK:;;803 Creek Overlook;Chattanooga;TN;37415;USA 7183 TEL;WORK;VOICE:423.875.2652 7184 TEL;WORK;FAX:423.875.2017 7185 END:VCARD 7187 11 Full Copyright Statement 7189 Copyright (C) The Internet Society (1999). All Rights Reserved. 7191 This document and translations of it may be copied and furnished to 7192 others, and derivative works that comment on or otherwise explain it 7193 or assist in its implmentation may be prepared, copied, published and 7194 distributed, in whole or in part, without restriction of any kind, 7195 provided that the above copyright notice and this paragraph are 7196 included on all such copies and derivative works. However, this 7197 document itself may not be modified in any way, such as by removing 7198 the copyright notice or references to the Internet Society or other 7200 Dawson/Stenerson 131 Expires December 1999 7201 Internet organizations, except as needed for the purpose of 7202 developing Internet standards in which case the procedures for 7203 copyrights defined in the Internet Standards process MUST be 7204 followed, or as required to translate it into languages other than 7205 English. 7207 The limited permissions granted above are perpetual and will not be 7208 revoked by the Internet Society or its successors or assigns. 7210 This document and the information contained herein is provided on an 7211 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 7212 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 7213 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 7214 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 7215 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 7217 Dawson/Stenerson 132 Expires December 1999