draft-ietf-calsify-rfc2445bis-00.txt  -->   draft-ietf-calsify-rfc2445bis-01.txt

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, 2006                                   C. Stoner, Ed.
                                                                     IBM
                                                        October 11, 2005


     Internet Calendaring and Scheduling Core Object Specification
                              (iCalendar)
                    draft-ietf-calsify-rfc2445bis-00
                    draft-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 on April 14, December 24, 2006.

Copyright Notice

   Copyright (C) The Internet Society (2005). (2006).

Abstract

   Calendar systems export, transport and sometimes even store calendar
   information in

   There is a standard, clear need to provide and deploy interoperable format. 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 memo defines
   has been defined to provide the definition of a common format for
   openly exchanging calendaring and scheduling information across the Internet,
   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 object
   format. methods.
   An iCalendar object may represent method 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-do modify 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 or task, 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-Draft calendar component.  The iCalendar                   October 2005 Transport-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 are solicited welcomed, and
   should be addressed to the working group's ietf-calsify@osafoundation.org [1] mailing
   list.

   A detailed list of changes is available at ietf-calsify@osafoundation.org and/or the editor. 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 Memos   6
   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  . . . . . . . . . . . . . .   8
     3.1.   Formatting Conventions
   3.  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.  Properties  21
       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.  Version  26
       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.  Comment  30
       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 Locator  48
       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 approval  97
         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.  Duration 110
         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.  IANA MIME Consideration  . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . . . 165 155
   Intellectual Property and Copyright Statements  . . . . . . . . . 166 156










Desruisseaux & Stoner            Expires April 14, December 24, 2006               [Page 4] 5]

Internet-Draft                  iCalendar                   October 2005                      June 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 in RFC 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 calendaring


2.  Basic Grammar and
   scheduling standards.  This memo, [ICAL], specifies a core
   specification of objects, data types, properties Conventions

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" and property



Desruisseaux & Stoner            Expires April 14, December 24, 2006               [Page 5] 6]

Internet-Draft                  iCalendar                   October 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 of RFC 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 the RFC 2425
   [RFC2425] content type.  While the iCalendar object is not a profile
   of the RFC 2425 [RFC2425] content type, it does reuse a number of the elements
   from the RFC 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-strings quoted-
   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 2005

   The 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 & Stoner            Expires April 14, December 24, 2006               [Page 10] 8]

Internet-Draft                  iCalendar                   October 2005


5.  General Syntax

5.1.  Character Set

   The default character set for an                      June 2006


3.  iCalendar object is UTF-8 as defined
   in RFC 2279 [9]. Object Specification

   The "charset" Content-Type parameter following 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 used in
   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 names independent 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.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 using the a 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 1

   Can 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 2005

   The 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 reference

   The 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 to 2425
   again and simply stated that lines are defined by [RFC2425].  That
   is, the content information consists of CRLF-separated --Lisa]] content lines.

   The following ABNF notation 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 / "-")
   ; Reservered Reserved 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-CHAR



Desruisseaux & Stoner    Expires April 14, 2006                [Page 12]

Internet-Draft                  iCalendar                   October 2005

   value      = *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       = %x09

   Figure 3

   The property value component of a content line has a format that is
   property specific.  Refer to the section describing each property for



Desruisseaux & Stoner    Expires April 14, 2006                [Page 13]

Internet-Draft                  iCalendar                   October 2005
   a 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,19970904

5.5.

3.1.2.  Multiple Property Values

   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.doc


     ATTACH: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 binary data...]

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.  Property Parameter Syntax Parameters

   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 the DOUBLE-QUOTE DQUOTE (US-ASCII
   decimal 22) character.  The DOUBLE-QUOTE DQUOTE (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 Wizards



Desruisseaux & Stoner    Expires April 14, 2006                [Page 15]

Internet-Draft                  iCalendar                   October 2005
     Conference - - 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 Objects

   The Calendaring and Scheduling Core Object is a collection of
   calendaring and scheduling information.  Typically, general property parameters defined by this information
   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 components memo are collections 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 is defined by
   the following notation:

        icalbody   = calprops component

        calprops

      parameter  = 2*(

                   ; 'prodid' and 'version' are both REQUIRED, altrepparam           ; but MUST NOT occur more than once

                   prodid /version Alternate text representation
                 / cnparam               ; 'calscale' and 'method' are optional,
                   ; but MUST NOT occur more than once

                   calscale Common name
                 /
                   method cutypeparam           ; Calendar user type
                 /

                   x-prop


                   )

        component  = 1*(eventc delfromparam          ; Delegator
                 / todoc deltoparam            ; Delegatee
                 / journalc dirparam              ; Directory entry
                 / freebusyc encodingparam         ; Inline encoding
                 / fmttypeparam          ; Format type
                 / timezonec fbtypeparam           ; Free/busy time type
                 / iana-comp languageparam         ; Language for text
                 / x-comp)

        iana-comp memberparam           ; 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-token CRLF

        x-comp "=" param-value *("," param-value)

      xparam     = "BEGIN" ":" x-name CRLF

                     1*contentline

                     "END" ":" x-name CRLF "=" 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 & Stoner            Expires April 14, December 24, 2006              [Page 18] 14]

Internet-Draft                  iCalendar                   October 2005


   Figure 10

   An iCalendar object                      June 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, it default 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 include at least one calendar
   component.  Special forms of iCalendar objects are possible the following agenda items: (a)
      Market Overview, (b) Finances, (c) Project Management

      The "ALTREP" property parameter value might point to
   publish just busy time (i.e., only a "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
      calendar component)
   or time zone (i.e., only user 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 calendar component)
   information.  In addition, a complex iCalendar object is possible
   that user specified by the property.
      The parameter value is text.  The parameter value can be used for
      display text to capture a complete snapshot of be associated with the contents 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" calendar component.

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 & Stoner            Expires April 14, December 24, 2006              [Page 19] 15]

Internet-Draft                  iCalendar                   October 2005


   Formal Definition: A "VEVENT"                      June 2006


3.2.3.  Calendar User Type

   Parameter Name: CUTYPE

   Purpose: To specify the type of calendar component user specified by the
      property.

   Format Definition: The property parameter is defined by the following
      notation:


        eventc     = "BEGIN" ":" "VEVENT" CRLF
                     eventprop *alarmc
                     "END" ":" "VEVENT" CRLF

        eventprop

      cutypeparam        = *(

                   ; the following are optional, "CUTYPE" "="
                          ("INDIVIDUAL"        ; but MUST NOT occur more than once

                   class / created An 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 in A physical resource
                         / "ROOM"              ; a 'eventprop', but 'dtend' and 'duration' A room resource
                         / "UNKNOWN"           ; MUST NOT occur in the same 'eventprop'

                   dtend Otherwise not known
                         / duration x-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 component type
      ; Default is a grouping of component
   properties, and possibly including "VALARM" calendar components, that
   represents a scheduled amount of time on a calendar.  For example, it INDIVIDUAL

   Description: This parameter can be an 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 specified on an individual calendar.  Hence, the event will appear as an opaque
   interval in properties with a search 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 also parameter identifies the calendar 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 value type for the "DTSTART" property instead of
      calendar user specified by the default
   data type of DATE-TIME. property.  If such a "VEVENT" has a "DTEND" property,
   it MUST be not specified as a DATE value also.  The anniversary type of
   "VEVENT" can span more than one date (i.e, "DTEND" property value is
   set to on a calendar date after the "DTSTART" property value).

   The "DTSTART"
      property for a "VEVENT" specifies that allows this parameter, the inclusive start
   of default is INDIVIDUAL.

   Example:

          ATTENDEE;CUTYPE=GROUP:MAILTO:ietf-calsch@imc.org

3.2.4.  Delegators

   Parameter Name: DELEGATED-FROM

   Purpose: To specify the event.  For recurring events, it also specifies calendar users that have delegated their
      participation to the very first
   instance in calendar user specified by the recurrence set. property.

   Format Definition: The "DTEND" property for a "VEVENT"
   calendar component specifies the non-inclusive end of parameter is defined by the event.  For
   cases where following
      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 specifies
      CAL-ADDRESS value type.  This parameter can be specified on a "DTSTART"
      property with that has a DATE data value type but no "DTEND" property, the events
   non-inclusive end is the end of the calendar date specified by the
   "DTSTART" property.  For cases where a "VEVENT" calendar component address.  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, the group scheduled event ends on or to-do to the same calendar date and time
   of day



Desruisseaux            Expires December 24, 2006              [Page 16]

Internet-Draft                  iCalendar                      June 2006


      user specified by the "DTSTART" property.  The "VEVENT" calendar component cannot value MUST be nested within another
   calendar component.  However, "VEVENT" calendar components can be
   related to a MAILTO URI as
      defined in [RFC1738].  The individual calendar address parameter
      values MUST each other or to be specified in a "VTODO" or quoted-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 to a "VJOURNAL" whom the calendar
   component with user
      specified by the "RELATED-TO" property.

   Example 1: property has delegated participation.

   Format Definition: The following property parameter is an example of defined 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 calendar
   component used to represent
      users whom have been delegated participation in a meeting 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 of group scheduled
      event or to-do by the "VEVENT" calendar
   component used to represent a reminder that will not user specified by the property.
      The value MUST be opaque, but
   rather transparent, to searches for busy time:

        BEGIN:VEVENT
        UID:19970901T130000Z-123402@host.com
        DTSTAMP:19970901T1300Z
        DTSTART:19970401T163000Z
        DTEND:19970402T010000Z
        SUMMARY:Laurel is a MAILTO URI as defined in sensitivity awareness class.
        CLASS:PUBLIC
        CATEGORIES:BUSINESS,HUMAN RESOURCES
        TRANSP:TRANSPARENT
        END:VEVENT

   Figure 13

   Example 3: [RFC1738].  The following is an example of the "VEVENT"
      individual calendar
   component used to represent an anniversary that will occur annually.
   Since it takes up no time, it will not appear as opaque address parameter values MUST each be
      specified in a search
   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

   Component quoted-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: VTODO DIR

   Purpose: Provide To specify reference to a grouping of directory entry associated with
      the calendar properties 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 & Stoner            Expires April 14, December 24, 2006              [Page 22] 17]

Internet-Draft                  iCalendar                   October 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 calendar component user 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

        todoprop

          encodingparam      = *(

                   ; 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 in the same 'todoprop'

                   due [RFC2045]
                             / duration iana-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 be non-standard, experimental encoding type

   Description: The property parameter identifies the inline encoding
      used to
   represent an item of work assigned to an individual; such as "turn in
   travel 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 or default encoding is "8BIT",
      corresponding to a "VTODO" or property value consisting of text.  The
      "BASE64" encoding type corresponds to a "VJOURNAL" calendar
   component with property 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 will value type parameter is ";VALUE=BINARY", then the inline
      encoding parameter MUST be associated specified with
   each 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 & Stoner            Expires April 14, December 24, 2006              [Page 23] 18]

Internet-Draft                  iCalendar                   October 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

   Component                      June 2006


3.2.8.  Format Type

   Parameter Name: VJOURNAL FMTTYPE

   Purpose: Provide a grouping To specify the content type of component properties that describe a
   journal entry.





























Desruisseaux & Stoner    Expires April 14, 2006                [Page 24]

Internet-Draft                  iCalendar                   October 2005


   Formal referenced object.

   Format Definition: A "VJOURNAL" calendar component The property parameter is defined by the following
      notation:

        journalc   = "BEGIN" ":" "VJOURNAL" CRLF
                     jourprop
                     "END" ":" "VJOURNAL" CRLF

        jourprop

    fmttypeparam       = *(

                   ; 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 / url A 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
   component non-standard content type

   Description: This parameter can be specified on properties that represent one or more descriptive text
   notes associated with a particular calendar date.  The "DTSTART"
   property is are
      used to specify reference an object.  The parameter specifies the calendar date that content
      type of the journal entry
   is associated with.  Generally, it will have a DATE value data type,
   but it can also be used to specify referenced object.  For example, on the "ATTACH"
      property, a DATE-TIME FTP type URI value data type.
   Examples of a journal entry include a daily record of a legislative
   body or a journal entry of individual telephone contacts for does not, by itself, necessarily
      convey the day
   or an ordered list type of accomplishments for content associated with the day. resource.  The "VJOURNAL"
   calendar component can also
      parameter value MUST be used to associate a document with a
   calendar date.

   The "VJOURNAL" calendar component does not take up time on a
   calendar.  Hence, it does not play the TEXT for either an IANA registered
      content type or a role in non-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 time
   searches - - it type.

   Format Definition: The property parameter is as though it has a defined 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 time transparency type.  The
      value of
   TRANSPARENT.  It FREE indicates that the time interval is transparent to any such searches. free for
      scheduling.  The "VJOURNAL" calendar component cannot be nested within another
   calendar component.  However, "VJOURNAL" calendar components value 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 be
   related to each other or to a "VEVENT" scheduled.  The
      value BUSY-TENTATIVE indicates that the time interval is busy
      because one or to more 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, with property that allows this
      parameter, the "RELATED-TO" property. default is BUSY.

   Example: The following is an example of the "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 for this project. Lisa will escalate to
      management. Next meeting parameter 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

   Figure 18

7.4.  Free/Busy Component

   Component FREEBUSY
      property.

          FREEBUSY;FBTYPE=BUSY:19980415T133000Z/19980415T170000Z

3.2.10.  Language

   Parameter Name: VFREEBUSY LANGUAGE

   Purpose: Provide a grouping of component properties that describe
   either a request To specify the language for free/busy time, describe a response to text values in a request
   for free/busy time property or describe a published set of busy time.






















Desruisseaux & Stoner    Expires April 14, 2006                [Page 26]

Internet-Draft                  iCalendar                   October 2005


   Formal
      property parameter.

   Format Definition: A "VFREEBUSY" calendar component The property parameter is defined by the following
      notation:


        freebusyc

    languageparam = "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 a grouping of
   component language, as defined in [RFC1766]>

   Description: This parameter can be specified on properties that represents either a request for, a reply to
   a request for free or busy time information or with a published set
      text value type.  The parameter identifies the language of
   busy time information.

   When used to request free/busy time information, the "ATTENDEE"
   property specifies the calendar users whose free/busy time is being
   requested;
      text in the "ORGANIZER" property specifies the calendar user who
   is requesting the free/busy time; the "DTSTART" and "DTEND"
   properties specify the window or property parameter value.  The value of time for which
      the free/busy time "language" property parameter is
   being requested; the "UID" and "DTSTAMP" properties are specified to
   assist that defined in [RFC1766].

      For transport in proper sequencing of multiple free/busy time requests.

   When used to reply to a request for free/busy time, the "ATTENDEE"
   property specifies MIME entity, the calendar user responding Content-Language header field
      can be used to set the free/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); and default language for the

   "UID" and "DTSTAMP" properties are specified to assist in proper
   sequencing entire 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 of multiple free/busy time replies.

   When used to publish busy time, the "ORGANIZER" property specifies Quoted-Printable encoding



Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 27] 20]

Internet-Draft                  iCalendar                   October 2005


   the calendar user associated with the published busy time; the
   "DTSTART" and "DTEND" properties                      June 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 specify an inclusive time window
   that surrounds the busy time information; the "FREEBUSY" property
   specifies group or list membership of the published busy time information; and calendar user
      specified by the "DTSTAMP" property.

   Format Definition: The property specifies parameter is defined by the date/time that iCalendar object was created.

   The "VFREEBUSY" calendar component cannot be nested within another
   calendar component.  Multiple "VFREEBUSY" calendar components following
      notation:

          memberparam        = "MEMBER" "=" DQUOTE cal-address DQUOTE
                               *("," DQUOTE cal-address DQUOTE)

   Description: This parameter can be specified within an iCalendar object.  This permits on properties with a
      CAL-ADDRESS value type.  The parameter identifies 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 or
      list membership for both free and busy, and the associated replies.

   Free/Busy information is represented with calendar user specified by the "FREEBUSY" property.
   This property provides
      The parameter value either a terse representation of time periods.  One
   or more "FREEBUSY" properties can be specified single calendar address in the "VFREEBUSY" a quoted-
      string or a COMMA character (US-ASCII decimal 44) list of calendar component.

   When present
      addresses, each in a "VFREEBUSY" quoted-string.  The individual calendar component, the "DTSTART" and
   "DTEND" properties SHOULD
      address parameter values MUST each be specified prior to any "FREEBUSY"
   properties.  In a free time request, these properties can be used in
   combination with the "DURATION" property to represent a request quoted-
      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 for a
   duration of free time within a specified window of time.

   The recurrence properties ("RRULE", "EXRULE", "RDATE", "EXDATE") are
   not permitted within a "VFREEBUSY" the calendar component.  Any recurring
   events are resolved into their individual busy time periods using user
      specified by the
   "FREEBUSY" property.

   Example 1:

   Format Definition: The following 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 component property parameter is defined by the following
      notation:


        timezonec  = "BEGIN" ":" "VTIMEZONE" CRLF

                     2*(

                     ; 'tzid' is required, but MUST NOT occur more
                     ; than once






Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 29] 21]

Internet-Draft                  iCalendar                   October 2005


                   tzid                      June 2006


    partstatparam      = "PARTSTAT" "="
                        ("NEEDS-ACTION"        ; Event needs action
                       / "ACCEPTED"            ; 'last-mod' and 'tzurl' are optional,
                   but MUST NOT occur more than once


                   last-mod Event accepted
                       / tzurl "DECLINED"            ; Event declined
                       / "TENTATIVE"           ; one of 'standardc' or 'daylightc' MUST occur
                   ..; and each MAY occur more than once.

                   standardc Event tentatively
                                               ; accepted
                       / daylightc "DELEGATED"           ; Event delegated
                       / x-name                ; Experimental status
                       / iana-token)           ; Other IANA registered
                                               ; status
    ; These are the following participation statuses for a "VEVENT". Default is optional,
    ; 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

                   dtstart To-do accepted
                       / tzoffsetto "DECLINED"            ; To-do declined
                       / tzoffsetfrom "TENTATIVE"           ; To-do tentatively
                                               ; accepted
                       / "DELEGATED"           ; the following To-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 are optional, the participation statuses for a "VTODO". Default is
    ; and MAY occur more than once

                   comment NEEDS-ACTION

    partstatparam      /= "PARTSTAT" "="
                        ("NEEDS-ACTION"        ; Journal needs action
                       / rdate "ACCEPTED"            ; Journal accepted
                       / rrule "DECLINED"            ; Journal declined
                       / tzname x-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 by iana-token)           ; Other IANA registered
                                               ; status
    ; These are the governing body participation statuses for a given
   geographic area.  These rules describe at "VJOURNAL". Default is
    ; NEEDS-ACTION

   Description: This parameter can be specified on properties with a minimum
      CAL-ADDRESS value type.  The parameter identifies the base offset
   from UTC
      participation status for the time zone, often referred to as calendar user specified by the Standard Time
   offset.  Many locations adjust their Standard Time forward
      property value.  The parameter values differ depending on whether
      they are associated with a group scheduled "VEVENT", "VTODO" or
   backward by
      "VJOURNAL".  The values MUST match one hour, in order to accommodate seasonal changes in
   number of daylight hours, often referred to as Daylight Saving Time.
   Some locations adjust their time by the values allowed for
      the given calendar component.  If not specified on a fraction of an hour.  Standard
   Time is also known as Winter Time.  Daylight Saving Time property that
      allows this parameter, the default value is also
   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 following table shows
      notation:

    rangeparam = "RANGE" "=" ("THISANDPRIOR"
       ; To specify all instances prior to the changes in time zone rules
   in effect for New York City starting from 1967.  Each line represents recurrence identifier
               / "THISANDFUTURE")
       ; To specify the instance specified by the recurrence identifier
       ; and all subsequent recurrence instances

   Description: The parameter can be specified on a description or rule for property that
      specifies 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          |
      +-----------+-------------------------+--------+--------------+

   Note: recurrence identifier.  The specification parameter specifies the
      effective range of a global time zone registry recurrence instances that is not
   addressed specified by this document and the
      property.  The effective range is left for future study.  However,
   implementers may find from the Olson time zone database [TZ] a useful
   reference.  It recurrence identified
      specified by the property.  If this parameter is not specified an informal, public-domain collection of time zone
   information, which
      allowed property, then the default range is currently being maintained the single instance
      specified by volunteer
   Internet participants, and is used in several operating systems.
   This database contains current and historical time zone information
   for the recurrence identifier value of the property.  The
      parameter value can be "THISANDPRIOR" to indicate a wide variety range defined
      by the recurrence identified value of locations around the globe; it provides property and all prior
      instances.  The parameter value can also be "THISANDFUTURE" to
      indicate a time
   zone range defined by the recurrence identifier for 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 with historical data going back
      respect to the introduction of
   standard time.

   Interoperability between two calendaring and scheduling applications,
   especially for recurring events, to-dos start or journal entries, is end of the calendar component.







Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 31] 23]

Internet-Draft                  iCalendar                   October 2005


   dependent on the ability to capture and convey date and time
   information in an unambiguous format.                      June 2006


   Format Definition: The specification of current
   time zone information property parameter is integral to this behavior.

   If present, the "VTIMEZONE" calendar component defines defined by the set following
      notation:

          trigrelparam       = "RELATED" "="
                              ("START"       ; Trigger off of
   Standard Time and Daylight Saving Time observances (or rules) for a
   particular time zone for a given interval start
                             / "END")        ; Trigger off of time. end

   Description: The "VTIMEZONE"
   calendar component cannot be nested within other calendar components.
   Multiple "VTIMEZONE" calendar components parameter can exist in be specified on properties that
      specify an iCalendar
   object.  In this situation, each "VTIMEZONE" MUST represent alarm trigger with a unique
   time zone definition.  This is necessary for some classes of events,
   such as airline flights, that DURATION value type.  The
      parameter specifies whether the alarm will trigger relative to the
      start in one time zone and or end in
   another.

   The "VTIMEZONE" of the calendar component MUST be present if component.  The parameter value START
      will set the iCalendar
   object contains an RRULE that generates dates on both sides alarm to trigger off the start of a time
   zone shift (e.g. both in Standard Time and Daylight Saving Time)
   unless the iCalendar object intends calendar
      component; the parameter value END will set the alarm to convey a floating time (See
   Section 13.13 for proper interpretation trigger
      off the end of floating time).  It can be
   present if the iCalendar object does calendar component.  If the parameter is not contain such a RRULE.  In
   addition, if a RRULE
      specified on an allowable property, then the default is present, 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 component MUST include specified by the "TZID" property.

   Format Definition: The property
   and at least one definition of parameter 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 a standard or daylight component. property that
      references another related calendar.  The
   standard or daylight component MUST include parameter specifies the
      hierarchical relationship type of the "DTSTART",
   "TZOFFSETFROM" and "TZOFFSETTO" properties.

   An individual "VTIMEZONE" calendar component MUST be specified for
   each unique "TZID"
      referenced by the property.  The parameter value specified in can be PARENT, to
      indicate that the iCalendar object.

   Each "VTIMEZONE" referenced calendar component consists of is a collection superior of one
   or more sub-components
      calendar component; CHILD to indicate that describe the rule for a particular
   observance (either a Standard Time or a Daylight Saving Time
   observance).  The "STANDARD" sub-component consists of referenced calendar
      component is a collection subordinate of properties the calendar component; SIBLING to
      indicate that describe Standard Time.  The "DAYLIGHT" sub- the referenced calendar component consists of is a collection of properties that describe
   Daylight Saving Time.  In general this collection peer of properties
   consists of:

      the first onset date-time for the observance

      the last onset date-time for the observance, if a last onset
      calendar component.  If this parameter is
      known.

      the offset to be applied for the observance not specified on an



Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 32] 24]

Internet-Draft                  iCalendar                   October 2005


      a rule that describes                      June 2006


      allowable property, the day and time when default 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 the observance takes
      effect

      an optional name participation role for the observance

   For a given time zone, there may be multiple unique definitions calendar user
      specified by the property.

   Format Definition: The property parameter is defined by the following
      notation:

    roleparam  = "ROLE" "="
                ("CHAIR"               ; Indicates chair of the observances over
                                       ; calendar entity
               / "REQ-PARTICIPANT"     ; Indicates a period of time.  Each observance participant whose
                                       ; participation is described
   using either required
               / "OPT-PARTICIPANT"     ; Indicates a "STANDARD" or "DAYLIGHT" sub-component.  The
   collection of these sub-components participant whose
                                       ; participation is used to describe the time zone optional
               / "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 a given period of time.
      CAL-ADDRESS value type.  The offset to apply at any given time is
   found by locating parameter specifies the observance that has participation
      role for the last onset date and
   time before calendar user specified by the time property in question, and using the offset value from
   that observance.

   The top-level properties in a "VTIMEZONE" group
      schedule calendar component 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 a text value that uniquely
   identifies favor of a
      reply from the VTIMZONE calendar component within user specified by the scope of an property value.





Desruisseaux            Expires December 24, 2006              [Page 25]

Internet-Draft                  iCalendar object.                      June 2006


   Format Definition: The optional "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 a UTC
      CAL-ADDRESS value that specifies
   the date and time that this time zone definition was last updated. type.  The optional "TZURL" parameter identifies the expectation
      of a reply from the calendar user specified by the property value.
      This parameter is url value that points used by the "Organizer" to request a published
   VTIMEZONE definition.  TZURL SHOULD refer to
      participation status reply from an "Attendee" of a resource group scheduled
      event or to-do.  If not specified on a property that allows this
      parameter, the default value is
   accessible by anyone who might need to interpret FALSE.

   Example:

          ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host.com

3.2.18.  Sent By

   Parameter Name: SENT-BY

   Purpose: To specify the object.  This
   SHOULD NOT normally be a file: URL or other URL calendar user that is not widely-
   accessible.

   The collection acting on behalf of properties that are used to define the STANDARD and
   DAYLIGHT sub-components include:
      calendar user specified by the property.

   Format Definition: The mandatory "DTSTART" property gives the effective onset date and
   local time for parameter is defined by the time zone sub-component definition.  "DTSTART" in
   this usage MUST following
      notation:

          sentbyparam        = "SENT-BY" "=" DQUOTE cal-address DQUOTE

   Description: This parameter can be specified as on properties with a local DATE-TIME value.
      CAL-ADDRESS value type.  The mandatory "TZOFFSETFROM" property gives parameter specifies the UTC offset which calendar user
      that is
   in use when the onset acting on behalf of this 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 represents the time at which calendar user specified by the observance of Standard
   Time took effect
      property.  The parameter value MUST be a MAILTO URI as defined in Fall 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 & Stoner            Expires April 14, December 24, 2006              [Page 33] 26]

Internet-Draft                  iCalendar                   October 2005


   The mandatory "TZOFFSETTO " property gives                      June 2006


   Purpose: To specify the UTC offset identifier for the time zone sub-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 allow definition for specifying
   multiple language variants of the a
      time zone names.  This could be
   used for displaying dates.

   If specified, the onset for the observance defined by component in the time zone
   sub-component property value.

   Format Definition: The property parameter is defined by either the "RRULE" or "RDATE" property.
   If neither is specified, only one sub-component can following
      notation:

          tzidparam  = "TZID" "=" [tzidprefix] paramtext CRLF

          tzidprefix = "/"

   Description: The parameter MUST be specified in on the "VTIMEZONE" calendar component "DTSTART",
      "DTEND", "DUE", "EXDATE" and it "RDATE" properties when either a
      DATE- TIME or TIME value type is assumed that the single
   observance specified is 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 for and when the usage of RRULE for this purpose include:

      If observance value is known to have an effective end date, the "UNTIL"
      recurrence rule parameter MUST be used
      not either a UTC or a "floating" time.  Refer to specify the last valid
      onset DATE-TIME or
      TIME value type definition for a description of this observance (i.e., the UNTIL date-time will be equal
      to the last instance generated by the recurrence pattern).  It
      MUST be specified in UTC time.

      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 when
      generating evaluating the onset date-time values (instances) from time portion of the RRULE.

   Alternatively, property.  The value
      of the "RDATE" TZID property can parameter will be used equal to define the onset value of the observance by giving
      TZID property for the matching time zone definition.  An
      individual onset date and times.
   "RDATE" "VTIMEZONE" calendar component MUST be specified for
      each unique "TZID" parameter value specified in this usage the iCalendar
      object.

      The parameter MUST be specified as on properties with a local DATE-TIME
      value in if the DATE-TIME is not either a UTC or a "floating" time.

      The optional "COMMENT" property is also allowed for descriptive
   explanatory text.

   Example: The following are examples presence 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.  Note SOLIDUS 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 is only suitable for
      defined).



         Note: This document does not define 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 naming convention for EST
         time 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
         this scenario).  For example, document and is left for future study.

      The following are examples of this can property parameter:

          DTSTART;TZID=US-Eastern:19980119T020000

          DTEND;TZID=US-Eastern:19980119T030000

      The TZID property parameter MUST NOT be used 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 25 applied to DATE-TIME or



Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 35] 27]

Internet-Draft                  iCalendar                   October 2005


   Example 2: Current                      June 2006


      TIME properties whose time zone rules for the Eastern United States
   using values are specified in UTC.

      The use of local time in a RRULE recurrence pattern.  Note that there DATE-TIME or TIME value without the
      TZID property parameter is no effective
   end date to either of the Standard Time or Daylight Time rules.  This
   information would be valid for interpreted as a recurring 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 set local time
      value, regardless of rules for the Eastern 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 set existence of rules for "VTIMEZONE" calendar
      components in the Eastern United States,
   where iCalendar object.

      For more information see the first Daylight Time rule has an effective end date.  There
   is a second Daylight Time rule that picks up where sections on 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

   Figure 28

7.6.  Alarm Component

   Component data types DATE-TIME
      and TIME.

3.2.20.  Value Data Types

   Parameter Name: VALARM VALUE

   Purpose: Provide To explicitly specify the data type format for a grouping of component properties that define an
   alarm.

   Formal property
      value.

   Format Definition: A "VALARM" calendar component The property parameter is defined by the following
      notation:

             alarmc

          valuetypeparam = "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

                   attendee Some 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 the Some other

                   duration / 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 the following are all REQUIRED,
                   ; but MUST NOT occur more than once

                   action / attach / trigger /

                   ; 'duration' and 'repeat' are both optional,
                   ; data type and MUST NOT occur more than once each,
                   ; but if one occurs, so MUST format of the other

                   duration / repeat /

                   ; 'description' is optional,
                   ; and
      property value.  The property values MUST NOT 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 and MAY occur more than once TIME value types.






Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 40] 28]

Internet-Draft                  iCalendar                   October 2005


                   x-prop

                   )

   Figure 29

   Description: A "VALARM" calendar component                      June 2006


      If the property's value is a grouping of component
   properties that the default value type, then this
      parameter need not be specified.  However, if the property's
      default value type is a reminder or alarm for an event or a to-do.  For
   example, it may overridden by some other allowable value
      type, then this parameter MUST be used 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 property further constrains restricts the
   "VALARM" calendar component value 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
   the following ways:

   When default value type or will be explicitly specified with the action is "AUDIO",
   "VALUE" parameter.  If the alarm can also include one and only
   one "ATTACH" property, which MUST point to value type of a sound resource, which is
   rendered when the alarm is triggered.

   When the action property is "DISPLAY", one of the alarm
   alternate valid types, then it MUST also include a
   "DESCRIPTION" property, which contains the text to be displayed when explicitly specified with the alarm
   "VALUE" parameter.

3.3.1.  Binary

   Value Name: BINARY

   Purpose: This value type is triggered.

   When the action is "EMAIL", the alarm MUST include a "DESCRIPTION"
   property, which contains the text to be used as the message body, a
   "SUMMARY" property, which contains the text to be used as the message
   subject, and one or more "ATTENDEE" properties, which identify properties that contain the
   email address
      a character encoding of attendees to receive inline 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 the message.  It can following
      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 include one or more "ATTACH" properties, which are intended to
      the inline encoding parameter sequence of ";ENCODING=BASE64".
      That is, all inline binary data MUST first be
   sent as message attachments.  When character encoded
      using the alarm "BASE64" encoding method defined in [RFC2045].  No
      additional content value encoding (i.e., BACKSLASH character
      encoding) is triggered, the email
   message defined for this value type.

   Example: The following is sent.

   When the action an 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 point used to identify properties that contain
      either a procedure resource,
   which "TRUE" or "FALSE" Boolean value.

   Format Definition: The value type is invoked when defined by the alarm following
      notation:

        boolean    = "TRUE" / "FALSE"

   Description: These values are case insensitive text.  No additional
      content value encoding (i.e., BACKSLASH character encoding) is triggered.
      defined for this value type.

   Example: The "VALARM" calendar component MUST only appear within either following 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 for hypothetical 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
      a single "VEVENT" or "VTODO" calendar
   component. user address.

   Format Definition: The "TRIGGER" property specifies when value type is defined by the alarm will be triggered. following
      notation:

        cal-address        = uri

   Description: The "TRIGGER" property specifies value is a duration prior to the start of an
   event URI as defined by [RFC1738] or any other
      IANA registered form for a to-do.  The "TRIGGER" edge may be explicitly set to be
   relative URI.  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"
   property value type can alternatively MUST be set to an absolute calendar a
      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 & Stoner            Expires April 14, December 24, 2006              [Page 41] 30]

Internet-Draft                  iCalendar                   October 2005


   date and time of day value.

   In an alarm set                      June 2006


3.3.4.  Date

   Value Name: DATE

   Purpose: This value type is used to trigger 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 in identify values that contain a "VEVENT"
      calendar component set to trigger date.

   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 the event, either the "DTEND" property MUST be present, or value 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"
      calendar component set to trigger on the "END" date.  The textual format specifies a four-digit year,
      two-digit month, and two-digit day of the to-do, either the "DUE" property MUST be present, or month.  There are no
      separator characters between the
   "DTSTART" year, month and "DURATION" properties MUST both be present.

   The alarm can be day component
      text.

      No additional content value encoding (i.e., BACKSLASH character
      encoding) is defined such for 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 that it triggers repeatedly.  A
   definition of an alarm with specify a repeating trigger MUST include both the
   "DURATION"
      precise calendar date and "REPEAT" properties. time of day.

   Format Definition: The "DURATION" property
   specifies value type is defined by the delay period, after which following
      notation:

        date-time  = date "T" time ;As specified in the alarm will repeat.  The
   "REPEAT" property specifies date and time
                                   ;value definitions





Desruisseaux            Expires December 24, 2006              [Page 31]

Internet-Draft                  iCalendar                      June 2006


   Description: If the number property permits, multiple "date-time" values are
      specified as a COMMA character (US-ASCII decimal 44) separated
      list of values.  No additional repetitions that
   the alarm will triggered.  This repitition count content value encoding (i.e.,
      BACKSLASH character encoding) is in addition to
   the initial triggering of the alarm.  Both of these properties MUST
   be present in order defined for this value type.

      The "DATE-TIME" data type is used to specify identify values that contain
      a repeating alarm.  If one precise calendar date and time of these
   two properties day.  The format is absent, then the alarm will not repeat beyond based on
      the
   initial trigger. [ISO.8601.1988] complete representation, basic format for a
      calendar date and time of day.  The "ACTION" property text format is used within a 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 of action invoked when date and time with UTC offset MUST NOT be used.  For
      example, the alarm following is triggered.
   The "VALARM" properties provide enough information not valid for a specific
   action to be invoked.  It date-time value:

              DTSTART:19980119T230000-0800       ;Invalid time format

      FORM #1: DATE WITH LOCAL TIME

      The date with local time form is typically the responsibility of simply a
   "Calendar User Agent" (CUA) to deliver the alarm in the specified
   fashion.  An "ACTION" property date-time value of AUDIO specifies an alarm that
   causes a sound to be played to alert
      does not contain the user; DISPLAY specifies an
   alarm that causes UTC designator nor does it reference a text message time
      zone.  For example, the following represents Janurary 18, 1998, at
      11 PM:

              DTSTART:19980118T230000

      Date-time values of this type are said to be displayed "floating" and are
      not bound to any time zone in particular.  They are used to
      represent the user; EMAIL
   specifies same hour, minute, and second value regardless of
      which time zone is currently being observed.  For example, an alarm
      event can be defined that indicates that causes an electronic email message to individual will be
   delivered
      busy from 11:00 AM to one or more email addresses; and PROCEDURE specifies an
   alarm that causes 1:00 PM every day, no matter which time zone
      the person is in.  In these cases, a procedure to local time can be executed. specified.
      The "ACTION" property
   MUST specify one and only one recipient of these values.

   In an AUDIO alarm, if the optional "ATTACH" iCalendar object with a property is included, it
   MUST specify an audio sound resource.  The intention is that value
      consisting of a local time, without any relative time zone
      information, SHOULD interpret the
   sound will be played value as the alarm effect.  If an "ATTACH" property is
   specified that does not refer being fixed to a sound resource, or if whatever
      time zone the
   specified sound resource cannot be rendered (because its format ATTENDEE is
   unsupported, or because it cannot be retrieved), then the CUA or
   other entity responsible for playing in at any given moment.  This means that
      two ATTENDEEs, in different time zones, receiving the sound may choose a fallback
   action, such same event
      definition as playing a built-in default sound, or playing no sound
   at all.

   In a DISPLAY alarm, the intended alarm effect is for the text value
   of floating time, may be participating in the "DESCRIPTION" property to event
      at different actual times.  Floating time SHOULD only be displayed to used
      where that is the user. reasonable behavior.







Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 42] 32]

Internet-Draft                  iCalendar                   October 2005                      June 2006


      In an EMAIL alarm, the intended alarm effect most cases, a fixed time is for an email message
   to be composed and delivered to all the addresses specified by the
   "ATTENDEE" properties desired.  To properly communicate a
      fixed time in the "VALARM" calendar component.  The
   "DESCRIPTION" a property of the "VALARM" calendar component value, either UTC time or local time with
      time zone reference MUST be
   used as the body text specified.

      The use of the message, and the "SUMMARY" property MUST
   be used as the subject text.  Any "ATTACH" properties local time in the "VALARM"
   calendar component SHOULD be sent as attachments to the message.

   In a PROCEDURE alarm, DATE-TIME value without the "ATTACH" TZID
      property in the "VALARM" calendar
   component MUST specify a procedure or program that parameter is intended to be
   invoked interpreted as floating time,
      regardless of the alarm effect.  If existence of "VTIMEZONE" calendar components in
      the procedure iCalendar object.

      FORM #2: DATE WITH UTC TIME

      The date with UTC time, or program absolute time, is in identified by a
   format that cannot be rendered, then no procedure alarm will be
   invoked.  If the "DESCRIPTION" property is present, its value
   specifies LATIN
      CAPITAL LETTER Z suffix character (US-ASCII decimal 90), the argument string UTC
      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 be passed applied to the procedure or
   program.  "Calendar User Agents" that receive an iCalendar object DATE-TIME
      properties whose time values are specified in UTC.

      FORM #3: DATE WITH LOCAL TIME AND TIME ZONE REFERENCE

      The date and local time with this category of alarm, can disable or allow the "Calendar User" reference to disable, or otherwise ignore this type of alarm.  While a very
   useful alarm capability, the PROCEDURE type of alarm SHOULD be
   treated time 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 before use the scheduled start of TZID property parameter to reference the
   event or
      appropriate time zone definition.  TZID is discussed in detail in
      the due date/time of section on Time Zone.  For example, the to-do it is associated with and
   will repeat following represents 2 more times at 15 minute intervals:

        BEGIN:VALARM
        TRIGGER:-PT30M
        REPEAT:2
        DURATION:PT15M
        ACTION:DISPLAY
        DESCRIPTION:Breakfast meeting with executive\n
         team at 8:30
      AM EST.
        END:VALARM




Desruisseaux & Stoner    Expires April in 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/time 1997, at 1:30 PM in New
      York City in each of
   a 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 to the attendees
          to three time formats, using the weekly 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 the document template for
      periodic "leap second" in the agenda 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 33 time value.  For example:

        COMPLETED:19970630T235960Z







Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 44] 33]

Internet-Draft                  iCalendar                   October 2005


8.  Properties

   A property                      June 2006


3.3.6.  Duration

   Value Name: DURATION

   Purpose: This value type is the definition of an individual attribute describing a
   calendar or used to identify properties that contain
      a calendar component.  A property takes the form duration of time.

   Format Definition: The value type is defined by the "contentline" notation defined in section 4.1.1.

   The following is 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 after
      notation:

        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: This property defines permits, multiple "duration" values are
      specified by a COMMA character (US-ASCII decimal 44) separated
      list of values.  The format is expressed as the calendar scale used [ISO.8601.1988]
      basic format for the
   calendar information specified in the iCalendar object.

   Value Type: TEXT

   do Property Parameters: Non-standard property parameters can be
   specified on this property.

   Conformance: Property duration of time.  The format can be specified represent
      durations in an iCalendar object.  The
   default terms of weeks, days, hours, minutes, and seconds.

      No additional content value is "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: This memo value type is based on the Gregorian calendar scale. used to identify properties that contain
      a real number value.

   Format Definition: The
   Gregorian calendar scale is assumed if this property is not specified
   in the iCalendar object.  It value type is expected that other calendar scales
   will be defined in other specifications or by future versions of this
   memo. the following
      notation:

        float      = (["+"] / "-") 1*DIGIT ["." 1*DIGIT]



Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 45] 34]

Internet-Draft                  iCalendar                   October 2005


   Formal                      June 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: The property value type is defined by the following
      notation:

        calscale   = "CALSCALE" calparam ":" calvalue CRLF

        calparam   = *(";" xparam)

        calvalue

        integer    = "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 the calendar object.

   Value Type: TEXT

   Property Parameters: Non-standard property parameters can be
   specified on this property.

   Conformance: The property can be permits, multiple "integer" values are
      specified in an iCalendar object.

   Description: When used in by a MIME message entity, the value COMMA character (US-ASCII decimal 44) separated
      list of this
   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.  If either the "METHOD" property or the Content-Type "method"
   parameter sign is not specified, then the other MUST also value is
      assumed to be specified. positive.

      No methods are additional content value encoding (i.e., BACKSLASH character
      encoding) is defined by for this specification.  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 intention value type.

   Example:

        1234567890
        -1234567890
        +1234567890
        432109876

3.3.9.  Period of conveying a scheduling
   semantic. Time

   Value Name: PERIOD







Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 46] 35]

Internet-Draft                  iCalendar                   October 2005


   Formal                      June 2006


   Purpose: This value type is used to identify values that contain a
      precise period of time.

   Format Definition: The property value type is defined by the following
      notation:

        method     = "METHOD" metparam ":" metvalue CRLF

        metparam

      period     = *(";" xparam)

        metvalue period-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. The following is start MUST
      ; be before the end.

      period-start = date-time "/" dur-value
      ; [ISO.8601.1988] complete representation basic format for a hypothetical example
      ; period of this property to
   convey that time consisting of a start and positive duration
      ; of time.

   Description: If the iCalendar object is property permits, multiple "period" values are
      specified by a request for COMMA character (US-ASCII decimal 44) separated
      list of values.  There are two forms of a meeting:

        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.  This property specifies
      format is expressed as the identifier [ISO.8601.1988] complete
      representation, basic format for "DATE-TIME" start of the product that
   created period,
      followed by a SOLIDUS character (US-ASCII decimal 47), followed by
      the iCalendar 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.  The property start of the period
      MUST be specified once in an iCalendar
   object.

   Description: The vendor before the end of the implementation SHOULD assure that this
   is period.  Second, a globally unique identifier; using some technique such as an FPI
   value, as defined in [ISO 9070].

   This property SHOULD not period of time
      can also be used to alter defined by a start and a positive duration of time.
      The format is expressed as the interpretation [ISO.8601.1988] complete
      representation, basic format for the "DATE-TIME" start of an
   iCalendar object beyond the semantics specified in this memo.  For
   example, it is not to be used to further
      period, followed by a SOLIDUS character (US-ASCII decimal 47),
      followed by the understanding [ISO.8601.1988] basic format for "DURATION" of non-
   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 & Stoner            Expires April 14, December 24, 2006              [Page 47] 36]

Internet-Draft                  iCalendar                   October 2005


   Formal                      June 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: The property value type is defined by the following
      notation:

        prodid     = "PRODID" pidparam ":" pidvalue CRLF
        pidparam   = *(";" xparam)

        pidvalue

    recur      = 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 or the minimum COUNT may appear in a 'recur',
               ; but UNTIL and maximum range of the
   iCalendar specification that is required COUNT MUST NOT occur in order to interpret the
   iCalendar 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 MUST only be specified once.

   Description: A NOT 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 value of "2.0" corresponds

    byseclist  = seconds / ( seconds *("," seconds) )

    seconds    = 1DIGIT / 2DIGIT       ;0 to this memo. 59

    byminlist  = minutes / ( minutes *("," minutes) )

    minutes    = 1DIGIT / 2DIGIT       ;0 to 59



Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 48] 37]

Internet-Draft                  iCalendar                   October 2005


   Formal Definition: The property is defined by the following notation:

        version                      June 2006


    byhrlist   = "VERSION" verparam ":" vervalue CRLF

        verparam hour / ( hour *("," hour) )

    hour       = *(";" xparam)

        vervalue 1DIGIT / 2DIGIT       ;0 to 23

    bywdaylist = "2.0"         ;This memo weekdaynum / maxver ( weekdaynum *("," weekdaynum) )

    weekdaynum = [([plus] ordwk / (minver ";" maxver)

        minver minus ordwk)] weekday

    plus       = [A IANA registered iCalendar version identifier]
        ;Minimum iCalendar version needed "+"

    minus      = "-"

    ordwk      = 1DIGIT / 2DIGIT       ;1 to parse the iCalendar object

        maxver 53

    weekday    = [A IANA registered iCalendar version identifier]
        ;Maximum iCalendar version needed "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA"
    ;Corresponding to parse the iCalendar object

   Example: The following is an example SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY,
    ;FRIDAY, SATURDAY and SUNDAY days of this 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 provides the capability 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 BINARY week.

    bymodaylist = monthdaynum / ( monthdaynum *("," monthdaynum) )

    monthdaynum = ([plus] ordmoday) / (minus ordmoday)

    ordmoday   = 1DIGIT / 2DIGIT       ;1 to indicate 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:

        attach 31

    byyrdaylist = "ATTACH" attparam ":" uri  CRLF

        attach     =/ "ATTACH" attparam ";" "ENCODING" "=" "BASE64"
                      ";" "VALUE" "=" "BINARY" ":" binary

        attparam yeardaynum / ( 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 defines

    weeknum    = ([plus] ordwk) / (minus ordwk)

    bymolist   = monthnum / ( monthnum *("," monthnum) )

    monthnum   = 1DIGIT / 2DIGIT       ;1 to 12

    bysplist   = setposday / ( setposday *("," setposday) )

    setposday  = yeardaynum

   Description: If the categories for a calendar
   component.

   Value Type: TEXT

   Property Parameters: Non-standard and language property parameters
   can be specified on this property.

   Conformance: The property can be permits, multiple "recur" values are
      specified within "VEVENT", "VTODO"
   or "VJOURNAL" calendar components.

   Description: This property is used to specify categories or subtypes by a COMMA character (US-ASCII decimal 44) separated
      list of the calendar component. values.  The categories are useful in searching
   for value type is a calendar component structured value consisting
      of a particular type and category.  Within
   the "VEVENT", "VTODO" list of one or "VJOURNAL" calendar components, more than
   one category can be specified as recurrence grammar parts.  Each rule part
      is defined by a list of categories NAME=VALUE pair.  The rule parts are separated
      from each other by the SEMICOLON character (US-ASCII decimal 59).



Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 50] 38]

Internet-Draft                  iCalendar                   October 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


      The following rule parts are examples 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 can not ordered in any particular sequence.
      Individual rule parts MUST only be specified on this property.

   Conformance: once.

      The property can FREQ rule part identifies the type of recurrence rule.  This
      rule part MUST be specified once in 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 component more; MINUTELY, to specify repeating events based
      on an interval of the
   general security system within a calendar application.  It provides a
   method of capturing the scope of the access the calendar owner
   intends for information within minute or more; HOURLY, to specify repeating
      events based on an individual calendar entry.  The
   access classification interval of an individual iCalendar component is useful
   when measured along with the other security components hour or more; DAILY, to specify
      repeating events based on an interval of a calendar
   system (e.g., calendar user authentication, authorization, access
   rights, access role, etc.).  Hence, the semantics day or more; WEEKLY, to
      specify repeating events based on an interval of the 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, due a week or more;
      MONTHLY, to the "blind" nature specify repeating events based on an interval of most exchange
   processes using this memo, these access classifications cannot serve
   as a
      month or more; and YEARLY, to specify repeating events based on an enforcement statement
      interval 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 a system receiving SECONDLY rule, or every minute for a
      MINUTELY rule, every hour for an iCalendar
   object.  Rather, they provide HOURLY rule, every day for a method
      DAILY rule, every week for capturing the intention of
   the calendar owner a 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 the access to
      recurrence rule in an inclusive manner.  If the calendar component.

   Formal Definition: The property is defined value specified by the following notation:

        class      = "CLASS" classparam ":" classvalue CRLF

        classparam = *(";" xparam)

        classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token
                   / x-name
        ;Default is PUBLIC

   Example: The following
      UNTIL is an 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 to synchronized with the calendar user.

   Value Type: TEXT

   Property Parameters: Non-standard, alternate text representation and
   language property parameters can be specified on recurrence, this property.

   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 by
      date-time becomes the following notation:

        comment    = "COMMENT" commparam ":" text CRLF

        commparam  = *(

                   ; last instance of the following are optional,
                   ; but recurrence.  If
      specified as a date-time value, then it MUST NOT occur more than once

                   (";" altrepparam) / (";" languageparam) /

                   ; be specified in an
      UTC time format.  If not present, and the following COUNT rule part is optional,
                   ; and MAY occur more than once

                   (";" xparam)

                   )

   Example: The following also
      not present, the RRULE is an example of this property:

        COMMENT:The meeting really needs considered to include both ourselves
          and repeat forever.

      The COUNT rule part defines the customer. We can't hold this  meeting without them.
          As a matter number of fact\, occurrences at which to
      range-bound the venue for recurrence.  The "DTSTART" property value, if
      specified, counts as the meeting ought to be at
          their site. - - John

8.2.5.  Description

   Property Name: DESCRIPTION

   Purpose: This property provides first occurrence.

      The BYSECOND rule part specifies a more complete description COMMA character (US-ASCII
      decimal 44) separated list of the
   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 only seconds within a "VJOURNAL" calendar component.

   Description: This property is used in the "VEVENT" and "VTODO" minute.  Valid
      values are 0 to
   capture lengthy textual decriptions associated with the activity.

   This property is used in the "VJOURNAL" calendar component 59.  The BYMINUTE rule part specifies a COMMA
      character (US-ASCII decimal 44) separated list of minutes within
      an hour.  Valid values are 0 to capture
   one more textual journal entries.

   This property is used in 59.  The BYHOUR rule part
      specifies a COMMA character (US- ASCII decimal 44) separated list
      of hours of the "VALARM" calendar component day.  Valid values are 0 to capture 23.

      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 & Stoner            Expires April 14, December 24, 2006              [Page 53] 39]

Internet-Draft                  iCalendar                   October 2005


   the display text for                      June 2006


      Each BYDAY value can also be preceded by a DISPLAY category of alarm, to capture positive (+n) or
      negative (-n) integer.  If present, this indicates the body
   text for an EMAIL category nth
      occurrence of alarm and to capture the argument
   string for specific day within the MONTHLY or YEARLY RRULE.
      For example, within a PROCEDURE category of alarm.

   Formal Definition: The property is defined by MONTHLY rule, +1MO (or simply 1MO)
      represents the following notation:

        description        = "DESCRIPTION" descparam ":" text CRLF

        descparam  = *(

                   ; first Monday within the following are optional,
                   ; but MUST NOT occur more than once

                   (";" altrepparam) / (";" languageparam) /

                   ; month, whereas -1MO
      represents the following is optional,
                   ; and MAY occur more than once

                   (";" xparam)

                   )

   Example: The following is an example last Monday 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 following is month.  If an example integer modifier
      is not present, it means all days of this type within the property with folding
      specified 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 of long
   lines:

        DESCRIPTION:Last draft days of the new novel is month.  Valid values are
      1 to be completed
          for 31 or -31 to -1.  For example, -10 represents the editor's proof today.

8.2.6.  Geographic Position

   Property Name: GEO

   Purpose: This property specifies information related tenth to
      the global
   position for last day of the activity specified by a calendar component.

   Value Type: FLOAT. month.

      The value MUST be two SEMICOLON BYYEARDAY rule part specifies a COMMA character (US-ASCII
      decimal 44) separated FLOAT
   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 west list of days of the prime meridian as a positive or negative
   real number, respectively.  The longitude and latitude year.  Valid values MAY be
   specified up are
      1 to six decimal places, which will allow for accuracy 366 or -366 to
   within 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
      of
   greater precision.

   Values for latitude the year (December 31st) 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 -306 represents the 306th to the
      last day of longitude shall be represented by a decimal number ranging
   from 0 through 180.  When the year (March 1st).

      The BYWEEKNO rule part specifies a COMMA character (US-ASCII
      decimal fraction of a degree is
   specified, it shall be 44) separated from the whole number list of degrees by
   a decimal point.

   Latitudes north ordinals specifying weeks of the equator shall be specified by a plus sign (+),
      year.  Valid values are 1 to 53 or by 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 a minus sign (-), preceding seven day period, starting on the digits
   designating degrees.  Latitudes south day of
      the Equator shall week defined to be
   designated by a minus sign (-) preceding the digits designating
   degrees.  A point on week start (see WKST).  Week number one
      of the Equator shall be assigned to calendar year is the Northern
   Hemisphere.

   Longitudes east first 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 the prime meridian shall be specified by
      year.



         Note: Assuming a plus
   sign (+), Monday week start, week 53 can only occur when
         Thursday is January 1 or by the absence of if it is a minus sign (-), preceding the digits
   designating degrees.  Longitudes west leap year and Wednesday is
         January 1.

      The BYMONTH rule part specifies a COMMA character (US-ASCII
      decimal 44) separated list of months of the meridian shall be
   designated by minus sign (-) preceding the digits designating
   degrees.  A point on the prime meridian shall be assigned year.  Valid values
      are 1 to 12.

      The WKST rule part specifies the
   Eastern Hemisphere.  A point day on which the 180th meridian shall be assigned
   to the Western Hemisphere.  One exception to this last convention workweek starts.
      Valid values are MO, TU, WE, TH, FR, SA and SU.  This is
   permitted.  For the special condition of describing
      significant when a band of
   latitude around the earth, the East Bounding Coordinate data element
   shall be assigned the value +180 (180) degrees.

   Any spatial address with WEEKLY RRULE has an interval greater than 1,
      and a latitude 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
   form BYDAY rule part is specified specified.  This is also significant when
      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. a YEARLY RRULE when a BYWEEKNO rule part is specified.  The
      default value is MO.



Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 55] 40]

Internet-Draft                  iCalendar                   October 2005                      June 2006


      The simple 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 defined 44) separated list of values which corresponds to the nth
      occurrence within the set of events specified by the following notation:

        geo        = "GEO" geoparam ":" geovalue CRLF

        geoparam   = *(";" xparam)

        geovalue   = float ";" float
        ;Latitude and Longitude components

   Example: The following is an rule.  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, this property:

        GEO:37.386013;-122.082932

8.2.7.  Location

   Property Name: LOCATION

   Purpose: The property defines indicates the intended venue for nth occurrence of the activity
   defined
      specific occurrence within the set of events specified by a calendar component.

   Value Type: TEXT

   Property Parameters: Non-standard, alternate text representation the
      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 and
   language 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.  This property can information 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 conference greater than the
      frequency generally reduce 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 limit the number of occurrences of
      the
   location. recurrence generated.  For example, "FREQ=DAILY;BYMONTH=1"
      reduces the alternate representation may specify
   either an LDAP URI pointing to an LDAP server entry or a CID URI
   pointing number of recurrence instances from all days (if
      BYMONTH tag is not present) to a MIME body part containing a vCard [RFC 2426] all days in January.  BYxxx rule
      parts for a period of time less than the
   location.










Desruisseaux & Stoner    Expires April 14, 2006                [Page 56]

Internet-Draft                  iCalendar                   October 2005


   Format Definition: The property is defined by frequency generally
      increase or expand the following notation:

        location   = "LOCATION locparam ":" text CRLF

        locparam   = *(

                   ; number of occurrences of the following are optional,
                   ; but MUST NOT occur more than once

                   (";" altrepparam) / (";" languageparam) /

                   ; recurrence.
      For example, "FREQ=YEARLY;BYMONTH=1,2" increases the following 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 delegatee number of a to-do
   to convey
      days within the percent completion of a to-do yearly recurrence set from 1 (if BYMONTH tag is
      not present) to 2.

      If multiple BYxxx rule parts are specified, then after evaluating
      the Organizer.

   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 FREQ and one hundred.  A value of "0" indicates INTERVAL rule parts, the to-do has not yet been
   started.  A value of "100" indicates that BYxxx rule parts
      are applied to the to-do has been
   completed.  Integer values current set of evaluated occurrences in between indicate the percent partially
   complete.

   When a to-do
      following order: BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY,
      BYHOUR, BYMINUTE, BYSECOND and BYSETPOS; then COUNT and UNTIL are
      evaluated.

      Here is assigned to multiple individuals, the property value
   indicates the percent complete for that portion an example of the to-do assigned evaluating multiple BYxxx rule parts.

          DTSTART;TZID=US-Eastern:19970105T083000
          RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;
           BYMINUTE=30



Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 57] 41]

Internet-Draft                  iCalendar                   October 2005


   to                      June 2006


      First, the assignee or delegatee.  For example, if a to-do is assigned "INTERVAL=2" would be applied to
   both 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 reply 9 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% of RRULE, the to-do
   assigned second is derived from DTSTART, to them.  A reply end
      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" with the
      "DTSTART" property.

      No additional content value encoding (i.e., BACKSLASH character
      encoding) is defined for this value type.

   Example: The following is a percent complete of "50"
   indicates "B" has completed 50% of rule which specifies 10 meetings which
      occur every other day:

              FREQ=DAILY;COUNT=10;INTERVAL=2

      There are other examples specified in the to-do assigned "RRULE" specification.

3.3.11.  Text

   Value Name: TEXT

   Purpose: This value type is used to them. identify values that contain
      human readable text.

   Format Definition: The property character 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 following notation:

        percent notation.

        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 this property to show 39%
   completion:

        PERCENT-COMPLETE:39

8.2.9.  Priority

   Property Name: PRIORITY

   Purpose: The property defines is beyond the relative priority for a calendar
   component.

   Value Type: INTEGER

   Property Parameters: Non-standard property parameters can be
   specified on scope of this property.

   Conformance: The
         document.

   Description: If the property can be permits, multiple "text" values are
      specified in by 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 one COMMA character (US-ASCII decimal 49) is the
   highest priority.  A value 44) separated
      list of two (US-ASCII decimal 50) is values.

      The language in which the second
   highest priority.  Subsequent numbers specify a decreasing ordinal
   priority.  A value of nine (US-ASCII decimal 58) text is represented can be controlled by
      the lowest
   priority.

   A CUA with a three-level priority scheme of "HIGH", "MEDIUM" and
   "LOW" is mapped into this "LANGUAGE" property such that parameter.

      An intentional formatted text line break MUST only be included in
      a "TEXT" property value in by representing the
   range line break with the
      character sequence of one BACKSLASH (US-ASCII decimal 49) to four 92), followed by
      a LATIN SMALL LETTER N (US-ASCII decimal 52)
   specifies "HIGH" priority.  A value of five 110) or a LATIN CAPITAL
      LETTER N (US-ASCII decimal 53) 78), that is
   the 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 to nine (US-ASCII decimal 58) is "LOW" priority.




Desruisseaux & Stoner    Expires April 14, 2006                [Page 58]

Internet-Draft                  iCalendar                   October 2005


   A CUA with signify delimiters, such as a priority schema COMMA character for
      lists of "A1", "A2", "A3", "B1", "B2", ...,
   "C3" is mapped into this property such that values or a property value SEMICOLON character for structured values.
      In order to support the inclusion of one these special characters in
      "TEXT" property values, they MUST be escaped with a BACKSLASH
      character.  A BACKSLASH character (US-ASCII decimal 49) specifies "A1", 92) in a
      "TEXT" property value of two (US-
   ASCII decimal 50) specifies "A2", MUST be escaped with another BACKSLASH
      character.  A COMMA character in a "TEXT" property value of three MUST be
      escaped with a BACKSLASH character (US-ASCII decimal 51) specifies "A3", and so forth up to 92).  A
      SEMICOLON character in a "TEXT" property value of 9 MUST be escaped
      with a BACKSLASH character (US-ASCII decimal 58) specifies "C3".

   Other integer values are reserved for future use.

   Within 92).  However, a "VEVENT" calendar component, this property specifies
      COLON character in a
   priority for the event.  This "TEXT" property may value SHALL NOT be useful when more than
   one event is scheduled for a given time period.

   Within a "VTODO" calendar component, this property specified escaped
      with a
   priority 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: This property value type is useful in prioritizing
   multiple action items for used to identify values that contain a given
      time period. of day.

   Format Definition: The property data type is specified defined by the following
      notation:

        priority

    time               = "PRIORITY" prioparam ":" privalue CRLF
        ;Default is zero

        prioparam time-hour time-minute time-second [time-utc]

    time-hour          = *(";" xparam)

        privalue 2DIGIT        ;00-23
    time-minute        = integer       ;Must be in 2DIGIT        ;00-59
    time-second        = 2DIGIT        ;00-60
    ;The "60" value is used to account for "leap" seconds.

    time-utc   = "Z"

   Description: If the range [0..9]
           ; All other property permits, multiple "time" values are reserved
      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 future use this value type.

      The following "TIME" data type is an example of used to identify values that contain a property with the highest priority:

        PRIORITY:1
      time of day.  The following format is an example of a property with based on the [ISO.8601.1988] complete
      representation, basic format for a next highest
   priority:

        PRIORITY:2

   Example: time of day.  The following is an example text format
      consists of a property with no priority.
   This is equivalent to not specifying two-digit 24-hour of the "PRIORITY" property:

        PRIORITY:0

8.2.10.  Resources

   Property Name: RESOURCES

   Purpose: This property defines day (i.e., values 0-23),
      two- digit minute in the equipment 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 representation hour (i.e., values 0-59), and
   language property parameters can be specified on this property.

   Conformance: This property can be specified two-digit
      seconds in "VEVENT" or "VTODO"
   calendar component.

   Description: the minute (i.e., values 0-60).  The property seconds value is an arbitrary text.  More than one
   resource can of
      60 MUST only to be specified as a list used to account for "leap" seconds.  Fractions
      of resources separated by the
   COMMA character (US-ASCII decimal 44).

   Format Definition: The property is defined a second are not supported by this format.

      In parallel to the following notation:

        resources  = "RESOURCES" resrcparam ":" text *("," text) CRLF

        resrcparam = *(

                   ; "DATE-TIME" definition above, the following are optional,
                   ; but "TIME" data
      type expresses time values in three forms:

      The form of time with UTC offset MUST NOT occur more than once

                   (";" altrepparam) / (";" languageparam) /

                   ; be used.  For example,
      the following is optional,
                   ; 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 busy NOT VALID for a time type.

   Description: The parameter specifies the free or busy value:



              230000-0800        ;Invalid time type. format

      FORM #1 LOCAL TIME

      The
   value FREE indicates that the local time interval form is free for scheduling.
   The simply a time value BUSY indicates that the time interval is busy because one does not contain
      the UTC designator nor does it reference a time zone.  For
      example, 11:00 PM:







Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 60] 44]

Internet-Draft                  iCalendar                   October 2005


   or more events have been scheduled for that interval.  The value
   BUSY-UNAVAILABLE indicates that                      June 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 time interval
      zone is busy and currently 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 the interval person is
      in.  In these cases, a local time can not be scheduled. specified.  The recipient
      of an iCalendar object with a property value BUSY-TENTATIVE
   indicates that consisting of a local
      time, without any relative time zone information, SHOULD interpret
      the value as being fixed to whatever time interval zone the ATTENDEE is busy because one or more events
   have been tentatively scheduled for that interval.  If not specified
   on a property in
      at any given moment.  This means that allows this parameter, two ATTENDEEs may
      participate in the default same event at different UTC times; floating
      time SHOULD only be used where that is BUSY.

   Format Definition: The property parameter reasonable behavior.

      In most cases, a fixed time is defined 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.

      The following is an example use of this parameter on local time in a FREEBUSY
   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 by TIME value without the property.

   Description: This TZID property
      parameter can is to be specified on properties with interpreted as a
   CAL-ADDRESS value type.  The parameter identifies the participation
   status for local time value, regardless
      of the existence of "VTIMEZONE" calendar user specified components 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), the property UTC
      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 values differ depending on whether they are associated with
   a group scheduled "VEVENT", "VTODO" or "VJOURNAL". specified in UTC.

      FORM #3: LOCAL TIME AND TIME ZONE REFERENCE

      The values MUST
   match one of local time with reference to time zone information form is
      identified by the values allowed for use the given calendar component.  If
   not specified on a TZID property that allows this parameter, parameter to reference the default
   value
      appropriate time zone definition.  TZID is NEEDS-ACTION. discussed in detail in
      the section on Time Zone.




Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 61] 45]

Internet-Draft                  iCalendar                   October 2005


   Format Definition:                      June 2006


   Example: The property parameter is defined by the following
   notation:

        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-do represents 8:30 AM in process New York in Winter, five
      hours behind UTC, in each of
                                          ; being completed
                           / x-name              ; Experimental status
                          / iana-token)         ; Other IANA registered
                                          ; status
        ; These are the participation 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 are three formats using the participation 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: STATUS URI

   Purpose: This property 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: In value type is used to identify values that contain a group scheduled calendar component,
      uniform resource identifier (URI) type of reference to the
      property value.

   Format Definition: The data type is
   used defined by the "Organizer" following
      notation:

        uri        = <As defined by any IETF RFC>

   Description: This data type might be used to provide a confirmation of the event reference binary
      information, for values that are large, or otherwise undesirable
      to the
   "Attendees".  For example include directly in a "VEVENT" calendar component, the
   "Organizer" iCalendar object.

      The URI value formats in RFC 1738, RFC 2111 and any other IETF
      registered value format can indicate that be 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 a meeting property parameter value is tentative, confirmed or
   cancelled.  In a "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) is completed, defined for this value type.

   Example: The following is in
   process or being worked on, or has been cancelled.  In a "VJOURNAL"
   calendar component, the "Organizer" can indicate that URI for a journal entry
   is draft, final or has been cancelled or removed. network file:

        http://host1.com/my-report.txt

3.3.14.  UTC Offset







Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 63] 46]

Internet-Draft                  iCalendar                   October 2005                      June 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: The property data type is defined by the following
      notation:

        status

        utc-offset = "STATUS" statparam] ":" statvalue CRLF

        statparam time-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 for a "VEVENT"

        statvalue  =/ "NEEDS-ACTION"      ;Indicates to-do needs action.
                   / "COMPLETED"      ;Indicates to-do completed.
                   / "IN-PROCESS"      ;Indicates to-do in process positive
      UTC offsets (i.e., ahead of
                   / "CANCELLED"      ;Indicates to-do was cancelled.
           ;Status values UTC).  The MINUS SIGN character MUST
      be specified for "VTODO".

        statvalue  =/ "DRAFT"      ;Indicates journal is draft.
                   / "FINAL"               ;Indicates journal is final.
                   / "CANCELLED"    ;Indicates journal negative 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) is removed.
           ;Status values defined 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 is an example a collection of
   calendaring and scheduling information.  Typically, this property for information
   will consist of a "VEVENT"
   calendar component:

        STATUS:TENTATIVE 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)

   The following is an a simple example of this an 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 property for is the definition of an individual attribute describing a "VTODO"
   calendar
   component:

        STATUS:NEEDS-ACTION or a calendar component.  A property takes the form defined
   by the "contentline" notation defined in Section 3.1.

   The following is an example of this property for a "VJOURNAL"
   calendar component:

        STATUS:DRAFT

8.2.14.  Summary

   Property Name: SUMMARY

   Purpose: property:

     DTSTART:19960415T133000Z

   This property defines a short summary or subject for the
   calendar component.

   Value Type: TEXT



Desruisseaux & Stoner    Expires April 14, 2006                [Page 64]

Internet-Draft memo imposes no ordering of properties within an iCalendar                   October 2005
   object.

   Property Parameters: Non-standard, alternate text representation names, parameter names and
   language enumerated parameter values are
   case insensitive.  For example, the property parameters 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

   The property 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 in  The calendar
   properties are attributes that apply to the "VEVENT", "VTODO" and
   "VJOURNAL" calendar as a whole.  The
   calendar components to capture are collections of properties that express a short, one line summary
   about the activity or journal entry.

   This property is used in
   particular calendar semantic.  For example, the "VALARM" calendar component to capture
   the subject of
   can specify an event, a to-do, a journal entry, time zone
   information, or free/busy time information, or an EMAIL category of alarm.

   Format Definition:

   The property body of the iCalendar object is defined by the following
   notation:

        summary    = "SUMMARY" summparam ":" text CRLF

        summparam  = *(

                   ; the following











Desruisseaux            Expires December 24, 2006              [Page 48]

Internet-Draft                  iCalendar                      June 2006


     icalbody   = calprops component

     calprops   = 2*(

                ; 'prodid' and 'version' are optional, both REQUIRED,
                ; but MUST NOT occur more than once

                   (";" altrepparam) / (";" languageparam)

                prodid /version /

                ; the following is 'calscale' and 'method' are optional,
                ; and MAY but 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:

        completed

     component  = "COMPLETED" compparam 1*(eventc / todoc / journalc / freebusyc /
                / timezonec / iana-comp / x-comp)

     iana-comp  = "BEGIN" ":" date-time iana-token CRLF


        compparam

                  1*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 the date "PRODID" and time that a "VERSION" calendar
   component ends.

   Value Type: The default value type is DATE-TIME.  The value type can
   be set
   properties.  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 a DATE value type.

   Property Parameters: Non-standard, value data type, "VFREEBUSY" calendar component)
   or time zone
   identifier property parameters can be specified on this property.

   Conformance: This property can be specified in "VEVENT" or
   "VFREEBUSY" (i.e., only a "VTIMEZONE" calendar components.

   Description: Within component)
   information.  In addition, a complex iCalendar object is possible
   that is used to capture a complete snapshot of the "VEVENT" contents of a
   calendar component, 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 of the "DTSTART" property.

   Within the "VFREEBUSY" many different calendar component, 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 value components).
   More commonly, an iCalendar object will consist of the "DTSTART" property. just a single
   "VEVENT", "VTODO" or "VJOURNAL" calendar component.

3.6.1.  Event Component






Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 66] 49]

Internet-Draft                  iCalendar                   October 2005                      June 2006


   Component Name: VEVENT

   Purpose: Provide a grouping of component properties that describe an
      event.

   Format Definition: The property A "VEVENT" calendar component is defined by the
      following notation:

        dtend

       eventc     = "DTEND" dtendparam":" dtendval "BEGIN" ":" "VEVENT" CRLF

        dtendparam
                    eventprop *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-time dtstart / 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 occur more than once

                   (";" "VALUE" "=" ("DATE-TIME" / "DATE")) in the same 'eventprop'

                  dtend /
                   (";" tzidparam) duration /

                  ; the following is are optional,
                  ; and MAY occur more than once

                     *(";" xparam)

                   )



        dueval     = date-time

                  attach / 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 the attendee / categories / comment /
                  contact / exdate / exrule / rstatus / related /
                  resources / rdate / rrule / x-prop

                  )

   Description: A "VEVENT" calendar component begins.

   Value Type: The default value type is DATE-TIME.  The a grouping of component
      properties, and possibly including "VALARM" calendar components,
      that represents a scheduled amount of time value MUST on a calendar.  For
      example, it can be one of an 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, the forms defined
      event will appear as an opaque interval in a search for busy time.
      Alternately, the DATE-TIME value type.  The value
   type event can be have 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 value type.

   Property Parameters: Non-standard, value data type, time zone
   identifier type for the "DTSTART" property parameters can instead of the
      default data type of DATE-TIME.  If such a "VEVENT" has a "DTEND"
      property, it MUST be specified on this property.

   Conformance: This property as a DATE value also.  The
      anniversary type of "VEVENT" can be specified in the "VEVENT", "VTODO",
   "VFREEBUSY", or "VTIMEZONE" span more than one date (i.e,
      "DTEND" property value is set to a calendar components.

   Description: Within date after the "VEVENT" calendar component, this
      "DTSTART" property
   defines value).

      The "DTSTART" property for a "VEVENT" specifies the inclusive
      start date and time for of the event.  For recurring events, it also specifies the
      very first instance in the recurrence set.  The "DTEND" property is
   REQUIRED in
      for a "VEVENT" calendar components.  Events can have a start
   date/time but no component specifies the non-inclusive end date/time.  In that case,
      of the event 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" calendar component, this component
      specifies a "DTSTART" property defines with a DATE data type but no
      "DTEND" property, the
   start date and time for events non-inclusive end is the free or busy time information.  The time
   MUST be end of the
      calendar date specified in UTC time.

   Within by the "VTIMEZONE" "DTSTART" property.  For cases
      where a "VEVENT" calendar component, this component specifies a "DTSTART" property defines
      with a DATE-TIME data type but no "DTEND" property, the
   effective start event 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 a time zone specification.  This
   property reminder 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 is REQUIRED within each STANDARD and DAYLIGHT part included in "VTIMEZONE" sensitivity awareness class.
       CLASS:PUBLIC
       CATEGORIES:BUSINESS,HUMAN RESOURCES
       TRANSP:TRANSPARENT
       END:VEVENT

      The following is an example of the "VEVENT" calendar components and MUST be specified component
      used to represent an anniversary that will occur annually.  Since
      it takes up no time, it will not appear as opaque in a local
   DATE-TIME without search for
      busy time; no matter what the "TZID" value of the "TRANSP" property parameter.
      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 property A "VTODO" calendar component is defined by the
      following notation:

        dtstart















Desruisseaux            Expires December 24, 2006              [Page 52]

Internet-Draft                  iCalendar                      June 2006


       todoc      = "DTSTART" dtstparam "BEGIN" ":" dtstval "VTODO" CRLF

        dtstparam
                    todoprop *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 following is are optional,
                  ; and MAY occur more than once

                     *(";" xparam)

                   )



        dtstval    = date-time
                  attach / date
        ;Value MUST match value type

   Example: The following attendee / categories / comment / contact /
                  exdate / exrule / rstatus / related / resources /
                  rdate / rrule / x-prop

                  )

   Description: A "VTODO" calendar component is an example of this property:

        DTSTART:19980118T073000Z

8.2.15.5.  Duration

   Property Name: DURATION

   Purpose: The property specifies a positive duration grouping of time.

   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" or component
      properties and possibly "VALARM" calendar components.

   Description: In a "VEVENT" calendar component the property may components that
      represent an action-item or assignment.  For example, it can be
      used to specify a duration of the event, instead represent an item of work assigned to an explicit end
   date/time.  In a individual; such
      as "turn in travel expense today".

      The "VTODO" calendar component the property may cannot be used nested within another
      calendar component.  However, "VTODO" calendar components can be
      related to each other or to specify a duration for the to-do, instead of an explicit due date/
   time.  In "VTODO" or to a "VFREEBUSY" "VJOURNAL" calendar
      component with the property may be used
   to specify the interval of free time being requested.  In a "VALARM" "RELATED-TO" property.

      A "VTODO" calendar component without the property may "DTSTART" and "DUE" (or
      "DURATION") properties specifies a to-do that will be used to specify the delay
   period prior to repeating an alarm.

   Format Definition: The property associated
      with each successive calendar date, until it is defined 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 of this 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 in a "VFREEBUSY" "VTODO" calendar
   component. component:







Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 70] 53]

Internet-Draft                  iCalendar                   October 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 be                      June 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 a UTC 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 values grouping of component properties that describe a particular "FBTYPE"
   listed together in a single property).
      journal entry.

   Format Definition: The property A "VJOURNAL" calendar component is defined by the
      following notation:

        freebusy

       journalc   = "FREEBUSY" fbparam "BEGIN" ":" fbvalue "VJOURNAL" CRLF

        fbparam
                    jourprop
                    "END" ":" "VJOURNAL" CRLF

       jourprop   = *(

                  ; the following is are optional,
                  ; but MUST NOT occur more than once

                   (";" fbtypeparam)

                  class / created / description / dtstart / dtstamp /
                  last-mod / organizer / recurid / seq / status /
                  summary / uid / url /

                  ; the following is are 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 examples

   Description: A "VJOURNAL" calendar component is a grouping of this property:

        FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M

        FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H

       FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H,
         19970308T230000Z/19970309T000000Z
      component 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 & Stoner            Expires April 14, December 24, 2006              [Page 71] 54]

Internet-Draft                  iCalendar                   October 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 property                      June 2006


      data type, but it can also be specified once in used to specify a "VEVENT"
   calendar component.

   Description: Time Transparency is the characteristic DATE-TIME value
      data type.  Examples of an event that
   determines whether it appears to consume time on a calendar.  Events
   that consume actual time journal entry include a daily record of
      a legislative body or a journal entry of individual telephone
      contacts for the individual day or resource associated

   with an ordered list of accomplishments for the
      day.  The "VJOURNAL" calendar SHOULD component can also be recorded as OPAQUE, allowing them used to be
   detected by free-busy time searches.  Other events, which do
      associate a document with a calendar date.

      The "VJOURNAL" calendar component does not take up the individual's (or resource's) time SHOULD be recorded as
   TRANSPARENT, making them invisible to free-busy time searches.

   Format Definition: The property is specified by the following
   notation:

        transp     = "TRANSP" tranparam ":" transvalue CRLF

        tranparam  = *(";" xparam)

        transvalue = "OPAQUE"   ;Blocks or opaque on a
      calendar.  Hence, it does not play a role in free or busy time searches.
                   / "TRANSPARENT" ;Transparent on busy
      searches - - it is as though it has a time searches.
           ;Default transparency value is OPAQUE

   Example: The following is an example of this property for an event
   that
      TRANSPARENT.  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 or does not block on free/busy time searches:

        TRANSP:TRANSPARENT to a "VEVENT" or to a "VTODO" calendar
      component, with the "RELATED-TO" property.

   Example: The following is an example of this property for an event that the "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 is
   opaque or blocks currently
         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 time searches:

        TRANSP:OPAQUE or describe a published set of busy
      time.

   Format Definition: A "VFREEBUSY" calendar component is defined by the
      following notation:





Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 72] 55]

Internet-Draft                  iCalendar                   October 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:


        tzid                      June 2006


       freebusyc  = "TZID" tzidpropparam "BEGIN" ":" [tzidprefix] text "VFREEBUSY" CRLF

        tzidpropparam      = *(";" 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" tznparam
                    fbprop
                    "END" ":" text "VFREEBUSY" CRLF

        tznparam

       fbprop     = *(

                  ; the following is are optional,
                  ; but MUST NOT occur more than once

                   (";" languageparam)

                  contact / dtstart / dtend / duration / dtstamp /
                  organizer / uid / url /

                  ; the following is are 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 following

   Description: A "VFREEBUSY" calendar component is an example a grouping of this property when two different
   languages
      component properties that represents either a request for, a reply
      to a request for the free or busy time zone 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 prior information or a published set
      of busy time information.

      When used to
   this request free/busy time zone 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: This information, the "ATTENDEE"
      property specifies the offset which is in use prior
   to this calendar users whose free/busy time observance.  It is used to calculate
      being requested; the absolute time
   at which "ORGANIZER" property specifies the transition to a given observance takes place.  This
   property MUST only be specified in a "VTIMEZONE" calendar component.
   A "VTIMEZONE" calendar component MUST include this property.  The
   property value
      user who is a signed numeric indicating requesting the number of hours free/busy time; the "DTSTART" and
   possibly minutes from UTC.  Positive numbers represent time zones
   east of
      "DTEND" properties specify the prime meridian, or ahead window of UTC.  Negative numbers
   represent time zones west of for which the prime meridian, or behind UTC.

   Format Definition: The property free/
      busy time is defined by being requested; the following 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
      are examples specified to assist in proper sequencing of this property:

        TZOFFSETFROM:-0500

        TZOFFSETFROM:+1345

   Figure 100

8.2.16.4.  Time Zone Offset To

   Property Name: TZOFFSETTO

   Purpose: This multiple free/busy
      time requests.

      When used to reply to a request for free/busy time, the "ATTENDEE"
      property specifies the offset which is in use in this calendar user responding to the free/busy
      time zone observance.

   Value Type: UTC-OFFSET

   Property Parameters: Non-standard property parameters can be
   specified on this property.

   Conformance: This request; the "ORGANIZER" property MUST be specified in a "VTIMEZONE" specifies the calendar component.

   Description: This user
      that originally requested the free/busy time; the "FREEBUSY"
      property specifies the offset which is in use free/busy time information (if it exists);
      and the "UID" and "DTSTAMP" properties are specified to assist in
   this
      proper sequencing of multiple free/busy time zone observance.  It is replies.

      When used to calculate the absolute time
   for publish busy time, the new observance.  The "ORGANIZER" property value is a signed numeric
   indicating specifies
      the number of hours calendar user associated with the published busy time; the
      "DTSTART" and possibly minutes from UTC.
   Positive numbers represent "DTEND" properties specify an inclusive time zones east of window
      that surrounds the prime meridian, or
   ahead of UTC.  Negative numbers represent busy time zones west of information; the
   prime meridian, or behind UTC.

   Format Definition: The "FREEBUSY" property is defined by
      specifies the following notation:

        tzoffsetto = "TZOFFSETTO" toparam ":" utc-offset CRLF

        toparam    = *(";" xparam)

   Example: The following are examples of this property:

        TZOFFSETTO:-0400

        TZOFFSETTO:+1245

   Figure 102 published busy time information; and the "DTSTAMP"
      property specifies the date/time that iCalendar object was
      created.




Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 76] 56]

Internet-Draft                  iCalendar                   October 2005


8.2.16.5.  Time Zone URL

   Property Name: TZURL

   Purpose:                      June 2006


      The TZURL provides a means for a VTIMEZONE "VFREEBUSY" calendar component to
   point to a network location that can cannot be used to retrieve an up-to-
   date version of itself.

   Value Type: URI

   Property Parameters: Non-standard property parameters nested within another
      calendar component.  Multiple "VFREEBUSY" calendar components can
      be specified on this within 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 in a "VTIMEZONE" the
      "VFREEBUSY" calendar component.

   Description: The TZURL provides a means for a VTIMEZONE component to
   point to

      When present in a network location that can "VFREEBUSY" calendar component, the "DTSTART"
      and "DTEND" properties SHOULD be used specified prior to retrieve an up-to-
   date version of itself.  This provides any "FREEBUSY"
      properties.  In a hook to handle changes
   government bodies impose upon free time zone definitions.  Retrieval of
   this resource results request, these properties can be used
      in an iCalendar object containing a single
   VTIMEZONE component and a METHOD combination with the "DURATION" property set to PUBLISH.

   Format Definition: represent a request
      for a duration of free time within a specified window of time.

      The property is defined by recurrence 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 the following notation:

        tzurl      = "TZURL" tzurlparam ":" uri CRLF

        tzurlparam = *(";" xparam) "FREEBUSY" property.

   Example: The following is an example of this 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 in a "VFREEBUSY" calendar
   components.

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

      The property defines following is an "Attendee" within example of a "VFREEBUSY" calendar
   component.

   Value Type: CAL-ADDRESS

   Property Parameters: Non-standard, language, calendar user type, component
      used to reply to the request with busy time information:











Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 77] 57]

Internet-Draft                  iCalendar                   October 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 an                      June 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 iCalendar object when publishing the calendar file contains busy time information (e.g., NOT in an iCalendar object that specifies for
         the
   publication next three months.
       END:VFREEBUSY

      The following is an example of a "VFREEBUSY" calendar user's component
      used to publish busy time, event, to-do or journal).
   This property is not specified in an iCalendar object that specifies
   only a time zone definition or that defines calendar entities that
   are not group scheduled entities, but are entities only on 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

3.6.5.  Time Zone Component

   Component Name: VTIMEZONE

   Purpose: Provide a single
   user's calendar.

   Description: The property MUST only be specified within calendar
   components to specify participants, non-participants and the chair grouping of component properties that defines a group scheduled calendar entity.  The property is specified within
   an "EMAIL" category of the "VALARM"
      time zone.

   Format Definition: A "VTIMEZONE" calendar component to specify an
   email address that is to receive defined by the email type of iCalendar alarm.

   The property parameter CN
      following notation:

       timezonec  = "BEGIN" ":" "VTIMEZONE" CRLF

                    2*(

                    ; 'tzid' is for the common required, 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' or displayable 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 /

                  ; the calendar component; PARTSTAT, for
   the status of the attendee's participation; RSVP, for indicating
   whether the favor of a reply is requested; CUTYPE, to indicate the
   type of calendar user; MEMBER, to indicate the groups that the
   attendee belongs to; DELEGATED-TO, to indicate the calendar users
   that the original request was delegated to; and DELEGATED-FROM, to
   indicate whom the request was delegated from; SENT-BY, to indicate
   whom is acting on behalf of the ATTENDEE; and DIR, to indicate the
   URI that points to the directory information corresponding to the
   attendee.  These property parameters can be specified on an
   "ATTENDEE"

   property in either a "VEVENT", "VTODO" or "VJOURNAL" calendar
   component.  They MUST not be specified in an "ATTENDEE" property in a
   "VFREEBUSY" or "VALARM" calendar component.  If the LANGUAGE property
   parameter following is specified, the identified language applies to the CN
   parameter.

   A recipient delegated a request MUST inherit the RSVP optional,
                  ; and ROLE 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:

        attendee MAY occur more than once

                    x-prop

                    )

                    "END" ":" "VTIMEZONE" CRLF

       standardc  = "ATTENDEE" attparam "BEGIN" ":" cal-address "STANDARD" CRLF

        attparam

                    tzprop

                    "END" ":" "STANDARD" CRLF

       daylightc  = *( "BEGIN" ":" "DAYLIGHT" CRLF

                    tzprop

                    "END" ":" "DAYLIGHT" CRLF

       tzprop     = 3*(

                  ; the following are optional, each REQUIRED,
                  ; but MUST NOT occur more than once

                   (";" cutypeparam) / (";"memberparam) /
                   (";" roleparam) / (";" partstatparam) /
                   (";" rsvpparam) / (";" deltoparam) /
                   (";" delfromparam) / (";" sentbyparam) /
                   (";"cnparam)

                  dtstart / (";" dirparam) tzoffsetto /
                   (";" languageparam) tzoffsetfrom /

                  ; the following is are optional,
                  ; and MAY occur more than once

                   (";" xparam)

                  comment / rdate / rrule / tzname / x-prop

                  )

   Example: The following are examples

   Description: A time zone is unambiguously defined by the set of this property's use time
      measurement rules determined by the governing body for a to-
   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 used given
      geographic area.  These rules describe at a minimum the base
      offset from UTC for specifying
   multiple attendees the time zone, often referred to an 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 example as the
      Standard Time offset.  Many locations adjust their Standard Time
      forward or backward by one hour, in order to accommodate seasonal
      changes in number of this property with a URI daylight hours, often referred to the
   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.com as Daylight
      Saving Time.  Some locations adjust their time by a fraction of an



Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 79] 59]

Internet-Draft                  iCalendar                   October 2005


   The following                      June 2006


      hour.  Standard Time is an 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 following is an example of this property's use when
   another calendar user is acting on behalf of table 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 specified changes
      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: The property value consists specification of textual contact
   information.  An alternative representation a global time zone registry is not
         addressed by this document and is left for future study.
         However, implementers may find the property value
   can also be specified that refers to Olson time zone database
         [TZDB] a URI pointing to useful reference.  It is an alternate
   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 for the contact information. a wide variety of



Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 80] 60]

Internet-Draft                  iCalendar                   October 2005


   Format Definition: The property is defined by the following notation:

        contact    = "CONTACT" contparam ":" text CRLF

        contparam  = *(
                   ;                      June 2006


         locations around the following 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 the following is optional,
                   ; introduction of standard
         time.

      Interoperability between two calendaring and MAY occur more than once

                   (";" xparam)

                   )

   Example: The following scheduling
      applications, especially for recurring events, to-dos or journal
      entries, is dependent on the ability to capture and convey date
      and time information in an example of this property referencing
   textual contact information:

        CONTACT:Jim Dolittle\, ABC Industries\, +1-919-555-1234 unambiguous format.  The following is an example specification
      of current time zone information is integral to this property with an alternate
   representation behavior.

      If present, the "VTIMEZONE" calendar component defines the set of
      Standard Time and Daylight Saving Time observances (or rules) for
      a LDAP URI to particular time zone for a directory 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
   representation given interval of a 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-1234 time.  The following is
      "VTIMEZONE" calendar component cannot be nested within other
      calendar components.  Multiple "VTIMEZONE" calendar components can
      exist in an example of iCalendar object.  In this property referencing situation, each "VTIMEZONE"
      MUST represent a network
   resource, unique time zone definition.  This is necessary
      for some classes of events, such as a 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.

      The property defines the organizer for a "VTIMEZONE" calendar component.

   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 property component MUST be specified in an present if the
      iCalendar object contains an RRULE that specifies generates dates on both
      sides of a group scheduled calendar entity.  This property MUST
   be specified time zone shift (e.g., both in an Standard Time and
      Daylight Saving Time) unless the iCalendar object that specifies the publication of intends to
      convey a calendar user's busy time.  This property MUST NOT floating time ( see Section 3.3.12 for proper
      interpretation of floating time).  It can be specified in
   an present if the
      iCalendar object that specifies only does not contain such a RRULE.  In addition, if a
      RRULE is present, there MUST be valid time zone definition 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.

      The property is specified within the "VEVENT", "VTODO",
   "VJOURNAL "VTIMEZONE" calendar components to specify component MUST include the organizer "TZID"
      property and at least one definition of a group
   scheduled calendar entity. standard or daylight
      component.  The property is specified within standard or daylight component MUST include the
   "VFREEBUSY"
      "DTSTART", "TZOFFSETFROM" and "TZOFFSETTO" properties.

      An individual "VTIMEZONE" calendar component to specify MUST be specified for
      each unique "TZID" parameter value specified in the iCalendar
      object.

      Each "VTIMEZONE" calendar user
   requesting component consists of a collection of
      one or more sub-components that describe the free rule for a particular
      observance (either a Standard Time or busy time.  When publishing a "VFREEBUSY"
   calendar component, the property is used to specify the calendar Daylight Saving Time
      observance).  The "STANDARD" sub-component consists of a
      collection of properties that
   the published busy time came from. describe Standard Time.  The property 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


         the property parameters CN, first onset date-time for specifying the
   common or display name associated with observance

         the "Organizer", DIR, last onset date-time for
   specifying the observance, if a pointer last onset is
         known.

         the offset to be applied for the directory information associated with observance

         a rule that describes the
   "Organizer", SENT-BY, day and time when the observance
         takes effect

         an optional name for specifying another calendar user that is
   acting on behalf of the "Organizer".  The non-standard parameters observance

      For a given time zone, there may
   also be specified on this property.  If the LANGUAGE property
   parameter is specified, multiple unique definitions of
      the identified language applies observances 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 the CN
   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.  The property offset to apply at any
      given time is defined found by locating the following notation:

        organizer  = "ORGANIZER" orgparam ":"
                     cal-address CRLF

        orgparam   = *(

                   ; observance that has the following are optional,

                   ; but MUST NOT occur more than once

                   (";" cnparam) / (";" dirparam) / (";" sentbyparam) /
                   (";" languageparam) /

                   ; last
      onset date and time before the following time in question, and using the
      offset value from that observance.

      The top-level properties in a "VTIMEZONE" calendar component are:

      The mandatory "TZID" property is optional,
                   ; a text value that uniquely
      identifies the VTIMEZONE; and each MAY occur more than once

                   (";" xparam)

                   )

   Example: The following is an example once.
      calendar component within the scope of this property:

        ORGANIZER;CN=John Smith:MAILTO:jsmith@host1.com an iCalendar object.

      The following optional "LAST-MODIFIED" property is an example of a UTC value that
      specifies the date and time that this time zone definition was
      last updated.

      The optional "TZURL" property with is a pointer url value that points to the
   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 following a
      published VTIMEZONE definition.  TZURL SHOULD refer to a resource
      that is an example of this property used accessible by another calendar
   user anyone who is acting on behalf of the organizer, with responses
   intended to be sent back might need to interpret the organizer,
      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 the other 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 specify STANDARD
      and DAYLIGHT sub-components include:

      The mandatory "DTSTART" property gives the participation role effective onset date
      and local time for the calendar user
   specified by the property.

   Description: This parameter can time zone sub-component definition.
      "DTSTART" in this usage MUST be specified on properties with as a
   CAL-ADDRESS value type.  The parameter specifies the participation local DATE-TIME
      value.







Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 83] 62]

Internet-Draft                  iCalendar                   October 2005


   role for the calendar user specified by the                      June 2006


      The mandatory "TZOFFSETFROM" property gives the UTC offset which
      is in use when the group
   schedule calendar component.  If not specified on a property that
   allows onset of this parameter, the default value is REQ-PARTICIPANT.

   Format Definition: The property parameter time zone observance begins.
      "TZOFFSETFROM" is defined by combined with "DTSTART" to define the effective
      onset for the time zone sub-component definition.  For example,
      the following
   notation:

        roleparam  = "ROLE" "="
                    ("CHAIR"               ; Indicates chair represents 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
                                           ; participation UTC 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
                                          ; copied the customary name for information
                                          ; 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 of the
   calendar user time
      zone.  It may be specified by multiple times, to allow for specifying
      multiple language variants of the property.

   Description: time zone names.  This parameter can could be specified on properties with a
   CAL-ADDRESS value type.  The parameter specifies
      used for displaying dates.

      If specified, the calendar user
   that is acting on behalf of onset for the calendar user specified observance defined by the time
      zone sub-component is defined by either the "RRULE" or "RDATE"
      property.  The parameter value MUST  If neither is specified, only one sub-component can be a MAILTO URI as defined
      specified in
   [RFC 1738].  The individual the "VTIMEZONE" calendar address parameter values MUST
   each be component and it is assumed
      that the single observance specified is always in a quoted-string.

   Format Definition: effect.

      The "RRULE" property parameter is defined by defines the following
   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 specify recurrence rule for the calendar users that have delegated their
   participation to onset of
      the calendar user specified observance defined by this time zone sub-component.  Some
      specific requirements for the property.

   Description: This parameter can be specified on properties with a
   CAL-ADDRESS value type.  This usage of RRULE for this purpose
      include:

         If observance is known to have an effective end date, the
         "UNTIL" recurrence rule parameter can MUST be specified on a
   property that has a value type used to specify the
         last valid onset of calendar address.  This parameter
   specifies those calendar uses that have delegated their participation
   in a group scheduled event or to-do this observance (i.e., the UNTIL date-time
         will be equal to the calendar user specified last instance generated by the property.  The value MUST be a MAILTO URI as defined in [RFC
   1738].  The individual calendar address parameter values recurrence
         pattern).  It MUST each be specified in a quoted-string.

   Format Definition: UTC time.

         The property parameter is defined by "DTSTART" and the following
   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 the calendar users to whom onset date-time values (instances) from the calendar user
   specified by
         RRULE.

      Alternatively, the "RDATE" property has delegated participation.

   Description: This parameter can be specified 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 by used to define the calendar user specified
      onset of the observance by giving the property.  The
   value individual onset date and
      times.  "RDATE" in this usage MUST be a MAILTO URI specified as defined a local DATE-
      TIME value in [RFC 1738].  The individual UTC time.






Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 85] 63]

Internet-Draft                  iCalendar                   October 2005


   calendar address parameter values MUST each be specified in a quoted-
   string.

   Format Definition:                      June 2006


      The optional "COMMENT" property parameter is defined 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 with The following are examples of the "VTIMEZONE" calendar user specified by the property.

   Description:
      component:

      This parameter 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 by is an example showing time zone information for the Eastern
      United States using "RDATE" property.  The
   parameter value  Note that this is text.  The parameter value only
      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 for display
   text to be associated with the calendar address specified by the
   property.

   Format Definition: The property parameter a 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 is defined by a simple example showing the following
   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 specify current time zone rules for
      the type Eastern United States using a RRULE recurrence pattern.  Note
      that there is no effective end date to either of calendar user specified by the
   property.

   Description: Standard Time
      or Daylight Time rules.  This parameter can information would be specified on properties with valid for a
   CAL-ADDRESS value type.  The parameter identifies the type
      recurring 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 of
   calendar user specified by rules for the property.  If not specified on a
   property that allows this parameter,
      Eastern United States, where the default Daylight Time rule has an
      effective end date (i.e., after that date, Daylight Time is INDIVIDUAL. 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 & Stoner            Expires April 14, December 24, 2006              [Page 86] 65]

Internet-Draft                  iCalendar                   October 2005                      June 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 parameter A "VALARM" calendar component is defined by the
      following notation:

        cutypeparam

       alarmc     = "CUTYPE" "="
                        ("INDIVIDUAL"        ; An individual "BEGIN" ":" "VALARM" CRLF
                     (audioprop / "GROUP"              ; A group of individuals dispprop / "RESOURCE"        ; A physical resource emailprop / "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 known but MUST NOT occur more than once

                  action / x-name                ; Experimental type trigger / iana-token)

                  ; Other IANA registered 'duration' and 'repeat' are both optional,
                  ; type and 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 with but if one occurs, so MUST the calendar user specified by other

                  duration / repeat /

                  ; the property.

   Description: This parameter can be specified on properties with a
   CAL-ADDRESS value type.  The parameter specifies a reference to following is optional,
                  ; but MUST NOT occur more than once

                  attach /

                  ; the
   directory entry associated with following is optional,
                  ; and MAY occur more than once

                  x-prop

                  )

       dispprop   = 3*(

                  ; the calendar user specified by following 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 the
   property.  The parameter value other

                  duration / repeat /

                  ; the following is a URI.  The individual URI
   parameter values optional,
                  ; and MAY occur more than once

                  x-prop

                  )

       emailprop  = 5*(

                  ; the following are all REQUIRED,
                  ; but MUST each be specified in a quoted-string.

   Format Definition: The property parameter NOT occur more than once

                  action / description / trigger / summary /



Desruisseaux            Expires December 24, 2006              [Page 67]

Internet-Draft                  iCalendar                      June 2006


                  ; the following is defined by REQUIRED,
                  ; 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 following
   notation:

        dirparam are 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 property 3*(

                  ; 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' is used in conjunction with optional,
                  ; and MUST NOT occur more than once

                  description /

                  ; the "UID" following is optional,
                  ; and
   "SEQUENCE" property to identify MAY occur more than once

                  x-prop

                  )

   Description: A "VALARM" calendar component is a specific instance grouping of component
      properties that is a recurring
   "VEVENT", "VTODO" reminder or "VJOURNAL" calendar component.  The property alarm 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 & Stoner            Expires April 14, December 24, 2006              [Page 87] 68]

Internet-Draft                  iCalendar                   October 2005


   value is the effective value of the "DTSTART" property of                      June 2006


      The "VALARM" calendar component MUST include the
   recurrence instance.

   Value Type: "ACTION" and
      "TRIGGER" properties.  The default value type for this "ACTION" property is DATE-TIME.
   The time format can be any of further constrains
      the valid forms defined for a DATE-TIME
   value type.  See DATE-TIME value type definition for specific
   interpretations of "VALARM" calendar component in the various forms.  The value type following ways:

      When the action is "AUDIO", the alarm can be set to
   DATE.

   Property Parameters: Non-standard property, value data type, time
   zone identifier also include one and recurrence 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 by
      only one "ATTACH" property, which MUST point to a
   recurrence set sound resource,
      which is referenced by referring to just rendered when the "UID" property
   value corresponding to alarm is triggered.

      When the calendar component.  The "RECURRENCE-ID"
   property allows action is "DISPLAY", the reference to an individual instance within alarm MUST also include a
      "DESCRIPTION" property, which contains the
   recurrence set.

   If text to be displayed
      when the value of alarm is triggered.

      When the "DTSTART" property action is a DATE type value, then "EMAIL", the
   value alarm MUST include a "DESCRIPTION"
      property, which contains the text to be used as the calendar date for message body,
      a "SUMMARY" property, which contains the recurrence instance.

   The date/time value is set text to be used as the time when the original recurrence
   instance would occur; meaning that if
      message subject, and one or more "ATTENDEE" properties, which
      contain the intent is email address of attendees to change a
   Friday meeting receive the message.  It
      can also include one or more "ATTACH" properties, which are
      intended to Thursday, be sent as message attachments.  When the date/time alarm is still set to
      triggered, the
   original Friday meeting.

   The "RECURRENCE-ID" property email message is used in conjunction with sent.

      When the "UID" action is "PROCEDURE", the alarm MUST include one and "SEQUENCE" property
      only one "ATTACH" property, which MUST point to identify 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 for a
   recurrence instance procedure
      resource, which is fixed.  When the definition of invoked when the recurrence
   set alarm 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" calendar component changes, and hence the "SEQUENCE" component.

      The "TRIGGER" property value changes, specifies when the "RECURRENCE-ID" for alarm will be triggered.
      The "TRIGGER" property specifies a given recurrence
   instance might also change.The "RANGE" parameter is used duration prior to specify the effective range start of recurrence instances from
      an event or a to-do.  The "TRIGGER" edge may be explicitly set to
      be relative to the instance
   specified by "START" or "END" of the "RECURRENCE-ID" property value.  The default value
   for event or to-do with the range
      "RELATED" parameter is of the single recurrence instance only. "TRIGGER" property.  The "TRIGGER"
      property value type can also alternatively be "THISANDPRIOR" set to indicate a range defined by the
   given recurrence instance an absolute
      calendar date and all prior instances time of day value.

      In an alarm set to trigger on the "START" of an event or to-do,
      the value can "DTSTART" property MUST be
   "THISANDFUTURE" to indicate present in the associated event or
      to-do.  In an alarm in a range defined by "VEVENT" calendar component set to
      trigger on the given recurrence
   instance "END" of the event, either the "DTEND" property
      MUST be present, or the "DTSTART" and all 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 & Stoner            Expires April 14, December 24, 2006              [Page 88] 69]

Internet-Draft                  iCalendar                   October 2005


   Format Definition:                      June 2006


      The property is alarm can be defined by the following notation:

        recurid    = "RECURRENCE-ID" ridparam ":" ridval CRLF

        ridparam   = *(

                   ; the following are optional,
                   ; but such that it triggers repeatedly.  A
      definition of an alarm with a repeating trigger MUST NOT occur more than once

                   (";" "VALUE" "=" ("DATE-TIME" / "DATE)) /
                   (";" tzidparam) / (";" rangeparam) /
                   ; include both
      the following is optional,
                   ; "DURATION" and MAY 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" property is 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" property can specifies the number of additional
      repetitions that the alarm will be specified one or more times triggered.  This repetition
      count is in addition to the
   "VEVENT", "VTODO" or "VJOURNAL" calendar components.

   Description: The property value consists initial triggering of the persistent, globally
   unique identifier alarm.  Both
      of another calendar component.  This value would these properties MUST be
   represented present in a calendar component by the "UID" property.




Desruisseaux & Stoner    Expires April 14, 2006                [Page 89]

Internet-Draft                  iCalendar                   October 2005


   By default, the property value points order to another calendar component
   that has specify a PARENT relationship to
      repeating alarm.  If one of these two properties is absent, then
      the referencing object. alarm will not repeat beyond the initial trigger.

      The
   "RELTYPE" "ACTION" property parameter is used to either explicitly state the
   default PARENT relationship type to within the referenced "VALARM" calendar
      component
   or to override specify the default PARENT relationship type and specify
   either a CHILD or SIBLING relationship.  The PARENT relationship
   indicates that of action invoked when the calendar component alarm is
      triggered.  The "VALARM" properties provide enough information for
      a subordinate specific action to be invoked.  It is typically the
      responsibility of a "Calendar User Agent" (CUA) to deliver the
   referenced calendar component.  The CHILD relationship indicates that
      alarm in the calendar component is a superior specified fashion.  An "ACTION" property value of the referenced calendar
   component.  The SIBLING relationship indicates
      AUDIO specifies an alarm that causes a sound to be played to alert
      the calendar
   component is user; DISPLAY specifies an alarm that causes a peer of text message to
      be displayed to the referenced calendar component.

   Changes user; 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 a calendar component referenced by this
      procedure to be executed.  The "ACTION" property can have MUST specify one
      and only one of these values.

      In an implicit impact on the related calendar component.  For example, AUDIO alarm, if a group event changes its start or end date or time, then the
   related, 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 there optional "ATTACH" property is included,
      it MUST specify an implied impact to audio sound resource.  The intention is that
      the related CHILD calendar components.  This sound will be played as the alarm effect.  If an "ATTACH"
      property is intended
   only specified that does not refer to provide information on a sound resource, or
      if the relationship of calendar
   components.  It specified sound resource cannot be rendered (because its
      format is up to unsupported, or because it cannot be retrieved), then
      the target calendar system to maintain any
   property implications of this relationship.

   Format Definition: The property is defined by CUA or other entity responsible for playing the following 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, the following intended alarm effect is optional,
                   ; but MUST NOT occur more than once

                   (";" reltypeparam) /

                   ; for the following 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 example text
      value of this 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 with the iCalendar object.

   Value Type: URI

   Property Parameters: Non-standard "DESCRIPTION" property parameters can to be
   specified on this property.

   Conformance: This property can displayed 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
      specified once by the "ATTENDEE" properties in the "VEVENT",
   "VTODO", "VJOURNAL" or "VFREEBUSY" "VALARM" calendar components.

   Description: This
      component.  The "DESCRIPTION" property may be used in a calendar component to
   convey a location where a more dynamic rendition of the calendar
   information associated with the "VALARM" calendar
      component can MUST be found.
   This memo does not attempt to standardize the form of the URI, nor used as the format body text of the resource pointed to by the property value.  If message, and the
   URL
      "SUMMARY" property and Content-Location MIME header are both specified,
   they MUST point to be used as the same resource.

   Format Definition: The property is defined by subject text.  Any "ATTACH"
      properties in the following 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 the persistent, globally unique message.





Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 91] 70]

Internet-Draft                  iCalendar                   October 2005


   identifier for                      June 2006


      In a PROCEDURE alarm, the calendar component.

   Value Type: TEXT

   Property Parameters: Non-standard property parameters can be
   specified on this property.

   Conformance: The "ATTACH" property MUST be specified in the "VEVENT", "VTODO",
   "VJOURNAL" or "VFREEBUSY" "VALARM"
      calendar components.

   Description: The UID itself component MUST be specify a globally unique identifier.
   The generator of the identifier MUST guarantee that the identifier is
   unique.  There are several algorithms procedure or program that can be used to accomplish
   this.  The identifier is RECOMMENDED
      intended to be invoked as the identical syntax to alarm effect.  If the [RFC 822] addr-spec.  A good method to assure uniqueness is to
   put the domain name procedure or a 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., formatted
      program is in as a DATE-TIME value) along
   with some other currently unique (perhaps sequential) identifier
   available on format that cannot be rendered, then no procedure
      alarm will be invoked.  If the system (for example, a process id number).  Using a
   date/time "DESCRIPTION" property is present,
      its value on the left hand side and a domain name or domain
   literal on specifies the right hand side makes it possible argument string to guarantee
   uniqueness since no two hosts should be using passed to the same domain name
      procedure or
   IP address at the same time.  Though other algorithms will work, it
   is RECOMMENDED program.  "Calendar User Agents" that the right hand side contain some domain
   identifier (either receive an
      iCalendar object with this category of the host itself alarm, can disable or otherwise) such that allow
      the
   generator "Calendar User" to disable, or otherwise ignore this type of
      alarm.  While a very useful alarm capability, the message identifier can guarantee the uniqueness PROCEDURE type
      of alarm SHOULD be treated by the left hand side within the scope of that domain.

   This "Calendar User Agent" as a
      potential security risk.

   Example: The following example is the method for correlating scheduling messages with the
   referenced "VEVENT", "VTODO", or "VJOURNAL" a "VALARM" calendar component. 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

      The full range of following example is for a "VALARM" calendar components specified by component that
      specifies a recurrence set
   is referenced by referring to just display alarm that will trigger 30 minutes before the "UID" property value
   corresponding to
      scheduled start of the calendar component.  The "RECURRENCE-ID"
   property allows event or the reference to an individual instance within due date/time of the
   recurrence set.

   This property to-do it
      is an important method for group scheduling
   applications to match requests associated with later replies, modifications or
   deletion requests.  Calendaring and scheduling applications MUST
   generate this property in "VEVENT", "VTODO" and "VJOURNAL" calendar
   components to assure interoperability will repeat 2 more times at 15 minute
      intervals:

       BEGIN:VALARM
       TRIGGER:-PT30M
       REPEAT:2
       DURATION:PT15M
       ACTION:DISPLAY
       DESCRIPTION:Breakfast meeting with other group scheduling
   applications.  This identifier executive\n
        team at 8:30 AM EST.
       END:VALARM

      The following example is created by the for a "VALARM" calendar system component that
   generates
      specifies an iCalendar object.

   Implementations MUST be able to receive and persist values email alarm that will trigger 2 days before the
      scheduled due date/time of at a to-do it is associated with.  It does
      not repeat.  The email has a subject, body and attachment link.







Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 92] 71]

Internet-Draft                  iCalendar                   October 2005


   least 255 characters for this property.

   Format Definition: The property                      June 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 is defined by a
         pointer the following 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 following is an example of this property:

        UID:19960401T080045Z-4000F192713-0052@host1.com

   Figure 141

8.2.24.  Relationship Type

   Parameter is 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: RELTYPE CALSCALE

   Purpose: To specify This property defines the type of hierarchical relationship associated
   with calendar scale used for the
      calendar component information specified by in the property.

   Description: This parameter iCalendar object.

   Value Type: TEXT

   Property Parameters: Non-standard property parameters can be
      specified on a property that
   references another related calendar.  The parameter specifies the
   hierarchical relationship type of the calendar component referenced
   by the this property.  The parameter value







Desruisseaux            Expires December 24, 2006              [Page 72]

Internet-Draft                  iCalendar                      June 2006


   Conformance: Property can be PARENT, to indicate that
   the referenced calendar component specified in an iCalendar object.  The
      default value is a superior of calendar
   component; CHILD to indicate that the referenced calendar component "GREGORIAN".

   Description: This memo is a subordinate of based on the Gregorian calendar component; SIBLING to indicate that
   the referenced scale.  The
      Gregorian calendar component scale is a peer of the calendar
   component.  If assumed if this parameter property is not
      specified on an allowable
   property, in the default relationship type iCalendar object.  It is PARENT. expected that other
      calendar scales will be defined in other specifications or by
      future versions of this memo.

   Format Definition: The property parameter is defined by the following notation:

        reltypeparam

         calscale   = "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 2005

   Example:


        RELATED-TO;RELTYPE=SIBLING:<19960401-080045-4000F192713
        @host.com>


   Figure 143

8.3.  Recurrence Component Properties The following properties specify recurrence information in calendar
   components.

8.3.1.  Exception Date/Times is an example of this property:

         CALSCALE:GREGORIAN

3.7.2.  Method

   Property Name: EXDATE METHOD

   Purpose: This property defines the list of date/time exceptions for a
   recurring iCalendar object method associated
      with the calendar component. 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
   identifier Non-standard property parameters can be
      specified on this property.

   Conformance: This The property can be specified in an iCalendar object
   that includes a recurring calendar component. object.

   Description: The exception dates, if specified, are When used in computing
   the recurrence set.  The recurrence set is the complete set of
   recurrence instances for a calendar component.  The recurrence set is
   generated by considering MIME message entity, the initial "DTSTART" value of this
      property along with MUST be the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained same as the Content-Type "method" parameter
      value.  This property can only appear once within the iCalendar
      object.  The "DTSTART" property defines  If either the
   first instance in "METHOD" property or the recurrence set.  Multiple instances of Content-Type
      "method" parameter is specified, then the
   "RRULE" and "EXRULE" properties can other MUST also be specified to define more
   sophisticated recurrence sets.  The final recurrence set is generated
      specified.

      No methods are defined by gathering all of this specification.  This is the start date-times generated by any subject
      of other specifications, such as the
   specified "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 generated iCalendar Transport-
      independent Interoperability Protocol (iTIP) defined by the "RRULE" and "RDATE"
   properties, only one recurrence is considered.  Duplicate instances [I-D.ietf-
      calsify-2446bis].





Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 94] 73]

Internet-Draft                  iCalendar                   October 2005


   are ignored.

   The "EXDATE"                      June 2006


      If this property can be used to exclude the value specified in
   "DTSTART".  However, is not present in such cases the original "DTSTART" date iCalendar object, then a
      scheduling transaction MUST
   still NOT be maintained by the calendaring and scheduling system because
   the original "DTSTART" value has inherent usage dependencies by other
   properties assumed.  In such as cases, 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:

        exdate

         method     = "EXDATE" exdtparam "METHOD" metparam ":" exdtval *("," exdtval) metvalue CRLF

        exdtparam

         metparam   = *(

                   ; 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)

                   )

        exdtval

         metvalue   = date-time / date
        ;Value MUST match value type iana-token

   Example: The following is an a hypothetical example of this property:

        EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z

   Figure 145

8.3.2.  Exception Rule property to
      convey that the iCalendar object is a request for a meeting:

         METHOD:REQUEST

3.7.3.  Product Identifier

   Property Name: EXRULE PRODID

   Purpose: This property defines a rule or repeating pattern specifies the identifier for an
   exception to a recurrence set. the product that
      created the iCalendar object.

   Value Type: RECUR TEXT

   Property Parameters: Non-standard property parameters can be



Desruisseaux & Stoner    Expires April 14, 2006                [Page 95]

Internet-Draft                  iCalendar                   October 2005
      specified on this property.

   Conformance: This The property can MUST be specified once in "VEVENT", "VTODO" or
   "VJOURNAL" calendar components. an iCalendar
      object.

   Description: The exception rule, if specified, is used in computing vendor of the recurrence set.  The recurrence set implementation SHOULD assure that this
      is the complete set of
   recurrence instances for a calendar 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 property along with
   the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained
   within SHOULD not be used to alter the interpretation of an
      iCalendar object.  The "DTSTART" defines object beyond the first
   instance semantics specified in the recurrence set.  Multiple instances of the "RRULE"
   and "EXRULE" properties can also this memo.  For
      example, it is not to be specified used to define more
   sophisticated recurrence sets. further the understanding of non-
      standard properties.

   Format Definition: The final recurrence set property is generated defined by gathering all of the start date-times generated by any of following 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 the
   specified "RRULE" and "RDATE" properties, product and excluding any start
   date and times which fall within the union version
         ;and that is generally assured of start date and times
   generated by any specified "EXRULE" and "EXDATE" properties.  This
   implies being unique.

   Example: The following is an example of this property.  It does not
      imply 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 generated by English 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
   recurrence maximum range of the
      iCalendar specification that is considered.  Duplicate instances are ignored.

   The "EXRULE" required in order to interpret the
      iCalendar object.

   Value Type: TEXT

   Property Parameters: Non-standard property parameters can be used to exclude the value
      specified in
   "DTSTART".  However, in such cases the original "DTSTART" date on this property.

   Conformance: This property MUST
   still be maintained specified by the calendaring and scheduling system because
   the original "DTSTART" an iCalendar object,
      but MUST only be specified once.

   Description: A value has 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:

        exrule

         version    = "EXRULE" exrparam "VERSION" verparam ":" recur vervalue CRLF

        exrparam

         verparam   = *(";" 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 147

         vervalue   = "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 & Stoner            Expires April 14, December 24, 2006              [Page 96] 75]

Internet-Draft                  iCalendar                   October 2005


   Except daily for 10 occurrences:

        EXRULE:FREQ=DAILY;COUNT=10

   Except yearly in                      June and July for 8 occurrences:

        EXRULE:FREQ=YEARLY;COUNT=8;BYMONTH=6,7

8.3.3.  Recurrence Date/Times 2006


   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: RDATE ATTACH

   Purpose: This The property defines provides the list of date/times for capability to associate a
   recurrence set. document
      object with a calendar component.

   Value Type: The default value type for this property is DATE-TIME. URI.  The
      value type can also be set to DATE or PERIOD. BINARY to indicate inline binary
      encoded content information.

   Property Parameters: Non-standard, inline encoding, format type and
      value data type and time zone
   identifier property parameters can be specified on this
      property.

   Conformance: The property can be specified in a "VEVENT", "VTODO",
      "VJOURNAL" or "VTIMEZONE" "VALARM" calendar components.

   Description: This The property can appear along with the "RRULE" be specified within "VEVENT", "VTODO",
      "VJOURNAL", or "VALARM" calendar components.  This property
   to define an aggregate set of repeating occurrences.  When they both
   appear in can be
      specified multiple times within an iCalendar object, the recurring events are object.

   Format Definition: The property is defined by the union of occurrences defined by both following 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: The recurrence dates, if specified, following are used in computing the
   recurrence set.  The recurrence set is the complete set examples of recurrence
   instances this 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 property defines the first instance
   in the recurrence set.  Multiple instances of the "RRULE" and
   "EXRULE" properties parameters
      can also be specified to define more
   sophisticated recurrence sets. on this property.

   Conformance: The final recurrence set property can be specified within "VEVENT", "VTODO"
      or "VJOURNAL" calendar components.

   Description: This property is generated
   by gathering all used to specify categories or subtypes
      of the start date/times generated by any calendar component.  The categories are useful in searching
      for a calendar component of the
   specified "RRULE" and "RDATE" properties, a particular type and excluding any start
   date/times which fall within category.
      Within the union 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 specified by inclusion
   properties (i.e., "RDATE" and "RRULE").  Where duplicate instances
   are generated as 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 & Stoner            Expires April 14, December 24, 2006              [Page 97] 77]

Internet-Draft                  iCalendar                   October 2005                      June 2006


   Format Definition: The property is defined by the following notation:

        rdate

         categories = "RDATE" rdtparam "CATEGORIES" catparam ":" rdtval text *("," rdtval) text)
                      CRLF

        rdtparam

         catparam   = *(

                    ; the following are is 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 type

   Example: 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

   Parameter

         CATEGORIES:APPOINTMENT,EDUCATION

         CATEGORIES:MEETING

3.8.1.3.  Classification

   Property Name: RANGE CLASS

   Purpose: To specify the effective range of recurrence instances from
   the instance specified by This property defines the recurrence identifier access classification for a
      calendar component.

   Value Type: TEXT

   Property Parameters: Non-standard property parameters can be
      specified by the on this property.

   Description:

   Conformance: The parameter property can be specified on once in a property that
   specifies "VEVENT",
      "VTODO" or "VJOURNAL" calendar components.

   Description: An access classification is only one component of the
      general security system within a recurrence identifier.  The parameter specifies calendar application.  It
      provides a method of capturing the
   effective range scope of recurrence instances that the access the
      calendar owner intends for information within an individual
      calendar entry.  The access classification of an individual
      iCalendar component is specified by useful when measured along with the other
      security components of a calendar system (e.g., calendar user
      authentication, authorization, access rights, access role, etc.).



Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 98] 78]

Internet-Draft                  iCalendar                   October 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 by                      June 2006


      Hence, the recurrence identifier value semantics of the property.  The
   parameter value can individual access classifications
      cannot be "THISANDPRIOR" to indicate a range completely defined by this memo alone.  Additionally,
      due to the recurrence identified value "blind" nature of the property and all prior
   instances.  The parameter value can also be "THISANDFUTURE" to
   indicate most exchange processes using this
      memo, these access classifications cannot serve as an enforcement
      statement for a range system 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 the recurrence identifier following 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 and all
   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 property parameter is defined by the following

        rangeparam notation:











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 to the recurrence identifier following are optional,
                    ; but MUST NOT occur more than once

                    (";" altrepparam) / (";" languageparam) / "THISANDFUTURE")

                    ; To specify the instance specified by the recurrence identifier following is optional,
                    ; and all subsequent recurrence instances MAY occur more than once

                    (";" xparam)

                    )

   Example:

        RECURRENCE-ID;RANGE=THISANDPRIOR:19980401T133000Z

   Figure 153

8.3.5.  Recurrence Rule The 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: RRULE DESCRIPTION

   Purpose: This property defines provides a rule 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: RECUR TEXT

   Property Parameters: Non-standard Non-standard, alternate text representation and
      language property parameters can be specified on this property.

   Conformance: This The property can be specified one or more times in
   recurring the "VEVENT", "VTODO" and "VTODO",
      "VJOURNAL" or "VALARM" calendar components.  It  The property can also be
      specified once 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 in computing
   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 with the "RRULE", "RDATE", "EXDATE" "VEVENT" and "EXRULE" properties contained
   within "VTODO" to
      capture lengthy textual decriptions associated with the iCalendar object.  The "DTSTART" activity.

      This property defines the
   first instance is used in the recurrence set.  Multiple instances of the "VJOURNAL" calendar component to
      capture one more textual journal entries.






Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 99] 80]

Internet-Draft                  iCalendar                   October 2005


   "RRULE" and "EXRULE" properties can also be specified to define more
   sophisticated recurrence sets.  The final recurrence set                      June 2006


      This property is generated
   by gathering all of used in the start date/times generated by any "VALARM" calendar component to
      capture the display text for a DISPLAY category of alarm, to
      capture the
   specified "RRULE" and "RDATE" properties, body text for an EMAIL category of alarm and excluding any start
   date/times which fall within to
      capture the union 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 specified argument string for a PROCEDURE category of alarm.

   Format Definition: The property is defined by inclusion
   properties (i.e., "RDATE" and "RRULE").  Where duplicate instances the following notation:

         description        = "DESCRIPTION" descparam ":" text CRLF

         descparam  = *(

                    ; the following are generated by optional,
                    ; but MUST NOT occur more than once

                    (";" altrepparam) / (";" languageparam) /

                    ; the "RRULE" following is optional,
                    ; and "RDATE" properties, only one
   recurrence MAY occur more than once

                    (";" xparam)

                    )

   Example: The following is considered.  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 property pair 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 property pair, specified within specifies 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                  iCalendar object defines                      June 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
      the
   first instance location east or west of the recurrence.  When used with prime meridian as a recurrence rule,
   the "DTSTART" positive or
      negative real number, respectively.  The longitude and "DTEND" properties MUST latitude
      values MAY be specified in local time up 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 the appropriate set whole number
      of "VTIMEZONE" calendar components MUST degrees by a decimal point.

      Latitudes north of the equator shall be
   included.  For detail on specified by a plus sign
      (+), or by the usage absence of a minus sign (-), preceding the "VTIMEZONE" calendar
   component, see digits
      designating degrees.  Latitudes south of the "VTIMEZONE" calendar component definition.

   Any duration associated with Equator shall be
      designated by a minus sign (-) preceding the iCalendar object applies digits designating
      degrees.  A point on the Equator shall be assigned to all
   members the Northern
      Hemisphere.

      Longitudes east of the generated recurrence set.  Any modified duration for
   specific recurrences MUST prime meridian shall be explicitly specified using the "RDATE"
   property.

   Format Definition: This property is defined by a plus
      sign (+), or by the following
   notation:

        rrule      = "RRULE" rrulparam ":" recur CRLF

        rrulparam  = *(";" xparam)

   Example: All examples assume absence of a minus sign (-), preceding the Eastern 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 on
      digits designating degrees.  Longitudes west of the 1st 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


      Monthly meridian shall
      be designated by minus sign (-) preceding the digits designating
      degrees.  A point on the 1st 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 month prime meridian shall be assigned to the
      Eastern Hemisphere.  A point on the 1st and 180th meridian shall be
      assigned to the Western Hemisphere.  One exception to this last Sunday
      convention is permitted.  For the special condition of describing
      a band of latitude around the month earth, 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 for 10
      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,31 longitude may have any legal
      value.






Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 103] 82]

Internet-Draft                  iCalendar                   October 2005


      Monthly on                      June 2006


      With the second to last Monday exception of the month 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 day special 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 the month, 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 2nd following notation:

         geo        = "GEO" geoparam ":" geovalue CRLF

         geoparam   = *(";" xparam)

         geovalue   = float ";" float
         ;Latitude and 15th Longitude 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 the month intended venue for 10 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 on the first activity
      defined by a calendar component.

   Value Type: TEXT

   Property Parameters: Non-standard, alternate text representation and last day
      language 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 the month
      location.  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] for 10 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 1 the
      location.




Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 104] 83]

Internet-Draft                  iCalendar                   October 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 in                      June and 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 of 2006


   Format Definition: The property is defined by the BYDAY, BYMONTHDAY or
        BYYEARDAY components following notation:

         location   = "LOCATION locparam ":" text CRLF

         locparam   = *(

                    ; the following are specified, optional,
                    ; but MUST NOT occur more than once

                    (";" altrepparam) / (";" languageparam) /

                    ; the day following is
        gotten from DTSTART













Desruisseaux & Stoner    Expires April 14, 2006               [Page 105]

Internet-Draft                  iCalendar                   October 2005


      Every other year on January, February, optional,
                    ; and March
      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 on 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

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 the 1st, 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 Monday percent completion of a to-do to the year, 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


      Monday Organizer.

   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 of week number 20 (where "0" indicates the default start to-do has not yet
      been started.  A value of "100" indicates that the week 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 Thursday to-do has been
      completed.  Integer values in March, 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 Friday between indicate the 13th, 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 & Stoner            Expires April 14, December 24, 2006              [Page 107] 84]

Internet-Draft                  iCalendar                   October 2005


      The first Saturday that follows                      June 2006


      When a to-do is assigned to multiple individuals, the first Sunday property
      value indicates the percent complete for that portion of the month,
       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 the first Tuesday after assignee or delegatee.  For example, if a Monday 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 month to-do is
      assigned to both individuals "A" and "B".  A reply from "A" with a
      percent complete of one "70" indicates that "A" has completed 70% of Tuesday, Wednesday or
      Thursday, for
      the next 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 2nd to-do assigned to last weekday them.  A reply from "B" with a percent
      complete of "50" indicates "B" has completed 50% of the month:

        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 action to-do
      assigned to be 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
   action them.

   Format Definition: The property is defined by the following notation:

        action

         percent = "ACTION" actionparam "PERCENT-COMPLETE" pctparam ":" actionvalue integer CRLF

        actionparam

         pctparam   = *(";" xparam)

        actionvalue        = "AUDIO" / "DISPLAY" / "EMAIL" / "PROCEDURE"
                           / iana-token / x-name










Desruisseaux & Stoner    Expires April 14, 2006               [Page 110]

Internet-Draft                  iCalendar                   October 2005

   Example: The following are examples is an example of this property in a "VALARM"
   calendar component:

        ACTION:AUDIO

        ACTION:DISPLAY

        ACTION:PROCEDURE

8.4.2.  Alarm Repeat Count to show 39%
      completion:

         PERCENT-COMPLETE:39

3.8.1.9.  Priority

   Property Name: REPEAT PRIORITY

   Purpose: This The property defines the number 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: This The property can be specified in a "VALARM" "VEVENT" or "VTODO"
      calendar component.

   Description: If the alarm triggers more than once, then this property
   MUST be The priority is specified along with as an integer in the "DURATION" property.

   Format Definition: The property range
      zero to nine.  A value of zero (US-ASCII decimal 48) specifies an
      undefined priority.  A value of one (US-ASCII decimal 49) is defined by the following notation:

        repeatcnt  = "REPEAT" repparam ":" integer CRLF
        ;Default
      highest priority.  A value of two (US-ASCII decimal 50) is "0", zero.

        repparam   = *(";" xparam)

   Example: The following the
      second highest priority.  Subsequent numbers specify a decreasing
      ordinal priority.  A value of nine (US-ASCII decimal 58) is an example the
      lowest priority.

      A CUA with a three-level priority scheme of "HIGH", "MEDIUM" and
      "LOW" is mapped into this property for an alarm such that repeats 4 additional times with a 5 minute delay after property value in
      the
   initial triggering range of the alarm:

        REPEAT:4
        DURATION:PT5M

8.4.3.  Alarm Trigger

   Property Name: TRIGGER

   Purpose: This property one (US-ASCII decimal 49) to four (US-ASCII decimal
      52) specifies when an alarm will trigger.

   Value Type: The default "HIGH" priority.  A value type of five (US-ASCII decimal
      53) is DURATION.  The the normal or "MEDIUM" priority.  A value type can in the range of



Desruisseaux & Stoner            Expires April 14, December 24, 2006              [Page 111] 85]

Internet-Draft                  iCalendar                   October 2005


   be set                      June 2006


      six (US- ASCII decimal 54) to a DATE-TIME nine (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 value type, in which case the of
      one (US-ASCII decimal 49) specifies "A1", a property value MUST
   specify of two
      (US- ASCII decimal 50) specifies "A2", a UTC formatted DATE-TIME value.

   Property Parameters: Non-standard, property value data type, time zone
   identifier or trigger relationship of three
      (US-ASCII decimal 51) specifies "A3", and so forth up to a
      property parameters can be
   specified on value of 9 (US-ASCII decimal 58) specifies "C3".

      Other integer values are reserved for future use.

      Within a "VEVENT" calendar component, this property.  The trigger relationship property
   parameter MUST only be specified when specifies a
      priority for the value type is DURATION.

   Conformance: event.  This property MUST may be specified in the "VALARM" calendar
   component.

   Description: useful when more
      than one event is scheduled for a given time period.

      Within the "VALARM" a "VTODO" calendar component, this property
   defines when specified a
      priority for the alarm will trigger.  The default value type to-do.  This property is
   DURATION, specifying useful in prioritizing
      multiple action items for a relative given time for the trigger of the alarm. period.

   Format Definition: The default duration property is relative to the start of an event or to-do
   that defined by the alarm following notation:

         priority   = "PRIORITY" prioparam ":" privalue CRLF
         ;Default is associated with.  The duration can zero

         prioparam  = *(";" xparam)

         privalue   = integer       ;Must be explicitly
   set to trigger from either the end or in the start range [0..9]
            ; All other values are reserved for future use

      The following is an example of the associated
   event or to-do a 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 end highest
      priority:

         PRIORITY:1

      The following is an example of
   the associated event or to-do.

   Either a positive or negative duration may be specified for the
   "TRIGGER" property.  An alarm property with a positive duration next highest
      priority:

         PRIORITY:2

   Example: The following is triggered
   after the associated start or end an example of the event or to-do.  An alarm
   with a negative duration is triggered before the associated start or
   end of the event or to-do.

   The "RELATED" property parameter with no priority.

      This is equivalent to not valid if the value type of specifying 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 property is set to DATE-TIME (i.e., defines the equipment or resources anticipated
      for an absolute date and time
   alarm trigger).  If activity specified by a value type of DATE-TIME is specified, then the calendar entity..

   Value Type: TEXT

   Property Parameters: Non-standard, alternate text representation and
      language property value MUST parameters can be specified in the UTC time format.  If an
   absolute trigger is specified on an 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 property
   MUST can be present specified in the 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 property or the "DSTART"
   and "DURATION' properties MUST be present in the associated "VEVENT"
   calendar component.  If the alarm value is specified 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 in an event or to-do which is defined in terms of a
   DATE value type will arbitrary text.  More than one
      resource can be triggered relative to 00:00:00 UTC on the



Desruisseaux & Stoner    Expires April 14, 2006               [Page 112]

Internet-Draft                  iCalendar                   October 2005 specified date.  For example, if "DTSTART:19980205, then as a list of resources separated by the duration
   trigger will be relative to19980205T000000Z.
      COMMA character (US-ASCII decimal 44).

   Format Definition: The property is defined by the following notation:

        trigger

         resources  = "TRIGGER" (trigrel / trigabs)

        trigrel "RESOURCES" resrcparam ":" text *("," text) CRLF

         resrcparam = *(

                    ; the following are optional,
                    ; but MUST NOT occur more than once

                    (";" "VALUE" "=" "DU