view Side-By-Side changes
Network Working Group B. Desruisseaux, Ed. Internet-Draft Oracle Obsoletes: 2445 (if approved) June 22, 2006 Expires:April 14,December 24, 2006C. Stoner, Ed. IBM October 11, 2005Internet Calendaring and Scheduling Core Object Specification (iCalendar)draft-ietf-calsify-rfc2445bis-00draft-ietf-calsify-rfc2445bis-01 Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire onApril 14,December 24, 2006. Copyright Notice Copyright (C) The Internet Society(2005).(2006). AbstractCalendar systems export, transport and sometimes even store calendar information inThere is astandard,clear need to provide and deploy interoperableformat.calendaring and scheduling services for the Internet. Current group scheduling and Personal Information Management (PIM) products are being extended for use across the Internet, today, in proprietary ways. This memodefineshas been defined to provide the definition of a common format for openly exchanging calendaring and scheduling information across theInternet,Internet. Desruisseaux Expires December 24, 2006 [Page 1] Internet-Draft iCalendar June 2006 This memo is formatted as a registration for a MIME media type . However, the format in this memo is equally applicable for use outside of a MIME message content type. The proposed media type value is 'text/calendar'. This string would label a media type containing calendaring and scheduling information encoded as text characters formatted in a manner outlined below. This MIME media type provides a standard content type for capturing calendar event, to-do and journal entry information. It also can be used to convey free/busy time information. The content type is suitable as a MIME message entity that can be transferred over MIME based email systems, using HTTP or some other Internet transport. In addition, the content type is useful as an object for interactions between desktop applications using the operating system clipboard, drag/drop or file systems capabilities. This memo is based on the earlier work of the vCalendar specification for the exchange of personal calendaring and scheduling information. In order to avoid confusion with this referenced work, this memo is to be known as the iCalendar specification. This memo defines the format for specifying iCalendar objectformat.methods. An iCalendar objectmay representmethod is a set of usage constraints for the iCalendar object. For example, these methods might define scheduling messages that request an event be scheduled, reply to an event request, send a cancellation notice for an event,to-domodify or replace the definition of an event, provide a counter proposal for an original event request, delegate an event request to another individual, request free or busy time, reply to a free ortask,busy time request, or provide similar scheduling messages for a to-do or journal entry(note). Desruisseaux & Stoner Expires April 14, 2006 [Page 1] Internet-Draftcalendar component. The iCalendarOctober 2005Transport-indendent Interoperability Protocol (iTIP) is one such scheduling protocol. Editorial Note This document is a product of the Calendaring and Scheduling Standards Simplification (Calsify) working group of the Internet Engineering Task Force. Comments on this draft aresolicitedwelcomed, and should be addressed to theworking group'sietf-calsify@osafoundation.org [1] mailing list. A detailed list of changes is available atietf-calsify@osafoundation.org and/ortheeditor.following page: http://www.geocities.com/bdesruisseaux/calsify/ draft-ietf-calsify-rfc2445bis-01.html. Desruisseaux Expires December 24, 2006 [Page 2] Internet-Draft iCalendar June 2006 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . .5 1.1. Related Memos6 2. Basic Grammar and Conventions . . . . . . . . . . . . . . . . 6 2.1. Formatting Conventions . . . . . .5 2. Overview. . . . . . . . . . . 7 2.2. Related Memos . . . . . . . . . . . . . . .7 3. Document Conventions. . . . . . . 8 2.3. International Considerations . . . . . . . . . . . . . . 83.1. Formatting Conventions3. iCalendar Object Specification . . . . . . . . . . . . . . . 9 3.1. Content Lines . .8 4. International Considerations. . . . . . . . . . . . . . . .10 5. General Syntax. . . . 9 3.1.1. List and Field Separators . . . . . . . . . . . . . . 11 3.1.2. Multiple Values . . . . .11 5.1. Character Set. . . . . . . . . . . . . . 12 3.1.3. Binary Content . . . . . . .11 5.2. Case Sensitivity. . . . . . . . . . . . 12 3.1.4. Character Set . . . . . . . .11 5.3. Content Lines. . . . . . . . . . . . 13 3.2. Property Parameters . . . . . . . . .11 5.4. List and Field Separators. . . . . . . . . . 13 3.2.1. Alternate Text Representation . . . . .14 5.5. Multiple Property Values. . . . . . . 14 3.2.2. Common Name . . . . . . . . .14 5.6. Binary Content. . . . . . . . . . . . 15 3.2.3. Calendar User Type . . . . . . . . .15 5.7. Property Parameter Syntax. . . . . . . . 16 3.2.4. Delegators . . . . . . .15 6. iCalendar Objects. . . . . . . . . . . . . . 16 3.2.5. Delegatees . . . . . . . .17 7. Calendar Components. . . . . . . . . . . . . 17 3.2.6. Directory Entry Reference . . . . . . . .18 7.1. Event Component. . . . . . 17 3.2.7. Inline Encoding . . . . . . . . . . . . . .19 7.2. To-do Component. . . . . 18 3.2.8. Format Type . . . . . . . . . . . . . . .22 7.3. Journal Component. . . . . . 19 3.2.9. Free/Busy Time Type . . . . . . . . . . . . .24 7.4. Free/Busy Component. . . . 19 3.2.10. Language . . . . . . . . . . . . . .26 7.5. Time Zone Component. . . . . . . . 20 3.2.11. Group or List Membership . . . . . . . . . .29 7.6. Alarm Component. . . . 21 3.2.12. Participation Status . . . . . . . . . . . . . . . .38 8. Properties21 3.2.13. Recurrence Identifier Range . . . . . . . . . . . . . 23 3.2.14. Alarm Trigger Relationship . . . . . . . . . . . .45 8.1. Calendar Properties. 23 3.2.15. Relationship Type . . . . . . . . . . . . . . . . .45 8.1.1. Calendar Scale. 24 3.2.16. Participation Role . . . . . . . . . . . . . . . . . 25 3.2.17. RSVP Expectation .45 8.1.2. Method. . . . . . . . . . . . . . . . . 25 3.2.18. Sent By . . . . . .46 8.1.3. Product Identifier. . . . . . . . . . . . . . . . .47 8.1.4. Version26 3.2.19. Time Zone Identifier . . . . . . . . . . . . . . . . 26 3.2.20. Value Data Types . . . . . . .48 8.2. Descriptive Component Properties. . . . . . . . . . . 28 3.3. Property Value Data Types .49 8.2.1. Attachment. . . . . . . . . . . . . . . 29 3.3.1. Binary . . . . . .49 8.2.2. Categories. . . . . . . . . . . . . . . . . 29 3.3.2. Boolean . . . .50 8.2.3. Classification. . . . . . . . . . . . . . . . . . .51 8.2.4. Comment30 3.3.3. Calendar User Address . . . . . . . . . . . . . . . . 30 3.3.4. Date . . . . . . .52 8.2.5. Description. . . . . . . . . . . . . . . . . 31 3.3.5. Date-Time . . . .53 8.2.6. Geographic Position. . . . . . . . . . . . . . . . .54 8.2.7. Location. 31 3.3.6. Duration . . . . . . . . . . . . . . . . . . . . .56 8.2.8. Percent Complete. 34 3.3.7. Float . . . . . . . . . . . . . . . . .57 8.2.9. Priority. . . . . . . 34 3.3.8. Integer . . . . . . . . . . . . . . .58 8.2.10. Resources. . . . . . . . 35 3.3.9. Period of Time . . . . . . . . . . . . . .59 8.2.11. Free/Busy Time Type. . . . . 35 3.3.10. Recurrence Rule . . . . . . . . . . . .60 8.2.12. Participation Status. . . . . . . 37 3.3.11. Text . . . . . . . . .61 8.2.13. Status. . . . . . . . . . . . . . . 42 3.3.12. Time . . . . . . . .63 Desruisseaux & Stoner Expires April 14, 2006 [Page 2] Internet-Draft iCalendar October 2005 8.2.14. Summary. . . . . . . . . . . . . . . . 43 3.3.13. URI . . . . . . .64 8.2.15. Date and Time Component Properties. . . . . . . . .65 8.2.16. Time Zone Component Properties. . . . . . . . . 46 Desruisseaux Expires December 24, 2006 [Page 3] Internet-Draft iCalendar June 2006 3.3.14. UTC Offset . .73 8.2.17. Relationship Component Properties. . . . . . . . . .77 8.2.18. Calendar User Type. . . . . . . . . 46 3.4. iCalendar Object . . . . . . . .86 8.2.19. Directory Entry Reference. . . . . . . . . . . . 47 3.5. Property . .87 8.2.20. Recurrence ID. . . . . . . . . . . . . . . . . . . .87 8.2.21. Related To. . 48 3.6. Calendar Components . . . . . . . . . . . . . . . . . . .89 8.2.22. Uniform Resource Locator48 3.6.1. Event Component . . . . . . . . . . . . . .91 8.2.23. Unique Identifier. . . . . 49 3.6.2. To-do Component . . . . . . . . . . . . .91 8.2.24. Relationship Type. . . . . . 52 3.6.3. Journal Component . . . . . . . . . . . .93 8.3. Recurrence Component Properties. . . . . . 54 3.6.4. Free/Busy Component . . . . . .94 8.3.1. Exception Date/Times. . . . . . . . . . . 55 3.6.5. Time Zone Component . . . . .94 8.3.2. Exception Rule. . . . . . . . . . . . 58 3.6.6. Alarm Component . . . . . . .95 8.3.3. Recurrence Date/Times. . . . . . . . . . . . 66 3.7. Calendar Properties . . . .97 8.3.4. Recurrence Identifier Range. . . . . . . . . . . . .98 8.3.5. Recurrence Rule. . 72 3.7.1. Calendar Scale . . . . . . . . . . . . . . . . .99 8.4. Alarm Component Properties. . 72 3.7.2. Method . . . . . . . . . . . . .110 8.4.1. Action. . . . . . . . . . 73 3.7.3. Product Identifier . . . . . . . . . . . . .110 8.4.2. Alarm Repeat Count. . . . 74 3.7.4. Version . . . . . . . . . . . . .111 8.4.3. Alarm Trigger. . . . . . . . . . 75 3.8. Component Properties . . . . . . . . . .111 8.5. Alarm Trigger Relationship. . . . . . . . 76 3.8.1. Descriptive Component Properties . . . . . . .114 8.6. Change Management Component Properties. . . 76 3.8.1.1. Attachment . . . . . .114 8.6.1. Date/Time Created. . . . . . . . . . . . . 76 3.8.1.2. Categories . . . . .114 8.6.2. Date/Time Stamp. . . . . . . . . . . . . . 77 3.8.1.3. Classification . . . . .115 8.6.3. Last Modified. . . . . . . . . . . . 78 3.8.1.4. Comment . . . . . . . .116 8.6.4. Sequence Number. . . . . . . . . . . . . 79 3.8.1.5. Description . . . . . .117 8.7. Miscellaneous Component Properties. . . . . . . . . . .118 8.7.1. RSVP Expectation. . 80 3.8.1.6. Geographic Position . . . . . . . . . . . . . . . 81 3.8.1.7. Location .118 8.7.2. Language. . . . . . . . . . . . . . . . . . . 83 3.8.1.8. Percent Complete . . .119 8.7.3. Group or List Membership. . . . . . . . . . . . . 84 3.8.1.9. Priority .120 8.7.4. Alternate Text Representation. . . . . . . . . . . .121 8.7.5. Inline Encoding. . . . . . . 85 3.8.1.10. Resources . . . . . . . . . . . .121 8.7.6. Format Type. . . . . . . . 87 3.8.1.11. Status . . . . . . . . . . . . .122 8.7.7. Non-standard Properties. . . . . . . . 87 3.8.1.12. Summary . . . . . . .123 8.7.8. Request Status. . . . . . . . . . . . . . 89 3.8.2. Date and Time Component Properties . . . . .124 9. iCalendar Object Examples. . . . 90 3.8.2.1. Date/Time Completed . . . . . . . . . . . . . .127 10. Recommended Practices. 90 3.8.2.2. Date/Time End . . . . . . . . . . . . . . . . . . 91 3.8.2.3. Date/Time Due .132 11. Registration of Content Type Elements. . . . . . . . . . . .134 11.1. Registration of New and Modified iCalendar Object Methods. . . . . 92 3.8.2.4. Date/Time Start . . . . . . . . . . . . . . . . . 93 3.8.2.5. Duration . .134 11.2. Registration of New Properties. . . . . . . . . . . . .134 11.3. Define the property. . . . . 94 3.8.2.6. Free/Busy Time . . . . . . . . . . . . .134 11.4. Post the Property definition. . . . 95 3.8.2.7. Time Transparency . . . . . . . . . .136 11.5. Allow a comment period. . . . . . 96 3.8.3. Time Zone Component Properties . . . . . . . . . . .136 11.6. Submit the property for approval97 3.8.3.1. Time Zone Identifier . . . . . . . . . . . .136 11.7. Property Change Control. . 98 3.8.3.2. Time Zone Name . . . . . . . . . . . . . .136 12. Property Parameters. . . 99 3.8.3.3. Time Zone Offset From . . . . . . . . . . . . . . 100 3.8.3.4. Time Zone Offset To . . . .138 Desruisseaux & Stoner Expires April 14, 2006 [Page 3] Internet-Draft iCalendar October 2005 13. Value Data Types. . . . . . . . . . . 101 3.8.3.5. Time Zone URL . . . . . . . . . . .139 13.1. Binary. . . . . . . 101 3.8.4. Relationship Component Properties . . . . . . . . . . 102 3.8.4.1. Attendee . . . . . . . .139 13.2. Boolean. . . . . . . . . . . . 102 3.8.4.2. Contact . . . . . . . . . . . .140 13.3. Calendar User Address. . . . . . . . . 105 3.8.4.3. Organizer . . . . . . . .140 13.4. Date. . . . . . . . . . . . 106 3.8.4.4. Recurrence ID . . . . . . . . . . . . . .141 13.5. Date-Time. . . . 108 Desruisseaux Expires December 24, 2006 [Page 4] Internet-Draft iCalendar June 2006 3.8.4.5. Related To . . . . . . . . . . . . . . . . . . .141 13.6. Duration110 3.8.4.6. Uniform Resource Locator . . . . . . . . . . . . 112 3.8.4.7. Unique Identifier . . . . . . . . . . . .143 13.7. Period of Time. . . . 112 3.8.5. Recurrence Component Properties . . . . . . . . . . . 114 3.8.5.1. Exception Date/Times . . . . . .144 13.8. Time Zone Identifier. . . . . . . . 114 3.8.5.2. Exception Rule . . . . . . . . . .145 13.9. Recurrence Rule. . . . . . . 115 3.8.5.3. Recurrence Date/Times . . . . . . . . . . . . .146 13.10. Float. 117 3.8.5.4. Recurrence Rule . . . . . . . . . . . . . . . . . 118 3.8.6. Alarm Component Properties . . . . . . .152 13.11. Integer. . . . . . 127 3.8.6.1. Action . . . . . . . . . . . . . . . . . .152 13.12. Text. . . 128 3.8.6.2. Repeat Count . . . . . . . . . . . . . . . . . . 128 3.8.6.3. Trigger . . . . .153 13.13. Time. . . . . . . . . . . . . . . . 129 3.8.7. Change Management Component Properties . . . . . . . 131 3.8.7.1. Date/Time Created . . . .154 13.14. URI. . . . . . . . . . . . 132 3.8.7.2. Date/Time Stamp . . . . . . . . . . . . . .156 13.15. UTC Offset. . . 132 3.8.7.3. Last Modified . . . . . . . . . . . . . . . . . . 133 3.8.7.4. Sequence Number . . . . . . . . . . . . . . . . . 134 3.8.8. Miscellaneous Component Properties . . . . . . . . . 136 3.8.8.1. Non-standard Properties . . . . . . . . . . . . . 136 3.8.8.2. Request Status . . . . . . . . . . . . . . . . . 137 4. iCalendar Object Examples . . . . . . . . . . . . . . . . . . 140 5. Recommended Practices . . . . . . . . . . . . . . . . . . . . 144 6. Registration of Content Type Elements . . . . . . . . . . . . 145 6.1. Registration of New and Modified iCalendar Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . 145 6.2. Registration of New Properties . . . . . . . . . . . . . 145 6.2.1. Define the property . . . . . . . . . . . . . . . . . 146 6.2.2. Post the Property definition . . . . . . . . . . . . 147 6.2.3. Allow a comment period . . . . . . . . . . . . . . . 147 6.2.4. Submit the property for approval . . . . . . . . . . 147 6.3. Property Change Control . . . . . . . . . . . . . . . . . 148 7. Internationalization Considerations . . . . . . . . . .157 14.. . . 148 8. Security Considerations . . . . . . . . . . . . . . . . . . .159 15.148 9. IANAMIMEConsideration . . . . . . . . . . . . . . . . . . . . . 149 9.1. Media Type Registration Information . . . . . . . . . . . 149 10. Acknowledgments . . . . . . . . . . . . . . . . . .160 16. Acknowledgements. . . . . 152 11. References . . . . . . . . . . . . . . . . . . . . . .163 17.. . . 152 11.1. Normative References . . . . . . . . . . . . . . . . . . 152 11.2. Informative References . . . . . . . . . . . . . . . . . 153 Author's Address .163 Authors' Addresses. . . . . . . . . . . . . . . . . . . . . . .165155 Intellectual Property and Copyright Statements . . . . . . . . .166156 Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page4]5] Internet-Draft iCalendarOctober 2005June 2006 1. Introduction The use of calendaring and scheduling has grown considerably in the last decade. Enterprise and inter-enterprise business has become dependent on rapid scheduling of events and actions using this information technology. However, the longer term growth of calendaring and scheduling, is currently limited by the lack of Internet standards for the message content types that are central to these knowledgeware applications. This memo is intended to progress the level of interoperability possible between dissimilar calendaring and scheduling applications. This memo defines a MIME[5]content type for exchanging electronic calendaring and scheduling information. The Internet Calendaring and Scheduling Core Object Specification, or iCalendar, allows for the capture and exchange of information normally stored within a calendaring and scheduling application; such as a Personal Information Manager (PIM) or a Group Scheduling product. The iCalendar format is suitable as an exchange format between applications or systems. The format is defined in terms of a MIME content type. This will enable the object to be exchanged using several transports, including but not limited to SMTP, HTTP, a file system, desktop interactive protocols such as the use of a memory- based clipboard or drag/drop interactions, point-to-point asynchronous communication, wired-network transport, or some form of unwired transport such as infrared might also be used. The memo also provides for the definition of iCalendar object methods that will map this content type to a set of messages for supporting calendaring and scheduling operations such as requesting, replying to, modifying, and canceling meetings or appointments, to-dos and journal entries. The iCalendar object methods can be used to define other calendaring and scheduling operations such a requesting for and replying with free/busy time data.[[Comment.1: Removed forward reference to ITIP (unnecessary) --Lisa D]]Such a scheduling protocol is defined in the iCalendar Transport-independent Interoperability Protocol (iTIP) defined in [I-D.ietf-calsify-2446bis]. The memo also includes a formal grammar for the content type based on the Internet ABNF defined inRFC 2234 [8].[RFC2234]. This ABNF is required for the implementation of parsers and to serve as the definitive reference when ambiguities or questions arise in interpreting the descriptive prose definition of the memo.1.1. Related Memos Implementers will need to be familiar with several other memos that, along with this memo, form a framework for Internet calendaring2. Basic Grammar andscheduling standards. This memo, [ICAL], specifies a core specification of objects, data types, propertiesConventions The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" andpropertyDesruisseaux& StonerExpiresApril 14,December 24, 2006 [Page5]6] Internet-Draft iCalendarOctober 2005 parameters. [ITIP] - specifies an interoperability protocol for scheduling between different implementations; [IMIP] specifies an Internet email binding for [ITIP]. This memo does not attempt to repeat the specification of concepts or definitions from these other memos. Where possible, references are made to the memo that provides for the specification of these concepts or definitions. [[Comment.2: If we keep this section on related memos, we have to think about whether ITIP and IMIP are progressing to Draft at the same time, whether to update those references and whether to add CalDAV or other references. --Lisa D]] Desruisseaux & Stoner Expires April 14, 2006 [Page 6] Internet-Draft iCalendar October 2005 2. Overview This draft section provides a high-level overview of the concepts of iCalendar and the organization of this document. An iCalendar object contains a set of calendar properties and a set of components. Components consist of a set of component properties. Properties consist of a property name, a set of parameters, and a property value. The preliminary material of this document includes the introduction, this overview, some document conventions and the considerations for internationalization. Section 5 provides the general syntax rules used by all of iCalendar, such as character set, line length and line break rules, and which characters are separators. Section 6 defines the iCalendar object itself, and Section 7 covers the components that appear in iCalendar objects. Desruisseaux & Stoner Expires April 14, 2006 [Page 7] Internet-Draft iCalendar October 2005 3. Document Conventions The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" and "OPTIONAL" in this document are to be interoperated as described in RFC 2119 [7].June 2006 "OPTIONAL" in this document are to be interoperated as described in [RFC2119]. This memo makes use of both a descriptive prose and a more formal notation for defining the calendaring and scheduling format. The notation used in this memo is the ABNF notation ofRFC 2234 [8].[RFC2234]. Readers intending on implementing this format defined in this memo should be familiar with this notation in order to properly interpret the specifications of this memo. All numeric values used in this memo are given in decimal notation. All names of properties, property parameters, enumerated property values and property parameter values are case-insensitive. However, all other property values are case-sensitive, unless otherwise stated. Note: All indented editorial notes, such as this one, are intended to provide the reader with additional information. The information is not essential to the building of an implementation conformant with this memo. The information is provided to highlight a particular feature or characteristic of the memo.[[Comment.3: This section can be deleted because it provides practically no information and is not a normative reference:The format for the iCalendar object is based on the syntax of theRFC 2425[RFC2425] content type. While the iCalendar object is not a profile of theRFC 2425[RFC2425] content type, it does reuse a number of the elements from theRFC 2425[RFC2425] specification.--Lisa D]] 3.1.2.1. Formatting Conventions The mechanisms defined in this memo are defined in prose. Many of the terms used to describe these have common usage that is different than the standards usage of this memo. In order to reference within this memo elements of the calendaring and scheduling model, core object (this memo) or interoperability protocol[ITIP][I-D.ietf-calsify- 2446bis] some formatting conventions have been used. Calendaring and scheduling roles are referred to in quoted-strings of text with the first character of each word in upper case. For example, "Organizer" refers to a role of a "Calendar User" within the scheduling protocol defined by[ITIP].[I-D.ietf-calsify-2446bis]. Calendar components defined by this memo are referred to with capitalized, quoted-strings of text. All calendar components start with the letter "V". For example, "VEVENT" refers to the event calendar component, "VTODO" refers to the to-do calendar component and "VJOURNAL" refers to the daily journal calendar component. Scheduling methods defined by[ITIP]iTIP [I-D.ietf-calsify-2446bis] are referred to with capitalized,quoted-stringsquoted- strings of text. For example, "REQUEST" refers to the method for Desruisseaux Expires December 24, 2006 [Page 7] Internet-Draft iCalendar June 2006 requesting a scheduling calendar component be created or modified, "REPLY" refers to the method a recipient of a request uses to update their status with the "Organizer" of the calendar component.Desruisseaux & Stoner Expires April 14, 2006 [Page 8] Internet-Draft iCalendar October 2005The properties defined by this memo are referred to with capitalized, quoted-strings of text, followed by the word "property". For example, "ATTENDEE" property refers to the iCalendar property used to convey the calendar address of a calendar user. Property parameters defined by this memo are referred to with lowercase, quoted-strings of text, followed by the word "parameter". For example, "value" parameter refers to the iCalendar property parameter used to override the default data type for a property value. Enumerated values defined by this memo are referred to with capitalized text, either alone or followed by the word "value". For example, the "MINUTELY" value can be used with the "FREQ" component of the "RECUR" data type to specify repeating components based on an interval of one minute or more.Desruisseaux & Stoner Expires April 14, 2006 [Page 9] Internet-Draft iCalendar October 2005 4.2.2. Related Memos Implementers will need to be familiar with several other memos that, along with this memo, form a framework for Internet calendaring and scheduling standards. This memo specifies a core specification of objects, data types, properties and property parameters. o iTIP [I-D.ietf-calsify-2446bis] specifies an interoperability protocol for scheduling between different implementations; o iMIP [I-D.ietf-calsify-rfc2447bis] specifies an Internet email binding for [I-D.ietf-calsify-2446bis]. This memo does not attempt to repeat the specification of concepts or definitions from these other memos. Where possible, references are made to the memo that provides for the specification of these concepts or definitions. 2.3. International Considerations In the rest of this document, descriptions of characters are of the form "character name (codepoint)", where "codepoint" is from the US- ASCII character set. The "character name" is the authoritative description; (codepoint) is a reference to that character in US-ASCII or US-ASCII compatible sets (for example the ISO-8859-x family, UTF- 8, ISO-2022-xx, KOI8-R). If a non-US-ASCII compatible character set is used, appropriate code-point from that character set MUST be chosen instead. Use of non-US-ASCII-compatible character sets is NOT recommended. Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page10]8] Internet-Draft iCalendarOctober 2005 5. General Syntax 5.1. Character Set The default character set for anJune 2006 3. iCalendarobject is UTF-8 as defined in RFC 2279 [9].Object Specification The"charset" Content-Type parameterfollowing sections define the details of a Calendaring and Scheduling Core Object Specification. This information is intended to be an integral part of the MIME content type registration. In addition, this information can be usedin MIME transports to specify any other IANA registered character set. [[Comment.4: I think we need to say something about interoperability problems which result from using any other charset. --Lisa D]] 5.2. Case Sensitivity All namesindependent ofproperties, property parameters, enumerated property values and property parameter values are case-insensitive. However, all other property values are case-sensitive, unless otherwise stated. 5.3.such content registration. In particular, this memo has direct applicability for use as a calendaring and scheduling exchange format in file-, memory- or network-based transport mechanisms. 3.1. Content Lines The iCalendar object is organized into individual lines of text, called content lines. Content lines are delimited by a line break, which is a CRLF sequence (US-ASCII decimal 13, followed by US-ASCII decimal 10). Lines of text SHOULD NOT be longer than 75 octets, excluding the line break. Long content lines SHOULD be split into a multiple line representations usingthea line "folding" technique. That is, a long line can be split between any two characters by inserting a CRLF immediately followed by a single linear white space character (i.e., SPACE, US-ASCII decimal 32 or HTAB, US-ASCII decimal 9). Any sequence of CRLF followed immediately by a single linear white space character is ignored (i.e., removed) when processing the content type. For example the line: DESCRIPTION:This is a long description that exists on a long line.Figure 1Can be represented as: DESCRIPTION:This is a lo ng description that exists on a long line.Figure 2 Desruisseaux & Stoner Expires April 14, 2006 [Page 11] Internet-Draft iCalendar October 2005The process of moving from this folded multiple line representation to its single line representation is called "unfolding". Unfolding is accomplished by removing the CRLF character and the linear white space character that immediately follows. When parsing a content line, folded lines MUST first be unfolded according to the unfolding procedure described above. When generating a content line, lines longer than 75 octets SHOULD be folded according to the folding procedure described above.Content lines are CRLF-separated. [[Comment.5: Removed referenceThe content information associated with an iCalendar object is Desruisseaux Expires December 24, 2006 [Page 9] Internet-Draft iCalendar June 2006 formatted using a syntax similar to2425 again and simply statedthatlines aredefined by [RFC2425]. That is, the content information consists of CRLF-separated--Lisa]]content lines. The followingABNFnotation defines the lines of content in an iCalendar object: contentline = name *(";" param ) ":" value CRLF ; This ABNF is just a general definition for an initial parsing ; of the content line into its property name, parameter list, ; and value string ; When parsing a content line, folded lines MUST first ; be unfolded according to the unfolding procedure ; described above. When generating a content line, lines ; longer than 75 octets SHOULD be folded according to ; the folding procedure described above. name = x-name / iana-token iana-token = 1*(ALPHA / DIGIT / "-") ; iCalendar identifier registered with IANA x-name = "X-" [vendorid "-"] 1*(ALPHA / DIGIT / "-") ;ReserveredReserved for experimental use.Not intended for use in ; released products.vendorid = 3*(ALPHA / DIGIT) ;Vendor identification param = param-name "=" param-value *("," param-value) ; Each property defines the specific ABNF for the parameters ; allowed on the property. Refer to specific properties for ; precise parameter ABNF. param-name = iana-token / x-token param-value = paramtext / quoted-string paramtext = *SAFE-CHARDesruisseaux & Stoner Expires April 14, 2006 [Page 12] Internet-Draft iCalendar October 2005value = *VALUE-CHAR quoted-string = DQUOTE *QSAFE-CHAR DQUOTE NON-US-ASCII = %x80-F8 ; Use restricted by charset parameter ; on outer MIME object (UTF-8 preferred) QSAFE-CHAR = WSP / %x21 / %x23-7E / NON-US-ASCII Desruisseaux Expires December 24, 2006 [Page 10] Internet-Draft iCalendar June 2006 ; Any character except CTLs and DQUOTE SAFE-CHAR = WSP / %x21 / %x23-2B / %x2D-39 / %x3C-7E / NON-US-ASCII ; Any character except CTLs, DQUOTE, ";", ":", "," VALUE-CHAR = WSP / %x21-7E / NON-US-ASCII ; Any textual character CR = %x0D ; carriage return LF = %x0A ; line feed CRLF = CR LF ; Internet standard newline CTL = %x00-08 / %x0A-1F / %x7F ; Controls ALPHA = %x41-5A / %x61-7A ; A-Z / a-z DIGIT = %x30-39 ; 0-9 DQUOTE = %x22 ; Quotation Mark WSP = SPACE / HTAB SPACE = %x20 HTAB = %x09Figure 3The property value component of a content line has a format that is property specific. Refer to the section describing each property forDesruisseaux & Stoner Expires April 14, 2006 [Page 13] Internet-Draft iCalendar October 2005a definition of this format. All names of properties, property parameters, enumerated property values and property parameter values are case-insensitive. However, all other property values are case-sensitive, unless otherwise stated.5.4.3.1.1. List and Field Separators Some properties and parameters allow a list of values. Values in a list of values MUST be separated by a COMMA character (US-ASCII Desruisseaux Expires December 24, 2006 [Page 11] Internet-Draft iCalendar June 2006 decimal 44). There is no significance to the order of values in a list. For those parameter values (such as those that specify URI values) that are specified in quoted-strings, the individual quoted- strings are separated by a COMMA character (US-ASCII decimal 44). Some property values are defined in terms of multiple parts. These structured property values MUST have their value parts separated by a SEMICOLON character (US-ASCII decimal 59). Some properties allow a list of parameters. Each property parameter in a list of property parameters MUST be separated by a SEMICOLON character (US-ASCII decimal 59). Property parameters with values containing a COLON, a SEMICOLON or a COMMA character MUST be placed in quoted text. For example, in the following properties a SEMICOLON is used to separate property parameters from each other, and a COMMA is used to separate property values in a value list. ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT:MAILTO: jsmith@host.com RDATE;VALUE=DATE:19970304,19970504,19970704,199709045.5.3.1.2. MultiplePropertyValues Some properties defined in the iCalendar object can have multiple values. The general rule for encoding multi-valued items is to simply create a new content line for each value, including the property name. However, it should be noted that some properties support encoding multiple values in a single property by separating the values with a COMMA character (US-ASCII decimal 44). Individual property definitions should be consulted for determining whether a specific property allows multiple values and in which of these two forms.Desruisseaux & Stoner Expires April 14, 2006 [Page 14] Internet-Draft iCalendar October 2005 5.6.3.1.3. Binary Content Binary content information in an iCalendar object SHOULD be referenced using a URI within a property value. That is the binary content information SHOULD be placed in an external MIME entity that can be referenced by a URI from within the iCalendar object. In applications where this is not feasible, binary content information can be included within an iCalendar object, but only after first encoding it into text using the "BASE64" encoding method defined in[RFC 2045].[RFC2045]. Inline binary contact SHOULD only be used in applications whose special circumstances demand that an iCalendar object be Desruisseaux Expires December 24, 2006 [Page 12] Internet-Draft iCalendar June 2006 expressed as a single entity. A property containing inline binary content information MUST specify the "ENCODING" property parameter. Binary content information placed external to the iCalendar object MUST be referenced by a uniform resource identifier (URI). The following example specifies an "ATTACH" property that references an attachment external to the iCalendar object with a URI reference:ATTACH:http://xyz.com/public/quarterly-report.docATTACH:http://example.com/public/quarterly-report.doc The following example specifies an "ATTACH" property with inline binary encoded content information: ATTACH;FMTTYPE=image/basic;ENCODING=BASE64;VALUE=BINARY: MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1U EBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bmljYXRpb25zIE[...remainder<...remainder of "BASE64" encoded binarydata...] 5.7.data...> 3.1.4. Character Set There is not a property parameter to declare the character set used in a property value. The default character set for an iCalendar object is UTF-8 as defined in [RFC2279]. The "charset" Content-Type parameter can be used in MIME transports to specify any other IANA registered character set. 3.2. PropertyParameter SyntaxParameters A property can have attributes associated with it. These "property parameters" contain meta-information about the property or the property value. Property parameters are provided to specify such information as the location of an alternate text representation for a property value, the language of a text property value, the data type of the property value and other attributes. Property parameter values that contain the COLON (US-ASCII decimal 58), SEMICOLON (US-ASCII decimal 59) or COMMA (US-ASCII decimal 44) character separators MUST be specified as quoted-string text values. Property parameter values MUST NOT contain theDOUBLE-QUOTEDQUOTE (US-ASCII decimal 22) character. TheDOUBLE-QUOTEDQUOTE (US-ASCII decimal 22) character is used as a delimiter for parameter values that contain restricted characters or URI text. For example: DESCRIPTION;ALTREP="http://www.wiz.org":The Fall'98 Wild WizardsDesruisseaux & Stoner Expires April 14, 2006 [Page 15] Internet-Draft iCalendar October 2005Conference - - Las Vegas, NV, USA Desruisseaux Expires December 24, 2006 [Page 13] Internet-Draft iCalendar June 2006 Property parameter values that are not in quoted strings are case insensitive.Desruisseaux & Stoner Expires April 14, 2006 [Page 16] Internet-Draft iCalendar October 2005 6. iCalendar ObjectsTheCalendaring and Scheduling Core Object is a collection of calendaring and scheduling information. Typically,general property parameters defined by thisinformation will consist of a single iCalendar object. However, multiple iCalendar objects can be sequentially grouped together. The first line and last line of the iCalendar object MUST contain a pair of iCalendar object delimiter strings. The syntax for an iCalendar object is as follows: icalobject = 1*("BEGIN" ":" "VCALENDAR" CRLF icalbody "END" ":" "VCALENDAR" CRLF) Figure 8 The following is a simple example of an iCalendar object: BEGIN:VCALENDAR VERSION:2.0 PRODID:-//hacksw/handcal//NONSGML v1.0//EN BEGIN:VEVENT DTSTART:19970714T170000Z DTEND:19970715T035959Z SUMMARY:Bastille Day Party END:VEVENT END:VCALENDAR Figure 9 Desruisseaux & Stoner Expires April 14, 2006 [Page 17] Internet-Draft iCalendar October 2005 7. Calendar Components The body of an iCalendar object consists of a sequence of calendar properties and one or more calendar components. The calendar properties are attributes that apply to the calendar as a whole. The calendar componentsmemo arecollections of properties that express a particular calendar semantic. For example, the calendar component can specify an event, a to-do, a journal entry, time zone information, or free/busy time information, or an alarm. The body of the iCalendar object isdefined by the following notation:icalbody = calprops component calpropsparameter =2*( ; 'prodid' and 'version' are both REQUIRED,altrepparam ;but MUST NOT occur more than once prodid /versionAlternate text representation / cnparam ;'calscale' and 'method' are optional, ; but MUST NOT occur more than once calscaleCommon name /methodcutypeparam ; Calendar user type /x-prop ) component = 1*(eventcdelfromparam ; Delegator /todocdeltoparam ; Delegatee /journalcdirparam ; Directory entry /freebusycencodingparam ; Inline encoding / fmttypeparam ; Format type /timezonecfbtypeparam ; Free/busy time type /iana-complanguageparam ; Language for text /x-comp) iana-compmemberparam ; Group or list membership / partstatparam ; Participation status / rangeparam ; Recurrence identifier range / trigrelparam ; Alarm trigger relationship / reltypeparam ; Relationship type / roleparam ; Participation role / rsvpparam ; RSVP expectation / sentbyparam ; Sent by / tzidparam ; Reference to time zone object / valuetypeparam ; Property value data type / ianaparam ; Some other IANA registered iCalendar parameter. / xparam ; A non-standard, experimental parameter. ianaparam ="BEGIN" ":" iana-token CRLF 1*contentline "END" ":"iana-tokenCRLF x-comp"=" param-value *("," param-value) xparam ="BEGIN" ":" x-name CRLF 1*contentline "END" ":"x-nameCRLF"=" param-value *("," param-value) 3.2.1. Alternate Text Representation Parameter Name: ALTREP Purpose: To specify an alternate text representation for the property value. Format Definition: The property parameter is defined by the following notation: altrepparam = "ALTREP" "=" DQUOTE uri DQUOTE Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page18]14] Internet-Draft iCalendarOctober 2005 Figure 10 An iCalendar objectJune 2006 Description: The parameter specifies a URI that points to an alternate representation for a textual property value. A property specifying this parameter MUST also include a value that reflects the"PRODID" and "VERSION" calendar properties. In addition, itdefault representation of the text value. The individual URI parameter values MUST each be specified in a quoted-string. Example: DESCRIPTION;ALTREP="CID:<part3.msg.970415T083000@host.com>":Project XYZ Review Meeting will includeat least one calendar component. Special forms of iCalendar objects are possiblethe following agenda items: (a) Market Overview, (b) Finances, (c) Project Management The "ALTREP" property parameter value might point topublish just busy time (i.e., onlya"VFREEBUSY""text/html" content portion. Content-Type:text/html Content-Id:<part3.msg.970415T083000@host.com> <html><body> <p><b>Project XYZ Review Meeting</b> will include the following agenda items:<ol><li>Market Overview</li><li>Finances</li><li>Project Management</li></ol></p> </body></html> 3.2.2. Common Name Parameter Name: CN Purpose: To specify the common name to be associated with the calendarcomponent) or time zone (i.e., onlyuser specified by the property. Format Definition: The property parameter is defined by the following notation: cnparam = "CN" "=" param-value Description: This parameter can be specified on properties with a"VTIMEZONE"CAL-ADDRESS value type. The parameter specifies the common name to be associated with the calendarcomponent) information. In addition, a complex iCalendar object is possible thatuser specified by the property. The parameter value is text. The parameter value can be used for display text tocapture a complete snapshot ofbe associated with thecontents of a calendar (e.g., composite of many different calendar components). More commonly, an iCalendar object will consist of just a single "VEVENT", "VTODO" or "VJOURNAL"calendarcomponent. 7.1. Event Component Component Name: VEVENT Purpose: Provide a grouping of component properties that describe an event.address specified by the property. Example: ORGANIZER;CN="John Smith":MAILTO:jsmith@host.com Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page19]15] Internet-Draft iCalendarOctober 2005 Formal Definition: A "VEVENT"June 2006 3.2.3. Calendar User Type Parameter Name: CUTYPE Purpose: To specify the type of calendarcomponentuser specified by the property. Format Definition: The property parameter is defined by the following notation:eventc = "BEGIN" ":" "VEVENT" CRLF eventprop *alarmc "END" ":" "VEVENT" CRLF eventpropcutypeparam =*( ; the following are optional,"CUTYPE" "=" ("INDIVIDUAL" ;but MUST NOT occur more than once class / createdAn individual /description / dtstart / geo / last-mod / location / organizer / priority / dtstamp / seq / status / summary / transp / uid / url / recurid"GROUP" ; A group of individuals / "RESOURCE" ;either 'dtend' or 'duration' may appear inA physical resource / "ROOM" ;a 'eventprop', but 'dtend' and 'duration'A room resource / "UNKNOWN" ;MUST NOT occur in the same 'eventprop' dtendOtherwise not known /durationx-name ; Experimental type / iana-token) ;the following are optional,Other IANA registered ;and MAY occur more than once attach / attendee / categories / comment / contact / exdate / exrule / rstatus / related / resources / rdate / rrule / x-prop ) Figure 11 Description: A "VEVENT" calendar componenttype ; Default isa grouping of component properties, and possibly including "VALARM" calendar components, that represents a scheduled amount of time on a calendar. For example, itINDIVIDUAL Description: This parameter can bean activity; such as a one-hour long, department meeting from 8:00 AM to 9:00 AM, tomorrow. Generally, an event will take up timespecified onan individual calendar. Hence, the event will appear as an opaque interval inproperties with asearch for busy time. Alternately, the event can have its Time Transparency set to "TRANSPARENT" in order to prevent blocking of the event in searches for busy time.CAL-ADDRESS value type. The"VEVENT" is alsoparameter identifies thecalendar component used to specify an anniversary or daily reminder within a calendar. These events have a Desruisseaux & Stoner Expires April 14, 2006 [Page 20] Internet-Draft iCalendar October 2005 DATE valuetypefor the "DTSTART" property insteadof calendar user specified by thedefault data type of DATE-TIME.property. Ifsuch a "VEVENT" has a "DTEND" property, it MUST benot specifiedas a DATE value also. The anniversary type of "VEVENT" can span more than one date (i.e, "DTEND" property value is set toon acalendar date after the "DTSTART" property value). The "DTSTART"propertyfor a "VEVENT" specifiesthat allows this parameter, theinclusive start ofdefault is INDIVIDUAL. Example: ATTENDEE;CUTYPE=GROUP:MAILTO:ietf-calsch@imc.org 3.2.4. Delegators Parameter Name: DELEGATED-FROM Purpose: To specify theevent. For recurring events, it also specifiescalendar users that have delegated their participation to thevery first instance incalendar user specified by therecurrence set.property. Format Definition: The"DTEND"propertyfor a "VEVENT" calendar component specifies the non-inclusive end ofparameter is defined by theevent. For cases wherefollowing notation: delfromparam = "DELEGATED-FROM" "=" DQUOTE cal-address DQUOTE *("," DQUOTE cal-address DQUOTE) Description: This parameter can be specified on properties with a"VEVENT" calendar component specifiesCAL-ADDRESS value type. This parameter can be specified on a"DTSTART"propertywiththat has aDATE datavalue typebut no "DTEND" property, the events non-inclusive end is the endofthe calendar date specified by the "DTSTART" property. For cases where a "VEVENT"calendarcomponentaddress. This parameter specifies those calendar users that have delegated their participation in a"DTSTART" property with a DATE-TIME data type but no "DTEND" property, thegroup scheduled eventends onor to-do to thesamecalendardate and time of dayDesruisseaux Expires December 24, 2006 [Page 16] Internet-Draft iCalendar June 2006 user specified by the"DTSTART"property. The"VEVENT" calendar component cannotvalue MUST benested within another calendar component. However, "VEVENT" calendar components can be related toa MAILTO URI as defined in [RFC1738]. The individual calendar address parameter values MUST eachother or tobe specified in a"VTODO" orquoted-string. Example: ATTENDEE;DELEGATED-FROM="MAILTO:jsmith@host.com":MAILTO: jdoe@host.com 3.2.5. Delegatees Parameter Name: DELEGATED-TO Purpose: To specify the calendar users toa "VJOURNAL"whom the calendarcomponent withuser specified by the"RELATED-TO" property. Example 1:property has delegated participation. Format Definition: Thefollowingproperty parameter isan example ofdefined by the"VEVENT"following notation: deltoparam = "DELEGATED-TO" "=" DQUOTE cal-address DQUOTE *("," DQUOTE cal-address DQUOTE) Description: This parameter can be specified on properties with a CAL-ADDRESS value type. This parameter specifies those calendarcomponent used to representusers whom have been delegated participation in ameeting that will also be opaque to searches for busy time: BEGIN:VEVENT UID:19970901T130000Z-123401@host.com DTSTAMP:19970901T1300Z DTSTART:19970903T163000Z DTEND:19970903T190000Z SUMMARY:Annual Employee Review CLASS:PRIVATE CATEGORIES:BUSINESS,HUMAN RESOURCES END:VEVENT Figure 12 Desruisseaux & Stoner Expires April 14, 2006 [Page 21] Internet-Draft iCalendar October 2005 Example 2: The following is an example ofgroup scheduled event or to-do by the"VEVENT"calendarcomponent used to represent a reminder that will notuser specified by the property. The value MUST beopaque, but rather transparent, to searches for busy time: BEGIN:VEVENT UID:19970901T130000Z-123402@host.com DTSTAMP:19970901T1300Z DTSTART:19970401T163000Z DTEND:19970402T010000Z SUMMARY:Laurel isa MAILTO URI as defined insensitivity awareness class. CLASS:PUBLIC CATEGORIES:BUSINESS,HUMAN RESOURCES TRANSP:TRANSPARENT END:VEVENT Figure 13 Example 3:[RFC1738]. Thefollowing is an example of the "VEVENT"individual calendarcomponent used to represent an anniversary that will occur annually. Since it takes up no time, it will not appear as opaqueaddress parameter values MUST each be specified in asearch for busy time; no matter what the value of the "TRANSP" property indicates: BEGIN:VEVENT UID:19970901T130000Z-123403@host.com DTSTAMP:19970901T1300Z DTSTART:19971102 SUMMARY:Our Blissful Anniversary CLASS:CONFIDENTIAL CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION RRULE:FREQ=YEARLY END:VEVENT Figure 14 7.2. To-do Component Componentquoted-string. Example: ATTENDEE;DELEGATED-TO="MAILTO:jdoe@host.com","MAILTO:jqpublic@ host.com":MAILTO:jsmith@host.com 3.2.6. Directory Entry Reference Parameter Name:VTODODIR Purpose:ProvideTo specify reference to agrouping ofdirectory entry associated with the calendarproperties that describe a to-do.user specified by the property. Format Definition: The property parameter is defined by the following notation: dirparam = "DIR" "=" DQUOTE uri DQUOTE Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page22]17] Internet-Draft iCalendarOctober 2005 Formal Definition: A "VTODO"June 2006 Description: This parameter can be specified on properties with a CAL-ADDRESS value type. The parameter specifies a reference to the directory entry associated with the calendarcomponentuser specified by the property. The parameter value is a URI. The individual URI parameter values MUST each be specified in a quoted-string. Example: ORGANIZER;DIR="ldap://host.com:6666/o=eDABC%20Industries,c=3DUS?? (cn=3DBJim%20Dolittle)":MAILTO:jimdo@host1.com 3.2.7. Inline Encoding Parameter Name: ENCODING Purpose: To specify an alternate inline encoding for the property value. Format Definition: The property parameter is defined by the following notation:todoc = "BEGIN" ":" "VTODO" CRLF todoprop *alarmc "END" ":" "VTODO" CRLF todopropencodingparam =*( ; the following are optional, ; but MUST NOT occur more than once class / completed / created / description / dtstamp / dtstart / geo / last-mod / location / organizer / percent / priority / recurid / seq / status / summary / uid / url /"ENCODING" "=" ("8BIT" ;either 'due' or 'duration' may appear"8bit" text encoding is defined in [RFC2045] / "BASE64" ;a 'todoprop', but 'due' and 'duration' ; MUST NOT occur"BASE64" binary encoding format is defined inthe same 'todoprop' due[RFC2045] /durationiana-token ; Some other IANA registered iCalendar encoding type / x-name) ;the following are optional, ; and MAY occur more than once attach / attendee / categories / comment / contact / exdate / exrule / rstatus / related / resources / rdate / rrule / x-prop ) Figure 15 Description:A"VTODO" calendar component is a grouping of component properties and possibly "VALARM" calendar components that represent an action-item or assignment. For example, it can benon-standard, experimental encoding type Description: The property parameter identifies the inline encoding usedto represent an item of work assigned to an individual; such as "turnintravel expense today".a property value. The"VTODO" calendar component cannot be nested within another calendar component. However, "VTODO" calendar components can be related to each other ordefault encoding is "8BIT", corresponding to a"VTODO" orproperty value consisting of text. The "BASE64" encoding type corresponds to a"VJOURNAL" calendar component withproperty value encoded using the"RELATED-TO" property. A "VTODO" calendar component without"BASE64" encoding defined in [RFC2045]. If the"DTSTART" and "DUE" (or "DURATION") properties specifies a to-do that willvalue type parameter is ";VALUE=BINARY", then the inline encoding parameter MUST beassociatedspecified witheach successive calendar date, until it is completed.the value ";ENCODING=BASE64". Example: ATTACH;FMTYPE=IMAGE/JPEG;ENCODING=BASE64;VALUE=BINARY:MIICajC CAdOgAwIBAgICBEUwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDA qBgNVBAoTI05ldHNjYXBlIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uMRw <...remainder of "BASE64" encoded binary data...> Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page23]18] Internet-Draft iCalendarOctober 2005 Example: The following is an example of a "VTODO" calendar component: BEGIN:VTODO UID:19970901T130000Z-123404@host.com DTSTAMP:19970901T1300Z DTSTART:19970415T133000Z DUE:19970416T045959Z SUMMARY:1996 Income Tax Preparation CLASS:CONFIDENTIAL CATEGORIES:FAMILY,FINANCE PRIORITY:1 STATUS:NEEDS-ACTION END:VTODO Figure 16 7.3. Journal Component ComponentJune 2006 3.2.8. Format Type Parameter Name:VJOURNALFMTTYPE Purpose:Provide a groupingTo specify the content type ofcomponent properties that describeajournal entry. Desruisseaux & Stoner Expires April 14, 2006 [Page 24] Internet-Draft iCalendar October 2005 Formalreferenced object. Format Definition:A "VJOURNAL" calendar componentThe property parameter is defined by the following notation:journalc = "BEGIN" ":" "VJOURNAL" CRLF jourprop "END" ":" "VJOURNAL" CRLF jourpropfmttypeparam =*( ; the following are optional,"FMTTYPE" "=" iana-token ;but MUST NOT occur more than once class / created / description / dtstart / dtstamp / last-mod / organizer / recurid / seq / status / summary / uid / urlA IANA registered content type / x-name ;the following are optional, ; and MAY occur more than once attach / attendee / categories / comment / contact / exdate / exrule / related / rdate / rrule / rstatus / x-prop ) Figure 17 Description:A"VJOURNAL" calendar component is a grouping of componentnon-standard content type Description: This parameter can be specified on properties thatrepresent one or more descriptive text notes associated with a particular calendar date. The "DTSTART" property isare used tospecifyreference an object. The parameter specifies thecalendar date thatcontent type of thejournal entry is associated with. Generally, it will have a DATE value data type, but it can also be used to specifyreferenced object. For example, on the "ATTACH" property, aDATE-TIMEFTP type URI valuedata type. Examples of a journal entry include a daily record of a legislative body or a journal entry of individual telephone contacts fordoes not, by itself, necessarily convey theday or an ordered listtype ofaccomplishments forcontent associated with theday.resource. The"VJOURNAL" calendar component can alsoparameter value MUST beused to associate a document with a calendar date. The "VJOURNAL" calendar component does not take up time on a calendar. Hence, it does not playthe TEXT for either an IANA registered content type or arole innon-standard content type. Example: ATTACH;FMTTYPE=application/msword:ftp://domain.com/pub/docs/ agenda.doc 3.2.9. Free/Busy Time Type Parameter Name: FBTYPE Purpose: To specify the free or busy timesearches - - ittype. Format Definition: The property parameter isas though it has adefined by the following notation: fbtypeparam = "FBTYPE" "=" ("FREE" / "BUSY" / "BUSY-UNAVAILABLE" / "BUSY-TENTATIVE" / x-name ; Some experimental iCalendar data type. / iana-token) ; Some other IANA registered iCalendar data type. Desruisseaux Expires December 24, 2006 [Page 19] Internet-Draft iCalendar June 2006 Description: The parameter specifies the free or busy timetransparencytype. The valueof TRANSPARENT. ItFREE indicates that the time interval istransparent to any such searches.free for scheduling. The"VJOURNAL" calendar component cannot be nested within another calendar component. However, "VJOURNAL" calendar componentsvalue BUSY indicates that the time interval is busy because one or more events have been scheduled for that interval. The value BUSY-UNAVAILABLE indicates that the time interval is busy and that the interval can not berelated to each other or to a "VEVENT"scheduled. The value BUSY-TENTATIVE indicates that the time interval is busy because one ortomore events have been tentatively scheduled for that interval. If not specified on a"VTODO" calendar Desruisseaux & Stoner Expires April 14, 2006 [Page 25] Internet-Draft iCalendar October 2005 component, withproperty that allows this parameter, the"RELATED-TO" property.default is BUSY. Example: The following is an example ofthe "VJOURNAL" calendar component: BEGIN:VJOURNAL UID:19970901T130000Z-123405@host.com DTSTAMP:19970901T1300Z DTSTART;VALUE=DATE:19970317 SUMMARY:Staff meeting minutes DESCRIPTION:1. Staff meeting: Participants include Joe\, Lisa and Bob. Aurora project plans were reviewed. There is currently no budget reserves forthisproject. Lisa will escalate to management. Next meetingparameter onTuesday.\n 2. Telephone Conference: ABC Corp. sales representative called to discuss new printer. Promised to get us a demo by Friday.\n 3. Henry Miller (Handsoff Insurance): Car was totaled by tree. Is looking intoaloaner car. 654-2323 (tel). END:VJOURNAL Figure 18 7.4. Free/Busy Component ComponentFREEBUSY property. FREEBUSY;FBTYPE=BUSY:19980415T133000Z/19980415T170000Z 3.2.10. Language Parameter Name:VFREEBUSYLANGUAGE Purpose:Provide a grouping of component properties that describe either a requestTo specify the language forfree/busy time, describe a response totext values in arequest for free/busy timeproperty ordescribe a published set of busy time. Desruisseaux & Stoner Expires April 14, 2006 [Page 26] Internet-Draft iCalendar October 2005 Formalproperty parameter. Format Definition:A "VFREEBUSY" calendar componentThe property parameter is defined by the following notation:freebusyclanguageparam ="BEGIN" ":" "VFREEBUSY" CRLF fbprop "END" ":" "VFREEBUSY" CRLF fbprop"LANGUAGE" "=" language language =*( ; the following are optional, ; but MUST NOT occur more than once contact / dtstart / dtend / duration / dtstamp / organizer / uid / url / ; the following are optional, ; and MAY occur more than once attendee / comment / freebusy / rstatus / x-prop ) Figure 19 Description: A "VFREEBUSY" calendar component is<Text identifying agrouping of componentlanguage, as defined in [RFC1766]> Description: This parameter can be specified on propertiesthat represents either a request for, a reply to a request for free or busy time information orwith apublished settext value type. The parameter identifies the language ofbusy time information. When used to request free/busy time information, the "ATTENDEE" property specifiesthecalendar users whose free/busy time is being requested;text in the"ORGANIZER"propertyspecifies the calendar user who is requesting the free/busy time; the "DTSTART" and "DTEND" properties specify the windowor property parameter value. The value oftime for whichthefree/busy time"language" property parameter isbeing requested; the "UID" and "DTSTAMP" properties are specified to assistthat defined in [RFC1766]. For transport inproper sequencing of multiple free/busy time requests. When used to reply toarequest for free/busy time, the "ATTENDEE" property specifiesMIME entity, thecalendar user respondingContent-Language header field can be used to set thefree/busy time request; the "ORGANIZER" property specifies the calendar user that originally requested the free/busy time; the "FREEBUSY" property specifies the free/busy time information (if it exists); anddefault language for the"UID" and "DTSTAMP" properties are specified to assist in proper sequencingentire body part. Otherwise, no default language is assumed. Example: SUMMARY;LANGUAGE=us-EN:Company Holiday Party LOCATION;LANGUAGE=en:Germany LOCATION;LANGUAGE=no:Tyskland The following example makes use ofmultiple free/busy time replies. When used to publish busy time,the"ORGANIZER" property specifiesQuoted-Printable encoding Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page27]20] Internet-Draft iCalendarOctober 2005 the calendar user associated with the published busy time; the "DTSTART" and "DTEND" propertiesJune 2006 in order to represent non-ASCII characters. LOCATION;LANGUAGE=3Dda:K=C3=B8benhavn LOCATION;LANGUAGE=en:Copenhagen 3.2.11. Group or List Membership Parameter Name: MEMBER Purpose: To specifyan inclusive time window that surrounds the busy time information;the"FREEBUSY" property specifiesgroup or list membership of thepublished busy time information; andcalendar user specified by the"DTSTAMP"property. Format Definition: The propertyspecifiesparameter is defined by thedate/time that iCalendar object was created. The "VFREEBUSY" calendar component cannot be nested within another calendar component. Multiple "VFREEBUSY" calendar componentsfollowing notation: memberparam = "MEMBER" "=" DQUOTE cal-address DQUOTE *("," DQUOTE cal-address DQUOTE) Description: This parameter can be specifiedwithin an iCalendar object. This permitson properties with a CAL-ADDRESS value type. The parameter identifies thegrouping of Free/Busy information into logical collections, such as monthlygroupsof busy time information. The "VFREEBUSY" calendar component is intended for use in iCalendar object methods involving requests for free time, requests for busy time, requestsor list membership forboth free and busy, andtheassociated replies. Free/Busy information is represented withcalendar user specified by the"FREEBUSY"property.This property providesThe parameter value either aterse representation of time periods. One or more "FREEBUSY" properties can be specifiedsingle calendar address inthe "VFREEBUSY"a quoted- string or a COMMA character (US-ASCII decimal 44) list of calendarcomponent. When presentaddresses, each in a"VFREEBUSY"quoted-string. The individual calendarcomponent, the "DTSTART" and "DTEND" properties SHOULDaddress parameter values MUST each be specifiedprior to any "FREEBUSY" properties. In a free time request, these properties can be usedincombination with the "DURATION" property to representarequestquoted- string. Example: ATTENDEE;MEMBER="MAILTO:ietf-calsch@imc.org":MAILTO:jsmith@host.com ATTENDEE;MEMBER="MAILTO:projectA@host.com","MAILTO:projectB@host. com":MAILTO:janedoe@host.com 3.2.12. Participation Status Parameter Name: PARTSTAT Purpose: To specify the participation status fora duration of free time within a specified window of time. The recurrence properties ("RRULE", "EXRULE", "RDATE", "EXDATE") are not permitted within a "VFREEBUSY"the calendarcomponent. Any recurring events are resolved into their individual busy time periods usinguser specified by the"FREEBUSY"property.Example 1:Format Definition: Thefollowing is an example of a "VFREEBUSY" calendar component used to request free or busy time information: BEGIN:VFREEBUSY ORGANIZER:MAILTO:jane_doe@host1.com ATTENDEE:MAILTO:john_public@host2.com DTSTART:19971015T050000Z DTEND:19971016T050000Z DTSTAMP:19970901T083000Z END:VFREEBUSY Figure 20 Desruisseaux & Stoner Expires April 14, 2006 [Page 28] Internet-Draft iCalendar October 2005 Example 2: A "VFREEBUSY" calendar component used to reply to the request with busy time information. BEGIN:VFREEBUSY ORGANIZER:MAILTO:jane_doe@host1.com ATTENDEE:MAILTO:john_public@host2.com DTSTAMP:19970901T100000Z FREEBUSY;VALUE=PERIOD:19971015T050000Z/PT8H30M, 19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M URL:http://host2.com/pub/busy/jpublic-01.ifb COMMENT:This iCalendar file contains busy time information for the next three months. END:VFREEBUSY Figure 21 Example 3: a "VFREEBUSY" calendar component used to publish busy time information. BEGIN:VFREEBUSY ORGANIZER:jsmith@host.com DTSTART:19980313T141711Z DTEND:19980410T141711Z FREEBUSY:19980314T233000Z/19980315T003000Z FREEBUSY:19980316T153000Z/19980316T163000Z FREEBUSY:19980318T030000Z/19980318T040000Z URL:http://www.host.com/calendar/busytime/jsmith.ifb END:VFREEBUSY Figure 22 7.5. Time Zone Component Component Name: VTIMEZONE Purpose: Provide a grouping of component properties that defines a time zone. Formal Definition: A "VTIMEZONE" calendar componentproperty parameter is defined by the following notation:timezonec = "BEGIN" ":" "VTIMEZONE" CRLF 2*( ; 'tzid' is required, but MUST NOT occur more ; than onceDesruisseaux& StonerExpiresApril 14,December 24, 2006 [Page29]21] Internet-Draft iCalendarOctober 2005 tzidJune 2006 partstatparam = "PARTSTAT" "=" ("NEEDS-ACTION" ; Event needs action / "ACCEPTED" ;'last-mod' and 'tzurl' are optional, but MUST NOT occur more than once last-modEvent accepted /tzurl"DECLINED" ; Event declined / "TENTATIVE" ;one of 'standardc' or 'daylightc' MUST occur ..; and each MAY occur more than once. standardcEvent tentatively ; accepted /daylightc"DELEGATED" ; Event delegated / x-name ; Experimental status / iana-token) ; Other IANA registered ; status ; These are thefollowingparticipation statuses for a "VEVENT". Default isoptional,;and MAY occur more than once x-prop ) "END" ":" "VTIMEZONE" CRLF standardc = "BEGIN" ":" "STANDARD" CRLF tzprop "END" ":" "STANDARD" CRLF daylightc = "BEGIN" ":" "DAYLIGHT" CRLF tzprop "END" ":" "DAYLIGHT" CRLF tzprop = 3*(NEEDS-ACTION partstatparam /= "PARTSTAT" "=" ("NEEDS-ACTION" ;the following are each REQUIRED,To-do needs action / "ACCEPTED" ;but MUST NOT occur more than once dtstartTo-do accepted /tzoffsetto"DECLINED" ; To-do declined /tzoffsetfrom"TENTATIVE" ; To-do tentatively ; accepted / "DELEGATED" ;the followingTo-do delegated / "COMPLETED" ; To-do completed. ; COMPLETED property has ;date/time completed. / "IN-PROCESS" ; To-do in process of ; being completed / x-name ; Experimental status / iana-token) ; Other IANA registered ; status ; These areoptional,the participation statuses for a "VTODO". Default is ;and MAY occur more than once commentNEEDS-ACTION partstatparam /= "PARTSTAT" "=" ("NEEDS-ACTION" ; Journal needs action /rdate"ACCEPTED" ; Journal accepted /rrule"DECLINED" ; Journal declined /tznamex-name ; Experimental status /x-prop ) Desruisseaux & Stoner Expires April 14, 2006 [Page 30] Internet-Draft iCalendar October 2005 Figure 23 Description: A time zone is unambiguously defined by the set of time measurement rules determined byiana-token) ; Other IANA registered ; status ; These are thegoverning bodyparticipation statuses for agiven geographic area. These rules describe at"VJOURNAL". Default is ; NEEDS-ACTION Description: This parameter can be specified on properties with aminimumCAL-ADDRESS value type. The parameter identifies thebase offset from UTCparticipation status for thetime zone, often referred to ascalendar user specified by theStandard Time offset. Many locations adjust their Standard Time forwardproperty value. The parameter values differ depending on whether they are associated with a group scheduled "VEVENT", "VTODO" orbackward by"VJOURNAL". The values MUST match onehour, in order to accommodate seasonal changes in numberofdaylight hours, often referred to as Daylight Saving Time. Some locations adjust their time bythe values allowed for the given calendar component. If not specified on afraction of an hour. Standard Time is also known as Winter Time. Daylight Saving Timeproperty that allows this parameter, the default value isalso known as Advanced Time, Summer Time, or Legal Time in certain countries.NEEDS-ACTION. Desruisseaux Expires December 24, 2006 [Page 22] Internet-Draft iCalendar June 2006 Example: ATTENDEE;PARTSTAT=DECLINED:MAILTO:jsmith@host.com 3.2.13. Recurrence Identifier Range Parameter Name: RANGE Purpose: To specify the effective range of recurrence instances from the instance specified by the recurrence identifier specified by the property. Format Definition: The property parameter is defined by the followingtable showsnotation: rangeparam = "RANGE" "=" ("THISANDPRIOR" ; To specify all instances prior to thechanges in time zone rules in effect for New York City starting from 1967. Each line representsrecurrence identifier / "THISANDFUTURE") ; To specify the instance specified by the recurrence identifier ; and all subsequent recurrence instances Description: The parameter can be specified on adescription or rule forproperty that specifies aparticular observance. Effective Observance Rule +-----------+-------------------------+--------+--------------+ | Date | (Date/Time) | Offset | Abbreviation | +-----------+-------------------------+--------+--------------+ | 1967-* | last Sun in Oct, 02:00 | -0500 | EST | | | | | | | 1967-1973 | last Sun in Apr, 02:00 | -0400 | EDT | | | | | | | 1974-1974 | Jan 6, 02:00 | -0400 | EDT | | | | | | | 1975-1975 | Feb 23, 02:00 | -0400 | EDT | | | | | | | 1976-1986 | last Sun in Apr, 02:00 | -0400 | EDT | | | | | | | 1987-* | first Sun in Apr, 02:00 | -0400 | EDT | +-----------+-------------------------+--------+--------------+ Note:recurrence identifier. Thespecificationparameter specifies the effective range ofa global time zone registryrecurrence instances that isnot addressedspecified bythis document andthe property. The effective range isleft for future study. However, implementers may findfrom theOlson time zone database [TZ] a useful reference. Itrecurrence identified specified by the property. If this parameter is not specified aninformal, public-domain collection of time zone information, whichallowed property, then the default range iscurrently being maintainedthe single instance specified byvolunteer Internet participants, and is used in several operating systems. This database contains current and historical time zone information forthe recurrence identifier value of the property. The parameter value can be "THISANDPRIOR" to indicate awide varietyrange defined by the recurrence identified value oflocations aroundtheglobe; it providesproperty and all prior instances. The parameter value can also be "THISANDFUTURE" to indicate atime zonerange defined by the recurrence identifierfor every unique time zone rule set in actual use since 1970,and all subsequent instances. Example: RECURRENCE-ID;RANGE=THISANDPRIOR:19980401T133000Z 3.2.14. Alarm Trigger Relationship Parameter Name: RELATED Purpose: To specify the relationship of the alarm trigger withhistorical data going backrespect to theintroduction of standard time. Interoperability between two calendaring and scheduling applications, especially for recurring events, to-dosstart orjournal entries, isend of the calendar component. Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page31]23] Internet-Draft iCalendarOctober 2005 dependent on the ability to capture and convey date and time information in an unambiguous format.June 2006 Format Definition: Thespecification of current time zone informationproperty parameter isintegral to this behavior. If present, the "VTIMEZONE" calendar component definesdefined by thesetfollowing notation: trigrelparam = "RELATED" "=" ("START" ; Trigger off ofStandard Time and Daylight Saving Time observances (or rules) for a particular time zone for a given intervalstart / "END") ; Trigger off oftime.end Description: The"VTIMEZONE" calendar component cannot be nested within other calendar components. Multiple "VTIMEZONE" calendar componentsparameter canexist inbe specified on properties that specify aniCalendar object. In this situation, each "VTIMEZONE" MUST representalarm trigger with aunique time zone definition. This is necessary for some classes of events, such as airline flights, thatDURATION value type. The parameter specifies whether the alarm will trigger relative to the startin one time zone andor endin another. The "VTIMEZONE"of the calendarcomponent MUST be present ifcomponent. The parameter value START will set theiCalendar object contains an RRULE that generates dates on both sidesalarm to trigger off the start ofa time zone shift (e.g. both in Standard Time and Daylight Saving Time) unlesstheiCalendar object intendscalendar component; the parameter value END will set the alarm toconvey a floating time (See Section 13.13 for proper interpretationtrigger off the end offloating time). It can be present iftheiCalendar object doescalendar component. If the parameter is notcontain such a RRULE. In addition, if a RRULEspecified on an allowable property, then the default ispresent, there MUST be valid time zone information for all recurrence instances. The "VTIMEZONE"START. Example: TRIGGER;RELATED=END:PT5M 3.2.15. Relationship Type Parameter Name: RELTYPE Purpose: To specify the type of hierarchical relationship associated with the calendar componentMUST includespecified by the"TZID"property. Format Definition: The propertyand at least one definition ofparameter is defined by the following notation: reltypeparam = "RELTYPE" "=" ("PARENT" ; Parent relationship. Default. / "CHILD" ; Child relationship / "SIBLING ; Sibling relationship / iana-token ; Some other IANA registered ; iCalendar relationship type / x-name) ; A non-standard, experimental ; relationship type Description: This parameter can be specified on astandard or daylight component.property that references another related calendar. Thestandard or daylight component MUST includeparameter specifies the hierarchical relationship type of the"DTSTART", "TZOFFSETFROM" and "TZOFFSETTO" properties. An individual "VTIMEZONE"calendar componentMUST be specified for each unique "TZID"referenced by the property. The parameter valuespecified incan be PARENT, to indicate that theiCalendar object. Each "VTIMEZONE"referenced calendar componentconsists ofis acollectionsuperior ofone or more sub-componentscalendar component; CHILD to indicate thatdescribetherule for a particular observance (either a Standard Time or a Daylight Saving Time observance). The "STANDARD" sub-component consists ofreferenced calendar component is acollectionsubordinate ofpropertiesthe calendar component; SIBLING to indicate thatdescribe Standard Time. The "DAYLIGHT" sub-the referenced calendar componentconsists ofis acollection of properties that describe Daylight Saving Time. In general this collectionpeer ofproperties consists of: the first onset date-time for the observance the last onset date-time fortheobservance, if a last onsetcalendar component. If this parameter isknown. the offset to be applied for the observancenot specified on an Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page32]24] Internet-Draft iCalendarOctober 2005 a rule that describesJune 2006 allowable property, theday and time whendefault relationship type is PARENT. Example: RELATED-TO;RELTYPE=SIBLING:<19960401-080045-4000F192713@host.com> 3.2.16. Participation Role Parameter Name: ROLE Purpose: To specify theobservance takes effect an optional nameparticipation role for theobservance For a given time zone, there may be multiple unique definitionscalendar user specified by the property. Format Definition: The property parameter is defined by the following notation: roleparam = "ROLE" "=" ("CHAIR" ; Indicates chair of theobservances over; calendar entity / "REQ-PARTICIPANT" ; Indicates aperiod of time. Each observanceparticipant whose ; participation isdescribed using eitherrequired / "OPT-PARTICIPANT" ; Indicates a"STANDARD" or "DAYLIGHT" sub-component. The collection of these sub-componentsparticipant whose ; participation isused to describe the time zoneoptional / "NON-PARTICIPANT" ; Indicates a participant who is ; copied for information ; purposes only / x-name ; Experimental role / iana-token) ; Other IANA role ; Default is REQ-PARTICIPANT Description: This parameter can be specified on properties with agiven period of time.CAL-ADDRESS value type. Theoffset to apply at any given time is found by locatingparameter specifies theobservance that hasparticipation role for thelast onset date and time beforecalendar user specified by thetimeproperty inquestion, and usingtheoffset value from that observance. The top-level properties in a "VTIMEZONE"group schedule calendarcomponent are: The mandatory "TZID"component. If not specified on a property that allows this parameter, the default value is REQ-PARTICIPANT. Example: ATTENDEE;ROLE=CHAIR:MAILTO:mrbig@host.com 3.2.17. RSVP Expectation Parameter Name: RSVP Purpose: To specify whether there is an expectation of atext value that uniquely identifiesfavor of a reply from theVTIMZONEcalendarcomponent withinuser specified by thescope of anproperty value. Desruisseaux Expires December 24, 2006 [Page 25] Internet-Draft iCalendarobject.June 2006 Format Definition: Theoptional "LAST-MODIFIED"property parameter is defined by the following notation: rsvpparam = "RSVP" "=" ("TRUE" / "FALSE") ; Default is FALSE Description: This parameter can be specified on properties with aUTCCAL-ADDRESS valuethat specifies the date and time that this time zone definition was last updated.type. Theoptional "TZURL"parameter identifies the expectation of a reply from the calendar user specified by the property value. This parameter isurl value that pointsused by the "Organizer" to request apublished VTIMEZONE definition. TZURL SHOULD refer toparticipation status reply from an "Attendee" of aresourcegroup scheduled event or to-do. If not specified on a property that allows this parameter, the default value isaccessible by anyone who might need to interpretFALSE. Example: ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host.com 3.2.18. Sent By Parameter Name: SENT-BY Purpose: To specify theobject. This SHOULD NOT normally be a file: URL or other URLcalendar user that isnot widely- accessible. The collectionacting on behalf ofproperties that are used to definetheSTANDARD and DAYLIGHT sub-components include:calendar user specified by the property. Format Definition: Themandatory "DTSTART"propertygives the effective onset date and local time forparameter is defined by thetime zone sub-component definition. "DTSTART" in this usage MUSTfollowing notation: sentbyparam = "SENT-BY" "=" DQUOTE cal-address DQUOTE Description: This parameter can be specifiedason properties with alocal DATE-TIME value.CAL-ADDRESS value type. Themandatory "TZOFFSETFROM" property givesparameter specifies theUTC offset whichcalendar user that isin use when the onsetacting on behalf ofthis time zone observance begins. "TZOFFSETFROM" is combined with "DTSTART" to define the effective onset for the time zone sub-component definition. For example, the following representsthetime at whichcalendar user specified by theobservance of Standard Time took effectproperty. The parameter value MUST be a MAILTO URI as defined inFall 1967 for New York City: DTSTART:19671029T020000 TZOFFSETFROM:-0400 Figure 24[RFC1738]. The individual calendar address parameter values MUST each be specified in a quoted-string. Example: ORGANIZER;SENT-BY:"MAILTO:sray@host.com":MAILTO:jsmith@host.com 3.2.19. Time Zone Identifier Parameter Name: TZID Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page33]26] Internet-Draft iCalendarOctober 2005 The mandatory "TZOFFSETTO " property givesJune 2006 Purpose: To specify theUTC offsetidentifier for the time zonesub-component (Standard Time or Daylight Saving Time) when this observance is in use. The optional "TZNAME" property is the customary name for the time zone. It may be specified multiple times, to allowdefinition forspecifying multiple language variants of thea timezone names. This could be used for displaying dates. If specified, the onset for the observance defined bycomponent in thetime zone sub-componentproperty value. Format Definition: The property parameter is defined byeitherthe"RRULE" or "RDATE" property. If neither is specified, only one sub-component canfollowing notation: tzidparam = "TZID" "=" [tzidprefix] paramtext CRLF tzidprefix = "/" Description: The parameter MUST be specifiedinon the"VTIMEZONE" calendar component"DTSTART", "DTEND", "DUE", "EXDATE" andit"RDATE" properties when either a DATE- TIME or TIME value type isassumed that the single observancespecifiedis always in effect. The "RRULE" property defines the recurrence rule for the onset of the observance defined by this time zone sub-component. Some specific requirements forand when theusage of RRULE for this purpose include: If observancevalue isknown to have an effective end date, the "UNTIL" recurrence rule parameter MUST be usednot either a UTC or a "floating" time. Refer tospecifythelast valid onsetDATE-TIME or TIME value type definition for a description ofthis observance (i.e., the UNTIL date-time will be equal to the last instance generated by the recurrence pattern). It MUST be specified inUTCtime. The "DTSTART"and "floating time" formats. This property parameter specifies a text value which uniquely identifies the"TZOFFSETTO" properties MUST"VTIMEZONE" calendar component to be used whengeneratingevaluating theonset date-time values (instances) fromtime portion of theRRULE. Alternatively,property. The value of the"RDATE"TZID propertycanparameter will beusedequal todefinetheonsetvalue of theobservance by givingTZID property for the matching time zone definition. An individualonset date and times. "RDATE""VTIMEZONE" calendar component MUST be specified for each unique "TZID" parameter value specified inthis usagethe iCalendar object. The parameter MUST be specifiedason properties with alocalDATE-TIME valueinif the DATE-TIME is not either a UTC or a "floating" time. Theoptional "COMMENT" property is also allowed for descriptive explanatory text. Example: The following are examplespresence of the"VTIMEZONE" calendar component: Desruisseaux & Stoner Expires April 14, 2006 [Page 34] Internet-Draft iCalendar October 2005 Example 1: Time zone information for the Eastern United States using "RDATE" property. NoteSOLIDUS character (US-ASCII decimal 47) as a prefix, indicates that this TZID represents a unique ID in a globally defined time zone registry (when such registry isonly suitable fordefined). Note: This document does not define arecurring event that starts on or later than April 6, 1997 at 03:00:00 EDT (i.e., the earliest effective transition date and time) and ends no later than April 7, 1998 02:00:00 EST (i.e., latest valid date and timenaming convention forESTtime zone identifiers. Implementers may want to use the naming conventions defined in existing time zone specifications such as the public-domain Olson database [TZDB]. The specification of globally unique time zone identifiers is not addressed by thisscenario). For example,document and is left for future study. The following are examples of thiscanproperty parameter: DTSTART;TZID=US-Eastern:19980119T020000 DTEND;TZID=US-Eastern:19980119T030000 The TZID property parameter MUST NOT beused for a recurring event that occurs every Friday, 8am-9:00 AM, starting June 1, 1997, ending December 31, 1997. BEGIN:VTIMEZONE TZID:US-Eastern LAST-MODIFIED:19870101T000000Z BEGIN:STANDARD DTSTART:19971026T020000 RDATE:19971026T020000 TZOFFSETFROM:-0400 TZOFFSETTO:-0500 TZNAME:EST END:STANDARD BEGIN:DAYLIGHT DTSTART:19970406T020000 RDATE:19970406T020000 TZOFFSETFROM:-0500 TZOFFSETTO:-0400 TZNAME:EDT END:DAYLIGHT END:VTIMEZONE Figure 25applied to DATE-TIME or Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page35]27] Internet-Draft iCalendarOctober 2005 Example 2: CurrentJune 2006 TIME properties whose timezone rules for the Eastern United States usingvalues are specified in UTC. The use of local time in aRRULE recurrence pattern. Note that thereDATE-TIME or TIME value without the TZID property parameter isno effective end datetoeither of the Standard Time or Daylight Time rules. This information wouldbevalid forinterpreted as arecurring event starting today and continuing indefinitely. BEGIN:VTIMEZONE TZID:US-Eastern LAST-MODIFIED:19870101T000000Z TZURL:http://zones.stds_r_us.net/tz/US-Eastern BEGIN:STANDARD DTSTART:19671029T020000 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 TZOFFSETFROM:-0400 TZOFFSETTO:-0500 TZNAME:EST END:STANDARD BEGIN:DAYLIGHT DTSTART:19870405T020000 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4 TZOFFSETFROM:-0500 TZOFFSETTO:-0400 TZNAME:EDT END:DAYLIGHT END:VTIMEZONE Figure 26 Desruisseaux & Stoner Expires April 14, 2006 [Page 36] Internet-Draft iCalendar October 2005 Example 3: A fictitious setlocal time value, regardless ofrules fortheEastern United States, where the Daylight Time rule has an effective end date (i.e., after that date, Daylight Time is no longer observed). BEGIN:VTIMEZONE TZID:US- -Fictitious-Eastern LAST-MODIFIED:19870101T000000Z BEGIN:STANDARD DTSTART:19671029T020000 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 TZOFFSETFROM:-0400 TZOFFSETTO:-0500 TZNAME:EST END:STANDARD BEGIN:DAYLIGHT DTSTART:19870405T020000 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z TZOFFSETFROM:-0500 TZOFFSETTO:-0400 TZNAME:EDT END:DAYLIGHT END:VTIMEZONE Figure 27 Desruisseaux & Stoner Expires April 14, 2006 [Page 37] Internet-Draft iCalendar October 2005 Example 4: A fictitious setexistence ofrules for"VTIMEZONE" calendar components in theEastern United States, whereiCalendar object. For more information see thefirst Daylight Time rule has an effective end date. There is a second Daylight Time rule that picks up wheresections on theother left off. BEGIN:VTIMEZONE TZID:US- -Fictitious-Eastern LAST-MODIFIED:19870101T000000Z BEGIN:STANDARD DTSTART:19671029T020000 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 TZOFFSETFROM:-0400 TZOFFSETTO:-0500 TZNAME:EST END:STANDARD BEGIN:DAYLIGHT DTSTART:19870405T020000 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z TZOFFSETFROM:-0500 TZOFFSETTO:-0400 TZNAME:EDT END:DAYLIGHT BEGIN:DAYLIGHT DTSTART:19990424T020000 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=4 TZOFFSETFROM:-0500 TZOFFSETTO:-0400 TZNAME:EDT END:DAYLIGHT END:VTIMEZONE Figure 28 7.6. Alarm Component Componentdata types DATE-TIME and TIME. 3.2.20. Value Data Types Parameter Name:VALARMVALUE Purpose:ProvideTo explicitly specify the data type format for agrouping of component properties that define an alarm. Formalproperty value. Format Definition:A "VALARM" calendar componentThe property parameter is defined by the following notation:alarmcvaluetypeparam ="BEGIN" ":" "VALARM" CRLF (audioprop"VALUE" "=" valuetype valuetype = ("BINARY" /dispprop"BOOLEAN" /emailprop"CAL-ADDRESS" /procprop) "END" ":" "VALARM" CRLF audioprop = 2*( Desruisseaux & Stoner Expires April 14, 2006 [Page 38] Internet-Draft iCalendar October 2005 ; 'action' and 'trigger' are both REQUIRED, ; but MUST NOT occur more than once action"DATE" /trigger"DATE-TIME" /; 'duration' and 'repeat' are both optional, ; and MUST NOT occur more than once each, ; but if one occurs, so MUST the other duration"DURATION" /repeat"FLOAT" /; the following is optional, ; but MUST NOT occur more than once attach"INTEGER" /; the following is optional, ; and MAY occur more than once x-prop ) dispprop = 3*( ; the following are all REQUIRED, ; but MUST NOT occur more than once action / description / trigger"PERIOD" /; 'duration' and 'repeat' are both optional, ; and MUST NOT occur more than once each, ; but if one occurs, so MUST the other duration"RECUR" /repeat"TEXT" /; the following is optional, ; and MAY occur more than once *x-prop ) Desruisseaux & Stoner Expires April 14, 2006 [Page 39] Internet-Draft iCalendar October 2005 emailprop = 5*( ; the following are all REQUIRED, ; but MUST NOT occur more than once action"TIME" /description"URI" /trigger"UTC-OFFSET" /summary ; the following is REQUIRED,x-name ;and MAY occur more than once attendeeSome experimental iCalendar data type. / iana-token) ;'duration' and 'repeat' are both optional, ; and MUST NOT occur more than once each, ; but if one occurs, so MUST theSome otherduration / repeat / ; the following are optional, ; and MAY occur more than once attach / x-prop ) procprop = 3*( ;IANA registered iCalendar data type. Description: The parameter specifies thefollowing are all REQUIRED, ; but MUST NOT occur more than once action / attach / trigger / ; 'duration' and 'repeat' are both optional, ;data type andMUST NOT occur more than once each, ; but if one occurs, so MUSTformat of theother duration / repeat / ; 'description' is optional, ; andproperty value. The property values MUSTNOT occur more than once description / ; the following is optional, ;be of a single value type. For example, a "RDATE" property cannot have a combination of DATE- TIME andMAY occur more than onceTIME value types. Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page40]28] Internet-Draft iCalendarOctober 2005 x-prop ) Figure 29 Description: A "VALARM" calendar componentJune 2006 If the property's value isa grouping of component properties thatthe default value type, then this parameter need not be specified. However, if the property's default value type isa reminder or alarm for an event or a to-do. For example, it mayoverridden by some other allowable value type, then this parameter MUST beused to define a reminder for a pending event or an overdue to-do.specified. 3.3. Property Value Data Types The"VALARM" calendar component MUST include the "ACTION" and "TRIGGER" properties.properties in an iCalendar object are strongly typed. The"ACTION"definition of each propertyfurther constrainsrestricts the"VALARM" calendar componentvalue to be one of the value data types, or simply value types, defined in this section. The value type for a property will either be specified implicitly as thefollowing ways: Whendefault value type or will be explicitly specified with theaction is "AUDIO","VALUE" parameter. If thealarm can also include one and only one "ATTACH" property, which MUST point tovalue type of asound resource, which is rendered when the alarm is triggered. When the actionproperty is"DISPLAY",one of thealarmalternate valid types, then it MUSTalso include a "DESCRIPTION" property, which contains the text tobedisplayed whenexplicitly specified with thealarm"VALUE" parameter. 3.3.1. Binary Value Name: BINARY Purpose: This value type istriggered. When the action is "EMAIL", the alarm MUST include a "DESCRIPTION" property, which contains the text to beusedas the message body, a "SUMMARY" property, which contains the texttobe used as the message subject, and one or more "ATTENDEE" properties, whichidentify properties that containthe email addressa character encoding ofattendees to receiveinline binary data. For example, an inline attachment of an object code might be included in an iCalendar object. Format Definition: The value type is defined by themessage. It canfollowing notation: binary = *(4b-char) [b-end] ; A "BASE64" encoded character string, as defined by [RFC2045]. b-end = (2b-char "==") / (3b-char "=") b-char = ALPHA / DIGIT / "+" / "/" Description: Property values with this value type MUST also includeone or more "ATTACH" properties, which are intended tothe inline encoding parameter sequence of ";ENCODING=BASE64". That is, all inline binary data MUST first besent as message attachments. Whencharacter encoded using thealarm"BASE64" encoding method defined in [RFC2045]. No additional content value encoding (i.e., BACKSLASH character encoding) istriggered, the email messagedefined for this value type. Example: The following issent. When the actionan abridged example of a "BASE64" encoded binary value data. ATTACH;VALUE=BINARY;ENCODING=BASE64:MIICajCCAdOgAwIBAgICBEUwDQY JKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlI ENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZv Desruisseaux Expires December 24, 2006 [Page 29] Internet-Draft iCalendar June 2006 <...remainder of "BASE64" encoded binary data...> 3.3.2. Boolean Value Name: BOOLEAN Purpose: This value type is"PROCEDURE", the alarm MUST include one and only one "ATTACH" property, which MUST pointused to identify properties that contain either aprocedure resource, which"TRUE" or "FALSE" Boolean value. Format Definition: The value type isinvoked whendefined by thealarmfollowing notation: boolean = "TRUE" / "FALSE" Description: These values are case insensitive text. No additional content value encoding (i.e., BACKSLASH character encoding) istriggered.defined for this value type. Example: The"VALARM" calendar component MUST only appear within eitherfollowing is an example of a"VEVENT" or "VTODO" calendar component. "VALARM" calendar components cannot be nested. Multiple mutually independent "VALARM" calendar components can be specified forhypothetical property that has a BOOLEAN value type: GIBBERISH:TRUE 3.3.3. Calendar User Address Value Name: CAL-ADDRESS Purpose: This value type is used to identify properties that contain asingle "VEVENT" or "VTODO"calendarcomponent.user address. Format Definition: The"TRIGGER" property specifies whenvalue type is defined by thealarm will be triggered.following notation: cal-address = uri Description: The"TRIGGER" property specifiesvalue is aduration prior to the start of an eventURI as defined by [RFC1738] or any other IANA registered form for ato-do. The "TRIGGER" edge may be explicitly set to be relativeURI. When used to address an Internet email transport address for a calendar user, the"START" or "END" of the event or to-do with the "RELATED" parameter of the "TRIGGER" property. The "TRIGGER" propertyvaluetype can alternativelyMUST beset to an absolute calendara MAILTO URI, as defined by [RFC1738]. No additional content value encoding (i.e., BACKSLASH character encoding) is defined for this value type. Example: ATTENDEE:MAILTO:jane_doe@host.com Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page41]30] Internet-Draft iCalendarOctober 2005 date and time of day value. In an alarm setJune 2006 3.3.4. Date Value Name: DATE Purpose: This value type is used totrigger on the "START" of an event or to-do, the "DTSTART" property MUST be present in the associated event or to-do. In an alarm inidentify values that contain a"VEVENT"calendarcomponent set to triggerdate. Format Definition: The value type is defined by the following notation: date = date-value date-value = date-fullyear date-month date-mday date-fullyear = 4DIGIT date-month = 2DIGIT ;01-12 date-mday = 2DIGIT ;01-28, 01-29, 01-30, 01-31 ;based on month/year Description: If the"END"property permits, multiple "date" values are specified as a COMMA character (US-ASCII decimal 44) separated list of values. The format for theevent, either the "DTEND" property MUST be present, orvalue type is expressed as the"DTSTART" and "DURATION" properties MUST both be present. In an alarm in[ISO.8601.1988] complete representation, basic format for a"VTODO"calendarcomponent set to trigger on the "END"date. The textual format specifies a four-digit year, two-digit month, and two-digit day of theto-do, either the "DUE" property MUST be present, ormonth. There are no separator characters between the"DTSTART"year, month and"DURATION" properties MUST both be present. The alarm can beday component text. No additional content value encoding (i.e., BACKSLASH character encoding) is definedsuchfor this value type. Example: The following represents July 14, 1997: 19970714 3.3.5. Date-Time Value Name: DATE-TIME Purpose: This value type is used to identify values thatit triggers repeatedly. A definition of an alarm withspecify arepeating trigger MUST include both the "DURATION"precise calendar date and"REPEAT" properties.time of day. Format Definition: The"DURATION" property specifiesvalue type is defined by thedelay period, after whichfollowing notation: date-time = date "T" time ;As specified in thealarm will repeat. The "REPEAT" property specifiesdate and time ;value definitions Desruisseaux Expires December 24, 2006 [Page 31] Internet-Draft iCalendar June 2006 Description: If thenumberproperty permits, multiple "date-time" values are specified as a COMMA character (US-ASCII decimal 44) separated list of values. No additionalrepetitions that the alarm will triggered. This repitition countcontent value encoding (i.e., BACKSLASH character encoding) isin addition to the initial triggering of the alarm. Both of these properties MUST be present in orderdefined for this value type. The "DATE-TIME" data type is used tospecifyidentify values that contain arepeating alarm. If oneprecise calendar date and time ofthese two propertiesday. The format isabsent, then the alarm will not repeat beyondbased on theinitial trigger.[ISO.8601.1988] complete representation, basic format for a calendar date and time of day. The"ACTION" propertytext format isused withina concatenation of the"VALARM" calendar component to specify"date", followed by the LATIN CAPITAL LETTER T character (US-ASCII decimal 84) time designator, followed by the "time" format. The "DATE-TIME" data type expresses time values in three forms: The form ofaction invoked whendate and time with UTC offset MUST NOT be used. For example, thealarmfollowing istriggered. The "VALARM" properties provide enough informationnot valid for aspecific action to be invoked. Itdate-time value: DTSTART:19980119T230000-0800 ;Invalid time format FORM #1: DATE WITH LOCAL TIME The date with local time form istypically the responsibility ofsimply a"Calendar User Agent" (CUA) to deliver the alarm in the specified fashion. An "ACTION" propertydate-time valueof AUDIO specifies an alarmthatcauses a sound to be played to alertdoes not contain theuser; DISPLAY specifies an alarm that causesUTC designator nor does it reference atext messagetime zone. For example, the following represents Janurary 18, 1998, at 11 PM: DTSTART:19980118T230000 Date-time values of this type are said to bedisplayed"floating" and are not bound to any time zone in particular. They are used to represent theuser; EMAIL specifiessame hour, minute, and second value regardless of which time zone is currently being observed. For example, analarmevent can be defined that indicates thatcausesanelectronic email message toindividual will bedeliveredbusy from 11:00 AM toone or more email addresses; and PROCEDURE specifies an alarm that causes1:00 PM every day, no matter which time zone the person is in. In these cases, aprocedure tolocal time can beexecuted.specified. The"ACTION" property MUST specify one and only onerecipient ofthese values. InanAUDIO alarm, if the optional "ATTACH"iCalendar object with a propertyis included, it MUST specify an audio sound resource. The intention is thatvalue consisting of a local time, without any relative time zone information, SHOULD interpret thesound will be playedvalue asthe alarm effect. If an "ATTACH" property is specified that does not referbeing fixed toa sound resource, or ifwhatever time zone thespecified sound resource cannot be rendered (because its formatATTENDEE isunsupported, or because it cannot be retrieved), then the CUA or other entity responsible for playingin at any given moment. This means that two ATTENDEEs, in different time zones, receiving thesound may choose a fallback action, suchsame event definition asplaying a built-in default sound, or playing no sound at all. InaDISPLAY alarm, the intended alarm effect is for the text value offloating time, may be participating in the"DESCRIPTION" property toevent at different actual times. Floating time SHOULD only bedisplayed toused where that is theuser.reasonable behavior. Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page42]32] Internet-Draft iCalendarOctober 2005June 2006 Inan EMAIL alarm, the intended alarm effectmost cases, a fixed time isfor an email message to be composed and delivered to all the addresses specified by the "ATTENDEE" propertiesdesired. To properly communicate a fixed time inthe "VALARM" calendar component. The "DESCRIPTION"a propertyof the "VALARM" calendar componentvalue, either UTC time or local time with time zone reference MUST beused as the body textspecified. The use ofthe message, and the "SUMMARY" property MUST be used as the subject text. Any "ATTACH" propertieslocal time inthe "VALARM" calendar component SHOULD be sent as attachments to the message. InaPROCEDURE alarm,DATE-TIME value without the"ATTACH"TZID propertyin the "VALARM" calendar component MUST specify a procedure or program thatparameter isintendedto beinvokedinterpreted as floating time, regardless of thealarm effect. Ifexistence of "VTIMEZONE" calendar components in theprocedureiCalendar object. FORM #2: DATE WITH UTC TIME The date with UTC time, orprogramabsolute time, isinidentified by aformat that cannot be rendered, then no procedure alarm will be invoked. If the "DESCRIPTION" property is present, its value specifiesLATIN CAPITAL LETTER Z suffix character (US-ASCII decimal 90), theargument stringUTC designator, appended to the time value. For example, the following represents January 19, 1998, at 0700 UTC: DTSTART:19980119T070000Z The TZID property parameter MUST NOT bepassedapplied tothe procedure or program. "Calendar User Agents" that receive an iCalendar objectDATE-TIME properties whose time values are specified in UTC. FORM #3: DATE WITH LOCAL TIME AND TIME ZONE REFERENCE The date and local time withthis category of alarm, can disable or allow the "Calendar User"reference todisable, or otherwise ignore this type of alarm. While a very useful alarm capability, the PROCEDURE type of alarm SHOULD be treatedtime zone information is identified by the"Calendar User Agent" as a potential security risk. Example 1: A "VALARM" calendar component that specifies an audio alarm that will sound at a precise time and repeat 4 more times at 15 minute intervals. BEGIN:VALARM TRIGGER;VALUE=DATE-TIME:19970317T133000Z REPEAT:4 DURATION:PT15M ACTION:AUDIO ATTACH;FMTTYPE=audio/basic:ftp://host.com/pub/sounds/bell-01.aud END:VALARM Figure 30 Example 2: A "VALARM" calendar component that specifies a display alarm that will trigger 30 minutes beforeuse thescheduled start ofTZID property parameter to reference theevent orappropriate time zone definition. TZID is discussed in detail in thedue date/time ofsection on Time Zone. For example, theto-do it is associated with and will repeatfollowing represents 2more times at 15 minute intervals: BEGIN:VALARM TRIGGER:-PT30M REPEAT:2 DURATION:PT15M ACTION:DISPLAY DESCRIPTION:Breakfast meeting with executive\n team at 8:30AMEST. END:VALARM Desruisseaux & Stoner Expires Aprilin New York on Janurary 19, 1998: DTSTART;TZID=US-Eastern:19980119T020000 Example: The following represents July 14,2006 [Page 43] Internet-Draft iCalendar October 2005 Figure 31 Example 3: A "VALARM" calendar component that specifies an email alarm that will trigger 2 days before the scheduled due date/time1997, at 1:30 PM in New York City in each ofa to-do it is associated with. It does not repeat. The email has a subject, body and attachment link. BEGIN:VALARM TRIGGER:-P2D ACTION:EMAIL ATTENDEE:MAILTO:john_doe@host.com SUMMARY:*** REMINDER: SEND AGENDA FOR WEEKLY STAFF MEETING *** DESCRIPTION:A draft agenda needs to be sent out totheattendees tothree time formats, using theweekly managers meeting (MGR-LIST). Attached is a pointer"DTSTART" property. DTSTART:19970714T133000 ;Local time DTSTART:19970714T173000Z ;UTC time DTSTART;TZID=US-Eastern:19970714T133000 ;Local time and time ; zone reference A time value MUST ONLY specify 60 seconds when specifying thedocument template forperiodic "leap second" in theagenda file. ATTACH;FMTTYPE=application/msword:http://host.com/templates/agen da.doc END:VALARM Figure 32 Example 4: A "VALARM" calendar component that specifies a procedural alarm that will trigger at a precise date/time and will repeat 23 more times at one hour intervals. The alarm will invoke a procedure file. BEGIN:VALARM TRIGGER;VALUE=DATE-TIME:19980101T050000Z REPEAT:23 DURATION:PT1H ACTION:PROCEDURE ATTACH;FMTTYPE=application/octet-stream:ftp://host.com/novo- procs/felizano.exe END:VALARM Figure 33time value. For example: COMPLETED:19970630T235960Z Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page44]33] Internet-Draft iCalendarOctober 2005 8. Properties A propertyJune 2006 3.3.6. Duration Value Name: DURATION Purpose: This value type isthe definition of an individual attribute describing a calendar orused to identify properties that contain acalendar component. A property takes the formduration of time. Format Definition: The value type is defined by the"contentline" notation defined in section 4.1.1. Thefollowingis an example of a property: DTSTART:19960415T133000Z This memo imposes no ordering of properties within an iCalendar object. Property names, parameter names and enumerated parameter values are case insensitive. For example, the property name "DUE" is the same as "due" and "Due", DTSTART;TZID=US-Eastern:19980714T120000 is the same as DtStart;TzID=US-Eastern:19980714T120000. 8.1. Calendar Properties The Calendar Properties are attributes that apply to the iCalendar object, as a whole. These properties do not appear within a calendar component. They SHOULD be specified afternotation: dur-value = (["+"] / "-") "P" (dur-date / dur-time / dur-week) dur-date = dur-day [dur-time] dur-time = "T" (dur-hour / dur-minute / dur-second) dur-week = 1*DIGIT "W" dur-hour = 1*DIGIT "H" [dur-minute] dur-minute = 1*DIGIT "M" [dur-second] dur-second = 1*DIGIT "S" dur-day = 1*DIGIT "D" Description: If the"BEGIN:VCALENDAR" property and prior to any calendar component. 8.1.1. Calendar Scale Property Name: CALSCALE Purpose: Thispropertydefinespermits, multiple "duration" values are specified by a COMMA character (US-ASCII decimal 44) separated list of values. The format is expressed as thecalendar scale used[ISO.8601.1988] basic format for thecalendar information specified in the iCalendar object. Value Type: TEXT do Property Parameters: Non-standard property parameters can be specified on this property. Conformance: Propertyduration of time. The format canbe specifiedrepresent durations inan iCalendar object. The defaultterms of weeks, days, hours, minutes, and seconds. No additional content valueis "GREGORIAN". Description:encoding (i.e., BACKSLASH character encoding) are defined for this value type. Example: A duration of 15 days, 5 hours and 20 seconds would be: P15DT5H0M20S A duration of 7 weeks would be: P7W 3.3.7. Float Value Name: FLOAT Purpose: Thismemovalue type isbased on the Gregorian calendar scale.used to identify properties that contain a real number value. Format Definition: TheGregorian calendar scale is assumed if this property is not specified in the iCalendar object. Itvalue type isexpected that other calendar scales will bedefinedin other specifications orbyfuture versions of this memo.the following notation: float = (["+"] / "-") 1*DIGIT ["." 1*DIGIT] Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page45]34] Internet-Draft iCalendarOctober 2005 FormalJune 2006 Description: If the property permits, multiple "float" values are specified by a COMMA character (US-ASCII decimal 44) separated list of values. No additional content value encoding (i.e., BACKSLASH character encoding) is defined for this value type. Example: 1000000.0000001 1.333 -3.14 3.3.8. Integer Value Name: INTEGER Purpose: This value type is used to identify properties that contain a signed integer value. Format Definition: Thepropertyvalue type is defined by the following notation:calscale = "CALSCALE" calparam ":" calvalue CRLF calparam = *(";" xparam) calvalueinteger ="GREGORIAN"(["+"] /iana-token Figure 35 Example: The following is an example of this property: CALSCALE:GREGORIAN Figure 36 8.1.2. Method Property Name: METHOD Purpose: This property defines the iCalendar object method associated with"-") 1*DIGIT Description: If thecalendar object. Value Type: TEXT Property Parameters: Non-standard property parameters can be specified on this property. Conformance: Thepropertycan bepermits, multiple "integer" values are specifiedin an iCalendar object. Description: When used inby aMIME message entity, the valueCOMMA character (US-ASCII decimal 44) separated list ofthis property MUST be the same as the Content-Type "method" parameter value. This property can only appear once within the iCalendar object.values. The valid range for "integer" is -2147483648 to 2147483647. Ifeither the "METHOD" property ortheContent-Type "method" parametersign is not specified, then theother MUST alsovalue is assumed to bespecified.positive. Nomethods areadditional content value encoding (i.e., BACKSLASH character encoding) is definedbyfor thisspecification. This is the subject of other specifications, such as the iCalendar Transport-independent Interoperability Protocol (iTIP) defined by [ITIP]. If this property is not present in the iCalendar object, then a scheduling transaction MUST NOT be assumed. In such cases, the iCalendar object is merely being used to transport a snapshot of some calendar information; without the intentionvalue type. Example: 1234567890 -1234567890 +1234567890 432109876 3.3.9. Period ofconveying a scheduling semantic.Time Value Name: PERIOD Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page46]35] Internet-Draft iCalendarOctober 2005 FormalJune 2006 Purpose: This value type is used to identify values that contain a precise period of time. Format Definition: Thepropertyvalue type is defined by the following notation:method = "METHOD" metparam ":" metvalue CRLF metparamperiod =*(";" xparam) metvalueperiod-explicit / period-start period-explicit =iana-token Example:date-time "/" date-time ; [ISO.8601.1988] complete representation basic format for a ; period of time consisting of a start and end. Thefollowing isstart MUST ; be before the end. period-start = date-time "/" dur-value ; [ISO.8601.1988] complete representation basic format for ahypothetical example; period ofthis property to convey thattime consisting of a start and positive duration ; of time. Description: If theiCalendar object isproperty permits, multiple "period" values are specified by arequest forCOMMA character (US-ASCII decimal 44) separated list of values. There are two forms of ameeting: METHOD:REQUEST Figure 38 8.1.3. Product Identifier Property Name: PRODID Purpose:period of time. First, a period of time is identified by its start and its end. Thisproperty specifiesformat is expressed as theidentifier[ISO.8601.1988] complete representation, basic format for "DATE-TIME" start of theproduct that createdperiod, followed by a SOLIDUS character (US-ASCII decimal 47), followed by theiCalendar object. Value Type: TEXT Property Parameters: Non-standard property parameters can be specified on this property. Conformance:"DATE-TIME" of the end of the period. Thepropertystart of the period MUST bespecified once in an iCalendar object. Description: The vendorbefore the end of theimplementation SHOULD assure that this isperiod. Second, aglobally unique identifier; using some technique such as an FPI value, as defined in [ISO 9070]. This property SHOULD notperiod of time can also beused to alterdefined by a start and a positive duration of time. The format is expressed as theinterpretation[ISO.8601.1988] complete representation, basic format for the "DATE-TIME" start ofan iCalendar object beyondthesemantics specified in this memo. For example, it is not to be used to furtherperiod, followed by a SOLIDUS character (US-ASCII decimal 47), followed by theunderstanding[ISO.8601.1988] basic format for "DURATION" ofnon- standard properties.the period. Example: The period starting at 18:00:00 UTC, on January 1, 1997 and ending at 07:00:00 UTC on January 2, 1997 would be: 19970101T180000Z/19970102T070000Z The period start at 18:00:00 on January 1, 1997 and lasting 5 hours and 30 minutes would be: 19970101T180000Z/PT5H30M No additional content value encoding (i.e., BACKSLASH character encoding) is defined for this value type. Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page47]36] Internet-Draft iCalendarOctober 2005 FormalJune 2006 3.3.10. Recurrence Rule Value Name: RECUR Purpose: This value type is used to identify properties that contain a recurrence rule specification. Format Definition: Thepropertyvalue type is defined by the following notation:prodid = "PRODID" pidparam ":" pidvalue CRLF pidparam = *(";" xparam) pidvaluerecur =text ;Any text that describes the product and version ;and that is generally assured of being unique. Figure 39 Example: The following is an example of this property. It does not imply that English is the default language. PRODID:-//ABC Corporation//NONSGML My Product//EN Figure 40 8.1.4. Version Property Name: VERSION Purpose: This property specifies the identifier corresponding to the highest version number"FREQ"=freq *( ; either UNTIL orthe minimumCOUNT may appear in a 'recur', ; but UNTIL andmaximum range of the iCalendar specification that is requiredCOUNT MUST NOT occur inorder to interprettheiCalendar object. Value Type: TEXT Property Parameters: Non-standard property parameters can be specified on this property. Conformance: This property MUST be specified by an iCalendar object,same 'recur' ( ";" "UNTIL" "=" enddate ) / ( ";" "COUNT" "=" 1*DIGIT ) / ; the rest of these keywords are optional, ; but MUSTonly be specified once. Description: ANOT occur more than once ( ";" "INTERVAL" "=" 1*DIGIT ) / ( ";" "BYSECOND" "=" byseclist ) / ( ";" "BYMINUTE" "=" byminlist ) / ( ";" "BYHOUR" "=" byhrlist ) / ( ";" "BYDAY" "=" bywdaylist ) / ( ";" "BYMONTHDAY" "=" bymodaylist ) / ( ";" "BYYEARDAY" "=" byyrdaylist ) / ( ";" "BYWEEKNO" "=" bywknolist ) / ( ";" "BYMONTH" "=" bymolist ) / ( ";" "BYSETPOS" "=" bysplist ) / ( ";" "WKST" "=" weekday ) / ( ";" x-name "=" text ) ) freq = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY" / "WEEKLY" / "MONTHLY" / "YEARLY" enddate = date enddate =/ date-time ;An UTC valueof "2.0" correspondsbyseclist = seconds / ( seconds *("," seconds) ) seconds = 1DIGIT / 2DIGIT ;0 tothis memo.59 byminlist = minutes / ( minutes *("," minutes) ) minutes = 1DIGIT / 2DIGIT ;0 to 59 Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page48]37] Internet-Draft iCalendarOctober 2005 Formal Definition: The property is defined by the following notation: versionJune 2006 byhrlist ="VERSION" verparam ":" vervalue CRLF verparamhour / ( hour *("," hour) ) hour =*(";" xparam) vervalue1DIGIT / 2DIGIT ;0 to 23 bywdaylist ="2.0" ;This memoweekdaynum /maxver( weekdaynum *("," weekdaynum) ) weekdaynum = [([plus] ordwk /(minver ";" maxver) minverminus ordwk)] weekday plus =[A IANA registered iCalendar version identifier] ;Minimum iCalendar version needed"+" minus = "-" ordwk = 1DIGIT / 2DIGIT ;1 toparse the iCalendar object maxver53 weekday =[A IANA registered iCalendar version identifier] ;Maximum iCalendar version needed"SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA" ;Corresponding toparse the iCalendar object Example: The following is an exampleSUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, ;FRIDAY, SATURDAY and SUNDAY days ofthis property: VERSION:2.0 8.2. Descriptive Component Properties The following properties can appear within calendar components, as specified by each component property definition. These specify descriptive information about calendar components. 8.2.1. Attachment Property Name: ATTACH Purpose: The property providesthecapability to associate a document object with a calendar component. Value Type: The default value type for this property is URI. The value type can also be set to BINARYweek. bymodaylist = monthdaynum / ( monthdaynum *("," monthdaynum) ) monthdaynum = ([plus] ordmoday) / (minus ordmoday) ordmoday = 1DIGIT / 2DIGIT ;1 toindicate inline binary encoded content information. Property Parameters: Non-standard, inline encoding, format type and value data type property parameters can be specified on this property. Conformance: The property can be specified in a "VEVENT", "VTODO", "VJOURNAL" or "VALARM" calendar components. Description: The property can be specified within "VEVENT", "VTODO", "VJOURNAL", or "VALARM" calendar components. This property can be specified multiple times within an iCalendar object. Desruisseaux & Stoner Expires April 14, 2006 [Page 49] Internet-Draft iCalendar October 2005 Format Definition: The property is defined by the following notation: attach31 byyrdaylist ="ATTACH" attparam ":" uri CRLF attach =/ "ATTACH" attparam ";" "ENCODING" "=" "BASE64" ";" "VALUE" "=" "BINARY" ":" binary attparamyeardaynum / ( yeardaynum *("," yeardaynum) ) yeardaynum =*( ; the following is optional, ; but MUST NOT occur more than once (";" fmttypeparam)([plus] ordyrday) /; the following is optional, ; and MAY occur more than once (";" xparam)(minus ordyrday) ordyrday = 1DIGIT / 2DIGIT / 3DIGIT ;1 to 366 bywknolist = weeknum / ( weeknum *("," weeknum) )Example: The following are examples of this property: ATTACH:CID:jsmith.part3.960817T083000.xyzMail@host1.com ATTACH;FMTTYPE=application/postscript:ftp://xyzCorp.com/pub/ reports/r-960812.ps 8.2.2. Categories Property Name: CATEGORIES Purpose: This property definesweeknum = ([plus] ordwk) / (minus ordwk) bymolist = monthnum / ( monthnum *("," monthnum) ) monthnum = 1DIGIT / 2DIGIT ;1 to 12 bysplist = setposday / ( setposday *("," setposday) ) setposday = yeardaynum Description: If thecategories for a calendar component. Value Type: TEXT Property Parameters: Non-standard and language property parameters can be specified on this property. Conformance: Thepropertycan bepermits, multiple "recur" values are specifiedwithin "VEVENT", "VTODO" or "VJOURNAL" calendar components. Description: This property is used to specify categories or subtypesby a COMMA character (US-ASCII decimal 44) separated list ofthe calendar component.values. Thecategories are useful in searching forvalue type is acalendar componentstructured value consisting of aparticular type and category. Within the "VEVENT", "VTODO"list of one or"VJOURNAL" calendar components,morethan one category can be specified asrecurrence grammar parts. Each rule part is defined by alist of categoriesNAME=VALUE pair. The rule parts are separated from each other by the SEMICOLON character (US-ASCII decimal 59). Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page50]38] Internet-Draft iCalendarOctober 2005 the COMMA character (US-ASCII decimal 44). categories = "CATEGORIES" catparam ":" text *("," text) CRLF catparam = *( ; the following is optional, ; but MUST NOT occur more than once (";" languageparam ) / ; the following is optional, ; and MAY occur more than once (";" xparam) )June 2006 Thefollowingrule parts areexamples of categories. CATEGORIES:APPOINTMENT,EDUCATION CATEGORIES:MEETING 8.2.3. Classification Property Name: CLASS Purpose: This property defines the access classification for a calendar component. Value Type: TEXT Property Parameters: Non-standard property parameters cannot ordered in any particular sequence. Individual rule parts MUST only be specifiedon this property. Conformance:once. Theproperty canFREQ rule part identifies the type of recurrence rule. This rule part MUST be specifiedoncein the recurrence rule. Valid values include SECONDLY, to specify repeating events based on an interval of a"VEVENT", "VTODO"second or"VJOURNAL" calendar components. Description: An access classification is only one componentmore; MINUTELY, to specify repeating events based on an interval ofthe general security system withinacalendar application. It provides a method of capturing the scope of the access the calendar owner intends for information withinminute or more; HOURLY, to specify repeating events based on anindividual calendar entry. The access classificationinterval of anindividual iCalendar component is useful when measured along with the other security componentshour or more; DAILY, to specify repeating events based on an interval of acalendar system (e.g., calendar user authentication, authorization, access rights, access role, etc.). Hence, the semanticsday or more; WEEKLY, to specify repeating events based on an interval ofthe individual Desruisseaux & Stoner Expires April 14, 2006 [Page 51] Internet-Draft iCalendar October 2005 access classifications cannot be completely defined by this memo alone. Additionally, duea week or more; MONTHLY, tothe "blind" naturespecify repeating events based on an interval ofmost exchange processes using this memo, these access classifications cannot serve asa month or more; and YEARLY, to specify repeating events based on anenforcement statementinterval of a year or more. The INTERVAL rule part contains a positive integer representing how often the recurrence rule repeats. The default value is "1", meaning every second for asystem receivingSECONDLY rule, or every minute for a MINUTELY rule, every hour for aniCalendar object. Rather, they provideHOURLY rule, every day for amethodDAILY rule, every week forcapturing the intention of the calendar ownera WEEKLY rule, every month for a MONTHLY rule and every year for a YEARLY rule. The UNTIL rule part defines a date-time value which bounds theaccess torecurrence rule in an inclusive manner. If thecalendar component. Formal Definition: The property is definedvalue specified bythe following notation: class = "CLASS" classparam ":" classvalue CRLF classparam = *(";" xparam) classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token / x-name ;Default is PUBLIC Example: The followingUNTIL isan example of this property: CLASS:PUBLIC 8.2.4. Comment Property Name: COMMENT Purpose: This property specifies non-processing information intended to provide a comment tosynchronized with thecalendar user. Value Type: TEXT Property Parameters: Non-standard, alternate text representation and language property parameters can bespecifiedonrecurrence, thisproperty. Conformance: This property can be specified in "VEVENT", "VTODO", "VJOURNAL", "VTIMEZONE"date or"VFREEBUSY" calendar components. Description: The property can be specified multiple times. Desruisseaux & Stoner Expires April 14, 2006 [Page 52] Internet-Draft iCalendar October 2005 Formal Definition: The property is defined bydate-time becomes thefollowing notation: comment = "COMMENT" commparam ":" text CRLF commparam = *( ;last instance of thefollowing are optional, ; butrecurrence. If specified as a date-time value, then it MUSTNOT occur more than once (";" altrepparam) / (";" languageparam) / ;be specified in an UTC time format. If not present, and thefollowingCOUNT rule part isoptional, ; and MAY occur more than once (";" xparam) ) Example: The followingalso not present, the RRULE isan example of this property: COMMENT:The meeting really needsconsidered toinclude both ourselves andrepeat forever. The COUNT rule part defines thecustomer. We can't hold this meeting without them. As a matternumber offact\,occurrences at which to range-bound thevenue forrecurrence. The "DTSTART" property value, if specified, counts as themeeting ought to be at their site. - - John 8.2.5. Description Property Name: DESCRIPTION Purpose: This property providesfirst occurrence. The BYSECOND rule part specifies amore complete descriptionCOMMA character (US-ASCII decimal 44) separated list ofthe calendar component, than that provided by the "SUMMARY" property. Value Type: TEXT Property Parameters: Non-standard, alternate text representation and language property parameters can be specified on this property. Conformance: The property can be specified in the "VEVENT", "VTODO", "VJOURNAL" or "VALARM" calendar components. The property can be specified multiple times onlyseconds within a"VJOURNAL" calendar component. Description: This property is used in the "VEVENT" and "VTODO"minute. Valid values are 0 tocapture lengthy textual decriptions associated with the activity. This property is used in the "VJOURNAL" calendar component59. The BYMINUTE rule part specifies a COMMA character (US-ASCII decimal 44) separated list of minutes within an hour. Valid values are 0 tocapture one more textual journal entries. This property is used in59. The BYHOUR rule part specifies a COMMA character (US- ASCII decimal 44) separated list of hours of the"VALARM" calendar componentday. Valid values are 0 tocapture23. The BYDAY rule part specifies a COMMA character (US-ASCII decimal 44) separated list of days of the week; MO indicates Monday; TU indicates Tuesday; WE indicates Wednesday; TH indicates Thursday; FR indicates Friday; SA indicates Saturday; SU indicates Sunday. Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page53]39] Internet-Draft iCalendarOctober 2005 the display text forJune 2006 Each BYDAY value can also be preceded by aDISPLAY category of alarm, to capturepositive (+n) or negative (-n) integer. If present, this indicates thebody text for an EMAIL categorynth occurrence ofalarm and to capturetheargument string forspecific day within the MONTHLY or YEARLY RRULE. For example, within aPROCEDURE category of alarm. Formal Definition: The property is defined byMONTHLY rule, +1MO (or simply 1MO) represents thefollowing notation: description = "DESCRIPTION" descparam ":" text CRLF descparam = *( ;first Monday within thefollowing are optional, ; but MUST NOT occur more than once (";" altrepparam) / (";" languageparam) / ;month, whereas -1MO represents thefollowing is optional, ; and MAY occur more than once (";" xparam) ) Example: The following is an examplelast Monday of theproperty with formatted line breaks in the property value: DESCRIPTION:Meeting to provide technical review for "Phoenix" design.\n Happy Face Conference Room. Phoenix design team MUST attend this meeting.\n RSVP to team leader. The following ismonth. If anexampleinteger modifier is not present, it means all days of this type within theproperty with foldingspecified frequency. For example, within a MONTHLY rule, MO represents all Mondays within the month. The BYMONTHDAY rule part specifies a COMMA character (ASCII decimal 44) separated list oflong lines: DESCRIPTION:Last draftdays of thenew novel ismonth. Valid values are 1 tobe completed for31 or -31 to -1. For example, -10 represents theeditor's proof today. 8.2.6. Geographic Position Property Name: GEO Purpose: This property specifies information relatedtenth to theglobal position forlast day of theactivity specified by a calendar component. Value Type: FLOAT.month. Thevalue MUST be two SEMICOLONBYYEARDAY rule part specifies a COMMA character (US-ASCII decimal 44) separatedFLOAT values. Property Parameters: Non-standard property parameters can be specified on this property. Desruisseaux & Stoner Expires April 14, 2006 [Page 54] Internet-Draft iCalendar October 2005 Conformance: This property can be specified in "VEVENT" or "VTODO" calendar components. Description: The property value specifies latitude and longitude, in that order (i.e., "LAT LON" ordering). The longitude represents the location east or westlist of days of theprime meridian as a positive or negative real number, respectively. The longitude and latitudeyear. Valid valuesMAY be specified upare 1 tosix decimal places, which will allow for accuracy366 or -366 towithin one meter of geographical position. Receiving applications MUST accept values of this precision and MAY truncate values-1. For example, -1 represents the last day ofgreater precision. Values for latitudethe year (December 31st) andlongitude shall be expressed as decimal fractions of degrees. Whole degrees of latitude shall be represented by a two-digit decimal number ranging from 0 through 90. Whole degrees-306 represents the 306th to the last day oflongitude shall be represented by a decimal number ranging from 0 through 180. Whenthe year (March 1st). The BYWEEKNO rule part specifies a COMMA character (US-ASCII decimalfraction of a degree is specified, it shall be44) separatedfrom the whole numberlist ofdegrees by a decimal point. Latitudes northordinals specifying weeks of theequator shall be specified by a plus sign (+),year. Valid values are 1 to 53 orby the absence of-53 to -1. This corresponds to weeks according to week numbering as defined in [ISO.8601.1988]. A week is defined as aminus sign (-), precedingseven day period, starting on thedigits designating degrees. Latitudes southday of theEquator shallweek defined to bedesignated by a minus sign (-) precedingthedigits designating degrees. A point onweek start (see WKST). Week number one of theEquator shall be assigned tocalendar year is theNorthern Hemisphere. Longitudes eastfirst week which contains at least four (4) days in that calendar year. This rule part is only valid for YEARLY rules. For example, 3 represents the third week of theprime meridian shall be specified byyear. Note: Assuming aplus sign (+),Monday week start, week 53 can only occur when Thursday is January 1 orby the absence ofif it is aminus sign (-), preceding the digits designating degrees. Longitudes westleap year and Wednesday is January 1. The BYMONTH rule part specifies a COMMA character (US-ASCII decimal 44) separated list of months of themeridian shall be designated by minus sign (-) preceding the digits designating degrees. A point on the prime meridian shall be assignedyear. Valid values are 1 to 12. The WKST rule part specifies theEastern Hemisphere. A pointday on which the180th meridian shall be assigned to the Western Hemisphere. One exception to this last conventionworkweek starts. Valid values are MO, TU, WE, TH, FR, SA and SU. This ispermitted. For the special condition of describingsignificant when aband of latitude around the earth, the East Bounding Coordinate data element shall be assigned the value +180 (180) degrees. Any spatial address withWEEKLY RRULE has an interval greater than 1, and alatitude of +90 (90) or -90 degrees will specify the position at the North or South Pole, respectively. The component for longitude may have any legal value. With the exception of the special condition described above, this formBYDAY rule part isspecifiedspecified. This is also significant when inDepartment of Commerce, 1986, Representation of geographic point locations for information interchange (Federal Information Processing Standard 70-1): Washington, Department of Commerce, National Institute of Standards and Technology.a YEARLY RRULE when a BYWEEKNO rule part is specified. The default value is MO. Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page55]40] Internet-Draft iCalendarOctober 2005June 2006 Thesimple formula for converting degrees-minutes-seconds into decimal degrees is:BYSETPOS rule part specifies a COMMA character (US-ASCII decimal= degrees + minutes/60 + seconds/3600. Formal Definition: The property is defined44) separated list of values which corresponds to the nth occurrence within the set of events specified by thefollowing notation: geo = "GEO" geoparam ":" geovalue CRLF geoparam = *(";" xparam) geovalue = float ";" float ;Latitude and Longitude components Example: The following is anrule. Valid values are 1 to 366 or -366 to -1. It MUST only be used in conjunction with another BYxxx rule part. For example "the last work day of the month" could be represented as: RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1 Each BYSETPOS value can include a positive (+n) or negative (-n) integer. If present, thisproperty: GEO:37.386013;-122.082932 8.2.7. Location Property Name: LOCATION Purpose: The property definesindicates theintended venue fornth occurrence of theactivity definedspecific occurrence within the set of events specified bya calendar component. Value Type: TEXT Property Parameters: Non-standard, alternate text representationthe rule. If BYxxx rule part values are found which are beyond the available scope (ie, BYMONTHDAY=30 in February), they are simply ignored. Information, not contained in the rule, necessary to determine the various recurrence instance start time andlanguage property parameters can be specified on this property. Conformance:dates are derived from the Start Time (DTSTART) entry attribute. For example, "FREQ=YEARLY;BYMONTH=1" doesn't specify a specific day within the month or a time. Thisproperty caninformation would be the same as what is specified for DTSTART. BYxxx rule parts modify the recurrence in"VEVENT"some manner. BYxxx rule parts for a period of time which is the same or"VTODO" calendar component. Description: Specific venues such as conferencegreater than the frequency generally reduce ormeeting rooms may be explicitly specified using this property. An alternate representation may be specified that is a URI that points to directory information with more structured specificationlimit the number of occurrences of thelocation.recurrence generated. For example, "FREQ=DAILY;BYMONTH=1" reduces thealternate representation may specify either an LDAP URI pointing to an LDAP server entry or a CID URI pointingnumber of recurrence instances from all days (if BYMONTH tag is not present) toa MIME body part containing a vCard [RFC 2426]all days in January. BYxxx rule parts for a period of time less than thelocation. Desruisseaux & Stoner Expires April 14, 2006 [Page 56] Internet-Draft iCalendar October 2005 Format Definition: The property is defined byfrequency generally increase or expand thefollowing notation: location = "LOCATION locparam ":" text CRLF locparam = *( ;number of occurrences of thefollowing are optional, ; but MUST NOT occur more than once (";" altrepparam) / (";" languageparam) / ;recurrence. For example, "FREQ=YEARLY;BYMONTH=1,2" increases thefollowing is optional, ; and MAY occur more than once (";" xparam) ) Example: The following are some examples of this property: LOCATION:Conference Room - F123, Bldg. 002 LOCATION;ALTREP="http://xyzcorp.com/conf-rooms/f123.vcf": Conference Room - F123, Bldg. 002 8.2.8. Percent Complete Property Name: PERCENT-COMPLETE Purpose: This property is used by an assignee or delegateenumber ofa to-do to conveydays within thepercent completion of a to-doyearly recurrence set from 1 (if BYMONTH tag is not present) to 2. If multiple BYxxx rule parts are specified, then after evaluating theOrganizer. Value Type: INTEGER Property Parameters: Non-standard property parameters can be specified on this property. Conformance: This property can bespecifiedin a "VTODO" calendar component. Description: The property value is a positive integer between zeroFREQ andone hundred. A value of "0" indicatesINTERVAL rule parts, theto-do has not yet been started. A value of "100" indicates thatBYxxx rule parts are applied to theto-do has been completed. Integer valuescurrent set of evaluated occurrences inbetween indicatethepercent partially complete. When a to-dofollowing order: BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY, BYHOUR, BYMINUTE, BYSECOND and BYSETPOS; then COUNT and UNTIL are evaluated. Here isassigned to multiple individuals, the property value indicates the percent complete for that portionan example ofthe to-do assignedevaluating multiple BYxxx rule parts. DTSTART;TZID=US-Eastern:19970105T083000 RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9; BYMINUTE=30 Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page57]41] Internet-Draft iCalendarOctober 2005 toJune 2006 First, theassignee or delegatee. For example, if a to-do is assigned"INTERVAL=2" would be applied toboth individuals "A""FREQ=YEARLY" to arrive at "every other year". Then, "BYMONTH=1" would be applied to arrive at "every January, every other year". Then, "BYDAY=SU" would be applied to arrive at "every Sunday in January, every other year". Then, "BYHOUR=8,9" would be applied to arrive at "every Sunday in January at 8 AM and"B". A reply9 AM, every other year". Then, "BYMINUTE=30" would be applied to arrive at "every Sunday in January at 8:30 AM and 9:30 AM, every other year". Then, lacking information from"A" with a percent complete of "70" indicates that "A" has completed 70% ofRRULE, theto-do assignedsecond is derived from DTSTART, tothem. A replyend up in "every Sunday in January at 8:30:00 AM and 9:30:00 AM, every other year". Similarly, if the BYMINUTE, BYHOUR, BYDAY, BYMONTHDAY or BYMONTH rule part were missing, the appropriate minute, hour, day or month would have been retrieved from"B" withthe "DTSTART" property. No additional content value encoding (i.e., BACKSLASH character encoding) is defined for this value type. Example: The following is apercent complete of "50" indicates "B" has completed 50% ofrule which specifies 10 meetings which occur every other day: FREQ=DAILY;COUNT=10;INTERVAL=2 There are other examples specified in theto-do assigned"RRULE" specification. 3.3.11. Text Value Name: TEXT Purpose: This value type is used tothem.identify values that contain human readable text. Format Definition: Thepropertycharacter sets supported by this revision of iCalendar are UTF-8 and US-ASCII thereof. The applicability to other character sets is for future work. The value type is defined by the followingnotation: percentnotation. text ="PERCENT-COMPLETE" pctparam*(TSAFE-CHAR / ":"integer CRLF pctparam/ DQUOTE / ESCAPED-CHAR) ; Folded according to description above ESCAPED-CHAR =*(";" xparam) Example: The following is an example"\\" / "\;" / "\," / "\N" / "\n") ; \\ encodes \, \N or \n encodes newline ; \; encodes ;, \, encodes , TSAFE-CHAR = %x20-21 / %x23-2B / %x2D-39 / %x3C-5B %x5D-7E / NON-US-ASCII ; Any character except CTLs not needed by the current ; character set, DQUOTE, ";", ":", "\", "," Desruisseaux Expires December 24, 2006 [Page 42] Internet-Draft iCalendar June 2006 Note: Certain other character sets may require modification of the above definitions, but thisproperty to show 39% completion: PERCENT-COMPLETE:39 8.2.9. Priority Property Name: PRIORITY Purpose: The property definesis beyond therelative priority for a calendar component. Value Type: INTEGER Property Parameters: Non-standard property parameters can be specified onscope of thisproperty. Conformance: Thedocument. Description: If the propertycan bepermits, multiple "text" values are specifiedinby a"VEVENT" or "VTODO" calendar component. Description: The priority is specified as an integer in the range zero to nine. A value of zero (US-ASCII decimal 48) specifies an undefined priority. A value of oneCOMMA character (US-ASCII decimal49) is the highest priority. A value44) separated list oftwo (US-ASCII decimal 50) isvalues. The language in which thesecond highest priority. Subsequent numbers specify a decreasing ordinal priority. A value of nine (US-ASCII decimal 58)text is represented can be controlled by thelowest priority. A CUA with a three-level priority scheme of "HIGH", "MEDIUM" and "LOW" is mapped into this"LANGUAGE" propertysuch thatparameter. An intentional formatted text line break MUST only be included in a "TEXT" property valueinby representing therangeline break with the character sequence ofoneBACKSLASH (US-ASCII decimal49) to four92), followed by a LATIN SMALL LETTER N (US-ASCII decimal52) specifies "HIGH" priority. A value of five110) or a LATIN CAPITAL LETTER N (US-ASCII decimal53)78), that isthe normal"\n" or"MEDIUM" priority. A value in the range of six (US- ASCII decimal 54)"\N". The "TEXT" property values may also contain special characters that are used tonine (US-ASCII decimal 58) is "LOW" priority. Desruisseaux & Stoner Expires April 14, 2006 [Page 58] Internet-Draft iCalendar October 2005 A CUA withsignify delimiters, such as apriority schemaCOMMA character for lists of"A1", "A2", "A3", "B1", "B2", ..., "C3" is mapped into this property such thatvalues or aproperty valueSEMICOLON character for structured values. In order to support the inclusion ofonethese special characters in "TEXT" property values, they MUST be escaped with a BACKSLASH character. A BACKSLASH character (US-ASCII decimal49) specifies "A1",92) in a "TEXT" property valueof two (US- ASCII decimal 50) specifies "A2",MUST be escaped with another BACKSLASH character. A COMMA character in a "TEXT" property valueof threeMUST be escaped with a BACKSLASH character (US-ASCII decimal51) specifies "A3", and so forth up to92). A SEMICOLON character in a "TEXT" property valueof 9MUST be escaped with a BACKSLASH character (US-ASCII decimal58) specifies "C3". Other integer values are reserved for future use. Within92). However, a"VEVENT" calendar component, this property specifiesCOLON character in apriority for the event. This"TEXT" propertymayvalue SHALL NOT beuseful when more than one event is scheduled for a given time period. Within a "VTODO" calendar component, this property specifiedescaped with apriority for the to-do.BACKSLASH character. Example: A multiple line value of: Project XYZ Final Review Conference Room - 3B Come Prepared. would be represented as: Project XYZ Final Review\nConference Room - 3B\nCome Prepared. 3.3.12. Time Value Name: TIME Desruisseaux Expires December 24, 2006 [Page 43] Internet-Draft iCalendar June 2006 Purpose: Thispropertyvalue type isuseful in prioritizing multiple action items forused to identify values that contain agiventimeperiod.of day. Format Definition: Thepropertydata type isspecifieddefined by the following notation:prioritytime ="PRIORITY" prioparam ":" privalue CRLF ;Default is zero prioparamtime-hour time-minute time-second [time-utc] time-hour =*(";" xparam) privalue2DIGIT ;00-23 time-minute =integer ;Must be in2DIGIT ;00-59 time-second = 2DIGIT ;00-60 ;The "60" value is used to account for "leap" seconds. time-utc = "Z" Description: If therange [0..9] ; All otherproperty permits, multiple "time" values arereservedspecified by a COMMA character (US-ASCII decimal 44) separated list of values. No additional content value encoding (i.e., BACKSLASH character encoding) is defined forfuture usethis value type. Thefollowing"TIME" data type isan example ofused to identify values that contain aproperty with the highest priority: PRIORITY:1time of day. Thefollowingformat isan example of a property withbased on the [ISO.8601.1988] complete representation, basic format for anext highest priority: PRIORITY:2 Example:time of day. Thefollowing is an exampletext format consists of aproperty with no priority. This is equivalent to not specifyingtwo-digit 24-hour of the"PRIORITY" property: PRIORITY:0 8.2.10. Resources Property Name: RESOURCES Purpose: This property definesday (i.e., values 0-23), two- digit minute in theequipment or resources anticipated for an activity specified by a calendar entity.. Desruisseaux & Stoner Expires April 14, 2006 [Page 59] Internet-Draft iCalendar October 2005 Value Type: TEXT Property Parameters: Non-standard, alternate text representationhour (i.e., values 0-59), andlanguage property parameters can be specified on this property. Conformance: This property can be specifiedtwo-digit seconds in"VEVENT" or "VTODO" calendar component. Description:the minute (i.e., values 0-60). Thepropertyseconds valueis an arbitrary text. More than one resource canof 60 MUST only to bespecified as a listused to account for "leap" seconds. Fractions ofresources separated by the COMMA character (US-ASCII decimal 44). Format Definition: The property is defineda second are not supported by this format. In parallel to thefollowing notation: resources = "RESOURCES" resrcparam ":" text *("," text) CRLF resrcparam = *( ;"DATE-TIME" definition above, thefollowing are optional, ; but"TIME" data type expresses time values in three forms: The form of time with UTC offset MUST NOToccur more than once (";" altrepparam) / (";" languageparam) / ;be used. For example, the following isoptional, ; and MAY occur more than once (";" xparam) ) Example: The following is an example of this property: RESOURCES:EASEL,PROJECTOR,VCR RESOURCES;LANGUAGE=fr:1 raton-laveur 8.2.11. Free/Busy Time Type Parameter Name: FBTYPE Purpose: To specify the free or busyNOT VALID for a timetype. Description: The parameter specifies the free or busyvalue: 230000-0800 ;Invalid timetype.format FORM #1 LOCAL TIME Thevalue FREE indicates that thelocal timeintervalform isfree for scheduling. Thesimply a time valueBUSY indicatesthatthe time interval is busy because onedoes not contain the UTC designator nor does it reference a time zone. For example, 11:00 PM: Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page60]44] Internet-Draft iCalendarOctober 2005 or more events have been scheduled for that interval. The value BUSY-UNAVAILABLE indicates thatJune 2006 230000 Time values of this type are said to be "floating" and are not bound to any time zone in particular. They are used to represent the same hour, minute, and second value regardless of which timeintervalzone isbusy andcurrently being observed. For example, an event can be defined that indicates that an individual will be busy from 11:00 AM to 1:00 PM every day, no matter which time zone theintervalperson is in. In these cases, a local time cannotbescheduled.specified. The recipient of an iCalendar object with a property valueBUSY-TENTATIVE indicates thatconsisting of a local time, without any relative time zone information, SHOULD interpret the value as being fixed to whatever timeintervalzone the ATTENDEE isbusy because one or more events have been tentatively scheduled for that interval. If not specified on a propertyin at any given moment. This means thatallows this parameter,two ATTENDEEs may participate in thedefaultsame event at different UTC times; floating time SHOULD only be used where that isBUSY. Format Definition: The property parameterreasonable behavior. In most cases, a fixed time isdefined by the following notation: fbtypeparam = "FBTYPE" "=" ("FREE" / "BUSY" / "BUSY-UNAVAILABLE" / "BUSY-TENTATIVE" / x-name ; Some experimental iCalendar data type. / iana-token) ; Some other IANA registered iCalendar data type. Example:desired. To properly communicate a fixed time in a property value, either UTC time or local time with time zone reference MUST be specified. Thefollowing is an exampleuse ofthis parameter onlocal time in aFREEBUSY property. FREEBUSY;FBTYPE=BUSY:19980415T133000Z/19980415T170000Z 8.2.12. Participation Status Parameter Name: PARTSTAT Purpose: To specify the participation status for the calendar user specified byTIME value without theproperty. Description: ThisTZID property parametercanis to bespecified on properties withinterpreted as aCAL-ADDRESS value type. The parameter identifies the participation status forlocal time value, regardless of the existence of "VTIMEZONE" calendaruser specifiedcomponents in the iCalendar object. FORM #2: UTC TIME UTC time, or absolute time, is identified by a LATIN CAPITAL LETTER Z suffix character (US-ASCII decimal 90), thepropertyUTC designator, appended to the time value. For example, the following represents 07:00 AM UTC: 070000Z The TZID property parameter MUST NOT be applied to TIME properties whose time valuesdiffer depending on whether theyareassociated with a group scheduled "VEVENT", "VTODO" or "VJOURNAL".specified in UTC. FORM #3: LOCAL TIME AND TIME ZONE REFERENCE Thevalues MUST match one oflocal time with reference to time zone information form is identified by thevalues allowed foruse thegiven calendar component. If not specified on aTZID propertythat allows this parameter,parameter to reference thedefault valueappropriate time zone definition. TZID isNEEDS-ACTION.discussed in detail in the section on Time Zone. Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page61]45] Internet-Draft iCalendarOctober 2005 Format Definition:June 2006 Example: Theproperty parameter is defined by thefollowingnotation: partstatparam = "PARTSTAT" "=" ("NEEDS-ACTION" ; Event needs action / "ACCEPTED" ; Event accepted / "DECLINED" ; Event declined / "TENTATIVE" ; Event tentatively ; accepted / "DELEGATED" ; Event delegated / x-name ; Experimental status / iana-token) ; Other IANA registered ; status ; These are the participation statuses for a "VEVENT". ; Default is NEEDS-ACTION partstatparam /= "PARTSTAT" "=" ("NEEDS-ACTION" ; To-do needs action / "ACCEPTED" ; To-do accepted / "DECLINED" ; To-do declined / "TENTATIVE" ; To-do tentatively ; accepted / "DELEGATED" ; To-do delegated / "COMPLETED" ; To-do completed. ; COMPLETED property has ;date/time completed. / "IN-PROCESS" ; To-dorepresents 8:30 AM inprocessNew York in Winter, five hours behind UTC, in each of; being completed / x-name ; Experimental status / iana-token) ; Other IANA registered ; status ; These aretheparticipation statuses for a "VTODO". Default is ; NEEDS-ACTION partstatparam /= "PARTSTAT" "=" ("NEEDS-ACTION" ; Journal needs action / "ACCEPTED" ; Journal accepted / "DECLINED" ; Journal declined / x-name ; Experimental status / iana-token) ; Other IANA registered ; status ; These arethree formats using theparticipation statuses for a "VJOURNAL". ; Default is NEEDS-ACTION Desruisseaux & Stoner Expires April 14, 2006 [Page 62] Internet-Draft iCalendar October 2005 Example: ATTENDEE;PARTSTAT=DECLINED:MAILTO:jsmith@host.com 8.2.13. Status Property"X- TIMEOFDAY" non-standard property: X-TIMEOFDAY:083000 X-TIMEOFDAY:133000Z X-TIMEOFDAY;TZID=US-Eastern:083000 3.3.13. URI Value Name:STATUSURI Purpose: Thisproperty defines the overall status or confirmation for the calendar component. Value Type: TEXT Property Parameters: Non-standard property parameters can be specified on this property. Conformance: This property can be specified in "VEVENT", "VTODO" or "VJOURNAL" calendar components. Description: Invalue type is used to identify values that contain agroup scheduled calendar component,uniform resource identifier (URI) type of reference to the property value. Format Definition: The data type isuseddefined by the"Organizer"following notation: uri = <As defined by any IETF RFC> Description: This data type might be used toprovide a confirmation of the eventreference binary information, for values that are large, or otherwise undesirable tothe "Attendees". For exampleinclude directly ina "VEVENT" calendar component,the"Organizer"iCalendar object. The URI value formats in RFC 1738, RFC 2111 and any other IETF registered value format canindicate thatbe specified. Any IANA registered URI format can be used. These include, but are not limited to, those defined in RFC 1738 and RFC 2111. When ameetingproperty parameter value istentative, confirmed or cancelled. Ina"VTODO" calendar component,URI value type, the"Organizer" can indicate that an action item needs action,URI MUST be specified as a quoted-string value. No additional content value encoding (i.e., BACKSLASH character encoding) iscompleted,defined for this value type. Example: The following isin process or being worked on, or has been cancelled. Ina"VJOURNAL" calendar component, the "Organizer" can indicate thatURI for ajournal entry is draft, final or has been cancelled or removed.network file: http://host1.com/my-report.txt 3.3.14. UTC Offset Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page63]46] Internet-Draft iCalendarOctober 2005June 2006 Value Name: UTC-OFFSET Purpose: This value type is used to identify properties that contain an offset from UTC to local time. Format Definition: Thepropertydata type is defined by the following notation:statusutc-offset ="STATUS" statparam] ":" statvalue CRLF statparamtime-numzone ;As defined above in time data type time-numzone =*(";" xparam) statvalue = "TENTATIVE" ;Indicates event is ;tentative. / "CONFIRMED" ;Indicates event is ;definite.("+" /"CANCELLED" ;Indicates event was ;cancelled. ;Status values"-") time-hour time-minute [time- second] Description: The PLUS SIGN character MUST be specified fora "VEVENT" statvalue =/ "NEEDS-ACTION" ;Indicates to-do needs action. / "COMPLETED" ;Indicates to-do completed. / "IN-PROCESS" ;Indicates to-do in processpositive UTC offsets (i.e., ahead of/ "CANCELLED" ;Indicates to-do was cancelled. ;Status valuesUTC). The MINUS SIGN character MUST be specified for"VTODO". statvalue =/ "DRAFT" ;Indicates journal is draft. / "FINAL" ;Indicates journal is final. / "CANCELLED" ;Indicates journalnegative UTC offsets (i.e., behind of UTC). The value of "-0000" and "-000000" are not allowed. The time-second, if present, may not be 60; if absent, it defaults to zero. No additional content value encoding (i.e., BACKSLASH character encoding) isremoved. ;Status valuesdefined for"VJOURNAL".this value type. Example: The following UTC offsets are given for standard time for New York (five hours behind UTC) and Geneva (one hour ahead of UTC): -0500 +0100 3.4. iCalendar Object The Calendaring and Scheduling Core Object isan examplea collection of calendaring and scheduling information. Typically, thisproperty forinformation will consist of a"VEVENT" calendar component: STATUS:TENTATIVEsingle iCalendar object. However, multiple iCalendar objects can be sequentially grouped together. The first line and last line of the iCalendar object MUST contain a pair of iCalendar object delimiter strings. The syntax for an iCalendar object is as follows: icalobject = 1*("BEGIN" ":" "VCALENDAR" CRLF icalbody "END" ":" "VCALENDAR" CRLF) The following isana simple example ofthisan iCalendar object: Desruisseaux Expires December 24, 2006 [Page 47] Internet-Draft iCalendar June 2006 BEGIN:VCALENDAR VERSION:2.0 PRODID:-//hacksw/handcal//NONSGML v1.0//EN BEGIN:VEVENT DTSTART:19970714T170000Z DTEND:19970715T035959Z SUMMARY:Bastille Day Party END:VEVENT END:VCALENDAR 3.5. Property A propertyforis the definition of an individual attribute describing a"VTODO"calendarcomponent: STATUS:NEEDS-ACTIONor a calendar component. A property takes the form defined by the "contentline" notation defined in Section 3.1. The following is an example ofthis property fora"VJOURNAL" calendar component: STATUS:DRAFT 8.2.14. Summary Property Name: SUMMARY Purpose:property: DTSTART:19960415T133000Z Thisproperty defines a short summary or subject for the calendar component. Value Type: TEXT Desruisseaux & Stoner Expires April 14, 2006 [Page 64] Internet-Draftmemo imposes no ordering of properties within an iCalendarOctober 2005object. PropertyParameters: Non-standard, alternate text representationnames, parameter names andlanguageenumerated parameter values are case insensitive. For example, the propertyparameters can be specified on this property. Conformance:name "DUE" is the same as "due" and "Due", DTSTART;TZID=US-Eastern:19980714T120000 is the same as DtStart;TzID=US-Eastern:19980714T120000. 3.6. Calendar Components Theproperty can be specified in "VEVENT", "VTODO", "VJOURNAL"body of the iCalendar object consists of a sequence of calendar properties and one or"VALARM"more calendar components.Description: This property is used inThe calendar properties are attributes that apply to the"VEVENT", "VTODO" and "VJOURNAL"calendar as a whole. The calendar componentsto captureare collections of properties that express ashort, one line summary about the activity or journal entry. This property is used inparticular calendar semantic. For example, the"VALARM"calendar componentto capture the subject ofcan specify an event, a to-do, a journal entry, time zone information, or free/busy time information, or anEMAIL category ofalarm.Format Definition:Thepropertybody of the iCalendar object is defined by the following notation:summary = "SUMMARY" summparam ":" text CRLF summparam = *( ; the followingDesruisseaux Expires December 24, 2006 [Page 48] Internet-Draft iCalendar June 2006 icalbody = calprops component calprops = 2*( ; 'prodid' and 'version' areoptional,both REQUIRED, ; but MUST NOT occur more than once(";" altrepparam) / (";" languageparam)prodid /version / ;the following is'calscale' and 'method' are optional, ;and MAYbut MUST NOT occur more than once(";" xparam)calscale / method / x-prop )Example: The following is an example of this property: SUMMARY:Department Party 8.2.15. Date and Time Component Properties The following properties specify date and time related information in calendar components. 8.2.15.1. Date/Time Completed Property Name: COMPLETED Purpose: This property defines the date and time that a to-do was actually completed. Value Type: DATE-TIME Desruisseaux & Stoner Expires April 14, 2006 [Page 65] Internet-Draft iCalendar October 2005 Property Parameters: Non-standard property parameters can be specified on this property. Conformance: The property can be specified in a "VTODO" calendar component. Description: The date and time MUST be in a UTC format. Format Definition: The property is defined by the following notation: completedcomponent ="COMPLETED" compparam1*(eventc / todoc / journalc / freebusyc / / timezonec / iana-comp / x-comp) iana-comp = "BEGIN" ":"date-timeiana-token CRLFcompparam1*contentline "END" ":" iana-token CRLF x-comp =*(";" xparam) Example: The following is an example of this property: COMPLETED:19960401T235959Z 8.2.15.2. Date/Time End Property Name: DTEND Purpose: This property specifies"BEGIN" ":" x-name CRLF 1*contentline "END" ":" x-name CRLF An iCalendar object MUST include thedate"PRODID" andtime that a"VERSION" calendarcomponent ends. Value Type: The default value type is DATE-TIME. The value type can be setproperties. In addition, it MUST include at least one calendar component. Special forms of iCalendar objects are possible to publish just busy time (i.e., only aDATE value type. Property Parameters: Non-standard, value data type,"VFREEBUSY" calendar component) or time zoneidentifier property parameters can be specified on this property. Conformance: This property can be specified in "VEVENT" or "VFREEBUSY"(i.e., only a "VTIMEZONE" calendarcomponents. Description: Withincomponent) information. In addition, a complex iCalendar object is possible that is used to capture a complete snapshot of the"VEVENT"contents of a calendarcomponent, this property defines the date and time by which the event ends. The value MUST be later in time than the value(e.g., composite ofthe "DTSTART" property. Within the "VFREEBUSY"many different calendarcomponent, this property defines the end date and time for the free or busy time information. The time MUST be specified in the UTC time format. The value MUST be later in time than the valuecomponents). More commonly, an iCalendar object will consist ofthe "DTSTART" property.just a single "VEVENT", "VTODO" or "VJOURNAL" calendar component. 3.6.1. Event Component Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page66]49] Internet-Draft iCalendarOctober 2005June 2006 Component Name: VEVENT Purpose: Provide a grouping of component properties that describe an event. Format Definition:The propertyA "VEVENT" calendar component is defined by the following notation:dtendeventc ="DTEND" dtendparam":" dtendval"BEGIN" ":" "VEVENT" CRLFdtendparameventprop *alarmc "END" ":" "VEVENT" CRLF eventprop = *( ; the following are optional, ; but MUST NOT occur more than once(";" "VALUE" "=" ("DATE-TIME"class /"DATE"))created /(";" tzidparam)description /; the following is optional, ; and MAY occur more than once (";" xparam) ) dtendval = date-timedtstart / geo / last-mod / location / organizer / priority / dtstamp / seq / status / summary / transp / uid / url / recurid /date ;Value MUST match value type Example: The following is an example of this property: DTEND:19960401T235959Z DTEND;VALUE=DATE:19980704 8.2.15.3. Date/Time Due Property Name: DUE Purpose: This property defines the date and time that a to-do is expected to be completed. Value Type: The default value type is DATE-TIME. The value type can be set to a DATE value type. Property Parameters: Non-standard, value data type, time zone identifier property parameters can be specified on this property. Conformance: The property can be specified once in a "VTODO" calendar component. Description: The value MUST be a date/time equal to or after the DTSTART value, if specified. Desruisseaux & Stoner Expires April 14, 2006 [Page 67] Internet-Draft iCalendar October 2005 Format Definition: The property is defined by the following notation: due = "DUE" dueparam":" dueval CRLF dueparam = *(;the following are optional,either 'dtend' or 'duration' may appear in ; a 'eventprop', but 'dtend' and 'duration' ; MUST NOT occurmore than once (";" "VALUE" "=" ("DATE-TIME" / "DATE"))in the same 'eventprop' dtend /(";" tzidparam)duration / ; the followingisare optional, ; and MAY occur more than once*(";" xparam) ) dueval = date-timeattach /date ;Value MUST match value type Example: The following is an example of this property: DUE:19980430T235959Z 8.2.15.4. Date/Time Start Property Name: DTSTART Purpose: This property specifies when theattendee / categories / comment / contact / exdate / exrule / rstatus / related / resources / rdate / rrule / x-prop ) Description: A "VEVENT" calendar componentbegins. Value Type: The default value typeisDATE-TIME. Thea grouping of component properties, and possibly including "VALARM" calendar components, that represents a scheduled amount of timevalue MUSTon a calendar. For example, it can beone ofan activity; such as a one-hour long, department meeting from 8:00 AM to 9:00 AM, tomorrow. Generally, an event will take up time on an individual calendar. Hence, theforms definedevent will appear as an opaque interval in a search for busy time. Alternately, theDATE-TIME value type. The value typeevent canbehave its Time Transparency set to "TRANSPARENT" in order to prevent blocking of the event in searches for busy time. Desruisseaux Expires December 24, 2006 [Page 50] Internet-Draft iCalendar June 2006 The "VEVENT" is also the calendar component used to specify an anniversary or daily reminder within a calendar. These events have a DATE valuetype. Property Parameters: Non-standard, value data type, time zone identifiertype for the "DTSTART" propertyparameters caninstead of the default data type of DATE-TIME. If such a "VEVENT" has a "DTEND" property, it MUST be specifiedon this property. Conformance: This propertyas a DATE value also. The anniversary type of "VEVENT" canbe specified in the "VEVENT", "VTODO", "VFREEBUSY", or "VTIMEZONE"span more than one date (i.e, "DTEND" property value is set to a calendarcomponents. Description: Withindate after the"VEVENT" calendar component, this"DTSTART" propertydefinesvalue). The "DTSTART" property for a "VEVENT" specifies the inclusive startdate and time forof the event. For recurring events, it also specifies the very first instance in the recurrence set. The "DTEND" propertyis REQUIRED infor a "VEVENT" calendarcomponents. Events can have a start date/time but nocomponent specifies the non-inclusive enddate/time. In that case,of theevent does not Desruisseaux & Stoner Expires April 14, 2006 [Page 68] Internet-Draft iCalendar October 2005 take up any time. Within the "VFREEBUSY"event. For cases where a "VEVENT" calendarcomponent, thiscomponent specifies a "DTSTART" propertydefineswith a DATE data type but no "DTEND" property, thestart date and time forevents non-inclusive end is thefree or busy time information. The time MUST beend of the calendar date specifiedin UTC time. Withinby the"VTIMEZONE""DTSTART" property. For cases where a "VEVENT" calendarcomponent, thiscomponent specifies a "DTSTART" propertydefineswith a DATE-TIME data type but no "DTEND" property, theeffective startevent ends on the same calendar date and time of day specified by the "DTSTART" property. The "VEVENT" calendar component cannot be nested within another calendar component. However, "VEVENT" calendar components can be related to each other or to a "VTODO" or to a "VJOURNAL" calendar component with the "RELATED-TO" property. Example: The following is an example of the "VEVENT" calendar component used to represent a meeting that will also be opaque to searches for busy time: BEGIN:VEVENT UID:19970901T130000Z-123401@host.com DTSTAMP:19970901T130000Z DTSTART:19970903T163000Z DTEND:19970903T190000Z SUMMARY:Annual Employee Review CLASS:PRIVATE CATEGORIES:BUSINESS,HUMAN RESOURCES END:VEVENT The following is an example of the "VEVENT" calendar component used to represent atime zone specification. This propertyreminder that will not be opaque, but rather transparent, to searches for busy time: Desruisseaux Expires December 24, 2006 [Page 51] Internet-Draft iCalendar June 2006 BEGIN:VEVENT UID:19970901T130000Z-123402@host.com DTSTAMP:19970901T130000Z DTSTART:19970401T163000Z DTEND:19970402T010000Z SUMMARY:Laurel isREQUIRED within each STANDARD and DAYLIGHT part includedin"VTIMEZONE"sensitivity awareness class. CLASS:PUBLIC CATEGORIES:BUSINESS,HUMAN RESOURCES TRANSP:TRANSPARENT END:VEVENT The following is an example of the "VEVENT" calendarcomponents and MUST be specifiedcomponent used to represent an anniversary that will occur annually. Since it takes up no time, it will not appear as opaque in alocal DATE-TIME withoutsearch for busy time; no matter what the"TZID"value of the "TRANSP" propertyparameter.indicates: BEGIN:VEVENT UID:19970901T130000Z-123403@host.com DTSTAMP:19970901T130000Z DTSTART:19971102 SUMMARY:Our Blissful Anniversary CLASS:CONFIDENTIAL CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION RRULE:FREQ=YEARLY END:VEVENT 3.6.2. To-do Component Component Name: VTODO Purpose: Provide a grouping of calendar properties that describe a to-do. Format Definition:The propertyA "VTODO" calendar component is defined by the following notation:dtstartDesruisseaux Expires December 24, 2006 [Page 52] Internet-Draft iCalendar June 2006 todoc ="DTSTART" dtstparam"BEGIN" ":"dtstval"VTODO" CRLFdtstparamtodoprop *alarmc "END" ":" "VTODO" CRLF todoprop = *( ; the following are optional, ; but MUST NOT occur more than once(";" "VALUE" "=" ("DATE-TIME"class /"DATE"))completed /(";" tzidparam)created / description / dtstamp / dtstart / geo / last-mod / location / organizer / percent / priority / recurid / seq / status / summary / uid / url / ; either 'due' or 'duration' may appear in ; a 'todoprop', but 'due' and 'duration' ; MUST NOT occur in the same 'todoprop' due / duration / ; the followingisare optional, ; and MAY occur more than once*(";" xparam) ) dtstval = date-timeattach /date ;Value MUST match value type Example: The followingattendee / categories / comment / contact / exdate / exrule / rstatus / related / resources / rdate / rrule / x-prop ) Description: A "VTODO" calendar component isan example of this property: DTSTART:19980118T073000Z 8.2.15.5. Duration Property Name: DURATION Purpose: The property specifiesapositive durationgrouping oftime. Value Type: DURATION Desruisseaux & Stoner Expires April 14, 2006 [Page 69] Internet-Draft iCalendar October 2005 Property Parameters: Non-standard property parameters can be specified on this property. Conformance: The property can be specified in "VEVENT", "VTODO", "VFREEBUSY" orcomponent properties and possibly "VALARM" calendarcomponents. Description: In a "VEVENT" calendar component the property maycomponents that represent an action-item or assignment. For example, it can be used tospecify a duration of the event, insteadrepresent an item of work assigned to anexplicit end date/time. In aindividual; such as "turn in travel expense today". The "VTODO" calendar componentthe property maycannot beusednested within another calendar component. However, "VTODO" calendar components can be related to each other or tospecifyaduration for the to-do, instead of an explicit due date/ time. In"VTODO" or to a"VFREEBUSY""VJOURNAL" calendar component with theproperty may be used to specify the interval of free time being requested. In a "VALARM""RELATED-TO" property. A "VTODO" calendar component without theproperty may"DTSTART" and "DUE" (or "DURATION") properties specifies a to-do that will beused to specify the delay period prior to repeating an alarm. Format Definition: The propertyassociated with each successive calendar date, until it isdefined by the following notation: duration = "DURATION" durparam ":" dur-value CRLF ;consisting of a positive duration of time. durparam = *(";" xparam)completed. Example: The following is an example ofthis property that specifies an interval of time of 1 hour and zero minutes and zero seconds: DURATION:PT1H0M0S The following is an example of this property that specifies an interval of time of 15 minutes. DURATION:PT15M 8.2.15.6. Free/Busy Time Property Name: FREEBUSY Purpose: The property defines one or more free or busy time intervals. Value Type: PERIOD. The date and time values MUST be in an UTC time format. Property Parameters: Non-standard or free/busy time type property parameters can be specified on this property. Conformance: The property can be specified ina"VFREEBUSY""VTODO" calendarcomponent.component: Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page70]53] Internet-Draft iCalendarOctober 2005 Property Parameter: "FBTYPE" and non-standard parameters can be specified on this property. Description: These time periods can be specified as either a start and end date-time or a start date-time and duration. The date and time MUST beJune 2006 BEGIN:VTODO UID:19970901T130000Z-123404@host.com DTSTAMP:19970901T130000Z DTSTART:19970415T133000Z DUE:19970416T045959Z SUMMARY:1996 Income Tax Preparation CLASS:CONFIDENTIAL CATEGORIES:FAMILY,FINANCE PRIORITY:1 STATUS:NEEDS-ACTION END:VTODO 3.6.3. Journal Component Component Name: VJOURNAL Purpose: Provide aUTC time format. "FREEBUSY" properties within the "VFREEBUSY" calendar component SHOULD be sorted in ascending order, based on start time and then end time, with the earliest periods first. The "FREEBUSY" property can specify more than one value, separated by the COMMA character (US-ASCII decimal 44). In such cases, the "FREEBUSY" property values SHOULD all be of the same "FBTYPE" property parameter type (e.g., all valuesgrouping of component properties that describe aparticular "FBTYPE" listed together in a single property).journal entry. Format Definition:The propertyA "VJOURNAL" calendar component is defined by the following notation:freebusyjournalc ="FREEBUSY" fbparam"BEGIN" ":"fbvalue"VJOURNAL" CRLFfbparamjourprop "END" ":" "VJOURNAL" CRLF jourprop = *( ; the followingisare optional, ; but MUST NOT occur more than once(";" fbtypeparam)class / created / description / dtstart / dtstamp / last-mod / organizer / recurid / seq / status / summary / uid / url / ; the followingisare optional, ; and MAY occur more than once(";" xparam)attach / attendee / categories / comment / contact / exdate / exrule / related / rdate / rrule / rstatus / x-prop )fbvalue = period *["," period] ;Time value MUST be in the UTC time format. Example: The following are some examplesDescription: A "VJOURNAL" calendar component is a grouping ofthis property: FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H, 19970308T230000Z/19970309T000000Zcomponent properties that represent one or more descriptive text notes associated with a particular calendar date. The "DTSTART" property is used to specify the calendar date that the journal entry is associated with. Generally, it will have a DATE value Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page71]54] Internet-Draft iCalendarOctober 2005 8.2.15.7. Time Transparency Property Name: TRANSP Purpose: This property defines whether an event is transparent or not to busy time searches. Value Type: TEXT Property Parameters: Non-standard property parameters can be specified on this property. Conformance: This propertyJune 2006 data type, but it can also bespecified once inused to specify a"VEVENT" calendar component. Description: Time Transparency is the characteristicDATE-TIME value data type. Examples ofan event that determines whether it appears to consume time onacalendar. Events that consume actual timejournal entry include a daily record of a legislative body or a journal entry of individual telephone contacts for theindividualday orresource associated withan ordered list of accomplishments for the day. The "VJOURNAL" calendarSHOULDcomponent can also berecorded as OPAQUE, allowing themused tobe detected by free-busy time searches. Other events, which doassociate a document with a calendar date. The "VJOURNAL" calendar component does not take upthe individual's (or resource's) time SHOULD be recorded as TRANSPARENT, making them invisible to free-busytimesearches. Format Definition: The property is specified by the following notation: transp = "TRANSP" tranparam ":" transvalue CRLF tranparam = *(";" xparam) transvalue = "OPAQUE" ;Blocks or opaqueon a calendar. Hence, it does not play a role in free or busy timesearches. / "TRANSPARENT" ;Transparent on busysearches - - it is as though it has a timesearches. ;Defaulttransparency valueis OPAQUE Example: The following is an exampleofthis property for an event thatTRANSPARENT. It is transparent to any such searches. The "VJOURNAL" calendar component cannot be nested within another calendar component. However, "VJOURNAL" calendar components can be related to each other ordoes not block on free/busy time searches: TRANSP:TRANSPARENTto a "VEVENT" or to a "VTODO" calendar component, with the "RELATED-TO" property. Example: The following is an example ofthis property for an event thatthe "VJOURNAL" calendar component: BEGIN:VJOURNAL UID:19970901T130000Z-123405@host.com DTSTAMP:19970901T130000Z DTSTART;VALUE=DATE:19970317 SUMMARY:Staff meeting minutes DESCRIPTION:1. Staff meeting: Participants include Joe\, Lisa and Bob. Aurora project plans were reviewed. There isopaque or blockscurrently no budget reserves for this project. Lisa will escalate to management. Next meeting on Tuesday.\n 2. Telephone Conference: ABC Corp. sales representative called to discuss new printer. Promised to get us a demo by Friday.\n 3. Henry Miller (Handsoff Insurance): Car was totaled by tree. Is looking into a loaner car. 654-2323 (tel). END:VJOURNAL 3.6.4. Free/Busy Component Component Name: VFREEBUSY Purpose: Provide a grouping of component properties that describe either a request for free/busy time, describe a response to a request for free/busy timesearches: TRANSP:OPAQUEor describe a published set of busy time. Format Definition: A "VFREEBUSY" calendar component is defined by the following notation: Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page72]55] Internet-Draft iCalendarOctober 2005 8.2.16. Time Zone Component Properties The following properties specify time zone information in calendar components. 8.2.16.1. Time Zone Identifier Property Name: TZID Purpose: This property specifies the text value that uniquely identifies the "VTIMEZONE" calendar component. Value Type: TEXT Property Parameters: Non-standard property parameters can be specified on this property. Conformance: This property MUST be specified in a "VTIMEZONE" calendar component. Description: This is the label by which a time zone calendar component is referenced by any iCalendar properties whose data type is either DATE-TIME or TIME and not intended to specify a UTC or a "floating" time. The presence of the SOLIDUS character (US-ASCII decimal 47) as a prefix, indicates that this TZID represents an unique ID in a globally defined time zone registry (when such registry is defined). Note: This document does not define a naming convention for time zone identifiers. Implementers may want to use the naming conventions defined in existing time zone specifications such as the public- domain Olson database [TZ]. The specification of globally unique time zone identifiers is not addressed by this document and is left for future study. Format Definition: This property is defined by the following notation: tzidJune 2006 freebusyc ="TZID" tzidpropparam"BEGIN" ":"[tzidprefix] text"VFREEBUSY" CRLFtzidpropparam = *(";" xparam) ;tzidprefix = "/" ; Defined previously. Just listed here for reader convenience. Desruisseaux & Stoner Expires April 14, 2006 [Page 73] Internet-Draft iCalendar October 2005 Example: The following are examples of non-globally unique time zone identifiers: TZID:US-Eastern TZID:California-Los_Angeles The following is an example of a fictitious globally unique time zone identifier: TZID:/US-New_York-New_York 8.2.16.2. Time Zone Name Property Name: TZNAME Purpose: This property specifies the customary designation for a time zone description. Value Type: TEXT Property Parameters: Non-standard and language property parameters can be specified on this property. Conformance: This property can be specified in a "VTIMEZONE" calendar component. Description: This property may be specified in multiple languages; in order to provide for different language requirements. Format Definition: This property is defined by the following notation: tzname = "TZNAME" tznparamfbprop "END" ":"text"VFREEBUSY" CRLFtznparamfbprop = *( ; the followingisare optional, ; but MUST NOT occur more than once(";" languageparam)contact / dtstart / dtend / duration / dtstamp / organizer / uid / url / ; the followingisare optional, ; and MAY occur more than once(";" xparam)attendee / comment / freebusy / rstatus / x-prop )Desruisseaux & Stoner Expires April 14, 2006 [Page 74] Internet-Draft iCalendar October 2005 Example: The following are example of this property: TZNAME:EST Figure 97 The followingDescription: A "VFREEBUSY" calendar component isan examplea grouping ofthis property when two different languagescomponent properties that represents either a request for, a reply to a request forthefree or busy timezone name are specified: TZNAME;LANGUAGE=en:EST TZNAME;LANGUAGE=fr-CA:HNE 8.2.16.3. Time Zone Offset From Property Name: TZOFFSETFROM Purpose: This property specifies the offset which is in use priorinformation or a published set of busy time information. When used tothisrequest free/busy timezone observance. Value Type: UTC-OFFSET Property Parameters: Non-standard property parameters can be specified on this property. Conformance: This property MUST be specified in a "VTIMEZONE" calendar component. Description: Thisinformation, the "ATTENDEE" property specifies theoffset which is in use prior to thiscalendar users whose free/busy timeobservance. Itisused to calculatebeing requested; theabsolute time at which"ORGANIZER" property specifies thetransition to a given observance takes place. This property MUST only be specified in a "VTIMEZONE" calendar component. A "VTIMEZONE"calendarcomponent MUST include this property. The property valueuser who isa signed numeric indicatingrequesting thenumber of hoursfree/busy time; the "DTSTART" andpossibly minutes from UTC. Positive numbers represent time zones east of"DTEND" properties specify theprime meridian, or aheadwindow ofUTC. Negative numbers representtimezones west offor which theprime meridian, or behind UTC. Format Definition: The propertyfree/ busy time isdefined bybeing requested; thefollowing notation: tzoffsetfrom = "TZOFFSETFROM" frmparam ":" utc-offset CRLF frmparam = *(";" xparam) Desruisseaux & Stoner Expires April 14, 2006 [Page 75] Internet-Draft iCalendar October 2005 Example: The following"UID" and "DTSTAMP" properties areexamplesspecified to assist in proper sequencing ofthis property: TZOFFSETFROM:-0500 TZOFFSETFROM:+1345 Figure 100 8.2.16.4. Time Zone Offset To Property Name: TZOFFSETTO Purpose: Thismultiple free/busy time requests. When used to reply to a request for free/busy time, the "ATTENDEE" property specifies theoffset which is in use in thiscalendar user responding to the free/busy timezone observance. Value Type: UTC-OFFSET Property Parameters: Non-standard property parameters can be specified on this property. Conformance: Thisrequest; the "ORGANIZER" propertyMUST be specified in a "VTIMEZONE"specifies the calendarcomponent. Description: Thisuser that originally requested the free/busy time; the "FREEBUSY" property specifies theoffset which is in usefree/busy time information (if it exists); and the "UID" and "DTSTAMP" properties are specified to assist inthisproper sequencing of multiple free/busy timezone observance. It isreplies. When used tocalculate the absolute time forpublish busy time, thenew observance. The"ORGANIZER" propertyvalue is a signed numeric indicatingspecifies thenumber of hourscalendar user associated with the published busy time; the "DTSTART" andpossibly minutes from UTC. Positive numbers represent"DTEND" properties specify an inclusive timezones east ofwindow that surrounds theprime meridian, or ahead of UTC. Negative numbers representbusy timezones west ofinformation; theprime meridian, or behind UTC. Format Definition: The"FREEBUSY" propertyis defined byspecifies thefollowing notation: tzoffsetto = "TZOFFSETTO" toparam ":" utc-offset CRLF toparam = *(";" xparam) Example: The following are examples of this property: TZOFFSETTO:-0400 TZOFFSETTO:+1245 Figure 102published busy time information; and the "DTSTAMP" property specifies the date/time that iCalendar object was created. Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page76]56] Internet-Draft iCalendarOctober 2005 8.2.16.5. Time Zone URL Property Name: TZURL Purpose:June 2006 TheTZURL provides a means for a VTIMEZONE"VFREEBUSY" calendar componentto point to a network location that cancannot beused to retrieve an up-to- date version of itself. Value Type: URI Property Parameters: Non-standard property parametersnested within another calendar component. Multiple "VFREEBUSY" calendar components can be specifiedon thiswithin an iCalendar object. This permits the grouping of Free/Busy information into logical collections, such as monthly groups of busy time information. The "VFREEBUSY" calendar component is intended for use in iCalendar object methods involving requests for free time, requests for busy time, requests for both free and busy, and the associated replies. Free/Busy information is represented with the "FREEBUSY" property.Conformance:This property provides a terse representation of time periods. One or more "FREEBUSY" properties can be specified ina "VTIMEZONE"the "VFREEBUSY" calendar component.Description: The TZURL provides a means for a VTIMEZONE component to point toWhen present in anetwork location that can"VFREEBUSY" calendar component, the "DTSTART" and "DTEND" properties SHOULD beusedspecified prior toretrieve an up-to- date version of itself. This providesany "FREEBUSY" properties. In ahook to handle changes government bodies impose uponfree timezone definitions. Retrieval of this resource resultsrequest, these properties can be used inan iCalendar object containing a single VTIMEZONE component and a METHODcombination with the "DURATION" propertysettoPUBLISH. Format Definition:represent a request for a duration of free time within a specified window of time. Theproperty is defined byrecurrence properties ("RRULE", "EXRULE", "RDATE", "EXDATE") are not permitted within a "VFREEBUSY" calendar component. Any recurring events are resolved into their individual busy time periods using thefollowing notation: tzurl = "TZURL" tzurlparam ":" uri CRLF tzurlparam = *(";" xparam)"FREEBUSY" property. Example: The following is an example ofthis property: TZURL:http://timezones.r.us.net/tz/US-California-Los_Angeles.ics 8.2.17. Relationship Component Properties The following properties specify relationship information ina "VFREEBUSY" calendarcomponents. 8.2.17.1. Attendee Property Name: ATTENDEE Purpose:component used to request free or busy time information: BEGIN:VFREEBUSY ORGANIZER:MAILTO:jane_doe@host1.com ATTENDEE:MAILTO:john_public@host2.com DTSTART:19971015T050000Z DTEND:19971016T050000Z DTSTAMP:19970901T083000Z END:VFREEBUSY Theproperty definesfollowing is an"Attendee" withinexample of a "VFREEBUSY" calendarcomponent. Value Type: CAL-ADDRESS Property Parameters: Non-standard, language, calendar user type,component used to reply to the request with busy time information: Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page77]57] Internet-Draft iCalendarOctober 2005 group or list membership, participation role, participation status, RSVP expectation, delegatee, delegator, sent by, common name or directory entry reference property parameters can be specified on this property. Conformance: This property MUST be specified in an iCalendar object that specifies a group scheduled calendar entity. This property MUST NOT be specified in anJune 2006 BEGIN:VFREEBUSY ORGANIZER:MAILTO:jane_doe@host1.com ATTENDEE:MAILTO:john_public@host2.com DTSTAMP:19970901T100000Z FREEBUSY;VALUE=PERIOD:19971015T050000Z/PT8H30M, 19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M URL:http://host2.com/pub/busy/jpublic-01.ifb COMMENT:This iCalendarobject when publishing the calendarfile contains busy time information(e.g., NOT in an iCalendar object that specifiesfor thepublicationnext three months. END:VFREEBUSY The following is an example of a "VFREEBUSY" calendaruser'scomponent used to publish busytime, event, to-do or journal). This property is not specified in an iCalendar object that specifies only atimezone definition or that defines calendar entities that are not group scheduled entities, but are entities only oninformation. BEGIN:VFREEBUSY ORGANIZER:jsmith@host.com DTSTART:19980313T141711Z DTEND:19980410T141711Z FREEBUSY:19980314T233000Z/19980315T003000Z FREEBUSY:19980316T153000Z/19980316T163000Z FREEBUSY:19980318T030000Z/19980318T040000Z URL:http://www.host.com/calendar/busytime/jsmith.ifb END:VFREEBUSY 3.6.5. Time Zone Component Component Name: VTIMEZONE Purpose: Provide asingle user's calendar. Description: The property MUST only be specified within calendar components to specify participants, non-participants and the chairgrouping of component properties that defines agroup scheduled calendar entity. The property is specified within an "EMAIL" category of the "VALARM"time zone. Format Definition: A "VTIMEZONE" calendar componentto specify an email address thatisto receivedefined by theemail type of iCalendar alarm. The property parameter CNfollowing notation: timezonec = "BEGIN" ":" "VTIMEZONE" CRLF 2*( ; 'tzid' isfor the commonrequired, but MUST NOT occur more ; than once tzid / ; 'last-mod' and 'tzurl' are optional, but MUST NOT occur more than once last-mod / tzurl / Desruisseaux Expires December 24, 2006 [Page 58] Internet-Draft iCalendar June 2006 ; one of 'standardc' ordisplayable name associated with the calendar address; ROLE, for the intended role that the attendee will have in'daylightc' MUST occur ; and each MAY occur more than once. standardc / daylightc / ; thecalendar 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 parameterfollowing isspecified, the identified language applies to the CN parameter. A recipient delegated a request MUST inherit the RSVPoptional, ; andROLE values from the attendee that delegated the request to them. Multiple attendees can be specified by including multiple "ATTENDEE" properties within the calendar component. Desruisseaux & Stoner Expires April 14, 2006 [Page 78] Internet-Draft iCalendar October 2005 Format Definition: The property is defined by the following notation: attendeeMAY occur more than once x-prop ) "END" ":" "VTIMEZONE" CRLF standardc ="ATTENDEE" attparam"BEGIN" ":"cal-address"STANDARD" CRLFattparamtzprop "END" ":" "STANDARD" CRLF daylightc =*("BEGIN" ":" "DAYLIGHT" CRLF tzprop "END" ":" "DAYLIGHT" CRLF tzprop = 3*( ; the following areoptional,each REQUIRED, ; but MUST NOT occur more than once(";" cutypeparam) / (";"memberparam) / (";" roleparam) / (";" partstatparam) / (";" rsvpparam) / (";" deltoparam) / (";" delfromparam) / (";" sentbyparam) / (";"cnparam)dtstart /(";" dirparam)tzoffsetto /(";" languageparam)tzoffsetfrom / ; the followingisare optional, ; and MAY occur more than once(";" xparam)comment / rdate / rrule / tzname / x-prop )Example: The following are examplesDescription: A time zone is unambiguously defined by the set ofthis property's usetime measurement rules determined by the governing body for ato- do: ORGANIZER:MAILTO:jsmith@host1.com ATTENDEE;MEMBER="MAILTO:DEV-GROUP@host2.com": MAILTO:joecool@host2.com ATTENDEE;DELEGATED-FROM="MAILTO:immud@host3.com": MAILTO:janedoe@host1.com The following is an example of this property usedgiven geographic area. These rules describe at a minimum the base offset from UTC forspecifying multiple attendeesthe time zone, often referred toan event: ORGANIZER:MAILTO:jsmith@host1.com ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Henry Cabot :MAILTO:hcabot@host2.com ATTENDEE;ROLE=REQ-PARTICIPANT;DELEGATED-FROM= "MAILTO:bob@host.com" ;PARTSTAT=ACCEPTED;CN=Jane Doe:MAILTO:jdoe@host1.com The following is an exampleas the Standard Time offset. Many locations adjust their Standard Time forward or backward by one hour, in order to accommodate seasonal changes in number ofthis property with a URIdaylight hours, often referred tothe directory information associated with the attendee: ATTENDEE;CN=John Smith;DIR="ldap://host.com:6666/o=eDABC% 20Industries,c=3DUS??(cn=3DBJim%20Dolittle)":MAILTO:jimdo@ host1.comas Daylight Saving Time. Some locations adjust their time by a fraction of an Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page79]59] Internet-Draft iCalendarOctober 2005 The followingJune 2006 hour. Standard Time isan example of this property with "delegatee" and "delegator" information for an event: ORGANIZER;CN=John Smith:MAILTO:jsmith@host.com ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;DELEGATED-FROM= "MAILTO:iamboss@host2.com";CN=Henry Cabot:MAILTO:hcabot@ host2.com ATTENDEE;ROLE=NON-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO= "MAILTO:hcabot@host2.com";CN=The Big Cheese:MAILTO:iamboss @host2.com ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Jane Doe :MAILTO:jdoe@host1.com Example:also known as Winter Time. Daylight Saving Time is also known as Advanced Time, Summer Time, or Legal Time in certain countries. The followingis an example of this property's use when another calendar user is acting on behalf oftable shows the"Attendee": ATTENDEE;SENT-BY=MAILTO:jan_doe@host1.com;CN=John Smith:MAILTO: jsmith@host1.com 8.2.17.2. Contact Property Name: CONTACT Purpose: The property is used to represent contact information or alternately a reference to contact information associated with the calendar component. Value Type: TEXT Property Parameters: Non-standard, alternate text representation and language property parameters can be specified on this property. Conformance: The property can be specifiedchanges in time zone rules in effect for New York City starting from 1967. Each line represents a"VEVENT", "VTODO", "VJOURNAL"description or"VFREEBUSY" calendar component. Description:rule for a particular observance. Effective Observance Rule +-----------+-------------------------+--------+--------------+ | Date | (Date/Time) | Offset | Abbreviation | +-----------+-------------------------+--------+--------------+ | 1967-* | last Sun in Oct, 02:00 | -0500 | EST | | 1967-1973 | last Sun in Apr, 02:00 | -0400 | EDT | | 1974-1974 | Jan 6, 02:00 | -0400 | EDT | | 1975-1975 | Feb 23, 02:00 | -0400 | EDT | | 1976-1986 | last Sun in Apr, 02:00 | -0400 | EDT | | 1987-* | first Sun in Apr, 02:00 | -0400 | EDT | +-----------+-------------------------+--------+--------------+ Effective Observance Rule Date (Date/Time) Offset Abbreviation 1967-* last Sun in Oct, 02:00 -0500 EST 1967-1973 last Sun in Apr, 02:00 -0400 EDT 1974-1974 Jan 6, 02:00 -0400 EDT 1975-1975 Feb 23, 02:00 -0400 EDT 1976-1986 last Sun in Apr, 02:00 -0400 EDT 1987-* first Sun in Apr, 02:00 -0400 EDT Note: Theproperty value consistsspecification oftextual contact information. An alternative representationa global time zone registry is not addressed by this document and is left for future study. However, implementers may find theproperty value can also be specified that refers toOlson time zone database [TZDB] aURI pointing touseful reference. It is analternate form, such as a vCard [RFC 2426],informal, public-domain collection of time zone information, which is currently being maintained by volunteer Internet participants, and is used in several operating systems. This database contains current and historical time zone information forthe contact information.a wide variety of Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page80]60] Internet-Draft iCalendarOctober 2005 Format Definition: The property is defined by the following notation: contact = "CONTACT" contparam ":" text CRLF contparam = *( ;June 2006 locations around thefollowing are optional, ; but MUST NOT occur more than once (";" altrepparam) / (";" languageparam) / ;globe; it provides a time zone identifier for every unique time zone rule set in actual use since 1970, with historical data going back to thefollowing is optional, ;introduction of standard time. Interoperability between two calendaring andMAY occur more than once (";" xparam) ) Example: The followingscheduling applications, especially for recurring events, to-dos or journal entries, is dependent on the ability to capture and convey date and time information in anexample of this property referencing textual contact information: CONTACT:Jim Dolittle\, ABC Industries\, +1-919-555-1234unambiguous format. Thefollowing is an examplespecification of current time zone information is integral to thisproperty with an alternate representationbehavior. If present, the "VTIMEZONE" calendar component defines the set of Standard Time and Daylight Saving Time observances (or rules) for aLDAP URI toparticular time zone for adirectory entry containing the contact information: CONTACT;ALTREP="ldap://host.com:6666/o=3DABC%20Industries\, c=3DUS??(cn=3DBJim%20Dolittle)":Jim Dolittle\, ABC Industries\, +1-919-555-1234 The following is an example of this property with an alternate representationgiven interval ofa MIME body part containing the contact information, such as a vCard [RFC 2426] embedded in a [MIME-DIR] content-type: CONTACT;ALTREP="CID:part3.msg970930T083000SILVER@host.com":Jim Dolittle\, ABC Industries\, +1-919-555-1234time. Thefollowing is"VTIMEZONE" calendar component cannot be nested within other calendar components. Multiple "VTIMEZONE" calendar components can exist in anexample ofiCalendar object. In thisproperty referencingsituation, each "VTIMEZONE" MUST represent anetwork resource,unique time zone definition. This is necessary for some classes of events, such asa vCard [RFC 2426] object containing the contact information: CONTACT;ALTREP="http://host.com/pdi/jdoe.vcf":Jim Dolittle\, ABC Industries\, +1-919-555-1234 Desruisseaux & Stoner Expires April 14, 2006 [Page 81] Internet-Draft iCalendar October 2005 8.2.17.3. Organizer Property Name: ORGANIZER Purpose:airline flights, that start in one time zone and end in another. Theproperty defines the organizer for a"VTIMEZONE" calendarcomponent. Value Type: CAL-ADDRESS Property Parameters: Non-standard, language, common name, directory entry reference, sent by property parameters can be specified on this property. Conformance: This propertycomponent MUST bespecified in anpresent if the iCalendar object contains an RRULE thatspecifiesgenerates dates on both sides of agroup scheduled calendar entity. This property MUST be specifiedtime zone shift (e.g., both inanStandard Time and Daylight Saving Time) unless the iCalendar objectthat specifies the publication ofintends to convey acalendar user's busy time. This property MUST NOTfloating time ( see Section 3.3.12 for proper interpretation of floating time). It can bespecified in anpresent if the iCalendar objectthat specifies onlydoes not contain such a RRULE. In addition, if a RRULE is present, there MUST be valid time zonedefinition or that defines calendar entities that are not group scheduled entities, but are entities only on a single user's calendar. Description:information for all recurrence instances. Theproperty is specified within the "VEVENT", "VTODO", "VJOURNAL"VTIMEZONE" calendarcomponents to specifycomponent MUST include theorganizer"TZID" property and at least one definition of agroup scheduled calendar entity.standard or daylight component. Theproperty is specified withinstandard or daylight component MUST include the"VFREEBUSY""DTSTART", "TZOFFSETFROM" and "TZOFFSETTO" properties. An individual "VTIMEZONE" calendar componentto specifyMUST be specified for each unique "TZID" parameter value specified in the iCalendar object. Each "VTIMEZONE" calendaruser requestingcomponent consists of a collection of one or more sub-components that describe thefreerule for a particular observance (either a Standard Time orbusy time. When publishinga"VFREEBUSY" calendar component, the property is used to specify the calendarDaylight Saving Time observance). The "STANDARD" sub-component consists of a collection of properties thatthe published busy time came from.describe Standard Time. Theproperty has"DAYLIGHT" sub-component consists of a collection of properties that describe Daylight Saving Time. In general this collection of properties consists of: Desruisseaux Expires December 24, 2006 [Page 61] Internet-Draft iCalendar June 2006 theproperty parameters CN,first onset date-time forspecifyingthecommon or display name associated withobservance the"Organizer", DIR,last onset date-time forspecifyingthe observance, if apointerlast onset is known. the offset to be applied for thedirectory information associated withobservance a rule that describes the"Organizer", SENT-BY,day and time when the observance takes effect an optional name forspecifying another calendar user that is acting on behalf ofthe"Organizer". The non-standard parametersobservance For a given time zone, there mayalsobespecified on this property. If the LANGUAGE property parameter is specified,multiple unique definitions of theidentified language appliesobservances over a period of time. Each observance is described using either a "STANDARD" or "DAYLIGHT" sub-component. The collection of these sub-components is used to describe theCN parameter value. Desruisseaux & Stoner Expires April 14, 2006 [Page 82] Internet-Draft iCalendar October 2005 Format Definition:time zone for a given period of time. Thepropertyoffset to apply at any given time isdefinedfound by locating thefollowing notation: organizer = "ORGANIZER" orgparam ":" cal-address CRLF orgparam = *( ;observance that has thefollowing are optional, ; but MUST NOT occur more than once (";" cnparam) / (";" dirparam) / (";" sentbyparam) / (";" languageparam) / ;last onset date and time before thefollowingtime in question, and using the offset value from that observance. The top-level properties in a "VTIMEZONE" calendar component are: The mandatory "TZID" property isoptional, ;a text value that uniquely identifies the VTIMEZONE; and each MAY occur more thanonce (";" xparam) ) Example: The following is an exampleonce. calendar component within the scope ofthis property: ORGANIZER;CN=John Smith:MAILTO:jsmith@host1.coman iCalendar object. Thefollowingoptional "LAST-MODIFIED" property isan example ofa UTC value that specifies the date and time that this time zone definition was last updated. The optional "TZURL" propertywithis apointerurl value that points tothe directory information associated with the organizer: ORGANIZER;CN=JohnSmith;DIR="ldap://host.com:6666/o=3DDC%20Associ ates,c=3DUS??(cn=3DJohn%20Smith)":MAILTO:jsmith@host1.com The followinga published VTIMEZONE definition. TZURL SHOULD refer to a resource that isan example of this property usedaccessible byanother calendar useranyone whois acting on behalf of the organizer, with responses intended to be sent backmight need to interpret theorganizer,object. This SHOULD NOT normally be a "file" URL or other URL that is not widely-accessible. The collection of properties that are used to define theother calendar user: ORGANIZER;SENT-BY="MAILTO:jane_doe@host.com": MAILTO:jsmith@host1.com 8.2.17.4. Participation Role Parameter Name: ROLE Purpose: To specifySTANDARD and DAYLIGHT sub-components include: The mandatory "DTSTART" property gives theparticipation roleeffective onset date and local time for thecalendar user specified by the property. Description: This parameter cantime zone sub-component definition. "DTSTART" in this usage MUST be specifiedon properties withas aCAL-ADDRESS value type. The parameter specifies the participationlocal DATE-TIME value. Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page83]62] Internet-Draft iCalendarOctober 2005 role for the calendar user specified by theJune 2006 The mandatory "TZOFFSETFROM" property gives the UTC offset which is in use when thegroup schedule calendar component. If not specified on a property that allowsonset of thisparameter, the default value is REQ-PARTICIPANT. Format Definition: The property parametertime zone observance begins. "TZOFFSETFROM" isdefined bycombined with "DTSTART" to define the effective onset for the time zone sub-component definition. For example, the followingnotation: roleparam = "ROLE" "=" ("CHAIR" ; Indicates chairrepresents the time at which the observance of Standard Time took effect in Fall 1967 for New York City: DTSTART:19671029T020000 TZOFFSETFROM:-0400 The mandatory "TZOFFSETTO " property gives the; calendar entity / "REQ-PARTICIPANT" ; Indicates a participant whose ; participation is required / "OPT-PARTICIPANT" ; Indicates a participant whose ; participationUTC offset for the time zone sub-component (Standard Time or Daylight Saving Time) when this observance is in use. The optional/ "NON-PARTICIPANT" ; Indicates a participant who"TZNAME" property is; copiedthe customary name forinformation ; purposes only / x-name ; Experimental role / iana-token) ; Other IANA role ; Default is REQ-PARTICIPANT Example: ATTENDEE;ROLE=CHAIR:MAILTO:mrbig@host.com Figure 121 8.2.17.5. Sent By Parameter Name: SENT-BY Purpose: To specify the calendar user that is acting on behalf ofthecalendar usertime zone. It may be specifiedbymultiple times, to allow for specifying multiple language variants of theproperty. Description:time zone names. Thisparameter cancould bespecified on properties with a CAL-ADDRESS value type. The parameter specifiesused for displaying dates. If specified, thecalendar user that is acting on behalf ofonset for thecalendar user specifiedobservance defined by the time zone sub-component is defined by either the "RRULE" or "RDATE" property.The parameter value MUSTIf neither is specified, only one sub-component can bea MAILTO URI as definedspecified in[RFC 1738]. The individualthe "VTIMEZONE" calendaraddress parameter values MUST each becomponent and it is assumed that the single observance specified is always ina quoted-string. Format Definition:effect. The "RRULE" propertyparameter is defined bydefines thefollowing notation: sentbyparam = "SENT-BY" "=" DQUOTE cal-address DQUOTE Desruisseaux & Stoner Expires April 14, 2006 [Page 84] Internet-Draft iCalendar October 2005 Example: ORGANIZER;SENT-BY:"MAILTO:sray@host.com":MAILTO:jsmith@host.com Figure 123 8.2.17.6. Delegators Parameter Name: DELEGATED-FROM Purpose: To specifyrecurrence rule for thecalendar users that have delegated their participation toonset of thecalendar user specifiedobservance defined by this time zone sub-component. Some specific requirements for theproperty. Description: This parameter can be specified on properties with a CAL-ADDRESS value type. Thisusage of RRULE for this purpose include: If observance is known to have an effective end date, the "UNTIL" recurrence rule parametercanMUST bespecified on a property that has a value typeused to specify the last valid onset ofcalendar address. This parameter specifies those calendar uses that have delegated their participation in a group scheduled event or to-dothis observance (i.e., the UNTIL date-time will be equal to thecalendar user specifiedlast instance generated by theproperty. The value MUST be a MAILTO URI as defined in [RFC 1738]. The individual calendar address parameter valuesrecurrence pattern). It MUSTeachbe specified ina quoted-string. Format Definition:UTC time. Theproperty parameter is defined by"DTSTART" and thefollowing notation: delfromparam = "DELEGATED-FROM" "=" DQUOTE cal-address DQUOTE *("," DQUOTE cal-address DQUOTE) Example: ATTENDEE;DELEGATED-FROM="MAILTO:jsmith@host.com":MAILTO: jdoe@host.com Figure 125 8.2.17.7. Delegatees Parameter Name: DELEGATED-TO Purpose: To specify"TZOFFSETTO" properties MUST be used when generating thecalendar users to whomonset date-time values (instances) from thecalendar user specified byRRULE. Alternatively, the "RDATE" propertyhas delegated participation. Description: This parametercan bespecified on properties with a CAL-ADDRESS value type. This parameter specifies those calendar users whom have been delegated participation in a group scheduled event or to-do byused to define thecalendar user specifiedonset of the observance by giving theproperty. The valueindividual onset date and times. "RDATE" in this usage MUST bea MAILTO URIspecified asdefineda local DATE- TIME value in[RFC 1738]. The individualUTC time. Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page85]63] Internet-Draft iCalendarOctober 2005 calendar address parameter values MUST each be specified in a quoted- string. Format Definition:June 2006 The optional "COMMENT" propertyparameterisdefined by the following notation: deltoparam = "DELEGATED-TO" "=" DQUOTE cal-address DQUOTE *("," DQUOTE cal-address DQUOTE)also allowed for descriptive explanatory text. Example:ATTENDEE;DELEGATED-TO="MAILTO:jdoe@host.com","MAILTO:jqpublic@ host.com":MAILTO:jsmith@host.com 8.2.17.8. Common Name Parameter Name: CN Purpose: To specify the common name to be associated withThe following are examples of the "VTIMEZONE" calendaruser specified by the property. Description:component: Thisparameter can be specified on properties with a CAL-ADDRESS value type. The parameter specifies the common name to be associated with the calendar user specified byis an example showing time zone information for the Eastern United States using "RDATE" property.The parameter valueNote that this istext. The parameter valueonly suitable for a recurring event that starts on or later than April 6, 1997 at 03:00:00 EDT (i.e., the earliest effective transition date and time) and ends no later than April 7, 1998 02:00:00 EST (i.e., latest valid date and time for EST in this scenario). For example, this can be used fordisplay text to be associated with the calendar address specified by the property. Format Definition: The property parametera recurring event that occurs every Friday, 8:00AM-9:00 AM, starting June 1, 1997, ending December 31, 1997. BEGIN:VTIMEZONE TZID:US-Eastern LAST-MODIFIED:19870101T000000Z BEGIN:STANDARD DTSTART:19971026T020000 RDATE:19971026T020000 TZOFFSETFROM:-0400 TZOFFSETTO:-0500 TZNAME:EST END:STANDARD BEGIN:DAYLIGHT DTSTART:19970406T020000 RDATE:19970406T020000 TZOFFSETFROM:-0500 TZOFFSETTO:-0400 TZNAME:EDT END:DAYLIGHT END:VTIMEZONE This isdefined bya simple example showing thefollowing notation: cnparam = "CN" "=" param-value Example: ORGANIZER;CN="John Smith":MAILTO:jsmith@host.com 8.2.18. Calendar User Type Parameter Name: CUTYPE Purpose: To specifycurrent time zone rules for thetypeEastern United States using a RRULE recurrence pattern. Note that there is no effective end date to either ofcalendar user specified bytheproperty. Description:Standard Time or Daylight Time rules. Thisparameter caninformation would bespecified on properties withvalid for aCAL-ADDRESS value type. The parameter identifies the typerecurring event starting today and continuing indefinitely. Desruisseaux Expires December 24, 2006 [Page 64] Internet-Draft iCalendar June 2006 BEGIN:VTIMEZONE TZID:US-Eastern LAST-MODIFIED:19870101T000000Z TZURL:http://zones.example.com/tz/US-Eastern.ics BEGIN:STANDARD DTSTART:19671029T020000 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 TZOFFSETFROM:-0400 TZOFFSETTO:-0500 TZNAME:EST END:STANDARD BEGIN:DAYLIGHT DTSTART:19870405T020000 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4 TZOFFSETFROM:-0500 TZOFFSETTO:-0400 TZNAME:EDT END:DAYLIGHT END:VTIMEZONE This is an example showing a fictitious set ofcalendar user specified byrules for theproperty. If not specified on a property that allows this parameter,Eastern United States, where thedefaultDaylight Time rule has an effective end date (i.e., after that date, Daylight Time isINDIVIDUAL.no longer observed). BEGIN:VTIMEZONE TZID:US--Fictitious-Eastern LAST-MODIFIED:19870101T000000Z BEGIN:STANDARD DTSTART:19671029T020000 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 TZOFFSETFROM:-0400 TZOFFSETTO:-0500 TZNAME:EST END:STANDARD BEGIN:DAYLIGHT DTSTART:19870405T020000 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z TZOFFSETFROM:-0500 TZOFFSETTO:-0400 TZNAME:EDT END:DAYLIGHT END:VTIMEZONE Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page86]65] Internet-Draft iCalendarOctober 2005June 2006 This is an example showing a fictitious set of rules for the Eastern United States, where the first Daylight Time rule has an effective end date. There is a second Daylight Time rule that picks up where the other left off. BEGIN:VTIMEZONE TZID:US--Fictitious-Eastern LAST-MODIFIED:19870101T000000Z BEGIN:STANDARD DTSTART:19671029T020000 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 TZOFFSETFROM:-0400 TZOFFSETTO:-0500 TZNAME:EST END:STANDARD BEGIN:DAYLIGHT DTSTART:19870405T020000 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z TZOFFSETFROM:-0500 TZOFFSETTO:-0400 TZNAME:EDT END:DAYLIGHT BEGIN:DAYLIGHT DTSTART:19990424T020000 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=4 TZOFFSETFROM:-0500 TZOFFSETTO:-0400 TZNAME:EDT END:DAYLIGHT END:VTIMEZONE 3.6.6. Alarm Component Component Name: VALARM Purpose: Provide a grouping of component properties that define an alarm. Format Definition:The property parameterA "VALARM" calendar component is defined by the following notation:cutypeparamalarmc ="CUTYPE" "=" ("INDIVIDUAL" ; An individual"BEGIN" ":" "VALARM" CRLF (audioprop /"GROUP" ; A group of individualsdispprop /"RESOURCE" ; A physical resourceemailprop /"ROOM"procprop) "END" ":" "VALARM" CRLF audioprop = 2*( ;A room resource / "UNKNOWN"'action' and 'trigger' are both REQUIRED, Desruisseaux Expires December 24, 2006 [Page 66] Internet-Draft iCalendar June 2006 ;Otherwise not knownbut MUST NOT occur more than once action /x-name ; Experimental typetrigger /iana-token);Other IANA registered'duration' and 'repeat' are both optional, ;typeand MUST NOT occur more than once each, ;Default is INDIVIDUAL Example: ATTENDEE;CUTYPE=GROUP:MAILTO:ietf-calsch@imc.org 8.2.19. Directory Entry Reference Parameter Name: DIR Purpose: To specify reference to a directory entry associated withbut if one occurs, so MUST thecalendar user specified byother duration / repeat / ; theproperty. Description: This parameter can be specified on properties with a CAL-ADDRESS value type. The parameter specifies a reference tofollowing is optional, ; but MUST NOT occur more than once attach / ; thedirectory entry associated withfollowing is optional, ; and MAY occur more than once x-prop ) dispprop = 3*( ; thecalendar user specified byfollowing are all REQUIRED, ; but MUST NOT occur more than once action / description / trigger / ; 'duration' and 'repeat' are both optional, ; and MUST NOT occur more than once each, ; but if one occurs, so MUST theproperty. The parameter valueother duration / repeat / ; the following isa URI. The individual URI parameter valuesoptional, ; and MAY occur more than once x-prop ) emailprop = 5*( ; the following are all REQUIRED, ; but MUSTeach be specified in a quoted-string. Format Definition: The property parameterNOT occur more than once action / description / trigger / summary / Desruisseaux Expires December 24, 2006 [Page 67] Internet-Draft iCalendar June 2006 ; the following isdefined byREQUIRED, ; and MAY occur more than once attendee / ; 'duration' and 'repeat' are both optional, ; and MUST NOT occur more than once each, ; but if one occurs, so MUST the other duration / repeat / ; the followingnotation: dirparamare optional, ; and MAY occur more than once attach / x-prop ) procprop ="DIR" "=" DQUOTE uri DQUOTE Example: ORGANIZER;DIR="ldap://host.com:6666/o=eDABC%20Industries, c=3DUS??(cn=3DBJim%20Dolittle)":MAILTO:jimdo@host1.com 8.2.20. Recurrence ID Property Name: RECURRENCE-ID Purpose: This property3*( ; the following are all REQUIRED, ; but MUST NOT occur more than once action / attach / trigger / ; 'duration' and 'repeat' are both optional, ; and MUST NOT occur more than once each, ; but if one occurs, so MUST the other duration / repeat / ; 'description' isused in conjunction withoptional, ; and MUST NOT occur more than once description / ; the"UID"following is optional, ; and"SEQUENCE" property to identifyMAY occur more than once x-prop ) Description: A "VALARM" calendar component is aspecific instancegrouping of component properties that is arecurring "VEVENT", "VTODO"reminder or"VJOURNAL" calendar component. The propertyalarm for an event or a to-do. For example, it may be used to define a reminder for a pending event or an overdue to-do. Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page87]68] Internet-Draft iCalendarOctober 2005 value is the effective value of the "DTSTART" property ofJune 2006 The "VALARM" calendar component MUST include therecurrence instance. Value Type:"ACTION" and "TRIGGER" properties. Thedefault value type for this"ACTION" propertyis DATE-TIME. The time format can be any offurther constrains thevalid forms defined for a DATE-TIME value type. See DATE-TIME value type definition for specific interpretations of"VALARM" calendar component in thevarious forms. The value typefollowing ways: When the action is "AUDIO", the alarm canbe set to DATE. Property Parameters: Non-standard property, value data type, time zone identifieralso include one andrecurrence identifier range parameters can be specified on this property. Conformance: This property can be specified in an iCalendar object containing a recurring calendar component. Description: The full range of calendar components specified byonly one "ATTACH" property, which MUST point to arecurrence setsound resource, which isreferenced by referring to justrendered when the"UID" property value corresponding toalarm is triggered. When thecalendar component. The "RECURRENCE-ID" property allowsaction is "DISPLAY", thereference to an individual instance withinalarm MUST also include a "DESCRIPTION" property, which contains therecurrence set. Iftext to be displayed when thevalue ofalarm is triggered. When the"DTSTART" propertyaction isa DATE type value, then"EMAIL", thevaluealarm MUST include a "DESCRIPTION" property, which contains the text to be used as thecalendar date formessage body, a "SUMMARY" property, which contains therecurrence instance. The date/time value is settext to be used as thetime when the original recurrence instance would occur; meaning that ifmessage subject, and one or more "ATTENDEE" properties, which contain theintent isemail address of attendees tochange a Friday meetingreceive the message. It can also include one or more "ATTACH" properties, which are intended toThursday,be sent as message attachments. When thedate/timealarm isstill set totriggered, theoriginal Friday meeting. The "RECURRENCE-ID" propertyemail message isused in conjunction withsent. When the"UID"action is "PROCEDURE", the alarm MUST include one and"SEQUENCE" propertyonly one "ATTACH" property, which MUST point toidentify a particular instance of a recurring event, to-do or journal. For a given pair of "UID" and "SEQUENCE" property values, the "RECURRENCE-ID" value forarecurrence instanceprocedure resource, which isfixed. When the definition ofinvoked when therecurrence setalarm is triggered. The "VALARM" calendar component MUST only appear within either a "VEVENT" or "VTODO" calendar component. "VALARM" calendar components cannot be nested. Multiple mutually independent "VALARM" calendar components can be specified for a single "VEVENT" or "VTODO" calendarcomponent changes, and hence the "SEQUENCE"component. The "TRIGGER" propertyvalue changes,specifies when the"RECURRENCE-ID" foralarm will be triggered. The "TRIGGER" property specifies agiven recurrence instance might also change.The "RANGE" parameter is usedduration prior tospecifytheeffective rangestart ofrecurrence instances froman event or a to-do. The "TRIGGER" edge may be explicitly set to be relative to theinstance specified by"START" or "END" of the"RECURRENCE-ID" property value. The default value forevent or to-do with therange"RELATED" parameterisof thesingle recurrence instance only."TRIGGER" property. The "TRIGGER" property value type canalsoalternatively be"THISANDPRIOR"set toindicate a range defined by the given recurrence instancean absolute calendar date andall prior instancestime of day value. In an alarm set to trigger on the "START" of an event or to-do, thevalue can"DTSTART" property MUST be"THISANDFUTURE" to indicatepresent in the associated event or to-do. In an alarm in arange defined by"VEVENT" calendar component set to trigger on thegiven recurrence instance"END" of the event, either the "DTEND" property MUST be present, or the "DTSTART" andall subsequent instances."DURATION" properties MUST both be present. In an alarm in a "VTODO" calendar component set to trigger on the "END" of the to-do, either the "DUE" property MUST be present, or the "DTSTART" and "DURATION" properties MUST both be present. Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page88]69] Internet-Draft iCalendarOctober 2005 Format Definition:June 2006 Theproperty isalarm can be definedby the following notation: recurid = "RECURRENCE-ID" ridparam ":" ridval CRLF ridparam = *( ; the following are optional, ; butsuch that it triggers repeatedly. A definition of an alarm with a repeating trigger MUSTNOT occur more than once (";" "VALUE" "=" ("DATE-TIME" / "DATE)) / (";" tzidparam) / (";" rangeparam) / ;include both thefollowing is optional, ;"DURATION" andMAY occur more than once (";" xparam) ) ridval = date-time / date ;Value MUST match value type Example: The following are examples of this property: RECURRENCE-ID;VALUE=DATE:19960401 RECURRENCE-ID;RANGE=THISANDFUTURE:19960120T120000Z Figure 135 8.2.21. Related To Property Name: RELATED-TO Purpose:"REPEAT" properties. The "DURATION" propertyis used to represent a relationship or reference between one calendar component and another. Value Type: TEXT Property Parameters: Non-standard and relationship type property parameters can be specified on this property. Conformance:specifies the delay period, after which the alarm will repeat. The "REPEAT" propertycanspecifies the number of additional repetitions that the alarm will bespecified one or more timestriggered. This repetition count is in addition to the"VEVENT", "VTODO" or "VJOURNAL" calendar components. Description: The property value consistsinitial triggering of thepersistent, globally unique identifieralarm. Both ofanother calendar component. This value wouldthese properties MUST berepresentedpresent ina calendar component by the "UID" property. Desruisseaux & Stoner Expires April 14, 2006 [Page 89] Internet-Draft iCalendar October 2005 By default, the property value pointsorder toanother calendar component that hasspecify aPARENT relationship torepeating alarm. If one of these two properties is absent, then thereferencing object.alarm will not repeat beyond the initial trigger. The"RELTYPE""ACTION" propertyparameteris usedto either explicitly state the default PARENT relationship type towithin thereferenced"VALARM" calendar componentortooverridespecify thedefault PARENT relationshiptypeand specify either a CHILD or SIBLING relationship. The PARENT relationship indicates thatof action invoked when thecalendar componentalarm is triggered. The "VALARM" properties provide enough information for asubordinatespecific action to be invoked. It is typically the responsibility of a "Calendar User Agent" (CUA) to deliver thereferenced calendar component. The CHILD relationship indicates thatalarm in thecalendar component is a superiorspecified fashion. An "ACTION" property value ofthe referenced calendar component. The SIBLING relationship indicatesAUDIO specifies an alarm that causes a sound to be played to alert thecalendar component isuser; DISPLAY specifies an alarm that causes apeer oftext message to be displayed to thereferenced calendar component. Changesuser; EMAIL specifies an alarm that causes an electronic email message to be delivered to one or more email addresses; and PROCEDURE specifies an alarm that causes acalendar component referenced by thisprocedure to be executed. The "ACTION" propertycan haveMUST specify one and only one of these values. In animplicit impact on the related calendar component. For example,AUDIO alarm, ifa group event changes its start or end date or time, thentherelated, dependent events will need to have their start and end dates changed in a corresponding way. Similarly, if a PARENT calendar component is canceled or deleted, then thereoptional "ATTACH" property is included, it MUST specify animplied impact toaudio sound resource. The intention is that therelated CHILD calendar components. Thissound will be played as the alarm effect. If an "ATTACH" property isintended onlyspecified that does not refer toprovide information ona sound resource, or if therelationship of calendar components. Itspecified sound resource cannot be rendered (because its format isup tounsupported, or because it cannot be retrieved), then thetarget calendar system to maintain any property implications of this relationship. Format Definition: The property is defined byCUA or other entity responsible for playing thefollowing notation: related = "RELATED-TO" [relparam] ":" text CRLF relparam = *( ;sound may choose a fallback action, such as playing a built-in default sound, or playing no sound at all. In a DISPLAY alarm, thefollowingintended alarm effect isoptional, ; but MUST NOT occur more than once (";" reltypeparam) / ;for thefollowing is optional, ; and MAY occur more than once (";" xparm) ) Desruisseaux & Stoner Expires April 14, 2006 [Page 90] Internet-Draft iCalendar October 2005 The following is an exampletext value ofthis property: RELATED-TO:jsmith.part7.19960817T083000.xyzMail@host3.com RELATED-TO:19960401-080045-4000F192713-0052@host1.com Figure 137 8.2.22. Uniform Resource Locator Property Name: URL Purpose: This property defines a Uniform Resource Locator (URL) associated withtheiCalendar object. Value Type: URI Property Parameters: Non-standard"DESCRIPTION" propertyparameters canto bespecified on this property. Conformance: This property candisplayed to the user. In an EMAIL alarm, the intended alarm effect is for an email message to be composed and delivered to all the addresses specifiedonceby the "ATTENDEE" properties in the"VEVENT", "VTODO", "VJOURNAL" or "VFREEBUSY""VALARM" calendarcomponents. Description: Thiscomponent. The "DESCRIPTION" propertymay be used in a calendar component to convey a location where a more dynamic renditionof thecalendar information associated with the"VALARM" calendar componentcanMUST befound. This memo does not attempt to standardize the form of the URI, norused as theformatbody text of theresource pointed to by the property value. Ifmessage, and theURL"SUMMARY" propertyand Content-Location MIME header are both specified, theyMUSTpoint tobe used as thesame resource. Format Definition: The property is defined bysubject text. Any "ATTACH" properties in thefollowing notation: url = "URL" urlparam ":" uri CRLF urlparam = *(";" xparam) Example: The following is an example of this property: URL:http://abc.com/pub/calendars/jsmith/mytime.ics Figure 139 8.2.23. Unique Identifier Property Name: UID Purpose: This property defines"VALARM" calendar component SHOULD be sent as attachments to thepersistent, globally uniquemessage. Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page91]70] Internet-Draft iCalendarOctober 2005 identifier forJune 2006 In a PROCEDURE alarm, thecalendar component. Value Type: TEXT Property Parameters: Non-standard property parameters can be specified on this property. Conformance: The"ATTACH" propertyMUST be specifiedin the"VEVENT", "VTODO", "VJOURNAL" or "VFREEBUSY""VALARM" calendarcomponents. Description: The UID itselfcomponent MUSTbespecify aglobally unique identifier. The generator of the identifier MUST guarantee that the identifier is unique. There are several algorithmsprocedure or program thatcan be used to accomplish this. The identifierisRECOMMENDEDintended to be invoked as theidentical syntax toalarm effect. If the[RFC 822] addr-spec. A good method to assure uniqueness is to put the domain nameprocedure ora domain literal IP address of the host on which the identifier was created on the right hand side of the "@", and on the left hand side, put a combination of the current calendar date and time of day (i.e., formattedprogram is inasaDATE-TIME value) along with some other currently unique (perhaps sequential) identifier available onformat that cannot be rendered, then no procedure alarm will be invoked. If thesystem (for example, a process id number). Using a date/time"DESCRIPTION" property is present, its valueon the left hand side and a domain name or domain literal onspecifies theright hand side makes it possibleargument string toguarantee uniqueness since no two hosts shouldbeusingpassed to thesame domain nameprocedure orIP address at the same time. Though other algorithms will work, it is RECOMMENDEDprogram. "Calendar User Agents" thatthe right hand side contain some domain identifier (eitherreceive an iCalendar object with this category ofthe host itselfalarm, can disable orotherwise) such thatallow thegenerator"Calendar User" to disable, or otherwise ignore this type of alarm. While a very useful alarm capability, themessage identifier can guarantee the uniquenessPROCEDURE type of alarm SHOULD be treated by theleft hand side within the scope of that domain. This"Calendar User Agent" as a potential security risk. Example: The following example isthe methodforcorrelating scheduling messages with the referenced "VEVENT", "VTODO", or "VJOURNAL"a "VALARM" calendarcomponent.component that specifies an audio alarm that will sound at a precise time and repeat 4 more times at 15 minute intervals: BEGIN:VALARM TRIGGER;VALUE=DATE-TIME:19970317T133000Z REPEAT:4 DURATION:PT15M ACTION:AUDIO ATTACH;FMTTYPE=audio/basic:ftp://host.com/pub/sounds/bell-01.aud END:VALARM Thefull range offollowing example is for a "VALARM" calendarcomponents specified bycomponent that specifies arecurrence set is referenced by referring to justdisplay alarm that will trigger 30 minutes before the"UID" property value corresponding toscheduled start of thecalendar component. The "RECURRENCE-ID" property allowsevent or thereference to an individual instance withindue date/time of therecurrence set. This propertyto-do it isan important method for group scheduling applications to match requestsassociated withlater replies, modifications or deletion requests. Calendaring and scheduling applications MUST generate this property in "VEVENT", "VTODO"and"VJOURNAL" calendar components to assure interoperabilitywill repeat 2 more times at 15 minute intervals: BEGIN:VALARM TRIGGER:-PT30M REPEAT:2 DURATION:PT15M ACTION:DISPLAY DESCRIPTION:Breakfast meeting withother group scheduling applications. This identifierexecutive\n team at 8:30 AM EST. END:VALARM The following example iscreated by thefor a "VALARM" calendarsystemcomponent thatgeneratesspecifies aniCalendar object. Implementations MUST be able to receive and persist valuesemail alarm that will trigger 2 days before the scheduled due date/time ofata to-do it is associated with. It does not repeat. The email has a subject, body and attachment link. Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page92]71] Internet-Draft iCalendarOctober 2005 least 255 characters for this property. Format Definition: The propertyJune 2006 BEGIN:VALARM TRIGGER:-P2D ACTION:EMAIL ATTENDEE:MAILTO:john_doe@host.com SUMMARY:*** REMINDER: SEND AGENDA FOR WEEKLY STAFF MEETING *** DESCRIPTION:A draft agenda needs to be sent out to the attendees to the weekly managers meeting (MGR-LIST). Attached isdefined bya pointer thefollowing notation: uid = "UID" uidparam ":" text CRLF uidparam = *(";" xparam) Example:document template for the agenda file. ATTACH;FMTTYPE=application/msword:http://host.com/templates/agen da.doc END:VALARM The followingis anexampleof this property: UID:19960401T080045Z-4000F192713-0052@host1.com Figure 141 8.2.24. Relationship Type Parameteris for a "VALARM" calendar component that specifies a procedural alarm that will trigger at a precise date/ time and will repeat 23 more times at one hour intervals. The alarm will invoke a procedure file. BEGIN:VALARM TRIGGER;VALUE=DATE-TIME:19980101T050000Z REPEAT:23 DURATION:PT1H ACTION:PROCEDURE ATTACH;FMTTYPE=application/octet-stream:ftp://host.com/novo- procs/felizano.exe END:VALARM 3.7. Calendar Properties The Calendar Properties are attributes that apply to the iCalendar object, as a whole. These properties do not appear within a calendar component. They SHOULD be specified after the "BEGIN:VCALENDAR" delimiter string and prior to any calendar component. 3.7.1. Calendar Scale Property Name:RELTYPECALSCALE Purpose:To specifyThis property defines thetype of hierarchical relationship associated withcalendar scale used for the calendarcomponentinformation specifiedbyin theproperty. Description: This parameteriCalendar object. Value Type: TEXT Property Parameters: Non-standard property parameters can be specified ona property that references another related calendar. The parameter specifies the hierarchical relationship type of the calendar component referenced by thethis property.The parameter valueDesruisseaux Expires December 24, 2006 [Page 72] Internet-Draft iCalendar June 2006 Conformance: Property can bePARENT, to indicate that the referenced calendar componentspecified in an iCalendar object. The default value isa superior of calendar component; CHILD to indicate that the referenced calendar component"GREGORIAN". Description: This memo isa subordinate ofbased on the Gregorian calendarcomponent; SIBLING to indicate that the referencedscale. The Gregorian calendarcomponentscale isa peer of the calendar component. Ifassumed if thisparameterproperty is not specifiedon an allowable property,in thedefault relationship typeiCalendar object. It isPARENT.expected that other calendar scales will be defined in other specifications or by future versions of this memo. Format Definition: The propertyparameteris defined by the following notation:reltypeparamcalscale ="RELTYPE" "=" ("PARENT" ; Parent relationship. Default. / "CHILD" ; Child relationship / "SIBLING ; Sibling relationship"CALSCALE" calparam ":" calvalue CRLF calparam = *(";" xparam) calvalue = "GREGORIAN" / iana-token; Some other IANA registered ; iCalendar relationship type / x-name) ; A non-standard, experimental ; relationship type Desruisseaux & Stoner Expires April 14, 2006 [Page 93] Internet-Draft iCalendar October 2005Example:RELATED-TO;RELTYPE=SIBLING:<19960401-080045-4000F192713 @host.com> Figure 143 8.3. Recurrence Component PropertiesThe followingproperties specify recurrence information in calendar components. 8.3.1. Exception Date/Timesis an example of this property: CALSCALE:GREGORIAN 3.7.2. Method Property Name:EXDATEMETHOD Purpose: This property defines thelist of date/time exceptions for a recurringiCalendar object method associated with the calendarcomponent.object. Value Type:The default value type for this property is DATE-TIME. The value type can be set to DATE.TEXT Property Parameters:Non-standard, value data type and time zone identifierNon-standard property parameters can be specified on this property. Conformance:ThisThe property can be specified in an iCalendarobject that includes a recurring calendar component.object. Description:The exception dates, if specified, areWhen used incomputing the recurrence set. The recurrence set is the complete set of recurrence instances foracalendar component. The recurrence set is generated by consideringMIME message entity, theinitial "DTSTART"value of this propertyalong withMUST be the"RRULE", "RDATE", "EXDATE" and "EXRULE" properties containedsame as the Content-Type "method" parameter value. This property can only appear once within the iCalendar object.The "DTSTART" property definesIf either thefirst instance in"METHOD" property or therecurrence set. Multiple instances ofContent-Type "method" parameter is specified, then the"RRULE" and "EXRULE" properties canother MUST also bespecified to define more sophisticated recurrence sets. The final recurrence set is generatedspecified. No methods are defined bygathering all ofthis specification. This is thestart date-times generated by anysubject of other specifications, such as thespecified "RRULE" and "RDATE" properties, and then excluding any start date and times which fall within the union of start date and times generated by any specified "EXRULE" and "EXDATE" properties. This implies that start date and times within exclusion related properties (i.e., "EXDATE" and "EXRULE") take precedence over those specified by inclusion properties (i.e., "RDATE" and "RRULE"). Where duplicate instances are generatediCalendar Transport- independent Interoperability Protocol (iTIP) defined bythe "RRULE" and "RDATE" properties, only one recurrence is considered. Duplicate instances[I-D.ietf- calsify-2446bis]. Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page94]73] Internet-Draft iCalendarOctober 2005 are ignored. The "EXDATE"June 2006 If this propertycan be used to exclude the value specified in "DTSTART". However,is not present insuch casestheoriginal "DTSTART" dateiCalendar object, then a scheduling transaction MUSTstillNOT bemaintained by the calendaring and scheduling system because the original "DTSTART" value has inherent usage dependencies by other propertiesassumed. In suchascases, the"RECURRENCE-ID".iCalendar object is merely being used to transport a snapshot of some calendar information; without the intention of conveying a scheduling semantic. Format Definition: The property is defined by the following notation:exdatemethod ="EXDATE" exdtparam"METHOD" metparam ":"exdtval *("," exdtval)metvalue CRLFexdtparammetparam =*( ; the following are optional, ; but MUST NOT occur more than once (";" "VALUE" "=" ("DATE-TIME" / "DATE")) / (";" tzidparam) / ; the following is optional, ; and MAY occur more than once (";"*(";" xparam)) exdtvalmetvalue =date-time / date ;Value MUST match value typeiana-token Example: The following isana hypothetical example of thisproperty: EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z Figure 145 8.3.2. Exception Ruleproperty to convey that the iCalendar object is a request for a meeting: METHOD:REQUEST 3.7.3. Product Identifier Property Name:EXRULEPRODID Purpose: This propertydefines a rule or repeating patternspecifies the identifier foran exception to a recurrence set.the product that created the iCalendar object. Value Type:RECURTEXT Property Parameters: Non-standard property parameters can beDesruisseaux & Stoner Expires April 14, 2006 [Page 95] Internet-Draft iCalendar October 2005specified on this property. Conformance:ThisThe propertycanMUST be specified once in"VEVENT", "VTODO" or "VJOURNAL" calendar components.an iCalendar object. Description: Theexception rule, if specified, is used in computingvendor of therecurrence set. The recurrence setimplementation SHOULD assure that this isthe complete set of recurrence instances foracalendar component. The recurrence set is generated by considering the initial "DTSTART"globally unique identifier; using some technique such as an FPI value, as defined in [ISO.9070.1991]. This propertyalong with the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained withinSHOULD not be used to alter the interpretation of an iCalendarobject. The "DTSTART" definesobject beyond thefirst instancesemantics specified inthe recurrence set. Multiple instances of the "RRULE" and "EXRULE" properties can alsothis memo. For example, it is not to bespecifiedused todefine more sophisticated recurrence sets.further the understanding of non- standard properties. Format Definition: Thefinal recurrence setproperty isgenerateddefined bygathering all ofthestart date-times generated by any offollowing notation: Desruisseaux Expires December 24, 2006 [Page 74] Internet-Draft iCalendar June 2006 prodid = "PRODID" pidparam ":" pidvalue CRLF pidparam = *(";" xparam) pidvalue = text ;Any text that describes thespecified "RRULE" and "RDATE" properties,product andexcluding any start date and times which fall within the unionversion ;and that is generally assured ofstart date and times generated by any specified "EXRULE" and "EXDATE" properties. This impliesbeing unique. Example: The following is an example of this property. It does not imply thatstart date and times within exclusion related properties (i.e., "EXDATE" and "EXRULE") take precedence over those specified by inclusion properties (i.e., "RDATE" and "RRULE"). Where duplicate instances are generated byEnglish is the"RRULE"default language. PRODID:-//ABC Corporation//NONSGML My Product//EN 3.7.4. Version Property Name: VERSION Purpose: This property specifies the identifier corresponding to the highest version number or the minimum and"RDATE" properties, only one recurrencemaximum range of the iCalendar specification that isconsidered. Duplicate instances are ignored. The "EXRULE"required in order to interpret the iCalendar object. Value Type: TEXT Property Parameters: Non-standard property parameters can beused to exclude the valuespecifiedin "DTSTART". However, in such cases the original "DTSTART" dateon this property. Conformance: This property MUSTstillbemaintainedspecified bythe calendaring and scheduling system because the original "DTSTART"an iCalendar object, but MUST only be specified once. Description: A valuehas inherent usage dependencies by other properties such as the "RECURRENCE-ID".of "2.0" corresponds to this memo. Format Definition: The property is defined by the following notation:exruleversion ="EXRULE" exrparam"VERSION" verparam ":"recurvervalue CRLFexrparamverparam = *(";" xparam)Example: The following are examples of this property. Except every other week, on Tuesday and Thursday for 4 occurrences: EXRULE:FREQ=WEEKLY;COUNT=4;INTERVAL=2;BYDAY=TU,TH Figure 147vervalue = "2.0" ;This memo / maxver / (minver ";" maxver) minver = <A IANA registered iCalendar version identifier> ;Minimum iCalendar version needed to parse the iCalendar object maxver = <A IANA registered iCalendar version identifier> ;Maximum iCalendar version needed to parse the iCalendar object Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page96]75] Internet-Draft iCalendarOctober 2005 Except daily for 10 occurrences: EXRULE:FREQ=DAILY;COUNT=10 Except yearly inJuneand July for 8 occurrences: EXRULE:FREQ=YEARLY;COUNT=8;BYMONTH=6,7 8.3.3. Recurrence Date/Times2006 Example: The following is an example of this property: VERSION:2.0 3.8. Component Properties The following properties can appear within calendar components, as specified by each component property definition. 3.8.1. Descriptive Component Properties The following properties specify descriptive information about calendar components. 3.8.1.1. Attachment Property Name:RDATEATTACH Purpose:ThisThe propertydefinesprovides thelist of date/times forcapability to associate arecurrence set.document object with a calendar component. Value Type: The default value type for this property isDATE-TIME.URI. The value type can also be set toDATE or PERIOD.BINARY to indicate inline binary encoded content information. Property Parameters: Non-standard, inline encoding, format type and value data typeand time zone identifierproperty parameters can be specified on this property. Conformance: The property can be specified in a "VEVENT", "VTODO", "VJOURNAL" or"VTIMEZONE""VALARM" calendar components. Description:ThisThe property canappear along with the "RRULE"be specified within "VEVENT", "VTODO", "VJOURNAL", or "VALARM" calendar components. This propertyto define an aggregate set of repeating occurrences. When they both appear incan be specified multiple times within an iCalendarobject, the recurring events areobject. Format Definition: The property is defined by theunion of occurrences defined by bothfollowing notation: Desruisseaux Expires December 24, 2006 [Page 76] Internet-Draft iCalendar June 2006 attach = "ATTACH" attparam ":" uri CRLF attach =/ "ATTACH" attparam ";" "ENCODING" "=" "BASE64" ";" "VALUE" "=" "BINARY" ":" binary attparam = *( ; the"RDATE"following is optional, ; but MUST NOT occur more than once (";" fmttypeparam) / ; the following is optional, ; and"RRULE".MAY occur more than once (";" xparam) ) Example: Therecurrence dates, if specified,following areused in computing the recurrence set. The recurrence set is the complete setexamples ofrecurrence instancesthis property: ATTACH:CID:jsmith.part3.960817T083000.xyzMail@host1.com ATTACH;FMTTYPE=application/postscript:ftp://xyzCorp.com/pub/ reports/r-960812.ps 3.8.1.2. Categories Property Name: CATEGORIES Purpose: This property defines the categories for a calendar component.The recurrence set is generated by considering the initial "DTSTART" property along with the "RRULE", "RDATE", "EXDATE"Value Type: TEXT Property Parameters: Non-standard and"EXRULE" properties contained within the iCalendar object. The "DTSTART"language propertydefines the first instance in the recurrence set. Multiple instances of the "RRULE" and "EXRULE" propertiesparameters canalsobe specifiedto define more sophisticated recurrence sets.on this property. Conformance: Thefinal recurrence setproperty can be specified within "VEVENT", "VTODO" or "VJOURNAL" calendar components. Description: This property isgenerated by gathering allused to specify categories or subtypes of thestart date/times generated by anycalendar component. The categories are useful in searching for a calendar component ofthe specified "RRULE" and "RDATE" properties,a particular type andexcluding any start date/times which fall withincategory. Within theunion of start date/times generated by any specified "EXRULE" and "EXDATE" properties. This implies that start date/times within exclusion related properties (i.e., "EXDATE" and "EXRULE") take precedence over those"VEVENT", "VTODO" or "VJOURNAL" calendar components, more than one category can be specifiedby inclusion properties (i.e., "RDATE" and "RRULE"). Where duplicate instances are generatedas a list of categories separated by the"RRULE" and "RDATE" properties, only one recurrence is considered. Duplicate instances are ignored.COMMA character (US-ASCII decimal 44). Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page97]77] Internet-Draft iCalendarOctober 2005June 2006 Format Definition: The property is defined by the following notation:rdatecategories ="RDATE" rdtparam"CATEGORIES" catparam ":"rdtvaltext *(","rdtval)text) CRLFrdtparamcatparam = *( ; the followingareis optional, ; but MUST NOT occur more than once (";""VALUE" "=" ("DATE-TIME" / "DATE" / "PERIOD")) / (";" tzidparam)languageparam ) / ; the following is optional, ; and MAY occur more than once (";" xparam) )rdtval = date-time / date / period ;Value MUST match value typeExample: The following are examples of this property:RDATE:19970714T123000Z RDATE;TZID=US-EASTERN:19970714T083000 RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z, 19960404T010000Z/PT3H RDATE;VALUE=DATE:19970101,19970120,19970217,19970421 19970526,19970704,19970901,19971014,19971128,19971129,19971225 Figure 151 8.3.4. Recurrence Identifier Range ParameterCATEGORIES:APPOINTMENT,EDUCATION CATEGORIES:MEETING 3.8.1.3. Classification Property Name:RANGECLASS Purpose:To specify the effective range of recurrence instances from the instance specified byThis property defines therecurrence identifieraccess classification for a calendar component. Value Type: TEXT Property Parameters: Non-standard property parameters can be specifiedby theon this property.Description:Conformance: Theparameterproperty can be specifiedononce in aproperty that specifies"VEVENT", "VTODO" or "VJOURNAL" calendar components. Description: An access classification is only one component of the general security system within arecurrence identifier. The parameter specifiescalendar application. It provides a method of capturing theeffective rangescope ofrecurrence instances thatthe access the calendar owner intends for information within an individual calendar entry. The access classification of an individual iCalendar component isspecified byuseful when measured along with the other security components of a calendar system (e.g., calendar user authentication, authorization, access rights, access role, etc.). Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page98]78] Internet-Draft iCalendarOctober 2005 property. The effective range is from the recurrence identified specified by the property. If this parameter is not specified an allowed property, then the default range is the single instance specified byJune 2006 Hence, therecurrence identifier valuesemantics of theproperty. The parameter value canindividual access classifications cannot be"THISANDPRIOR" to indicate a rangecompletely defined by this memo alone. Additionally, due to therecurrence identified value"blind" nature ofthe property and all prior instances. The parameter value can also be "THISANDFUTURE" to indicatemost exchange processes using this memo, these access classifications cannot serve as an enforcement statement for arangesystem receiving an iCalendar object. Rather, they provide a method for capturing the intention of the calendar owner for the access to the calendar component. Format Definition: The property is defined by therecurrence identifierfollowing notation: class = "CLASS" classparam ":" classvalue CRLF classparam = *(";" xparam) classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token / x-name ;Default is PUBLIC Example: The following is an example of this property: CLASS:PUBLIC 3.8.1.4. Comment Property Name: COMMENT Purpose: This property specifies non-processing information intended to provide a comment to the calendar user. Value Type: TEXT Property Parameters: Non-standard, alternate text representation andall subsequent instances.language property parameters can be specified on this property. Conformance: This property can be specified in "VEVENT", "VTODO", "VJOURNAL", "VTIMEZONE" or "VFREEBUSY" calendar components. Description: The property can be specified multiple times. Format Definition: The propertyparameteris defined by the followingrangeparamnotation: Desruisseaux Expires December 24, 2006 [Page 79] Internet-Draft iCalendar June 2006 comment ="RANGE" "=" ("THISANDPRIOR""COMMENT" commparam ":" text CRLF commparam = *( ;To specify all instances prior totherecurrence identifierfollowing are optional, ; but MUST NOT occur more than once (";" altrepparam) / (";" languageparam) /"THISANDFUTURE");To specify the instance specified bytherecurrence identifierfollowing is optional, ; andall subsequent recurrence instancesMAY occur more than once (";" xparam) ) Example:RECURRENCE-ID;RANGE=THISANDPRIOR:19980401T133000Z Figure 153 8.3.5. Recurrence RuleThe following is an example of this property: COMMENT:The meeting really needs to include both ourselves and the customer. We can't hold this meeting without them. As a matter of fact\, the venue for the meeting ought to be at their site. - - John 3.8.1.5. Description Property Name:RRULEDESCRIPTION Purpose: This propertydefinesprovides arule or repeating pattern for recurring events, to-dos, or time zone definitions.more complete description of the calendar component, than that provided by the "SUMMARY" property. Value Type:RECURTEXT Property Parameters:Non-standardNon-standard, alternate text representation and language property parameters can be specified on this property. Conformance:ThisThe property can be specifiedone or more timesinrecurringthe "VEVENT","VTODO" and"VTODO", "VJOURNAL" or "VALARM" calendar components.ItThe property canalsobe specifiedonce in each STANDARD or DAYLIGHT sub-component of the "VTIMEZONE"multiple times only within a "VJOURNAL" calendar component. Description:The recurrence rule, if specified,This property is used incomputing the recurrence set. The recurrence set is the complete set of recurrence instances for a calendar component. The recurrence set is generated by considering the initial "DTSTART" property along withthe"RRULE", "RDATE", "EXDATE""VEVENT" and"EXRULE" properties contained within"VTODO" to capture lengthy textual decriptions associated with theiCalendar object. The "DTSTART"activity. This propertydefines the first instanceis used in therecurrence set. Multiple instances of the"VJOURNAL" calendar component to capture one more textual journal entries. Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page99]80] Internet-Draft iCalendarOctober 2005 "RRULE" and "EXRULE" properties can also be specified to define more sophisticated recurrence sets. The final recurrence setJune 2006 This property isgenerated by gathering all ofused in thestart date/times generated by any"VALARM" calendar component to capture the display text for a DISPLAY category of alarm, to capture thespecified "RRULE" and "RDATE" properties,body text for an EMAIL category of alarm andexcluding any start date/times which fall withinto capture theunion of start date/times generated by any specified "EXRULE" and "EXDATE" properties. This implies that start date/times within exclusion related properties (i.e., "EXDATE" and "EXRULE") take precedence over those specifiedargument string for a PROCEDURE category of alarm. Format Definition: The property is defined byinclusion properties (i.e., "RDATE" and "RRULE"). Where duplicate instancesthe following notation: description = "DESCRIPTION" descparam ":" text CRLF descparam = *( ; the following aregenerated byoptional, ; but MUST NOT occur more than once (";" altrepparam) / (";" languageparam) / ; the"RRULE"following is optional, ; and"RDATE" properties, only one recurrenceMAY occur more than once (";" xparam) ) Example: The following isconsidered. Duplicate instances are ignored.an example of the property with formatted line breaks in the property value: DESCRIPTION:Meeting to provide technical review for "Phoenix" design.\n Happy Face Conference Room. Phoenix design team MUST attend this meeting.\n RSVP to team leader. The"DTSTART" and "DTEND"following is an example of the propertypair or "DTSTART" and "DURATION"with folding of long lines: DESCRIPTION:Last draft of the new novel is to be completed for the editor's proof today. 3.8.1.6. Geographic Position Property Name: GEO Purpose: This propertypair, specified withinspecifies information related to the global position for the activity specified by a calendar component. Value Type: FLOAT. The value MUST be two SEMICOLON separated FLOAT values. Desruisseaux Expires December 24, 2006 [Page 81] Internet-Draft iCalendarobject definesJune 2006 Property Parameters: Non-standard property parameters can be specified on this property. Conformance: This property can be specified in "VEVENT" or "VTODO" calendar components. Description: The property value specifies latitude and longitude, in that order (i.e., "LAT LON" ordering). The longitude represents thefirst instancelocation east or west of therecurrence. When used withprime meridian as arecurrence rule, the "DTSTART"positive or negative real number, respectively. The longitude and"DTEND" properties MUSTlatitude values MAY be specifiedin local timeup to six decimal places, which will allow for accuracy to within one meter of geographical position. Receiving applications MUST accept values of this precision and MAY truncate values of greater precision. Values for latitude and longitude shall be expressed as decimal fractions of degrees. Whole degrees of latitude shall be represented by a two-digit decimal number ranging from 0 through 90. Whole degrees of longitude shall be represented by a decimal number ranging from 0 through 180. When a decimal fraction of a degree is specified, it shall be separated from theappropriate setwhole number of"VTIMEZONE" calendar components MUSTdegrees by a decimal point. Latitudes north of the equator shall beincluded. For detail onspecified by a plus sign (+), or by theusageabsence of a minus sign (-), preceding the"VTIMEZONE" calendar component, seedigits designating degrees. Latitudes south of the"VTIMEZONE" calendar component definition. Any duration associated withEquator shall be designated by a minus sign (-) preceding theiCalendar object appliesdigits designating degrees. A point on the Equator shall be assigned toall membersthe Northern Hemisphere. Longitudes east of thegenerated recurrence set. Any modified duration for specific recurrences MUSTprime meridian shall beexplicitlyspecifiedusing the "RDATE" property. Format Definition: This property is definedby a plus sign (+), or by thefollowing notation: rrule = "RRULE" rrulparam ":" recur CRLF rrulparam = *(";" xparam) Example: All examples assumeabsence of a minus sign (-), preceding theEastern United States time zone. Daily for 10 occurrences: DTSTART;TZID=US-Eastern:19970902T090000 RRULE:FREQ=DAILY;COUNT=10 ==> (1997 9:00 AM EDT)September 2-11 Daily until December 24, 1997: DTSTART;TZID=US-Eastern:19970902T090000 RRULE:FREQ=DAILY;UNTIL=19971224T000000Z ==> (1997 9:00 AM EDT)September 2-30;October 1-25 Desruisseaux & Stoner Expires April 14, 2006 [Page 100] Internet-Draft iCalendar October 2005 (1997 9:00 AM EST)October 26-31;November 1-30;December 1-23 Every other day - forever: DTSTART;TZID=US-Eastern:19970902T090000 RRULE:FREQ=DAILY;INTERVAL=2 ==> (1997 9:00 AM EDT)September2,4,6,8...24,26,28,30; October 2,4,6...20,22,24 (1997 9:00 AM EST)October 26,28,30;November 1,3,5,7...25,27,29; Dec 1,3,... Every 10 days, 5 occurrences: DTSTART;TZID=US-Eastern:19970902T090000 RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5 ==> (1997 9:00 AM EDT)September 2,12,22; October 2,12 Everyday in January, for 3 years: DTSTART;TZID=US-Eastern:19980101T090000 RRULE:FREQ=YEARLY;UNTIL=20000131T090000Z; BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA or RRULE:FREQ=DAILY;UNTIL=20000131T090000Z; BYMONTH=1 ==> (1998 9:00 AM EDT)January 1-31 (1999 9:00 AM EDT)January 1-31 (2000 9:00 AM EDT)January 1-31 Weekly for 10 occurrences DTSTART;TZID=US-Eastern:19970902T090000 RRULE:FREQ=WEEKLY;COUNT=10 ==> (1997 9:00 AM EDT)September 2,9,16,23,30; October 7,14,21 (1997 9:00 AM EST)October 28;November 4 Desruisseaux & Stoner Expires April 14, 2006 [Page 101] Internet-Draft iCalendar October 2005 Weekly until December 24, 1997 DTSTART;TZID=US-Eastern:19970902T090000 RRULE:FREQ=WEEKLY;UNTIL=19971224T000000Z ==> (1997 9:00 AM EDT)September 2,9,16,23,30; October 7,14,21(1997 9:00 AM EST)October 28; November 4,11,18,25; December 2,9,16,23 Every other week - forever: DTSTART;TZID=US-Eastern:19970902T090000 RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=SU ==> (1997 9:00 AM EDT)September 2,16,30;October 14 (1997 9:00 AM EST)October 28;November 11,25; December 9,23(1998 9:00 AM EST)January 6,20;February ... Weekly on Tuesday and Thursday for 5 weeks: DTSTART;TZID=US-Eastern:19970902T090000 RRULE:FREQ=WEEKLY;UNTIL=19971007T000000Z; WKST=SU;BYDAY=TU,TH or RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH ==> (1997 9:00 AM EDT)September 2,4,9,11,16,18,23,25,30; October 2 Every other week on Monday, Wednesday and Friday until December 24, 1997, but starting on Tuesday, September 2, 1997: DTSTART;TZID=US-Eastern:19970902T090000 RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z; WKST=SU;BYDAY=MO,WE,FR ==> (1997 9:00 AM EDT)September 2,3,5,15,17,19,29;October 1,3,13,15,17 (1997 9:00 AM EST)October 27,29,31; November 10,12,14,24,26,28; December 8,10,12,22 Desruisseaux & Stoner Expires April 14, 2006 [Page 102] Internet-Draft iCalendar October 2005 Every other week on Tuesday and Thursday, for 8 occurrences: DTSTART;TZID=US-Eastern:19970902T090000 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU; BYDAY=TU,TH ==> (1997 9:00 AM EDT)September 2,4,16,18,30; October 2,14,16 Monthly ondigits designating degrees. Longitudes west of the1st Friday for ten occurrences: DTSTART;TZID=US-Eastern:19970905T090000 RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR ==> (1997 9:00 AM EDT)September 5;October 3 (1997 9:00 AM EST)November 7;Dec 5 (1998 9:00 AM EST)January 2;February 6; March 6;April 3 (1998 9:00 AM EDT)May 1;June 5 Monthlymeridian shall be designated by minus sign (-) preceding the digits designating degrees. A point on the1st Friday until December 24, 1997: DTSTART;TZID=US-Eastern:19970905T090000 RRULE:FREQ=MONTHLY;UNTIL=19971224T000000Z; BYDAY=1FR ==> (1997 9:00 AM EDT)September 5;October 3 (1997 9:00 AM EST)November 7;December 5 Every other monthprime meridian shall be assigned to the Eastern Hemisphere. A point on the1st and180th meridian shall be assigned to the Western Hemisphere. One exception to this lastSundayconvention is permitted. For the special condition of describing a band of latitude around themonthearth, the East Bounding Coordinate data element shall be assigned the value +180 (180) degrees. Any spatial address with a latitude of +90 (90) or -90 degrees will specify the position at the North or South Pole, respectively. The component for10 occurrences: DTSTART;TZID=US-Eastern:19970907T090000 RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=10; BYDAY=1SU,-1SU ==> (1997 9:00 AM EDT)September 7,28 (1997 9:00 AM EST)November 2,30 (1998 9:00 AM EST)January 4,25;March 1,29 (1998 9:00 AM EDT)May 3,31longitude may have any legal value. Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page103]82] Internet-Draft iCalendarOctober 2005 Monthly onJune 2006 With thesecond to last Mondayexception of themonth for 6 months: DTSTART;TZID=US-Eastern:19970922T090000 RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO ==> (1997 9:00 AM EDT)September 22;October 20 (1997 9:00 AM EST)November 17;December 22 (1998 9:00 AM EST)January 19;February 16 Monthly on the third to the last dayspecial condition described above, this form is specified in Department of Commerce, 1986, Representation of geographic point locations for information interchange (Federal Information Processing Standard 70-1): Washington, Department of Commerce, National Institute of Standards and Technology. The simple formula for converting degrees-minutes-seconds into decimal degrees is: decimal = degrees + minutes/60 + seconds/3600. Format Definition: The property is defined by themonth, forever: DTSTART;TZID=US-Eastern:19970928T090000 RRULE:FREQ=MONTHLY;BYMONTHDAY=-3 ==> (1997 9:00 AM EDT)September 28 (1997 9:00 AM EST)October 29;November 28; December 29(1998 9:00 AM EST)January 29; February 26 ... Monthly on the 2ndfollowing notation: geo = "GEO" geoparam ":" geovalue CRLF geoparam = *(";" xparam) geovalue = float ";" float ;Latitude and15thLongitude components Example: The following is an example of this property: GEO:37.386013;-122.082932 3.8.1.7. Location Property Name: LOCATION Purpose: The property defines themonthintended venue for10 occurrences: DTSTART;TZID=US-Eastern:19970902T090000 RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15 ==> (1997 9:00 AM EDT)September 2,15;October 2,15 (1997 9:00 AM EST)November 2,15;December 2,15 (1998 9:00 AM EST)January 2,15 Monthly onthefirstactivity defined by a calendar component. Value Type: TEXT Property Parameters: Non-standard, alternate text representation andlast daylanguage property parameters can be specified on this property. Conformance: This property can be specified in "VEVENT" or "VTODO" calendar component. Description: Specific venues such as conference or meeting rooms may be explicitly specified using this property. An alternate representation may be specified that is a URI that points to directory information with more structured specification of themonthlocation. For example, the alternate representation may specify either an LDAP URI pointing to an LDAP server entry or a CID URI pointing to a MIME body part containing a vCard [RFC2426] for10 occurrences: DTSTART;TZID=US-Eastern:19970930T090000 RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1 ==> (1997 9:00 AM EDT)September 30;October 1 (1997 9:00 AM EST)October 31;November 1,30; December 1,31(1998 9:00 AM EST)January 1,31; February 1the location. Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page104]83] Internet-Draft iCalendarOctober 2005 Every 18 months on the 10th thru 15th of the month for 10 occurrences: DTSTART;TZID=US-Eastern:19970910T090000 RRULE:FREQ=MONTHLY;INTERVAL=18;COUNT=10; BYMONTHDAY=10,11,12,13,14, 15 ==> (1997 9:00 AM EDT)September 10,11,12,13,14,15 (1999 9:00 AM EST)March 10,11,12,13 Every Tuesday, every other month: DTSTART;TZID=US-Eastern:19970902T090000 RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU ==> (1997 9:00 AM EDT)September 2,9,16,23,30 (1997 9:00 AM EST)November 4,11,18,25 (1998 9:00 AM EST)January 6,13,20,27; March 3,10,17,24,31 ... Yearly inJuneand July for 10 occurrences: DTSTART;TZID=US-Eastern:19970610T090000 RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7 ==> (1997 9:00 AM EDT)June 10;July 10 (1998 9:00 AM EDT)June 10;July 10 (1999 9:00 AM EDT)June 10;July 10 (2000 9:00 AM EDT)June 10;July 10 (2001 9:00 AM EDT)June 10;July 10 Note: Since none of2006 Format Definition: The property is defined by theBYDAY, BYMONTHDAY or BYYEARDAY componentsfollowing notation: location = "LOCATION locparam ":" text CRLF locparam = *( ; the following arespecified,optional, ; but MUST NOT occur more than once (";" altrepparam) / (";" languageparam) / ; thedayfollowing isgotten from DTSTART Desruisseaux & Stoner Expires April 14, 2006 [Page 105] Internet-Draft iCalendar October 2005 Every other year on January, February,optional, ; andMarch for 10 occurrences: DTSTART;TZID=US-Eastern:19970310T090000 RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10; BYMONTH=1,2,3 ==> (1997 9:00 AM EST)March 10 (1999 9:00 AM EST)January 10;February 10;March 10 (2001 9:00 AM EST)January 10;February 10;March 10 (2003 9:00 AM EST)January 10;February 10;March 10 Every 3rd year onMAY occur more than once (";" xparam) ) Example: The following are some examples of this property: LOCATION:Conference Room - F123, Bldg. 002 LOCATION;ALTREP="http://xyzcorp.com/conf-rooms/f123.vcf": Conference Room - F123, Bldg. 002 3.8.1.8. Percent Complete Property Name: PERCENT-COMPLETE Purpose: This property is used by an assignee or delegatee of a to-do to convey the1st, 100th and 200th day for 10 occurrences: DTSTART;TZID=US-Eastern:19970101T090000 RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10; BYYEARDAY=1,100,200 ==> (1997 9:00 AM EST)January 1 (1997 9:00 AM EDT)April 10;July 19 (2000 9:00 AM EST)January 1 (2000 9:00 AM EDT)April 9;July 18 (2003 9:00 AM EST)January 1 (2003 9:00 AM EDT)April 10;July 19 (2006 9:00 AM EST)January 1 Every 20th Mondaypercent completion of a to-do to theyear, forever: DTSTART;TZID=US-Eastern:19970519T090000 RRULE:FREQ=YEARLY;BYDAY=20MO ==> (1997 9:00 AM EDT)May 19 (1998 9:00 AM EDT)May 18 (1999 9:00 AM EDT)May 17 ... Desruisseaux & Stoner Expires April 14, 2006 [Page 106] Internet-Draft iCalendar October 2005 MondayOrganizer. Value Type: INTEGER Property Parameters: Non-standard property parameters can be specified on this property. Conformance: This property can be specified in a "VTODO" calendar component. Description: The property value is a positive integer between zero and one hundred. A value ofweek number 20 (where"0" indicates thedefault startto-do has not yet been started. A value of "100" indicates that theweek is Monday), forever: DTSTART;TZID=US-Eastern:19970512T090000 RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO ==> (1997 9:00 AM EDT)May 12 (1998 9:00 AM EDT)May 11 (1999 9:00 AM EDT)May 17 ... Every Thursdayto-do has been completed. Integer values inMarch, forever: DTSTART;TZID=US-Eastern:19970313T090000 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH ==> (1997 9:00 AM EST)March 13,20,27 (1998 9:00 AM EST)March 5,12,19,26 (1999 9:00 AM EST)March 4,11,18,25 ... Every Thursday, but only during June, July, and August, forever: DTSTART;TZID=US-Eastern:19970605T090000 RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8 ==> (1997 9:00 AM EDT)June 5,12,19,26;July 3,10,17,24,31; August 7,14,21,28 (1998 9:00 AM EDT)June 4,11,18,25;July 2,9,16,23,30; August 6,13,20,27 (1999 9:00 AM EDT)June 3,10,17,24;July 1,8,15,22,29; August 5,12,19,26 ... Every Fridaybetween indicate the13th, forever: DTSTART;TZID=US-Eastern:19970902T090000 EXDATE;TZID=US-Eastern:19970902T090000 RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13 ==> (1998 9:00 AM EST)February 13;March 13; November 13(1999 9:00 AM EDT)August 13 (2000 9:00 AM EDT)October 13 ...percent partially complete. Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page107]84] Internet-Draft iCalendarOctober 2005 The first Saturday that followsJune 2006 When a to-do is assigned to multiple individuals, thefirst Sundayproperty value indicates the percent complete for that portion of themonth, forever: DTSTART;TZID=US-Eastern:19970913T090000 RRULE:FREQ=MONTHLY;BYDAY=SA; BYMONTHDAY=7,8,9,10,11,12,13 ==> (1997 9:00 AM EDT)September 13;October 11 (1997 9:00 AM EST)November 8;December 13 (1998 9:00 AM EST)January 10;February 7;March 7 (1998 9:00 AM EDT)April 11;May 9;June 13... ... Every four years,to-do assigned to thefirst Tuesday afterassignee or delegatee. For example, if aMonday in November, forever (U.S. Presidential Election day): DTSTART;TZID=US-Eastern:19961105T090000 RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11; BYDAY=TU;BYMONTHDAY=2,3,4, 5,6,7,8 ==> (1996 9:00 AM EST)November 5 (2000 9:00 AM EST)November 7 (2004 9:00 AM EST)November 2 ... The 3rd instance into the monthto-do is assigned to both individuals "A" and "B". A reply from "A" with a percent complete ofone"70" indicates that "A" has completed 70% ofTuesday, Wednesday or Thursday, forthenext 3 months: DTSTART;TZID=US-Eastern:19970904T090000 RRULE:FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH; BYSETPOS=3 ==> (1997 9:00 AM EDT)September 4;October 7 (1997 9:00 AM EST)November 6 The 2ndto-do assigned tolast weekdaythem. A reply from "B" with a percent complete of "50" indicates "B" has completed 50% of themonth: DTSTART;TZID=US-Eastern:19970929T090000 RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR; BYSETPOS=-2 ==> (1997 9:00 AM EDT)September 29 (1997 9:00 AM EST)October 30;November 27;December 30 (1998 9:00 AM EST)January 29;February 26;March 30 Desruisseaux & Stoner Expires April 14, 2006 [Page 108] Internet-Draft iCalendar October 2005 ... Every 3 hours from 9:00 AM to 5:00 PM on a specific day: DTSTART;TZID=US-Eastern:19970902T090000 RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z ==> (September 2, 1997 EDT)09:00,12:00,15:00 Every 15 minutes for 6 occurrences: DTSTART;TZID=US-Eastern:19970902T090000 RRULE:FREQ=MINUTELY;INTERVAL=15;COUNT=6 ==> (September 2, 1997 EDT)09:00,09:15,09:30,09:45,10:00,10:15 Every hour and a half for 4 occurrences: DTSTART;TZID=US-Eastern:19970902T090000 RRULE:FREQ=MINUTELY;INTERVAL=90;COUNT=4 ==> (September 2, 1997 EDT)09:00,10:30;12:00;13:30 Every 20 minutes from 9:00 AM to 4:40 PM every day: DTSTART;TZID=US-Eastern:19970902T090000 RRULE:FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40 or RRULE:FREQ=MINUTELY;INTERVAL=20;BYHOUR=9,10,11,12,13,14,15,16 ==> (September 2, 1997 EDT)9:00,9:20,9:40,10:00,10:20, ... 16:00,16:20,16:40 (September 3, 1997 EDT)9:00,9:20,9:40,10:00,10:20, ...16:00,16:20,16:40 ... An example where the days generated makes a difference because of WKST: DTSTART;TZID=US-Eastern:19970805T090000 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO Desruisseaux & Stoner Expires April 14, 2006 [Page 109] Internet-Draft iCalendar October 2005 ==> (1997 EDT)Aug 5,10,19,24 changing only WKST from MO to SU, yields different results... DTSTART;TZID=US-Eastern:19970805T090000 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU ==> (1997 EDT)August 5,17,19,31 8.4. Alarm Component Properties The following properties specify alarm information in calendar components. 8.4.1. Action Property Name: ACTION Purpose: This property defines the actionto-do assigned tobe invoked when an alarm is triggered. Value Type: TEXT Property Parameters: Non-standard property parameters can be specified on this property. Conformance: This property MUST be specified once in a "VALARM" calendar component. Description: Each "VALARM" calendar component has a particular type of action associated with it. This property specifies the type of actionthem. Format Definition: The property is defined by the following notation:actionpercent ="ACTION" actionparam"PERCENT-COMPLETE" pctparam ":"actionvalueinteger CRLFactionparampctparam = *(";" xparam)actionvalue = "AUDIO" / "DISPLAY" / "EMAIL" / "PROCEDURE" / iana-token / x-name Desruisseaux & Stoner Expires April 14, 2006 [Page 110] Internet-Draft iCalendar October 2005Example: The followingare examplesis an example of this propertyin a "VALARM" calendar component: ACTION:AUDIO ACTION:DISPLAY ACTION:PROCEDURE 8.4.2. Alarm Repeat Countto show 39% completion: PERCENT-COMPLETE:39 3.8.1.9. Priority Property Name:REPEATPRIORITY Purpose:ThisThe property defines thenumber of time the alarm should be repeated, after the initial trigger.relative priority for a calendar component. Value Type: INTEGER Property Parameters: Non-standard property parameters can be specified on this property. Conformance:ThisThe property can be specified in a"VALARM""VEVENT" or "VTODO" calendar component. Description:If the alarm triggers more than once, then this property MUST beThe priority is specifiedalong withas an integer in the"DURATION" property. Format Definition: The propertyrange zero to nine. A value of zero (US-ASCII decimal 48) specifies an undefined priority. A value of one (US-ASCII decimal 49) isdefined bythefollowing notation: repeatcnt = "REPEAT" repparam ":" integer CRLF ;Defaulthighest priority. A value of two (US-ASCII decimal 50) is"0", zero. repparam = *(";" xparam) Example: The followingthe second highest priority. Subsequent numbers specify a decreasing ordinal priority. A value of nine (US-ASCII decimal 58) isan examplethe lowest priority. A CUA with a three-level priority scheme of "HIGH", "MEDIUM" and "LOW" is mapped into this propertyfor an alarmsuch thatrepeats 4 additional times witha5 minute delay afterproperty value in theinitial triggeringrange ofthe alarm: REPEAT:4 DURATION:PT5M 8.4.3. Alarm Trigger Property Name: TRIGGER Purpose: This propertyone (US-ASCII decimal 49) to four (US-ASCII decimal 52) specifieswhen an alarm will trigger. Value Type: The default"HIGH" priority. A valuetypeof five (US-ASCII decimal 53) isDURATION. Thethe normal or "MEDIUM" priority. A valuetype canin the range of Desruisseaux& StonerExpiresApril 14,December 24, 2006 [Page111]85] Internet-Draft iCalendarOctober 2005 be setJune 2006 six (US- ASCII decimal 54) toa DATE-TIMEnine (US-ASCII decimal 58) is "LOW" priority. A CUA with a priority schema of "A1", "A2", "A3", "B1", "B2", ..., "C3" is mapped into this property such that a property valuetype, in which case theof one (US-ASCII decimal 49) specifies "A1", a property valueMUST specifyof two (US- ASCII decimal 50) specifies "A2", aUTC formatted DATE-TIME value. Property Parameters: Non-standard,property valuedata type, time zone identifier or trigger relationshipof three (US-ASCII decimal 51) specifies "A3", and so forth up to a propertyparameters can be specified onvalue of 9 (US-ASCII decimal 58) specifies "C3". Other integer values are reserved for future use. Within a "VEVENT" calendar component, thisproperty. The trigger relationshippropertyparameter MUST only be specified whenspecifies a priority for thevalue type is DURATION. Conformance:event. This propertyMUSTmay bespecified in the "VALARM" calendar component. Description:useful when more than one event is scheduled for a given time period. Withinthe "VALARM"a "VTODO" calendar component, this propertydefines whenspecified a priority for thealarm will trigger. The default value typeto-do. This property isDURATION, specifyinguseful in prioritizing multiple action items for arelativegiven timefor the trigger of the alarm.period. Format Definition: Thedefault durationproperty isrelative to the start of an event or to-do thatdefined by thealarmfollowing notation: priority = "PRIORITY" prioparam ":" privalue CRLF ;Default isassociated with. The duration canzero prioparam = *(";" xparam) privalue = integer ;Must beexplicitly set to trigger from either the end orin thestartrange [0..9] ; All other values are reserved for future use The following is an example ofthe associated event or to-doa property with the"RELATED" parameter. A value of START will set the alarm to trigger off the start of the associated event or to-do. A value of END will set the alarm to trigger off the endhighest priority: PRIORITY:1 The following is an example ofthe associated event or to-do. Eitherapositive or negative duration may be specified for the "TRIGGER" property. An alarmproperty with apositive durationnext highest priority: PRIORITY:2 Example: The following istriggered after the associated start or endan example ofthe event or to-do. An alarm withanegative duration is triggered before the associated start or end of the event or to-do. The "RELATED"propertyparameterwith no priority. This is equivalent to notvalid if the value type ofspecifying the "PRIORITY" property: PRIORITY:0 Desruisseaux Expires December 24, 2006 [Page 86] Internet-Draft iCalendar June 2006 3.8.1.10. Resources Property Name: RESOURCES Purpose: This propertyis set to DATE-TIME (i.e.,defines the equipment or resources anticipated for anabsolute date and time alarm trigger). Ifactivity specified by avalue type of DATE-TIME is specified, then thecalendar entity.. Value Type: TEXT Property Parameters: Non-standard, alternate text representation and language propertyvalue MUSTparameters can be specifiedin the UTC time format. If an absolute trigger is specifiedonan alarm for a recurring event or to-do, then the alarm will only trigger for the specified absolute date/time, along with any specified repeating instances. If the trigger is set relative to START, then the "DTSTART"this property. Conformance: This propertyMUSTcan bepresentspecified inthe associated"VEVENT" or "VTODO" calendar component.If an alarm is specified for an event with the trigger set relative to the END, then the "DTEND"Description: The propertyor the "DSTART" and "DURATION' properties MUST be present in the associated "VEVENT" calendar component. If the alarmvalue isspecified for a to-do with a trigger set relative to the END, then either the "DUE" property or the "DSTART" and "DURATION' properties MUST be present in the associated "VTODO" calendar component. Alarms specified inanevent or to-do which is defined in terms of a DATE value type willarbitrary text. More than one resource can betriggered relative to 00:00:00 UTC on the Desruisseaux & Stoner Expires April 14, 2006 [Page 112] Internet-Draft iCalendar October 2005specifieddate. For example, if "DTSTART:19980205, thenas a list of resources separated by theduration trigger will be relative to19980205T000000Z.COMMA character (US-ASCII decimal 44). Format Definition: The property is defined by the following notation:triggerresources ="TRIGGER" (trigrel / trigabs) trigrel"RESOURCES" resrcparam ":" text *("," text) CRLF resrcparam = *( ; the following are optional, ; but MUST NOT occur more than once (";""VALUE" "=" "DU