URI: 
       trfc5545.txt - ics2txt - convert icalendar .ics file to plain text
  HTML git clone git://bitreich.org/ics2txt git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/ics2txt
   DIR Log
   DIR Files
   DIR Refs
   DIR Tags
   DIR README
       ---
       trfc5545.txt (345537B)
       ---
            1 
            2 
            3 
            4 
            5 
            6 
            7 Network Working Group                               B. Desruisseaux, Ed.
            8 Request for Comments: 5545                                        Oracle
            9 Obsoletes: 2445                                           September 2009
           10 Category: Standards Track
           11 
           12 
           13      Internet Calendaring and Scheduling Core Object Specification
           14                               (iCalendar)
           15 
           16 Abstract
           17 
           18 This document defines the iCalendar data format for representing and
           19 exchanging calendaring and scheduling information such as events,
           20 to-dos, journal entries, and free/busy information, independent of any
           21 particular calendar service or protocol.
           22 
           23 Status of This Memo
           24 
           25    This document specifies an Internet standards track protocol for the
           26    Internet community, and requests discussion and suggestions for
           27    improvements.  Please refer to the current edition of the "Internet
           28    Official Protocol Standards" (STD 1) for the standardization state
           29    and status of this protocol.  Distribution of this memo is unlimited.
           30 
           31 Copyright and License Notice
           32 
           33    Copyright (c) 2009 IETF Trust and the persons identified as the
           34    document authors.  All rights reserved.
           35 
           36    This document is subject to BCP 78 and the IETF Trust's Legal
           37    Provisions Relating to IETF Documents
           38    (http://trustee.ietf.org/license-info) in effect on the date of
           39    publication of this document.  Please review these documents
           40    carefully, as they describe your rights and restrictions with respect
           41    to this document.  Code Components extracted from this document must
           42    include Simplified BSD License text as described in Section 4.e of
           43    the Trust Legal Provisions and are provided without warranty as
           44    described in the BSD License.
           45 
           46    This document may contain material from IETF Documents or IETF
           47    Contributions published or made publicly available before November
           48    10, 2008.  The person(s) controlling the copyright in some of this
           49    material may not have granted the IETF Trust the right to allow
           50    modifications of such material outside the IETF Standards Process.
           51    Without obtaining an adequate license from the person(s) controlling
           52    the copyright in such materials, this document may not be modified
           53    outside the IETF Standards Process, and derivative works of it may
           54    not be created outside the IETF Standards Process, except to format
           55 
           56 
           57 
           58 Desruisseaux                Standards Track                     [Page 1]
           59 
           60 RFC 5545                       iCalendar                  September 2009
           61 
           62 
           63    it for publication as an RFC or to translate it into languages other
           64    than English.
           65 
           66 Table of Contents
           67 
           68    1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   5
           69    2.  Basic Grammar and Conventions . . . . . . . . . . . . . . . .   6
           70      2.1.  Formatting Conventions  . . . . . . . . . . . . . . . . .   6
           71      2.2.  Related Memos . . . . . . . . . . . . . . . . . . . . . .   7
           72    3.  iCalendar Object Specification  . . . . . . . . . . . . . . .   8
           73      3.1.  Content Lines . . . . . . . . . . . . . . . . . . . . . .   8
           74        3.1.1.  List and Field Separators . . . . . . . . . . . . . .  11
           75        3.1.2.  Multiple Values . . . . . . . . . . . . . . . . . . .  11
           76        3.1.3.  Binary Content  . . . . . . . . . . . . . . . . . . .  11
           77        3.1.4.  Character Set . . . . . . . . . . . . . . . . . . . .  12
           78      3.2.  Property Parameters . . . . . . . . . . . . . . . . . . .  12
           79        3.2.1.  Alternate Text Representation . . . . . . . . . . . .  13
           80        3.2.2.  Common Name . . . . . . . . . . . . . . . . . . . . .  15
           81        3.2.3.  Calendar User Type  . . . . . . . . . . . . . . . . .  15
           82        3.2.4.  Delegators  . . . . . . . . . . . . . . . . . . . . .  16
           83        3.2.5.  Delegatees  . . . . . . . . . . . . . . . . . . . . .  16
           84        3.2.6.  Directory Entry Reference . . . . . . . . . . . . . .  17
           85        3.2.7.  Inline Encoding . . . . . . . . . . . . . . . . . . .  17
           86        3.2.8.  Format Type . . . . . . . . . . . . . . . . . . . . .  18
           87        3.2.9.  Free/Busy Time Type . . . . . . . . . . . . . . . . .  19
           88        3.2.10. Language  . . . . . . . . . . . . . . . . . . . . . .  20
           89        3.2.11. Group or List Membership  . . . . . . . . . . . . . .  20
           90        3.2.12. Participation Status  . . . . . . . . . . . . . . . .  21
           91        3.2.13. Recurrence Identifier Range . . . . . . . . . . . . .  22
           92        3.2.14. Alarm Trigger Relationship  . . . . . . . . . . . . .  23
           93        3.2.15. Relationship Type . . . . . . . . . . . . . . . . . .  24
           94        3.2.16. Participation Role  . . . . . . . . . . . . . . . . .  25
           95        3.2.17. RSVP Expectation  . . . . . . . . . . . . . . . . . .  25
           96        3.2.18. Sent By . . . . . . . . . . . . . . . . . . . . . . .  26
           97        3.2.19. Time Zone Identifier  . . . . . . . . . . . . . . . .  26
           98        3.2.20. Value Data Types  . . . . . . . . . . . . . . . . . .  28
           99      3.3.  Property Value Data Types . . . . . . . . . . . . . . . .  29
          100        3.3.1.  Binary  . . . . . . . . . . . . . . . . . . . . . . .  29
          101        3.3.2.  Boolean . . . . . . . . . . . . . . . . . . . . . . .  30
          102        3.3.3.  Calendar User Address . . . . . . . . . . . . . . . .  30
          103        3.3.4.  Date  . . . . . . . . . . . . . . . . . . . . . . . .  31
          104        3.3.5.  Date-Time . . . . . . . . . . . . . . . . . . . . . .  31
          105        3.3.6.  Duration  . . . . . . . . . . . . . . . . . . . . . .  34
          106        3.3.7.  Float . . . . . . . . . . . . . . . . . . . . . . . .  35
          107        3.3.8.  Integer . . . . . . . . . . . . . . . . . . . . . . .  35
          108        3.3.9.  Period of Time  . . . . . . . . . . . . . . . . . . .  36
          109        3.3.10. Recurrence Rule . . . . . . . . . . . . . . . . . . .  37
          110        3.3.11. Text  . . . . . . . . . . . . . . . . . . . . . . . .  45
          111 
          112 
          113 
          114 Desruisseaux                Standards Track                     [Page 2]
          115 
          116 RFC 5545                       iCalendar                  September 2009
          117 
          118 
          119        3.3.12. Time  . . . . . . . . . . . . . . . . . . . . . . . .  46
          120        3.3.13. URI . . . . . . . . . . . . . . . . . . . . . . . . .  48
          121        3.3.14. UTC Offset  . . . . . . . . . . . . . . . . . . . . .  49
          122      3.4.  iCalendar Object  . . . . . . . . . . . . . . . . . . . .  49
          123      3.5.  Property  . . . . . . . . . . . . . . . . . . . . . . . .  50
          124      3.6.  Calendar Components . . . . . . . . . . . . . . . . . . .  50
          125        3.6.1.  Event Component . . . . . . . . . . . . . . . . . . .  52
          126        3.6.2.  To-Do Component . . . . . . . . . . . . . . . . . . .  56
          127        3.6.3.  Journal Component . . . . . . . . . . . . . . . . . .  58
          128        3.6.4.  Free/Busy Component . . . . . . . . . . . . . . . . .  60
          129        3.6.5.  Time Zone Component . . . . . . . . . . . . . . . . .  63
          130        3.6.6.  Alarm Component . . . . . . . . . . . . . . . . . . .  72
          131      3.7.  Calendar Properties . . . . . . . . . . . . . . . . . . .  77
          132        3.7.1.  Calendar Scale  . . . . . . . . . . . . . . . . . . .  77
          133        3.7.2.  Method  . . . . . . . . . . . . . . . . . . . . . . .  78
          134        3.7.3.  Product Identifier  . . . . . . . . . . . . . . . . .  79
          135        3.7.4.  Version . . . . . . . . . . . . . . . . . . . . . . .  80
          136      3.8.  Component Properties  . . . . . . . . . . . . . . . . . .  81
          137        3.8.1.  Descriptive Component Properties  . . . . . . . . . .  81
          138          3.8.1.1.  Attachment  . . . . . . . . . . . . . . . . . . .  81
          139          3.8.1.2.  Categories  . . . . . . . . . . . . . . . . . . .  82
          140          3.8.1.3.  Classification  . . . . . . . . . . . . . . . . .  83
          141          3.8.1.4.  Comment . . . . . . . . . . . . . . . . . . . . .  84
          142          3.8.1.5.  Description . . . . . . . . . . . . . . . . . . .  85
          143          3.8.1.6.  Geographic Position . . . . . . . . . . . . . . .  87
          144          3.8.1.7.  Location  . . . . . . . . . . . . . . . . . . . .  88
          145          3.8.1.8.  Percent Complete  . . . . . . . . . . . . . . . .  89
          146          3.8.1.9.  Priority  . . . . . . . . . . . . . . . . . . . .  90
          147          3.8.1.10. Resources . . . . . . . . . . . . . . . . . . . .  92
          148          3.8.1.11. Status  . . . . . . . . . . . . . . . . . . . . .  93
          149          3.8.1.12. Summary . . . . . . . . . . . . . . . . . . . . .  94
          150        3.8.2.  Date and Time Component Properties  . . . . . . . . .  95
          151          3.8.2.1.  Date-Time Completed . . . . . . . . . . . . . . .  95
          152          3.8.2.2.  Date-Time End . . . . . . . . . . . . . . . . . .  96
          153          3.8.2.3.  Date-Time Due . . . . . . . . . . . . . . . . . .  97
          154          3.8.2.4.  Date-Time Start . . . . . . . . . . . . . . . . .  99
          155          3.8.2.5.  Duration  . . . . . . . . . . . . . . . . . . . . 100
          156          3.8.2.6.  Free/Busy Time  . . . . . . . . . . . . . . . . . 101
          157          3.8.2.7.  Time Transparency . . . . . . . . . . . . . . . . 102
          158        3.8.3.  Time Zone Component Properties  . . . . . . . . . . . 103
          159          3.8.3.1.  Time Zone Identifier  . . . . . . . . . . . . . . 103
          160          3.8.3.2.  Time Zone Name  . . . . . . . . . . . . . . . . . 105
          161          3.8.3.3.  Time Zone Offset From . . . . . . . . . . . . . . 106
          162          3.8.3.4.  Time Zone Offset To . . . . . . . . . . . . . . . 106
          163          3.8.3.5.  Time Zone URL . . . . . . . . . . . . . . . . . . 107
          164        3.8.4.  Relationship Component Properties . . . . . . . . . . 108
          165          3.8.4.1.  Attendee  . . . . . . . . . . . . . . . . . . . . 108
          166          3.8.4.2.  Contact . . . . . . . . . . . . . . . . . . . . . 111
          167 
          168 
          169 
          170 Desruisseaux                Standards Track                     [Page 3]
          171 
          172 RFC 5545                       iCalendar                  September 2009
          173 
          174 
          175          3.8.4.3.  Organizer . . . . . . . . . . . . . . . . . . . . 113
          176          3.8.4.4.  Recurrence ID . . . . . . . . . . . . . . . . . . 114
          177          3.8.4.5.  Related To  . . . . . . . . . . . . . . . . . . . 117
          178          3.8.4.6.  Uniform Resource Locator  . . . . . . . . . . . . 118
          179          3.8.4.7.  Unique Identifier . . . . . . . . . . . . . . . . 119
          180        3.8.5.  Recurrence Component Properties . . . . . . . . . . . 120
          181          3.8.5.1.  Exception Date-Times  . . . . . . . . . . . . . . 120
          182          3.8.5.2.  Recurrence Date-Times . . . . . . . . . . . . . . 122
          183          3.8.5.3.  Recurrence Rule . . . . . . . . . . . . . . . . . 124
          184        3.8.6.  Alarm Component Properties  . . . . . . . . . . . . . 134
          185          3.8.6.1.  Action  . . . . . . . . . . . . . . . . . . . . . 134
          186          3.8.6.2.  Repeat Count  . . . . . . . . . . . . . . . . . . 135
          187          3.8.6.3.  Trigger . . . . . . . . . . . . . . . . . . . . . 135
          188        3.8.7.  Change Management Component Properties  . . . . . . . 138
          189          3.8.7.1.  Date-Time Created . . . . . . . . . . . . . . . . 138
          190          3.8.7.2.  Date-Time Stamp . . . . . . . . . . . . . . . . . 139
          191          3.8.7.3.  Last Modified . . . . . . . . . . . . . . . . . . 140
          192          3.8.7.4.  Sequence Number . . . . . . . . . . . . . . . . . 141
          193        3.8.8.  Miscellaneous Component Properties  . . . . . . . . . 142
          194          3.8.8.1.  IANA Properties . . . . . . . . . . . . . . . . . 142
          195          3.8.8.2.  Non-Standard Properties . . . . . . . . . . . . . 142
          196          3.8.8.3.  Request Status  . . . . . . . . . . . . . . . . . 144
          197    4.  iCalendar Object Examples . . . . . . . . . . . . . . . . . . 146
          198    5.  Recommended Practices . . . . . . . . . . . . . . . . . . . . 150
          199    6.  Internationalization Considerations . . . . . . . . . . . . . 151
          200    7.  Security Considerations . . . . . . . . . . . . . . . . . . . 151
          201    8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . 151
          202      8.1.  iCalendar Media Type Registration . . . . . . . . . . . . 151
          203      8.2.  New iCalendar Elements Registration . . . . . . . . . . . 155
          204        8.2.1.  iCalendar Elements Registration Procedure . . . . . . 155
          205        8.2.2.  Registration Template for Components  . . . . . . . . 155
          206        8.2.3.  Registration Template for Properties  . . . . . . . . 156
          207        8.2.4.  Registration Template for Parameters  . . . . . . . . 156
          208        8.2.5.  Registration Template for Value Data Types  . . . . . 157
          209        8.2.6.  Registration Template for Values  . . . . . . . . . . 157
          210      8.3.  Initial iCalendar Elements Registries . . . . . . . . . . 158
          211        8.3.1.  Components Registry . . . . . . . . . . . . . . . . . 158
          212        8.3.2.  Properties Registry . . . . . . . . . . . . . . . . . 158
          213        8.3.3.  Parameters Registry . . . . . . . . . . . . . . . . . 161
          214        8.3.4.  Value Data Types Registry . . . . . . . . . . . . . . 162
          215        8.3.5.  Calendar User Types Registry  . . . . . . . . . . . . 162
          216        8.3.6.  Free/Busy Time Types Registry . . . . . . . . . . . . 163
          217        8.3.7.  Participation Statuses Registry . . . . . . . . . . . 163
          218        8.3.8.  Relationship Types Registry . . . . . . . . . . . . . 164
          219        8.3.9.  Participation Roles Registry  . . . . . . . . . . . . 164
          220        8.3.10. Actions Registry  . . . . . . . . . . . . . . . . . . 165
          221        8.3.11. Classifications Registry  . . . . . . . . . . . . . . 165
          222        8.3.12. Methods Registry  . . . . . . . . . . . . . . . . . . 165
          223 
          224 
          225 
          226 Desruisseaux                Standards Track                     [Page 4]
          227 
          228 RFC 5545                       iCalendar                  September 2009
          229 
          230 
          231    9.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 165
          232    10. References  . . . . . . . . . . . . . . . . . . . . . . . . . 166
          233      10.1. Normative References  . . . . . . . . . . . . . . . . . . 166
          234      10.2. Informative References  . . . . . . . . . . . . . . . . . 167
          235    Appendix A.  Differences from RFC 2445  . . . . . . . . . . . . . 169
          236      A.1.  New Restrictions  . . . . . . . . . . . . . . . . . . . . 169
          237      A.2.  Restrictions Removed  . . . . . . . . . . . . . . . . . . 169
          238      A.3.  Deprecated Features . . . . . . . . . . . . . . . . . . . 169
          239 
          240 1.  Introduction
          241 
          242    The use of calendaring and scheduling has grown considerably in the
          243    last decade.  Enterprise and inter-enterprise business has become
          244    dependent on rapid scheduling of events and actions using this
          245    information technology.  This memo is intended to progress the level
          246    of interoperability possible between dissimilar calendaring and
          247    scheduling applications.  This memo defines a MIME content type for
          248    exchanging electronic calendaring and scheduling information.  The
          249    Internet Calendaring and Scheduling Core Object Specification, or
          250    iCalendar, allows for the capture and exchange of information
          251    normally stored within a calendaring and scheduling application; such
          252    as a Personal Information Manager (PIM) or a Group-Scheduling
          253    product.
          254 
          255    The iCalendar format is suitable as an exchange format between
          256    applications or systems.  The format is defined in terms of a MIME
          257    content type.  This will enable the object to be exchanged using
          258    several transports, including but not limited to SMTP, HTTP, a file
          259    system, desktop interactive protocols such as the use of a memory-
          260    based clipboard or drag/drop interactions, point-to-point
          261    asynchronous communication, wired-network transport, or some form of
          262    unwired transport such as infrared.
          263 
          264    The memo also provides for the definition of iCalendar object methods
          265    that will map this content type to a set of messages for supporting
          266    calendaring and scheduling operations such as requesting, replying
          267    to, modifying, and canceling meetings or appointments, to-dos, and
          268    journal entries.  The iCalendar object methods can be used to define
          269    other calendaring and scheduling operations such as requesting for
          270    and replying with free/busy time data.  Such a scheduling protocol is
          271    defined in the iCalendar Transport-independent Interoperability
          272    Protocol (iTIP) defined in [2446bis].
          273 
          274    The memo also includes a formal grammar for the content type based on
          275    the Internet ABNF defined in [RFC5234].  This ABNF is required for
          276    the implementation of parsers and to serve as the definitive
          277    reference when ambiguities or questions arise in interpreting the
          278    descriptive prose definition of the memo.  Additional restrictions
          279 
          280 
          281 
          282 Desruisseaux                Standards Track                     [Page 5]
          283 
          284 RFC 5545                       iCalendar                  September 2009
          285 
          286 
          287    that could not easily be expressed with the ABNF syntax are specified
          288    as comments in the ABNF.  Comments with normative statements should
          289    be treated as such.
          290 
          291 2.  Basic Grammar and Conventions
          292 
          293    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
          294    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
          295    document are to be interpreted as described in [RFC2119].
          296 
          297    This memo makes use of both a descriptive prose and a more formal
          298    notation for defining the calendaring and scheduling format.
          299 
          300    The notation used in this memo is the ABNF notation of [RFC5234].
          301    Readers intending on implementing the format defined in this memo
          302    should be familiar with this notation in order to properly interpret
          303    the specifications of this memo.
          304 
          305    All numeric values used in this memo are given in decimal notation.
          306 
          307    All names of properties, property parameters, enumerated property
          308    values, and property parameter values are case-insensitive.  However,
          309    all other property values are case-sensitive, unless otherwise
          310    stated.
          311 
          312       Note: All indented editorial notes, such as this one, are intended
          313       to provide the reader with additional information.  The
          314       information is not essential to the building of an implementation
          315       conformant with this memo.  The information is provided to
          316       highlight a particular feature or characteristic of the memo.
          317 
          318    The format for the iCalendar object is based on the syntax of the
          319    text/directory media type [RFC2425].  While the iCalendar object is
          320    not a profile of the text/directory media type [RFC2425], it does
          321    reuse a number of the elements from the [RFC2425] specification.
          322 
          323 2.1.  Formatting Conventions
          324 
          325    The elements defined in this memo are defined in prose.  Many of the
          326    terms used to describe these have common usage that is different than
          327    the standards usage of this memo.  In order to reference, within this
          328    memo, elements of the calendaring and scheduling model, core object
          329    (this memo), or interoperability protocol [2446bis] some formatting
          330    conventions have been used.  Calendaring and scheduling roles are
          331    referred to in quoted-strings of text with the first character of
          332    each word in uppercase.  For example, "Organizer" refers to a role of
          333    a "Calendar User" within the scheduling protocol defined by
          334    [2446bis].  Calendar components defined by this memo are referred to
          335 
          336 
          337 
          338 Desruisseaux                Standards Track                     [Page 6]
          339 
          340 RFC 5545                       iCalendar                  September 2009
          341 
          342 
          343    with capitalized, quoted-strings of text.  All calendar components
          344    start with the letter "V".  For example, "VEVENT" refers to the event
          345    calendar component, "VTODO" refers to the to-do calendar component,
          346    and "VJOURNAL" refers to the daily journal calendar component.
          347    Scheduling methods defined by iTIP [2446bis] are referred to with
          348    capitalized, quoted-strings of text.  For example, "REQUEST" refers
          349    to the method for requesting a scheduling calendar component be
          350    created or modified, and "REPLY" refers to the method a recipient of
          351    a request uses to update their status with the "Organizer" of the
          352    calendar component.
          353 
          354    The properties defined by this memo are referred to with capitalized,
          355    quoted-strings of text, followed by the word "property".  For
          356    example, "ATTENDEE" property refers to the iCalendar property used to
          357    convey the calendar address of a calendar user.  Property parameters
          358    defined by this memo are referred to with lowercase, quoted-strings
          359    of text, followed by the word "parameter".  For example, "value"
          360    parameter refers to the iCalendar property parameter used to override
          361    the default value type for a property value.  Enumerated values
          362    defined by this memo are referred to with capitalized text, either
          363    alone or followed by the word "value".  For example, the "MINUTELY"
          364    value can be used with the "FREQ" component of the "RECUR" value type
          365    to specify repeating components based on an interval of one minute or
          366    more.
          367 
          368    The following table lists the different characters from the
          369    [US-ASCII] character set that is referenced in this document.  For
          370    each character, the table specifies the character name used
          371    throughout this document, along with its US-ASCII decimal codepoint.
          372 
          373 
          374 
          375 
          376 
          377 
          378 
          379 
          380 
          381 
          382 
          383 
          384 
          385 
          386 
          387 
          388 
          389 
          390 
          391 
          392 
          393 
          394 Desruisseaux                Standards Track                     [Page 7]
          395 
          396 RFC 5545                       iCalendar                  September 2009
          397 
          398 
          399               +------------------------+-------------------+
          400               | Character name         | Decimal codepoint |
          401               +------------------------+-------------------+
          402               | HTAB                   | 9                 |
          403               | LF                     | 10                |
          404               | CR                     | 13                |
          405               | DQUOTE                 | 22                |
          406               | SPACE                  | 32                |
          407               | PLUS SIGN              | 43                |
          408               | COMMA                  | 44                |
          409               | HYPHEN-MINUS           | 45                |
          410               | PERIOD                 | 46                |
          411               | SOLIDUS                | 47                |
          412               | COLON                  | 58                |
          413               | SEMICOLON              | 59                |
          414               | LATIN CAPITAL LETTER N | 78                |
          415               | LATIN CAPITAL LETTER T | 84                |
          416               | LATIN CAPITAL LETTER X | 88                |
          417               | LATIN CAPITAL LETTER Z | 90                |
          418               | BACKSLASH              | 92                |
          419               | LATIN SMALL LETTER N   | 110               |
          420               +------------------------+-------------------+
          421 
          422 2.2.  Related Memos
          423 
          424    Implementers will need to be familiar with several other memos that,
          425    along with this memo, form a framework for Internet calendaring and
          426    scheduling standards.  This memo specifies a core specification of
          427    objects, value types, properties, and property parameters.
          428 
          429    o  iTIP [2446bis] specifies an interoperability protocol for
          430       scheduling between different implementations;
          431 
          432    o  iCalendar Message-Based Interoperability Protocol (iMIP) [2447bis]
          433       specifies an Internet email binding for [2446bis].
          434 
          435    This memo does not attempt to repeat the specification of concepts or
          436    definitions from these other memos.  Where possible, references are
          437    made to the memo that provides for the specification of these
          438    concepts or definitions.
          439 
          440 3.  iCalendar Object Specification
          441 
          442    The following sections define the details of a Calendaring and
          443    Scheduling Core Object Specification.  The Calendaring and Scheduling
          444    Core Object is a collection of calendaring and scheduling
          445    information.  Typically, this information will consist of an
          446    iCalendar stream with one or more iCalendar objects.  The body of the
          447 
          448 
          449 
          450 Desruisseaux                Standards Track                     [Page 8]
          451 
          452 RFC 5545                       iCalendar                  September 2009
          453 
          454 
          455    iCalendar object consists of a sequence of calendar properties and
          456    one or more calendar components.
          457 
          458    Section 3.1 defines the content line format; Section 3.2 defines the
          459    property parameter format; Section 3.3 defines the data types for
          460    property values; Section 3.4 defines the iCalendar object format;
          461    Section 3.5 defines the iCalendar property format; Section 3.6
          462    defines the calendar component format; Section 3.7 defines calendar
          463    properties; and Section 3.8 defines calendar component properties.
          464 
          465    This information is intended to be an integral part of the MIME
          466    content type registration.  In addition, this information can be used
          467    independent of such content registration.  In particular, this memo
          468    has direct applicability for use as a calendaring and scheduling
          469    exchange format in file-, memory-, or network-based transport
          470    mechanisms.
          471 
          472 3.1.  Content Lines
          473 
          474    The iCalendar object is organized into individual lines of text,
          475    called content lines.  Content lines are delimited by a line break,
          476    which is a CRLF sequence (CR character followed by LF character).
          477 
          478    Lines of text SHOULD NOT be longer than 75 octets, excluding the line
          479    break.  Long content lines SHOULD be split into a multiple line
          480    representations using a line "folding" technique.  That is, a long
          481    line can be split between any two characters by inserting a CRLF
          482    immediately followed by a single linear white-space character (i.e.,
          483    SPACE or HTAB).  Any sequence of CRLF followed immediately by a
          484    single linear white-space character is ignored (i.e., removed) when
          485    processing the content type.
          486 
          487    For example, the line:
          488 
          489      DESCRIPTION:This is a long description that exists on a long line.
          490 
          491    Can be represented as:
          492 
          493      DESCRIPTION:This is a lo
          494       ng description
          495        that exists on a long line.
          496 
          497    The process of moving from this folded multiple-line representation
          498    to its single-line representation is called "unfolding".  Unfolding
          499    is accomplished by removing the CRLF and the linear white-space
          500    character that immediately follows.
          501 
          502 
          503 
          504 
          505 
          506 Desruisseaux                Standards Track                     [Page 9]
          507 
          508 RFC 5545                       iCalendar                  September 2009
          509 
          510 
          511    When parsing a content line, folded lines MUST first be unfolded
          512    according to the unfolding procedure described above.
          513 
          514       Note: It is possible for very simple implementations to generate
          515       improperly folded lines in the middle of a UTF-8 multi-octet
          516       sequence.  For this reason, implementations need to unfold lines
          517       in such a way to properly restore the original sequence.
          518 
          519    The content information associated with an iCalendar object is
          520    formatted using a syntax similar to that defined by [RFC2425].  That
          521    is, the content information consists of CRLF-separated content lines.
          522 
          523    The following notation defines the lines of content in an iCalendar
          524    object:
          525 
          526      contentline   = name *(";" param ) ":" value CRLF
          527      ; This ABNF is just a general definition for an initial parsing
          528      ; of the content line into its property name, parameter list,
          529      ; and value string
          530 
          531      ; When parsing a content line, folded lines MUST first
          532      ; be unfolded according to the unfolding procedure
          533      ; described above.  When generating a content line, lines
          534      ; longer than 75 octets SHOULD be folded according to
          535      ; the folding procedure described above.
          536 
          537      name          = iana-token / x-name
          538 
          539      iana-token    = 1*(ALPHA / DIGIT / "-")
          540      ; iCalendar identifier registered with IANA
          541 
          542      x-name        = "X-" [vendorid "-"] 1*(ALPHA / DIGIT / "-")
          543      ; Reserved for experimental use.
          544 
          545      vendorid      = 3*(ALPHA / DIGIT)
          546      ; Vendor identification
          547 
          548      param         = param-name "=" param-value *("," param-value)
          549      ; Each property defines the specific ABNF for the parameters
          550      ; allowed on the property.  Refer to specific properties for
          551      ; precise parameter ABNF.
          552 
          553      param-name    = iana-token / x-name
          554 
          555      param-value   = paramtext / quoted-string
          556 
          557      paramtext     = *SAFE-CHAR
          558 
          559 
          560 
          561 
          562 Desruisseaux                Standards Track                    [Page 10]
          563 
          564 RFC 5545                       iCalendar                  September 2009
          565 
          566 
          567      value         = *VALUE-CHAR
          568 
          569      quoted-string = DQUOTE *QSAFE-CHAR DQUOTE
          570 
          571      QSAFE-CHAR    = WSP / %x21 / %x23-7E / NON-US-ASCII
          572      ; Any character except CONTROL and DQUOTE
          573 
          574      SAFE-CHAR     = WSP / %x21 / %x23-2B / %x2D-39 / %x3C-7E
          575                    / NON-US-ASCII
          576      ; Any character except CONTROL, DQUOTE, ";", ":", ","
          577 
          578      VALUE-CHAR    = WSP / %x21-7E / NON-US-ASCII
          579      ; Any textual character
          580 
          581      NON-US-ASCII  = UTF8-2 / UTF8-3 / UTF8-4
          582      ; UTF8-2, UTF8-3, and UTF8-4 are defined in [RFC3629]
          583 
          584      CONTROL       = %x00-08 / %x0A-1F / %x7F
          585      ; All the controls except HTAB
          586 
          587    The property value component of a content line has a format that is
          588    property specific.  Refer to the section describing each property for
          589    a definition of this format.
          590 
          591    All names of properties, property parameters, enumerated property
          592    values and property parameter values are case-insensitive.  However,
          593    all other property values are case-sensitive, unless otherwise
          594    stated.
          595 
          596 3.1.1.  List and Field Separators
          597 
          598    Some properties and parameters allow a list of values.  Values in a
          599    list of values MUST be separated by a COMMA character.  There is no
          600    significance to the order of values in a list.  For those parameter
          601    values (such as those that specify URI values) that are specified in
          602    quoted-strings, the individual quoted-strings are separated by a
          603    COMMA character.
          604 
          605    Some property values are defined in terms of multiple parts.  These
          606    structured property values MUST have their value parts separated by a
          607    SEMICOLON character.
          608 
          609    Some properties allow a list of parameters.  Each property parameter
          610    in a list of property parameters MUST be separated by a SEMICOLON
          611    character.
          612 
          613 
          614 
          615 
          616 
          617 
          618 Desruisseaux                Standards Track                    [Page 11]
          619 
          620 RFC 5545                       iCalendar                  September 2009
          621 
          622 
          623    Property parameters with values containing a COLON character, a
          624    SEMICOLON character or a COMMA character MUST be placed in quoted
          625    text.
          626 
          627    For example, in the following properties, a SEMICOLON is used to
          628    separate property parameters from each other and a COMMA character is
          629    used to separate property values in a value list.
          630 
          631      ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT:mailto:
          632       jsmith@example.com
          633 
          634      RDATE;VALUE=DATE:19970304,19970504,19970704,19970904
          635 
          636 3.1.2.  Multiple Values
          637 
          638    Some properties defined in the iCalendar object can have multiple
          639    values.  The general rule for encoding multi-valued items is to
          640    simply create a new content line for each value, including the
          641    property name.  However, it should be noted that some properties
          642    support encoding multiple values in a single property by separating
          643    the values with a COMMA character.  Individual property definitions
          644    should be consulted for determining whether a specific property
          645    allows multiple values and in which of these two forms.  Multi-valued
          646    properties MUST NOT be used to specify multiple language variants of
          647    the same value.  Calendar applications SHOULD display all values.
          648 
          649 3.1.3.  Binary Content
          650 
          651    Binary content information in an iCalendar object SHOULD be
          652    referenced using a URI within a property value.  That is, the binary
          653    content information SHOULD be placed in an external MIME entity that
          654    can be referenced by a URI from within the iCalendar object.  In
          655    applications where this is not feasible, binary content information
          656    can be included within an iCalendar object, but only after first
          657    encoding it into text using the "BASE64" encoding method defined in
          658    [RFC4648].  Inline binary content SHOULD only be used in applications
          659    whose special circumstances demand that an iCalendar object be
          660    expressed as a single entity.  A property containing inline binary
          661    content information MUST specify the "ENCODING" property parameter.
          662    Binary content information placed external to the iCalendar object
          663    MUST be referenced by a uniform resource identifier (URI).
          664 
          665    The following example specifies an "ATTACH" property that references
          666    an attachment external to the iCalendar object with a URI reference:
          667 
          668      ATTACH:http://example.com/public/quarterly-report.doc
          669 
          670 
          671 
          672 
          673 
          674 Desruisseaux                Standards Track                    [Page 12]
          675 
          676 RFC 5545                       iCalendar                  September 2009
          677 
          678 
          679    The following example specifies an "ATTACH" property with inline
          680    binary encoded content information:
          681 
          682      ATTACH;FMTTYPE=text/plain;ENCODING=BASE64;VALUE=BINARY:VGhlIH
          683       F1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4
          684 
          685 3.1.4.  Character Set
          686 
          687    There is not a property parameter to declare the charset used in a
          688    property value.  The default charset for an iCalendar stream is UTF-8
          689    as defined in [RFC3629].
          690 
          691    The "charset" Content-Type parameter MUST be used in MIME transports
          692    to specify the charset being used.
          693 
          694 3.2.  Property Parameters
          695 
          696    A property can have attributes with which it is associated.  These
          697    "property parameters" contain meta-information about the property or
          698    the property value.  Property parameters are provided to specify such
          699    information as the location of an alternate text representation for a
          700    property value, the language of a text property value, the value type
          701    of the property value, and other attributes.
          702 
          703    Property parameter values that contain the COLON, SEMICOLON, or COMMA
          704    character separators MUST be specified as quoted-string text values.
          705    Property parameter values MUST NOT contain the DQUOTE character.  The
          706    DQUOTE character is used as a delimiter for parameter values that
          707    contain restricted characters or URI text.  For example:
          708 
          709      DESCRIPTION;ALTREP="cid:part1.0001@example.org":The Fall'98 Wild
          710        Wizards Conference - - Las Vegas\, NV\, USA
          711 
          712    Property parameter values that are not in quoted-strings are case-
          713    insensitive.
          714 
          715    The general property parameters defined by this memo are defined by
          716    the following notation:
          717 
          718 
          719 
          720 
          721 
          722 
          723 
          724 
          725 
          726 
          727 
          728 
          729 
          730 Desruisseaux                Standards Track                    [Page 13]
          731 
          732 RFC 5545                       iCalendar                  September 2009
          733 
          734 
          735      icalparameter = altrepparam       ; Alternate text representation
          736                    / cnparam           ; Common name
          737                    / cutypeparam       ; Calendar user type
          738                    / delfromparam      ; Delegator
          739                    / deltoparam        ; Delegatee
          740                    / dirparam          ; Directory entry
          741                    / encodingparam     ; Inline encoding
          742                    / fmttypeparam      ; Format type
          743                    / fbtypeparam       ; Free/busy time type
          744                    / languageparam     ; Language for text
          745                    / memberparam       ; Group or list membership
          746                    / partstatparam     ; Participation status
          747                    / rangeparam        ; Recurrence identifier range
          748                    / trigrelparam      ; Alarm trigger relationship
          749                    / reltypeparam      ; Relationship type
          750                    / roleparam         ; Participation role
          751                    / rsvpparam         ; RSVP expectation
          752                    / sentbyparam       ; Sent by
          753                    / tzidparam         ; Reference to time zone object
          754                    / valuetypeparam    ; Property value data type
          755                    / other-param
          756 
          757      other-param   = (iana-param / x-param)
          758 
          759      iana-param  = iana-token "=" param-value *("," param-value)
          760      ; Some other IANA-registered iCalendar parameter.
          761 
          762      x-param     = x-name "=" param-value *("," param-value)
          763      ; A non-standard, experimental parameter.
          764 
          765    Applications MUST ignore x-param and iana-param values they don't
          766    recognize.
          767 
          768 3.2.1.  Alternate Text Representation
          769 
          770    Parameter Name:  ALTREP
          771 
          772    Purpose:  To specify an alternate text representation for the
          773       property value.
          774 
          775    Format Definition:  This property parameter is defined by the
          776       following notation:
          777 
          778      altrepparam = "ALTREP" "=" DQUOTE uri DQUOTE
          779 
          780    Description:  This parameter specifies a URI that points to an
          781       alternate representation for a textual property value.  A property
          782       specifying this parameter MUST also include a value that reflects
          783 
          784 
          785 
          786 Desruisseaux                Standards Track                    [Page 14]
          787 
          788 RFC 5545                       iCalendar                  September 2009
          789 
          790 
          791       the default representation of the text value.  The URI parameter
          792       value MUST be specified in a quoted-string.
          793 
          794          Note: While there is no restriction imposed on the URI schemes
          795          allowed for this parameter, Content Identifier (CID) [RFC2392],
          796          HTTP [RFC2616], and HTTPS [RFC2818] are the URI schemes most
          797          commonly used by current implementations.
          798 
          799    Example:
          800 
          801        DESCRIPTION;ALTREP="CID:part3.msg.970415T083000@example.com":
          802         Project XYZ Review Meeting will include the following agenda
          803          items: (a) Market Overview\, (b) Finances\, (c) Project Man
          804         agement
          805 
          806       The "ALTREP" property parameter value might point to a "text/html"
          807       content portion.
          808 
          809        Content-Type:text/html
          810        Content-Id:<part3.msg.970415T083000@example.com>
          811 
          812        <html>
          813          <head>
          814           <title></title>
          815          </head>
          816          <body>
          817            <p>
          818              <b>Project XYZ Review Meeting</b> will include
          819              the following agenda items:
          820              <ol>
          821                <li>Market Overview</li>
          822                <li>Finances</li>
          823                <li>Project Management</li>
          824              </ol>
          825            </p>
          826          </body>
          827        </html>
          828 
          829 3.2.2.  Common Name
          830 
          831    Parameter Name:  CN
          832 
          833    Purpose:  To specify the common name to be associated with the
          834       calendar user specified by the property.
          835 
          836    Format Definition:  This property parameter is defined by the
          837       following notation:
          838 
          839 
          840 
          841 
          842 Desruisseaux                Standards Track                    [Page 15]
          843 
          844 RFC 5545                       iCalendar                  September 2009
          845 
          846 
          847      cnparam    = "CN" "=" param-value
          848 
          849    Description:  This parameter can be specified on properties with a
          850       CAL-ADDRESS value type.  The parameter specifies the common name
          851       to be associated with the calendar user specified by the property.
          852       The parameter value is text.  The parameter value can be used for
          853       display text to be associated with the calendar address specified
          854       by the property.
          855 
          856    Example:
          857 
          858        ORGANIZER;CN="John Smith":mailto:jsmith@example.com
          859 
          860 3.2.3.  Calendar User Type
          861 
          862    Parameter Name:  CUTYPE
          863 
          864    Purpose:  To identify the type of calendar user specified by the
          865       property.
          866 
          867    Format Definition:  This property parameter is defined by the
          868       following notation:
          869 
          870        cutypeparam        = "CUTYPE" "="
          871                           ("INDIVIDUAL"   ; An individual
          872                          / "GROUP"        ; A group of individuals
          873                          / "RESOURCE"     ; A physical resource
          874                          / "ROOM"         ; A room resource
          875                          / "UNKNOWN"      ; Otherwise not known
          876                          / x-name         ; Experimental type
          877                          / iana-token)    ; Other IANA-registered
          878                                           ; type
          879        ; Default is INDIVIDUAL
          880 
          881    Description:  This parameter can be specified on properties with a
          882       CAL-ADDRESS value type.  The parameter identifies the type of
          883       calendar user specified by the property.  If not specified on a
          884       property that allows this parameter, the default is INDIVIDUAL.
          885       Applications MUST treat x-name and iana-token values they don't
          886       recognize the same way as they would the UNKNOWN value.
          887 
          888    Example:
          889 
          890        ATTENDEE;CUTYPE=GROUP:mailto:ietf-calsch@example.org
          891 
          892 
          893 
          894 
          895 
          896 
          897 
          898 Desruisseaux                Standards Track                    [Page 16]
          899 
          900 RFC 5545                       iCalendar                  September 2009
          901 
          902 
          903 3.2.4.  Delegators
          904 
          905    Parameter Name:  DELEGATED-FROM
          906 
          907    Purpose:  To specify the calendar users that have delegated their
          908       participation to the calendar user specified by the property.
          909 
          910    Format Definition:  This property parameter is defined by the
          911       following notation:
          912 
          913        delfromparam       = "DELEGATED-FROM" "=" DQUOTE cal-address
          914                              DQUOTE *("," DQUOTE cal-address DQUOTE)
          915 
          916    Description:  This parameter can be specified on properties with a
          917       CAL-ADDRESS value type.  This parameter specifies those calendar
          918       users that have delegated their participation in a group-scheduled
          919       event or to-do to the calendar user specified by the property.
          920       The individual calendar address parameter values MUST each be
          921       specified in a quoted-string.
          922 
          923    Example:
          924 
          925        ATTENDEE;DELEGATED-FROM="mailto:jsmith@example.com":mailto:
          926         jdoe@example.com
          927 
          928 3.2.5.  Delegatees
          929 
          930    Parameter Name:  DELEGATED-TO
          931 
          932    Purpose:  To specify the calendar users to whom the calendar user
          933       specified by the property has delegated participation.
          934 
          935    Format Definition:  This property parameter is defined by the
          936       following notation:
          937 
          938        deltoparam = "DELEGATED-TO" "=" DQUOTE cal-address DQUOTE
          939                     *("," DQUOTE cal-address DQUOTE)
          940 
          941    Description:  This parameter can be specified on properties with a
          942       CAL-ADDRESS value type.  This parameter specifies those calendar
          943       users whom have been delegated participation in a group-scheduled
          944       event or to-do by the calendar user specified by the property.
          945       The individual calendar address parameter values MUST each be
          946       specified in a quoted-string.
          947 
          948 
          949 
          950 
          951 
          952 
          953 
          954 Desruisseaux                Standards Track                    [Page 17]
          955 
          956 RFC 5545                       iCalendar                  September 2009
          957 
          958 
          959    Example:
          960 
          961        ATTENDEE;DELEGATED-TO="mailto:jdoe@example.com","mailto:jqpublic
          962         @example.com":mailto:jsmith@example.com
          963 
          964 3.2.6.  Directory Entry Reference
          965 
          966    Parameter Name:  DIR
          967 
          968    Purpose:  To specify reference to a directory entry associated with
          969       the calendar user specified by the property.
          970 
          971    Format Definition:  This property parameter is defined by the
          972       following notation:
          973 
          974        dirparam   = "DIR" "=" DQUOTE uri DQUOTE
          975 
          976    Description:  This parameter can be specified on properties with a
          977       CAL-ADDRESS value type.  The parameter specifies a reference to
          978       the directory entry associated with the calendar user specified by
          979       the property.  The parameter value is a URI.  The URI parameter
          980       value MUST be specified in a quoted-string.
          981 
          982          Note: While there is no restriction imposed on the URI schemes
          983          allowed for this parameter, CID [RFC2392], DATA [RFC2397], FILE
          984          [RFC1738], FTP [RFC1738], HTTP [RFC2616], HTTPS [RFC2818], LDAP
          985          [RFC4516], and MID [RFC2392] are the URI schemes most commonly
          986          used by current implementations.
          987 
          988    Example:
          989 
          990        ORGANIZER;DIR="ldap://example.com:6666/o=ABC%20Industries,
          991         c=US???(cn=Jim%20Dolittle)":mailto:jimdo@example.com
          992 
          993 3.2.7.  Inline Encoding
          994 
          995    Parameter Name:  ENCODING
          996 
          997    Purpose:  To specify an alternate inline encoding for the property
          998       value.
          999 
         1000    Format Definition:  This property parameter is defined by the
         1001       following notation:
         1002 
         1003 
         1004 
         1005 
         1006 
         1007 
         1008 
         1009 
         1010 Desruisseaux                Standards Track                    [Page 18]
         1011 
         1012 RFC 5545                       iCalendar                  September 2009
         1013 
         1014 
         1015        encodingparam      = "ENCODING" "="
         1016                           ( "8BIT"
         1017           ; "8bit" text encoding is defined in [RFC2045]
         1018                           / "BASE64"
         1019           ; "BASE64" binary encoding format is defined in [RFC4648]
         1020                           )
         1021 
         1022    Description:  This property parameter identifies the inline encoding
         1023       used in a property value.  The default encoding is "8BIT",
         1024       corresponding to a property value consisting of text.  The
         1025       "BASE64" encoding type corresponds to a property value encoded
         1026       using the "BASE64" encoding defined in [RFC2045].
         1027 
         1028       If the value type parameter is ";VALUE=BINARY", then the inline
         1029       encoding parameter MUST be specified with the value
         1030       ";ENCODING=BASE64".
         1031 
         1032    Example:
         1033 
         1034      ATTACH;FMTTYPE=text/plain;ENCODING=BASE64;VALUE=BINARY:TG9yZW
         1035       0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW
         1036       5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IG
         1037       xhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbm
         1038       ltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIG
         1039       xhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdW
         1040       F0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbi
         1041       B2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdC
         1042       BudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaW
         1043       RhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYS
         1044       BkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4=
         1045 
         1046 3.2.8.  Format Type
         1047 
         1048    Parameter Name:  FMTTYPE
         1049 
         1050    Purpose:  To specify the content type of a referenced object.
         1051 
         1052    Format Definition:  This property parameter is defined by the
         1053       following notation:
         1054 
         1055        fmttypeparam = "FMTTYPE" "=" type-name "/" subtype-name
         1056                       ; Where "type-name" and "subtype-name" are
         1057                       ; defined in Section 4.2 of [RFC4288].
         1058 
         1059    Description:  This parameter can be specified on properties that are
         1060       used to reference an object.  The parameter specifies the media
         1061       type [RFC4288] of the referenced object.  For example, on the
         1062       "ATTACH" property, an FTP type URI value does not, by itself,
         1063 
         1064 
         1065 
         1066 Desruisseaux                Standards Track                    [Page 19]
         1067 
         1068 RFC 5545                       iCalendar                  September 2009
         1069 
         1070 
         1071       necessarily convey the type of content associated with the
         1072       resource.  The parameter value MUST be the text for either an
         1073       IANA-registered media type or a non-standard media type.
         1074 
         1075    Example:
         1076 
         1077        ATTACH;FMTTYPE=application/msword:ftp://example.com/pub/docs/
         1078         agenda.doc
         1079 
         1080 3.2.9.  Free/Busy Time Type
         1081 
         1082    Parameter Name:  FBTYPE
         1083 
         1084    Purpose:  To specify the free or busy time type.
         1085 
         1086    Format Definition:  This property parameter is defined by the
         1087       following notation:
         1088 
         1089        fbtypeparam        = "FBTYPE" "=" ("FREE" / "BUSY"
         1090                           / "BUSY-UNAVAILABLE" / "BUSY-TENTATIVE"
         1091                           / x-name
         1092                 ; Some experimental iCalendar free/busy type.
         1093                           / iana-token)
         1094                 ; Some other IANA-registered iCalendar free/busy type.
         1095 
         1096    Description:  This parameter specifies the free or busy time type.
         1097       The value FREE indicates that the time interval is free for
         1098       scheduling.  The value BUSY indicates that the time interval is
         1099       busy because one or more events have been scheduled for that
         1100       interval.  The value BUSY-UNAVAILABLE indicates that the time
         1101       interval is busy and that the interval can not be scheduled.  The
         1102       value BUSY-TENTATIVE indicates that the time interval is busy
         1103       because one or more events have been tentatively scheduled for
         1104       that interval.  If not specified on a property that allows this
         1105       parameter, the default is BUSY.  Applications MUST treat x-name
         1106       and iana-token values they don't recognize the same way as they
         1107       would the BUSY value.
         1108 
         1109    Example:  The following is an example of this parameter on a
         1110       "FREEBUSY" property.
         1111 
         1112        FREEBUSY;FBTYPE=BUSY:19980415T133000Z/19980415T170000Z
         1113 
         1114 
         1115 
         1116 
         1117 
         1118 
         1119 
         1120 
         1121 
         1122 Desruisseaux                Standards Track                    [Page 20]
         1123 
         1124 RFC 5545                       iCalendar                  September 2009
         1125 
         1126 
         1127 3.2.10.  Language
         1128 
         1129    Parameter Name:  LANGUAGE
         1130 
         1131    Purpose:  To specify the language for text values in a property or
         1132       property parameter.
         1133 
         1134    Format Definition:  This property parameter is defined by the
         1135       following notation:
         1136 
         1137        languageparam = "LANGUAGE" "=" language
         1138 
         1139        language = Language-Tag
         1140                   ; As defined in [RFC5646].
         1141 
         1142    Description:  This parameter identifies the language of the text in
         1143       the property value and of all property parameter values of the
         1144       property.  The value of the "LANGUAGE" property parameter is that
         1145       defined in [RFC5646].
         1146 
         1147       For transport in a MIME entity, the Content-Language header field
         1148       can be used to set the default language for the entire body part.
         1149       Otherwise, no default language is assumed.
         1150 
         1151    Example:  The following are examples of this parameter on the
         1152       "SUMMARY" and "LOCATION" properties:
         1153 
         1154        SUMMARY;LANGUAGE=en-US:Company Holiday Party
         1155 
         1156        LOCATION;LANGUAGE=en:Germany
         1157 
         1158        LOCATION;LANGUAGE=no:Tyskland
         1159 
         1160 3.2.11.  Group or List Membership
         1161 
         1162    Parameter Name:  MEMBER
         1163 
         1164    Purpose:  To specify the group or list membership of the calendar
         1165       user specified by the property.
         1166 
         1167    Format Definition:  This property parameter is defined by the
         1168       following notation:
         1169 
         1170        memberparam        = "MEMBER" "=" DQUOTE cal-address DQUOTE
         1171                             *("," DQUOTE cal-address DQUOTE)
         1172 
         1173 
         1174 
         1175 
         1176 
         1177 
         1178 Desruisseaux                Standards Track                    [Page 21]
         1179 
         1180 RFC 5545                       iCalendar                  September 2009
         1181 
         1182 
         1183    Description:  This parameter can be specified on properties with a
         1184       CAL-ADDRESS value type.  The parameter identifies the groups or
         1185       list membership for the calendar user specified by the property.
         1186       The parameter value is either a single calendar address in a
         1187       quoted-string or a COMMA-separated list of calendar addresses,
         1188       each in a quoted-string.  The individual calendar address
         1189       parameter values MUST each be specified in a quoted-string.
         1190 
         1191    Example:
         1192 
         1193        ATTENDEE;MEMBER="mailto:ietf-calsch@example.org":mailto:
         1194         jsmith@example.com
         1195 
         1196        ATTENDEE;MEMBER="mailto:projectA@example.com","mailto:pr
         1197         ojectB@example.com":mailto:janedoe@example.com
         1198 
         1199 3.2.12.  Participation Status
         1200 
         1201    Parameter Name:  PARTSTAT
         1202 
         1203    Purpose:  To specify the participation status for the calendar user
         1204       specified by the property.
         1205 
         1206    Format Definition:  This property parameter is defined by the
         1207       following notation:
         1208 
         1209        partstatparam    = "PARTSTAT" "="
         1210                          (partstat-event
         1211                         / partstat-todo
         1212                         / partstat-jour)
         1213 
         1214        partstat-event   = ("NEEDS-ACTION"    ; Event needs action
         1215                         / "ACCEPTED"         ; Event accepted
         1216                         / "DECLINED"         ; Event declined
         1217                         / "TENTATIVE"        ; Event tentatively
         1218                                              ; accepted
         1219                         / "DELEGATED"        ; Event delegated
         1220                         / x-name             ; Experimental status
         1221                         / iana-token)        ; Other IANA-registered
         1222                                              ; status
         1223        ; These are the participation statuses for a "VEVENT".
         1224        ; Default is NEEDS-ACTION.
         1225 
         1226        partstat-todo    = ("NEEDS-ACTION"    ; To-do needs action
         1227                         / "ACCEPTED"         ; To-do accepted
         1228                         / "DECLINED"         ; To-do declined
         1229                         / "TENTATIVE"        ; To-do tentatively
         1230                                              ; accepted
         1231 
         1232 
         1233 
         1234 Desruisseaux                Standards Track                    [Page 22]
         1235 
         1236 RFC 5545                       iCalendar                  September 2009
         1237 
         1238 
         1239                         / "DELEGATED"        ; To-do delegated
         1240                         / "COMPLETED"        ; To-do completed
         1241                                              ; COMPLETED property has
         1242                                              ; DATE-TIME completed
         1243                         / "IN-PROCESS"       ; To-do in process of
         1244                                              ; being completed
         1245                         / x-name             ; Experimental status
         1246                         / iana-token)        ; Other IANA-registered
         1247                                              ; status
         1248        ; These are the participation statuses for a "VTODO".
         1249        ; Default is NEEDS-ACTION.
         1250 
         1251 
         1252 
         1253        partstat-jour    = ("NEEDS-ACTION"    ; Journal needs action
         1254                         / "ACCEPTED"         ; Journal accepted
         1255                         / "DECLINED"         ; Journal declined
         1256                         / x-name             ; Experimental status
         1257                         / iana-token)        ; Other IANA-registered
         1258                                              ; status
         1259        ; These are the participation statuses for a "VJOURNAL".
         1260        ; Default is NEEDS-ACTION.
         1261 
         1262    Description:  This parameter can be specified on properties with a
         1263       CAL-ADDRESS value type.  The parameter identifies the
         1264       participation status for the calendar user specified by the
         1265       property value.  The parameter values differ depending on whether
         1266       they are associated with a group-scheduled "VEVENT", "VTODO", or
         1267       "VJOURNAL".  The values MUST match one of the values allowed for
         1268       the given calendar component.  If not specified on a property that
         1269       allows this parameter, the default value is NEEDS-ACTION.
         1270       Applications MUST treat x-name and iana-token values they don't
         1271       recognize the same way as they would the NEEDS-ACTION value.
         1272 
         1273    Example:
         1274 
         1275        ATTENDEE;PARTSTAT=DECLINED:mailto:jsmith@example.com
         1276 
         1277 3.2.13.  Recurrence Identifier Range
         1278 
         1279    Parameter Name:  RANGE
         1280 
         1281    Purpose:  To specify the effective range of recurrence instances from
         1282       the instance specified by the recurrence identifier specified by
         1283       the property.
         1284 
         1285    Format Definition:  This property parameter is defined by the
         1286       following notation:
         1287 
         1288 
         1289 
         1290 Desruisseaux                Standards Track                    [Page 23]
         1291 
         1292 RFC 5545                       iCalendar                  September 2009
         1293 
         1294 
         1295        rangeparam = "RANGE" "=" "THISANDFUTURE"
         1296        ; To specify the instance specified by the recurrence identifier
         1297        ; and all subsequent recurrence instances.
         1298 
         1299    Description:  This parameter can be specified on a property that
         1300       specifies a recurrence identifier.  The parameter specifies the
         1301       effective range of recurrence instances that is specified by the
         1302       property.  The effective range is from the recurrence identifier
         1303       specified by the property.  If this parameter is not specified on
         1304       an allowed property, then the default range is the single instance
         1305       specified by the recurrence identifier value of the property.  The
         1306       parameter value can only be "THISANDFUTURE" to indicate a range
         1307       defined by the recurrence identifier and all subsequent instances.
         1308       The value "THISANDPRIOR" is deprecated by this revision of
         1309       iCalendar and MUST NOT be generated by applications.
         1310 
         1311    Example:
         1312 
         1313        RECURRENCE-ID;RANGE=THISANDFUTURE:19980401T133000Z
         1314 
         1315 3.2.14.  Alarm Trigger Relationship
         1316 
         1317    Parameter Name:  RELATED
         1318 
         1319    Purpose:  To specify the relationship of the alarm trigger with
         1320       respect to the start or end of the calendar component.
         1321 
         1322    Format Definition:  This property parameter is defined by the
         1323       following notation:
         1324 
         1325        trigrelparam       = "RELATED" "="
         1326                            ("START"       ; Trigger off of start
         1327                           / "END")        ; Trigger off of end
         1328 
         1329    Description:  This parameter can be specified on properties that
         1330       specify an alarm trigger with a "DURATION" value type.  The
         1331       parameter specifies whether the alarm will trigger relative to the
         1332       start or end of the calendar component.  The parameter value START
         1333       will set the alarm to trigger off the start of the calendar
         1334       component; the parameter value END will set the alarm to trigger
         1335       off the end of the calendar component.  If the parameter is not
         1336       specified on an allowable property, then the default is START.
         1337 
         1338    Example:
         1339 
         1340        TRIGGER;RELATED=END:PT5M
         1341 
         1342 
         1343 
         1344 
         1345 
         1346 Desruisseaux                Standards Track                    [Page 24]
         1347 
         1348 RFC 5545                       iCalendar                  September 2009
         1349 
         1350 
         1351 3.2.15.  Relationship Type
         1352 
         1353    Parameter Name:  RELTYPE
         1354 
         1355    Purpose:  To specify the type of hierarchical relationship associated
         1356       with the calendar component specified by the property.
         1357 
         1358    Format Definition:  This property parameter is defined by the
         1359       following notation:
         1360 
         1361        reltypeparam       = "RELTYPE" "="
         1362                            ("PARENT"    ; Parent relationship - Default
         1363                           / "CHILD"     ; Child relationship
         1364                           / "SIBLING"   ; Sibling relationship
         1365                           / iana-token  ; Some other IANA-registered
         1366                                         ; iCalendar relationship type
         1367                           / x-name)     ; A non-standard, experimental
         1368                                         ; relationship type
         1369 
         1370    Description:  This parameter can be specified on a property that
         1371       references another related calendar.  The parameter specifies the
         1372       hierarchical relationship type of the calendar component
         1373       referenced by the property.  The parameter value can be PARENT, to
         1374       indicate that the referenced calendar component is a superior of
         1375       calendar component; CHILD to indicate that the referenced calendar
         1376       component is a subordinate of the calendar component; or SIBLING
         1377       to indicate that the referenced calendar component is a peer of
         1378       the calendar component.  If this parameter is not specified on an
         1379       allowable property, the default relationship type is PARENT.
         1380       Applications MUST treat x-name and iana-token values they don't
         1381       recognize the same way as they would the PARENT value.
         1382 
         1383    Example:
         1384 
         1385        RELATED-TO;RELTYPE=SIBLING:19960401-080045-4000F192713@
         1386         example.com
         1387 
         1388 3.2.16.  Participation Role
         1389 
         1390    Parameter Name:  ROLE
         1391 
         1392    Purpose:  To specify the participation role for the calendar user
         1393       specified by the property.
         1394 
         1395    Format Definition:  This property parameter is defined by the
         1396       following notation:
         1397 
         1398 
         1399 
         1400 
         1401 
         1402 Desruisseaux                Standards Track                    [Page 25]
         1403 
         1404 RFC 5545                       iCalendar                  September 2009
         1405 
         1406 
         1407        roleparam  = "ROLE" "="
         1408                    ("CHAIR"             ; Indicates chair of the
         1409                                         ; calendar entity
         1410                   / "REQ-PARTICIPANT"   ; Indicates a participant whose
         1411                                         ; participation is required
         1412                   / "OPT-PARTICIPANT"   ; Indicates a participant whose
         1413                                         ; participation is optional
         1414                   / "NON-PARTICIPANT"   ; Indicates a participant who
         1415                                         ; is copied for information
         1416                                         ; purposes only
         1417                   / x-name              ; Experimental role
         1418                   / iana-token)         ; Other IANA role
         1419        ; Default is REQ-PARTICIPANT
         1420 
         1421    Description:  This parameter can be specified on properties with a
         1422       CAL-ADDRESS value type.  The parameter specifies the participation
         1423       role for the calendar user specified by the property in the group
         1424       schedule calendar component.  If not specified on a property that
         1425       allows this parameter, the default value is REQ-PARTICIPANT.
         1426       Applications MUST treat x-name and iana-token values they don't
         1427       recognize the same way as they would the REQ-PARTICIPANT value.
         1428 
         1429    Example:
         1430 
         1431        ATTENDEE;ROLE=CHAIR:mailto:mrbig@example.com
         1432 
         1433 3.2.17.  RSVP Expectation
         1434 
         1435    Parameter Name:  RSVP
         1436 
         1437    Purpose:  To specify whether there is an expectation of a favor of a
         1438       reply from the calendar user specified by the property value.
         1439 
         1440    Format Definition:  This property parameter is defined by the
         1441       following notation:
         1442 
         1443        rsvpparam = "RSVP" "=" ("TRUE" / "FALSE")
         1444        ; Default is FALSE
         1445 
         1446    Description:  This parameter can be specified on properties with a
         1447       CAL-ADDRESS value type.  The parameter identifies the expectation
         1448       of a reply from the calendar user specified by the property value.
         1449       This parameter is used by the "Organizer" to request a
         1450       participation status reply from an "Attendee" of a group-scheduled
         1451       event or to-do.  If not specified on a property that allows this
         1452       parameter, the default value is FALSE.
         1453 
         1454 
         1455 
         1456 
         1457 
         1458 Desruisseaux                Standards Track                    [Page 26]
         1459 
         1460 RFC 5545                       iCalendar                  September 2009
         1461 
         1462 
         1463    Example:
         1464 
         1465        ATTENDEE;RSVP=TRUE:mailto:jsmith@example.com
         1466 
         1467 3.2.18.  Sent By
         1468 
         1469    Parameter Name:  SENT-BY
         1470 
         1471    Purpose:  To specify the calendar user that is acting on behalf of
         1472       the calendar user specified by the property.
         1473 
         1474    Format Definition:  This property parameter is defined by the
         1475       following notation:
         1476 
         1477        sentbyparam        = "SENT-BY" "=" DQUOTE cal-address DQUOTE
         1478 
         1479    Description:  This parameter can be specified on properties with a
         1480       CAL-ADDRESS value type.  The parameter specifies the calendar user
         1481       that is acting on behalf of the calendar user specified by the
         1482       property.  The parameter value MUST be a mailto URI as defined in
         1483       [RFC2368].  The individual calendar address parameter values MUST
         1484       each be specified in a quoted-string.
         1485 
         1486    Example:
         1487 
         1488        ORGANIZER;SENT-BY="mailto:sray@example.com":mailto:
         1489         jsmith@example.com
         1490 
         1491 3.2.19.  Time Zone Identifier
         1492 
         1493    Parameter Name:  TZID
         1494 
         1495    Purpose:  To specify the identifier for the time zone definition for
         1496       a time component in the property value.
         1497 
         1498    Format Definition:  This property parameter is defined by the
         1499       following notation:
         1500 
         1501        tzidparam  = "TZID" "=" [tzidprefix] paramtext
         1502 
         1503        tzidprefix = "/"
         1504 
         1505    Description:  This parameter MUST be specified on the "DTSTART",
         1506       "DTEND", "DUE", "EXDATE", and "RDATE" properties when either a
         1507       DATE-TIME or TIME value type is specified and when the value is
         1508       neither a UTC or a "floating" time.  Refer to the DATE-TIME or
         1509       TIME value type definition for a description of UTC and "floating
         1510       time" formats.  This property parameter specifies a text value
         1511 
         1512 
         1513 
         1514 Desruisseaux                Standards Track                    [Page 27]
         1515 
         1516 RFC 5545                       iCalendar                  September 2009
         1517 
         1518 
         1519       that uniquely identifies the "VTIMEZONE" calendar component to be
         1520       used when evaluating the time portion of the property.  The value
         1521       of the "TZID" property parameter will be equal to the value of the
         1522       "TZID" property for the matching time zone definition.  An
         1523       individual "VTIMEZONE" calendar component MUST be specified for
         1524       each unique "TZID" parameter value specified in the iCalendar
         1525       object.
         1526 
         1527       The parameter MUST be specified on properties with a DATE-TIME
         1528       value if the DATE-TIME is not either a UTC or a "floating" time.
         1529       Failure to include and follow VTIMEZONE definitions in iCalendar
         1530       objects may lead to inconsistent understanding of the local time
         1531       at any given location.
         1532 
         1533       The presence of the SOLIDUS character as a prefix, indicates that
         1534       this "TZID" represents a unique ID in a globally defined time zone
         1535       registry (when such registry is defined).
         1536 
         1537          Note: This document does not define a naming convention for
         1538          time zone identifiers.  Implementers may want to use the naming
         1539          conventions defined in existing time zone specifications such
         1540          as the public-domain TZ database [TZDB].  The specification of
         1541          globally unique time zone identifiers is not addressed by this
         1542          document and is left for future study.
         1543 
         1544       The following are examples of this property parameter:
         1545 
         1546        DTSTART;TZID=America/New_York:19980119T020000
         1547 
         1548        DTEND;TZID=America/New_York:19980119T030000
         1549 
         1550       The "TZID" property parameter MUST NOT be applied to DATE
         1551       properties and DATE-TIME or TIME properties whose time values are
         1552       specified in UTC.
         1553 
         1554       The use of local time in a DATE-TIME or TIME value without the
         1555       "TZID" property parameter is to be interpreted as floating time,
         1556       regardless of the existence of "VTIMEZONE" calendar components in
         1557       the iCalendar object.
         1558 
         1559       For more information, see the sections on the value types DATE-
         1560       TIME and TIME.
         1561 
         1562 
         1563 
         1564 
         1565 
         1566 
         1567 
         1568 
         1569 
         1570 Desruisseaux                Standards Track                    [Page 28]
         1571 
         1572 RFC 5545                       iCalendar                  September 2009
         1573 
         1574 
         1575 3.2.20.  Value Data Types
         1576 
         1577    Parameter Name:  VALUE
         1578 
         1579    Purpose:  To explicitly specify the value type format for a property
         1580       value.
         1581 
         1582    Format Definition:  This property parameter is defined by the
         1583       following notation:
         1584 
         1585        valuetypeparam = "VALUE" "=" valuetype
         1586 
         1587        valuetype  = ("BINARY"
         1588                   / "BOOLEAN"
         1589                   / "CAL-ADDRESS"
         1590                   / "DATE"
         1591                   / "DATE-TIME"
         1592                   / "DURATION"
         1593                   / "FLOAT"
         1594                   / "INTEGER"
         1595                   / "PERIOD"
         1596                   / "RECUR"
         1597                   / "TEXT"
         1598                   / "TIME"
         1599                   / "URI"
         1600                   / "UTC-OFFSET"
         1601                   / x-name
         1602                   ; Some experimental iCalendar value type.
         1603                   / iana-token)
         1604                   ; Some other IANA-registered iCalendar value type.
         1605 
         1606    Description:  This parameter specifies the value type and format of
         1607       the property value.  The property values MUST be of a single value
         1608       type.  For example, a "RDATE" property cannot have a combination
         1609       of DATE-TIME and TIME value types.
         1610 
         1611       If the property's value is the default value type, then this
         1612       parameter need not be specified.  However, if the property's
         1613       default value type is overridden by some other allowable value
         1614       type, then this parameter MUST be specified.
         1615 
         1616       Applications MUST preserve the value data for x-name and iana-
         1617       token values that they don't recognize without attempting to
         1618       interpret or parse the value data.
         1619 
         1620 
         1621 
         1622 
         1623 
         1624 
         1625 
         1626 Desruisseaux                Standards Track                    [Page 29]
         1627 
         1628 RFC 5545                       iCalendar                  September 2009
         1629 
         1630 
         1631 3.3.  Property Value Data Types
         1632 
         1633    The properties in an iCalendar object are strongly typed.  The
         1634    definition of each property restricts the value to be one of the
         1635    value data types, or simply value types, defined in this section.
         1636    The value type for a property will either be specified implicitly as
         1637    the default value type or will be explicitly specified with the
         1638    "VALUE" parameter.  If the value type of a property is one of the
         1639    alternate valid types, then it MUST be explicitly specified with the
         1640    "VALUE" parameter.
         1641 
         1642 3.3.1.  Binary
         1643 
         1644    Value Name:  BINARY
         1645 
         1646    Purpose:  This value type is used to identify properties that contain
         1647       a character encoding of inline binary data.  For example, an
         1648       inline attachment of a document might be included in an iCalendar
         1649       object.
         1650 
         1651    Format Definition:  This value type is defined by the following
         1652       notation:
         1653 
         1654        binary     = *(4b-char) [b-end]
         1655        ; A "BASE64" encoded character string, as defined by [RFC4648].
         1656 
         1657        b-end      = (2b-char "==") / (3b-char "=")
         1658 
         1659        b-char = ALPHA / DIGIT / "+" / "/"
         1660 
         1661    Description:  Property values with this value type MUST also include
         1662       the inline encoding parameter sequence of ";ENCODING=BASE64".
         1663       That is, all inline binary data MUST first be character encoded
         1664       using the "BASE64" encoding method defined in [RFC2045].  No
         1665       additional content value encoding (i.e., BACKSLASH character
         1666       encoding, see Section 3.3.11) is defined for this value type.
         1667 
         1668 
         1669 
         1670 
         1671 
         1672 
         1673 
         1674 
         1675 
         1676 
         1677 
         1678 
         1679 
         1680 
         1681 
         1682 Desruisseaux                Standards Track                    [Page 30]
         1683 
         1684 RFC 5545                       iCalendar                  September 2009
         1685 
         1686 
         1687    Example:  The following is an example of a "BASE64" encoded binary
         1688       value data:
         1689 
         1690      ATTACH;FMTTYPE=image/vnd.microsoft.icon;ENCODING=BASE64;VALUE
         1691       =BINARY:AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAA
         1692       AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgIAAAICAgADAwMAA////AAAA
         1693       AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
         1694       AAAAAAAAAAAAAAAAAAAAAAMwAAAAAAABNEMQAAAAAAAkQgAAAAAAJEREQgAA
         1695       ACECQ0QgEgAAQxQzM0E0AABERCRCREQAADRDJEJEQwAAAhA0QwEQAAAAAERE
         1696       AAAAAAAAREQAAAAAAAAkQgAAAAAAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAA
         1697       AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
         1698       AAAAAAAAAAAA
         1699 
         1700 3.3.2.  Boolean
         1701 
         1702    Value Name:  BOOLEAN
         1703 
         1704    Purpose:  This value type is used to identify properties that contain
         1705       either a "TRUE" or "FALSE" Boolean value.
         1706 
         1707    Format Definition:  This value type is defined by the following
         1708       notation:
         1709 
         1710        boolean    = "TRUE" / "FALSE"
         1711 
         1712    Description:  These values are case-insensitive text.  No additional
         1713       content value encoding (i.e., BACKSLASH character encoding, see
         1714       Section 3.3.11) is defined for this value type.
         1715 
         1716    Example:  The following is an example of a hypothetical property that
         1717       has a BOOLEAN value type:
         1718 
         1719        TRUE
         1720 
         1721 3.3.3.  Calendar User Address
         1722 
         1723    Value Name:  CAL-ADDRESS
         1724 
         1725    Purpose:  This value type is used to identify properties that contain
         1726       a calendar user address.
         1727 
         1728    Format Definition:  This value type is defined by the following
         1729       notation:
         1730 
         1731        cal-address        = uri
         1732 
         1733    Description:  The value is a URI as defined by [RFC3986] or any other
         1734       IANA-registered form for a URI.  When used to address an Internet
         1735 
         1736 
         1737 
         1738 Desruisseaux                Standards Track                    [Page 31]
         1739 
         1740 RFC 5545                       iCalendar                  September 2009
         1741 
         1742 
         1743       email transport address for a calendar user, the value MUST be a
         1744       mailto URI, as defined by [RFC2368].  No additional content value
         1745       encoding (i.e., BACKSLASH character encoding, see Section 3.3.11)
         1746       is defined for this value type.
         1747 
         1748    Example:
         1749 
         1750     mailto:jane_doe@example.com
         1751 
         1752 3.3.4.  Date
         1753 
         1754    Value Name:  DATE
         1755 
         1756    Purpose:  This value type is used to identify values that contain a
         1757       calendar date.
         1758 
         1759    Format Definition:  This value type is defined by the following
         1760       notation:
         1761 
         1762        date               = date-value
         1763 
         1764        date-value         = date-fullyear date-month date-mday
         1765        date-fullyear      = 4DIGIT
         1766        date-month         = 2DIGIT        ;01-12
         1767        date-mday          = 2DIGIT        ;01-28, 01-29, 01-30, 01-31
         1768                                           ;based on month/year
         1769 
         1770    Description:  If the property permits, multiple "date" values are
         1771       specified as a COMMA-separated list of values.  The format for the
         1772       value type is based on the [ISO.8601.2004] complete
         1773       representation, basic format for a calendar date.  The textual
         1774       format specifies a four-digit year, two-digit month, and two-digit
         1775       day of the month.  There are no separator characters between the
         1776       year, month, and day component text.
         1777 
         1778       No additional content value encoding (i.e., BACKSLASH character
         1779       encoding, see Section 3.3.11) is defined for this value type.
         1780 
         1781    Example:  The following represents July 14, 1997:
         1782 
         1783        19970714
         1784 
         1785 3.3.5.  Date-Time
         1786 
         1787    Value Name:  DATE-TIME
         1788 
         1789    Purpose:  This value type is used to identify values that specify a
         1790       precise calendar date and time of day.
         1791 
         1792 
         1793 
         1794 Desruisseaux                Standards Track                    [Page 32]
         1795 
         1796 RFC 5545                       iCalendar                  September 2009
         1797 
         1798 
         1799    Format Definition:  This value type is defined by the following
         1800       notation:
         1801 
         1802        date-time  = date "T" time ;As specified in the DATE and TIME
         1803                                   ;value definitions
         1804 
         1805    Description:  If the property permits, multiple "DATE-TIME" values
         1806       are specified as a COMMA-separated list of values.  No additional
         1807       content value encoding (i.e., BACKSLASH character encoding, see
         1808       Section 3.3.11) is defined for this value type.
         1809 
         1810       The "DATE-TIME" value type is used to identify values that contain
         1811       a precise calendar date and time of day.  The format is based on
         1812       the [ISO.8601.2004] complete representation, basic format for a
         1813       calendar date and time of day.  The text format is a concatenation
         1814       of the "date", followed by the LATIN CAPITAL LETTER T character,
         1815       the time designator, followed by the "time" format.
         1816 
         1817       The "DATE-TIME" value type expresses time values in three forms:
         1818 
         1819       The form of date and time with UTC offset MUST NOT be used.  For
         1820       example, the following is not valid for a DATE-TIME value:
         1821 
         1822        19980119T230000-0800       ;Invalid time format
         1823 
         1824       FORM #1: DATE WITH LOCAL TIME
         1825 
         1826       The date with local time form is simply a DATE-TIME value that
         1827       does not contain the UTC designator nor does it reference a time
         1828       zone.  For example, the following represents January 18, 1998, at
         1829       11 PM:
         1830 
         1831        19980118T230000
         1832 
         1833       DATE-TIME values of this type are said to be "floating" and are
         1834       not bound to any time zone in particular.  They are used to
         1835       represent the same hour, minute, and second value regardless of
         1836       which time zone is currently being observed.  For example, an
         1837       event can be defined that indicates that an individual will be
         1838       busy from 11:00 AM to 1:00 PM every day, no matter which time zone
         1839       the person is in.  In these cases, a local time can be specified.
         1840       The recipient of an iCalendar object with a property value
         1841       consisting of a local time, without any relative time zone
         1842       information, SHOULD interpret the value as being fixed to whatever
         1843       time zone the "ATTENDEE" is in at any given moment.  This means
         1844       that two "Attendees", in different time zones, receiving the same
         1845       event definition as a floating time, may be participating in the
         1846 
         1847 
         1848 
         1849 
         1850 Desruisseaux                Standards Track                    [Page 33]
         1851 
         1852 RFC 5545                       iCalendar                  September 2009
         1853 
         1854 
         1855       event at different actual times.  Floating time SHOULD only be
         1856       used where that is the reasonable behavior.
         1857 
         1858       In most cases, a fixed time is desired.  To properly communicate a
         1859       fixed time in a property value, either UTC time or local time with
         1860       time zone reference MUST be specified.
         1861 
         1862       The use of local time in a DATE-TIME value without the "TZID"
         1863       property parameter is to be interpreted as floating time,
         1864       regardless of the existence of "VTIMEZONE" calendar components in
         1865       the iCalendar object.
         1866 
         1867       FORM #2: DATE WITH UTC TIME
         1868 
         1869       The date with UTC time, or absolute time, is identified by a LATIN
         1870       CAPITAL LETTER Z suffix character, the UTC designator, appended to
         1871       the time value.  For example, the following represents January 19,
         1872       1998, at 0700 UTC:
         1873 
         1874        19980119T070000Z
         1875 
         1876       The "TZID" property parameter MUST NOT be applied to DATE-TIME
         1877       properties whose time values are specified in UTC.
         1878 
         1879       FORM #3: DATE WITH LOCAL TIME AND TIME ZONE REFERENCE
         1880 
         1881       The date and local time with reference to time zone information is
         1882       identified by the use the "TZID" property parameter to reference
         1883       the appropriate time zone definition.  "TZID" is discussed in
         1884       detail in Section 3.2.19.  For example, the following represents
         1885       2:00 A.M. in New York on January 19, 1998:
         1886 
         1887        TZID=America/New_York:19980119T020000
         1888 
         1889       If, based on the definition of the referenced time zone, the local
         1890       time described occurs more than once (when changing from daylight
         1891       to standard time), the DATE-TIME value refers to the first
         1892       occurrence of the referenced time.  Thus, TZID=America/
         1893       New_York:20071104T013000 indicates November 4, 2007 at 1:30 A.M.
         1894       EDT (UTC-04:00).  If the local time described does not occur (when
         1895       changing from standard to daylight time), the DATE-TIME value is
         1896       interpreted using the UTC offset before the gap in local times.
         1897       Thus, TZID=America/New_York:20070311T023000 indicates March 11,
         1898       2007 at 3:30 A.M. EDT (UTC-04:00), one hour after 1:30 A.M. EST
         1899       (UTC-05:00).
         1900 
         1901 
         1902 
         1903 
         1904 
         1905 
         1906 Desruisseaux                Standards Track                    [Page 34]
         1907 
         1908 RFC 5545                       iCalendar                  September 2009
         1909 
         1910 
         1911       A time value MUST only specify the second 60 when specifying a
         1912       positive leap second.  For example:
         1913 
         1914        19970630T235960Z
         1915 
         1916       Implementations that do not support leap seconds SHOULD interpret
         1917       the second 60 as equivalent to the second 59.
         1918 
         1919    Example:  The following represents July 14, 1997, at 1:30 PM in New
         1920       York City in each of the three time formats, using the "DTSTART"
         1921       property.
         1922 
         1923        DTSTART:19970714T133000                   ; Local time
         1924        DTSTART:19970714T173000Z                  ; UTC time
         1925        DTSTART;TZID=America/New_York:19970714T133000
         1926                                                  ; Local time and time
         1927                                                  ; zone reference
         1928 
         1929 3.3.6.  Duration
         1930 
         1931    Value Name:  DURATION
         1932 
         1933    Purpose:  This value type is used to identify properties that contain
         1934       a duration of time.
         1935 
         1936    Format Definition:  This value type is defined by the following
         1937       notation:
         1938 
         1939        dur-value  = (["+"] / "-") "P" (dur-date / dur-time / dur-week)
         1940 
         1941        dur-date   = dur-day [dur-time]
         1942        dur-time   = "T" (dur-hour / dur-minute / dur-second)
         1943        dur-week   = 1*DIGIT "W"
         1944        dur-hour   = 1*DIGIT "H" [dur-minute]
         1945        dur-minute = 1*DIGIT "M" [dur-second]
         1946        dur-second = 1*DIGIT "S"
         1947        dur-day    = 1*DIGIT "D"
         1948 
         1949    Description:  If the property permits, multiple "duration" values are
         1950       specified by a COMMA-separated list of values.  The format is
         1951       based on the [ISO.8601.2004] complete representation basic format
         1952       with designators for the duration of time.  The format can
         1953       represent nominal durations (weeks and days) and accurate
         1954       durations (hours, minutes, and seconds).  Note that unlike
         1955       [ISO.8601.2004], this value type doesn't support the "Y" and "M"
         1956       designators to specify durations in terms of years and months.
         1957 
         1958 
         1959 
         1960 
         1961 
         1962 Desruisseaux                Standards Track                    [Page 35]
         1963 
         1964 RFC 5545                       iCalendar                  September 2009
         1965 
         1966 
         1967       The duration of a week or a day depends on its position in the
         1968       calendar.  In the case of discontinuities in the time scale, such
         1969       as the change from standard time to daylight time and back, the
         1970       computation of the exact duration requires the subtraction or
         1971       addition of the change of duration of the discontinuity.  Leap
         1972       seconds MUST NOT be considered when computing an exact duration.
         1973       When computing an exact duration, the greatest order time
         1974       components MUST be added first, that is, the number of days MUST
         1975       be added first, followed by the number of hours, number of
         1976       minutes, and number of seconds.
         1977 
         1978       Negative durations are typically used to schedule an alarm to
         1979       trigger before an associated time (see Section 3.8.6.3).
         1980 
         1981       No additional content value encoding (i.e., BACKSLASH character
         1982       encoding, see Section 3.3.11) are defined for this value type.
         1983 
         1984    Example:  A duration of 15 days, 5 hours, and 20 seconds would be:
         1985 
         1986        P15DT5H0M20S
         1987 
         1988       A duration of 7 weeks would be:
         1989 
         1990        P7W
         1991 
         1992 3.3.7.  Float
         1993 
         1994    Value Name:  FLOAT
         1995 
         1996    Purpose:  This value type is used to identify properties that contain
         1997       a real-number value.
         1998 
         1999    Format Definition:  This value type is defined by the following
         2000       notation:
         2001 
         2002        float      = (["+"] / "-") 1*DIGIT ["." 1*DIGIT]
         2003 
         2004    Description:  If the property permits, multiple "float" values are
         2005       specified by a COMMA-separated list of values.
         2006 
         2007       No additional content value encoding (i.e., BACKSLASH character
         2008       encoding, see Section 3.3.11) is defined for this value type.
         2009 
         2010    Example:
         2011 
         2012        1000000.0000001
         2013        1.333
         2014        -3.14
         2015 
         2016 
         2017 
         2018 Desruisseaux                Standards Track                    [Page 36]
         2019 
         2020 RFC 5545                       iCalendar                  September 2009
         2021 
         2022 
         2023 3.3.8.  Integer
         2024 
         2025    Value Name:  INTEGER
         2026 
         2027    Purpose:  This value type is used to identify properties that contain
         2028       a signed integer value.
         2029 
         2030    Format Definition:  This value type is defined by the following
         2031       notation:
         2032 
         2033        integer    = (["+"] / "-") 1*DIGIT
         2034 
         2035    Description:  If the property permits, multiple "integer" values are
         2036       specified by a COMMA-separated list of values.  The valid range
         2037       for "integer" is -2147483648 to 2147483647.  If the sign is not
         2038       specified, then the value is assumed to be positive.
         2039 
         2040       No additional content value encoding (i.e., BACKSLASH character
         2041       encoding, see Section 3.3.11) is defined for this value type.
         2042 
         2043    Example:
         2044 
         2045        1234567890
         2046        -1234567890
         2047        +1234567890
         2048        432109876
         2049 
         2050 3.3.9.  Period of Time
         2051 
         2052    Value Name:  PERIOD
         2053 
         2054    Purpose:  This value type is used to identify values that contain a
         2055       precise period of time.
         2056 
         2057    Format Definition:  This value type is defined by the following
         2058       notation:
         2059 
         2060        period     = period-explicit / period-start
         2061 
         2062        period-explicit = date-time "/" date-time
         2063        ; [ISO.8601.2004] complete representation basic format for a
         2064        ; period of time consisting of a start and end.  The start MUST
         2065        ; be before the end.
         2066 
         2067        period-start = date-time "/" dur-value
         2068        ; [ISO.8601.2004] complete representation basic format for a
         2069        ; period of time consisting of a start and positive duration
         2070        ; of time.
         2071 
         2072 
         2073 
         2074 Desruisseaux                Standards Track                    [Page 37]
         2075 
         2076 RFC 5545                       iCalendar                  September 2009
         2077 
         2078 
         2079    Description:  If the property permits, multiple "period" values are
         2080       specified by a COMMA-separated list of values.  There are two
         2081       forms of a period of time.  First, a period of time is identified
         2082       by its start and its end.  This format is based on the
         2083       [ISO.8601.2004] complete representation, basic format for "DATE-
         2084       TIME" start of the period, followed by a SOLIDUS character
         2085       followed by the "DATE-TIME" of the end of the period.  The start
         2086       of the period MUST be before the end of the period.  Second, a
         2087       period of time can also be defined by a start and a positive
         2088       duration of time.  The format is based on the [ISO.8601.2004]
         2089       complete representation, basic format for the "DATE-TIME" start of
         2090       the period, followed by a SOLIDUS character, followed by the
         2091       [ISO.8601.2004] basic format for "DURATION" of the period.
         2092 
         2093    Example:  The period starting at 18:00:00 UTC, on January 1, 1997 and
         2094       ending at 07:00:00 UTC on January 2, 1997 would be:
         2095 
         2096        19970101T180000Z/19970102T070000Z
         2097 
         2098       The period start at 18:00:00 on January 1, 1997 and lasting 5
         2099       hours and 30 minutes would be:
         2100 
         2101        19970101T180000Z/PT5H30M
         2102 
         2103       No additional content value encoding (i.e., BACKSLASH character
         2104       encoding, see Section 3.3.11) is defined for this value type.
         2105 
         2106 3.3.10.  Recurrence Rule
         2107 
         2108    Value Name:  RECUR
         2109 
         2110    Purpose:  This value type is used to identify properties that contain
         2111       a recurrence rule specification.
         2112 
         2113    Format Definition:  This value type is defined by the following
         2114       notation:
         2115 
         2116        recur           = recur-rule-part *( ";" recur-rule-part )
         2117                        ;
         2118                        ; The rule parts are not ordered in any
         2119                        ; particular sequence.
         2120                        ;
         2121                        ; The FREQ rule part is REQUIRED,
         2122                        ; but MUST NOT occur more than once.
         2123                        ;
         2124                        ; The UNTIL or COUNT rule parts are OPTIONAL,
         2125                        ; but they MUST NOT occur in the same 'recur'.
         2126                        ;
         2127 
         2128 
         2129 
         2130 Desruisseaux                Standards Track                    [Page 38]
         2131 
         2132 RFC 5545                       iCalendar                  September 2009
         2133 
         2134 
         2135                        ; The other rule parts are OPTIONAL,
         2136                        ; but MUST NOT occur more than once.
         2137 
         2138        recur-rule-part = ( "FREQ" "=" freq )
         2139                        / ( "UNTIL" "=" enddate )
         2140                        / ( "COUNT" "=" 1*DIGIT )
         2141                        / ( "INTERVAL" "=" 1*DIGIT )
         2142                        / ( "BYSECOND" "=" byseclist )
         2143                        / ( "BYMINUTE" "=" byminlist )
         2144                        / ( "BYHOUR" "=" byhrlist )
         2145                        / ( "BYDAY" "=" bywdaylist )
         2146                        / ( "BYMONTHDAY" "=" bymodaylist )
         2147                        / ( "BYYEARDAY" "=" byyrdaylist )
         2148                        / ( "BYWEEKNO" "=" bywknolist )
         2149                        / ( "BYMONTH" "=" bymolist )
         2150                        / ( "BYSETPOS" "=" bysplist )
         2151                        / ( "WKST" "=" weekday )
         2152 
         2153        freq        = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY"
         2154                    / "WEEKLY" / "MONTHLY" / "YEARLY"
         2155 
         2156        enddate     = date / date-time
         2157 
         2158        byseclist   = ( seconds *("," seconds) )
         2159 
         2160        seconds     = 1*2DIGIT       ;0 to 60
         2161 
         2162        byminlist   = ( minutes *("," minutes) )
         2163 
         2164        minutes     = 1*2DIGIT       ;0 to 59
         2165 
         2166        byhrlist    = ( hour *("," hour) )
         2167 
         2168        hour        = 1*2DIGIT       ;0 to 23
         2169 
         2170        bywdaylist  = ( weekdaynum *("," weekdaynum) )
         2171 
         2172        weekdaynum  = [[plus / minus] ordwk] weekday
         2173 
         2174        plus        = "+"
         2175 
         2176        minus       = "-"
         2177 
         2178        ordwk       = 1*2DIGIT       ;1 to 53
         2179 
         2180        weekday     = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA"
         2181        ;Corresponding to SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY,
         2182        ;FRIDAY, and SATURDAY days of the week.
         2183 
         2184 
         2185 
         2186 Desruisseaux                Standards Track                    [Page 39]
         2187 
         2188 RFC 5545                       iCalendar                  September 2009
         2189 
         2190 
         2191        bymodaylist = ( monthdaynum *("," monthdaynum) )
         2192 
         2193        monthdaynum = [plus / minus] ordmoday
         2194 
         2195        ordmoday    = 1*2DIGIT       ;1 to 31
         2196 
         2197        byyrdaylist = ( yeardaynum *("," yeardaynum) )
         2198 
         2199        yeardaynum  = [plus / minus] ordyrday
         2200 
         2201        ordyrday    = 1*3DIGIT      ;1 to 366
         2202 
         2203        bywknolist  = ( weeknum *("," weeknum) )
         2204 
         2205        weeknum     = [plus / minus] ordwk
         2206 
         2207        bymolist    = ( monthnum *("," monthnum) )
         2208 
         2209        monthnum    = 1*2DIGIT       ;1 to 12
         2210 
         2211        bysplist    = ( setposday *("," setposday) )
         2212 
         2213        setposday   = yeardaynum
         2214 
         2215    Description:  This value type is a structured value consisting of a
         2216       list of one or more recurrence grammar parts.  Each rule part is
         2217       defined by a NAME=VALUE pair.  The rule parts are separated from
         2218       each other by the SEMICOLON character.  The rule parts are not
         2219       ordered in any particular sequence.  Individual rule parts MUST
         2220       only be specified once.  Compliant applications MUST accept rule
         2221       parts ordered in any sequence, but to ensure backward
         2222       compatibility with applications that pre-date this revision of
         2223       iCalendar the FREQ rule part MUST be the first rule part specified
         2224       in a RECUR value.
         2225 
         2226       The FREQ rule part identifies the type of recurrence rule.  This
         2227       rule part MUST be specified in the recurrence rule.  Valid values
         2228       include SECONDLY, to specify repeating events based on an interval
         2229       of a second or more; MINUTELY, to specify repeating events based
         2230       on an interval of a minute or more; HOURLY, to specify repeating
         2231       events based on an interval of an hour or more; DAILY, to specify
         2232       repeating events based on an interval of a day or more; WEEKLY, to
         2233       specify repeating events based on an interval of a week or more;
         2234       MONTHLY, to specify repeating events based on an interval of a
         2235       month or more; and YEARLY, to specify repeating events based on an
         2236       interval of a year or more.
         2237 
         2238 
         2239 
         2240 
         2241 
         2242 Desruisseaux                Standards Track                    [Page 40]
         2243 
         2244 RFC 5545                       iCalendar                  September 2009
         2245 
         2246 
         2247       The INTERVAL rule part contains a positive integer representing at
         2248       which intervals the recurrence rule repeats.  The default value is
         2249       "1", meaning every second for a SECONDLY rule, every minute for a
         2250       MINUTELY rule, every hour for an HOURLY rule, every day for a
         2251       DAILY rule, every week for a WEEKLY rule, every month for a
         2252       MONTHLY rule, and every year for a YEARLY rule.  For example,
         2253       within a DAILY rule, a value of "8" means every eight days.
         2254 
         2255       The UNTIL rule part defines a DATE or DATE-TIME value that bounds
         2256       the recurrence rule in an inclusive manner.  If the value
         2257       specified by UNTIL is synchronized with the specified recurrence,
         2258       this DATE or DATE-TIME becomes the last instance of the
         2259       recurrence.  The value of the UNTIL rule part MUST have the same
         2260       value type as the "DTSTART" property.  Furthermore, if the
         2261       "DTSTART" property is specified as a date with local time, then
         2262       the UNTIL rule part MUST also be specified as a date with local
         2263       time.  If the "DTSTART" property is specified as a date with UTC
         2264       time or a date with local time and time zone reference, then the
         2265       UNTIL rule part MUST be specified as a date with UTC time.  In the
         2266       case of the "STANDARD" and "DAYLIGHT" sub-components the UNTIL
         2267       rule part MUST always be specified as a date with UTC time.  If
         2268       specified as a DATE-TIME value, then it MUST be specified in a UTC
         2269       time format.  If not present, and the COUNT rule part is also not
         2270       present, the "RRULE" is considered to repeat forever.
         2271 
         2272       The COUNT rule part defines the number of occurrences at which to
         2273       range-bound the recurrence.  The "DTSTART" property value always
         2274       counts as the first occurrence.
         2275 
         2276       The BYSECOND rule part specifies a COMMA-separated list of seconds
         2277       within a minute.  Valid values are 0 to 60.  The BYMINUTE rule
         2278       part specifies a COMMA-separated list of minutes within an hour.
         2279       Valid values are 0 to 59.  The BYHOUR rule part specifies a COMMA-
         2280       separated list of hours of the day.  Valid values are 0 to 23.
         2281       The BYSECOND, BYMINUTE and BYHOUR rule parts MUST NOT be specified
         2282       when the associated "DTSTART" property has a DATE value type.
         2283       These rule parts MUST be ignored in RECUR value that violate the
         2284       above requirement (e.g., generated by applications that pre-date
         2285       this revision of iCalendar).
         2286 
         2287       The BYDAY rule part specifies a COMMA-separated list of days of
         2288       the week; SU indicates Sunday; MO indicates Monday; TU indicates
         2289       Tuesday; WE indicates Wednesday; TH indicates Thursday; FR
         2290       indicates Friday; and SA indicates Saturday.
         2291 
         2292       Each BYDAY value can also be preceded by a positive (+n) or
         2293       negative (-n) integer.  If present, this indicates the nth
         2294       occurrence of a specific day within the MONTHLY or YEARLY "RRULE".
         2295 
         2296 
         2297 
         2298 Desruisseaux                Standards Track                    [Page 41]
         2299 
         2300 RFC 5545                       iCalendar                  September 2009
         2301 
         2302 
         2303       For example, within a MONTHLY rule, +1MO (or simply 1MO)
         2304       represents the first Monday within the month, whereas -1MO
         2305       represents the last Monday of the month.  The numeric value in a
         2306       BYDAY rule part with the FREQ rule part set to YEARLY corresponds
         2307       to an offset within the month when the BYMONTH rule part is
         2308       present, and corresponds to an offset within the year when the
         2309       BYWEEKNO or BYMONTH rule parts are present.  If an integer
         2310       modifier is not present, it means all days of this type within the
         2311       specified frequency.  For example, within a MONTHLY rule, MO
         2312       represents all Mondays within the month.  The BYDAY rule part MUST
         2313       NOT be specified with a numeric value when the FREQ rule part is
         2314       not set to MONTHLY or YEARLY.  Furthermore, the BYDAY rule part
         2315       MUST NOT be specified with a numeric value with the FREQ rule part
         2316       set to YEARLY when the BYWEEKNO rule part is specified.
         2317 
         2318       The BYMONTHDAY rule part specifies a COMMA-separated list of days
         2319       of the month.  Valid values are 1 to 31 or -31 to -1.  For
         2320       example, -10 represents the tenth to the last day of the month.
         2321       The BYMONTHDAY rule part MUST NOT be specified when the FREQ rule
         2322       part is set to WEEKLY.
         2323 
         2324       The BYYEARDAY rule part specifies a COMMA-separated list of days
         2325       of the year.  Valid values are 1 to 366 or -366 to -1.  For
         2326       example, -1 represents the last day of the year (December 31st)
         2327       and -306 represents the 306th to the last day of the year (March
         2328       1st).  The BYYEARDAY rule part MUST NOT be specified when the FREQ
         2329       rule part is set to DAILY, WEEKLY, or MONTHLY.
         2330 
         2331       The BYWEEKNO rule part specifies a COMMA-separated list of
         2332       ordinals specifying weeks of the year.  Valid values are 1 to 53
         2333       or -53 to -1.  This corresponds to weeks according to week
         2334       numbering as defined in [ISO.8601.2004].  A week is defined as a
         2335       seven day period, starting on the day of the week defined to be
         2336       the week start (see WKST).  Week number one of the calendar year
         2337       is the first week that contains at least four (4) days in that
         2338       calendar year.  This rule part MUST NOT be used when the FREQ rule
         2339       part is set to anything other than YEARLY.  For example, 3
         2340       represents the third week of the year.
         2341 
         2342          Note: Assuming a Monday week start, week 53 can only occur when
         2343          Thursday is January 1 or if it is a leap year and Wednesday is
         2344          January 1.
         2345 
         2346       The BYMONTH rule part specifies a COMMA-separated list of months
         2347       of the year.  Valid values are 1 to 12.
         2348 
         2349       The WKST rule part specifies the day on which the workweek starts.
         2350       Valid values are MO, TU, WE, TH, FR, SA, and SU.  This is
         2351 
         2352 
         2353 
         2354 Desruisseaux                Standards Track                    [Page 42]
         2355 
         2356 RFC 5545                       iCalendar                  September 2009
         2357 
         2358 
         2359       significant when a WEEKLY "RRULE" has an interval greater than 1,
         2360       and a BYDAY rule part is specified.  This is also significant when
         2361       in a YEARLY "RRULE" when a BYWEEKNO rule part is specified.  The
         2362       default value is MO.
         2363 
         2364       The BYSETPOS rule part specifies a COMMA-separated list of values
         2365       that corresponds to the nth occurrence within the set of
         2366       recurrence instances specified by the rule.  BYSETPOS operates on
         2367       a set of recurrence instances in one interval of the recurrence
         2368       rule.  For example, in a WEEKLY rule, the interval would be one
         2369       week A set of recurrence instances starts at the beginning of the
         2370       interval defined by the FREQ rule part.  Valid values are 1 to 366
         2371       or -366 to -1.  It MUST only be used in conjunction with another
         2372       BYxxx rule part.  For example "the last work day of the month"
         2373       could be represented as:
         2374 
         2375        FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
         2376 
         2377       Each BYSETPOS value can include a positive (+n) or negative (-n)
         2378       integer.  If present, this indicates the nth occurrence of the
         2379       specific occurrence within the set of occurrences specified by the
         2380       rule.
         2381 
         2382       Recurrence rules may generate recurrence instances with an invalid
         2383       date (e.g., February 30) or nonexistent local time (e.g., 1:30 AM
         2384       on a day where the local time is moved forward by an hour at 1:00
         2385       AM).  Such recurrence instances MUST be ignored and MUST NOT be
         2386       counted as part of the recurrence set.
         2387 
         2388       Information, not contained in the rule, necessary to determine the
         2389       various recurrence instance start time and dates are derived from
         2390       the Start Time ("DTSTART") component attribute.  For example,
         2391       "FREQ=YEARLY;BYMONTH=1" doesn't specify a specific day within the
         2392       month or a time.  This information would be the same as what is
         2393       specified for "DTSTART".
         2394 
         2395       BYxxx rule parts modify the recurrence in some manner.  BYxxx rule
         2396       parts for a period of time that is the same or greater than the
         2397       frequency generally reduce or limit the number of occurrences of
         2398       the recurrence generated.  For example, "FREQ=DAILY;BYMONTH=1"
         2399       reduces the number of recurrence instances from all days (if
         2400       BYMONTH rule part is not present) to all days in January.  BYxxx
         2401       rule parts for a period of time less than the frequency generally
         2402       increase or expand the number of occurrences of the recurrence.
         2403       For example, "FREQ=YEARLY;BYMONTH=1,2" increases the number of
         2404       days within the yearly recurrence set from 1 (if BYMONTH rule part
         2405       is not present) to 2.
         2406 
         2407 
         2408 
         2409 
         2410 Desruisseaux                Standards Track                    [Page 43]
         2411 
         2412 RFC 5545                       iCalendar                  September 2009
         2413 
         2414 
         2415       If multiple BYxxx rule parts are specified, then after evaluating
         2416       the specified FREQ and INTERVAL rule parts, the BYxxx rule parts
         2417       are applied to the current set of evaluated occurrences in the
         2418       following order: BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY,
         2419       BYHOUR, BYMINUTE, BYSECOND and BYSETPOS; then COUNT and UNTIL are
         2420       evaluated.
         2421 
         2422       The table below summarizes the dependency of BYxxx rule part
         2423       expand or limit behavior on the FREQ rule part value.
         2424 
         2425       The term "N/A" means that the corresponding BYxxx rule part MUST
         2426       NOT be used with the corresponding FREQ value.
         2427 
         2428       BYDAY has some special behavior depending on the FREQ value and
         2429       this is described in separate notes below the table.
         2430 
         2431    +----------+--------+--------+-------+-------+------+-------+------+
         2432    |          |SECONDLY|MINUTELY|HOURLY |DAILY  |WEEKLY|MONTHLY|YEARLY|
         2433    +----------+--------+--------+-------+-------+------+-------+------+
         2434    |BYMONTH   |Limit   |Limit   |Limit  |Limit  |Limit |Limit  |Expand|
         2435    +----------+--------+--------+-------+-------+------+-------+------+
         2436    |BYWEEKNO  |N/A     |N/A     |N/A    |N/A    |N/A   |N/A    |Expand|
         2437    +----------+--------+--------+-------+-------+------+-------+------+
         2438    |BYYEARDAY |Limit   |Limit   |Limit  |N/A    |N/A   |N/A    |Expand|
         2439    +----------+--------+--------+-------+-------+------+-------+------+
         2440    |BYMONTHDAY|Limit   |Limit   |Limit  |Limit  |N/A   |Expand |Expand|
         2441    +----------+--------+--------+-------+-------+------+-------+------+
         2442    |BYDAY     |Limit   |Limit   |Limit  |Limit  |Expand|Note 1 |Note 2|
         2443    +----------+--------+--------+-------+-------+------+-------+------+
         2444    |BYHOUR    |Limit   |Limit   |Limit  |Expand |Expand|Expand |Expand|
         2445    +----------+--------+--------+-------+-------+------+-------+------+
         2446    |BYMINUTE  |Limit   |Limit   |Expand |Expand |Expand|Expand |Expand|
         2447    +----------+--------+--------+-------+-------+------+-------+------+
         2448    |BYSECOND  |Limit   |Expand  |Expand |Expand |Expand|Expand |Expand|
         2449    +----------+--------+--------+-------+-------+------+-------+------+
         2450    |BYSETPOS  |Limit   |Limit   |Limit  |Limit  |Limit |Limit  |Limit |
         2451    +----------+--------+--------+-------+-------+------+-------+------+
         2452 
         2453       Note 1:  Limit if BYMONTHDAY is present; otherwise, special expand
         2454                for MONTHLY.
         2455 
         2456       Note 2:  Limit if BYYEARDAY or BYMONTHDAY is present; otherwise,
         2457                special expand for WEEKLY if BYWEEKNO present; otherwise,
         2458                special expand for MONTHLY if BYMONTH present; otherwise,
         2459                special expand for YEARLY.
         2460 
         2461 
         2462 
         2463 
         2464 
         2465 
         2466 Desruisseaux                Standards Track                    [Page 44]
         2467 
         2468 RFC 5545                       iCalendar                  September 2009
         2469 
         2470 
         2471       Here is an example of evaluating multiple BYxxx rule parts.
         2472 
         2473        DTSTART;TZID=America/New_York:19970105T083000
         2474        RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;
         2475         BYMINUTE=30
         2476 
         2477       First, the "INTERVAL=2" would be applied to "FREQ=YEARLY" to
         2478       arrive at "every other year".  Then, "BYMONTH=1" would be applied
         2479       to arrive at "every January, every other year".  Then, "BYDAY=SU"
         2480       would be applied to arrive at "every Sunday in January, every
         2481       other year".  Then, "BYHOUR=8,9" would be applied to arrive at
         2482       "every Sunday in January at 8 AM and 9 AM, every other year".
         2483       Then, "BYMINUTE=30" would be applied to arrive at "every Sunday in
         2484       January at 8:30 AM and 9:30 AM, every other year".  Then, lacking
         2485       information from "RRULE", the second is derived from "DTSTART", to
         2486       end up in "every Sunday in January at 8:30:00 AM and 9:30:00 AM,
         2487       every other year".  Similarly, if the BYMINUTE, BYHOUR, BYDAY,
         2488       BYMONTHDAY, or BYMONTH rule part were missing, the appropriate
         2489       minute, hour, day, or month would have been retrieved from the
         2490       "DTSTART" property.
         2491 
         2492       If the computed local start time of a recurrence instance does not
         2493       exist, or occurs more than once, for the specified time zone, the
         2494       time of the recurrence instance is interpreted in the same manner
         2495       as an explicit DATE-TIME value describing that date and time, as
         2496       specified in Section 3.3.5.
         2497 
         2498       No additional content value encoding (i.e., BACKSLASH character
         2499       encoding, see Section 3.3.11) is defined for this value type.
         2500 
         2501    Example:  The following is a rule that specifies 10 occurrences that
         2502       occur every other day:
         2503 
         2504        FREQ=DAILY;COUNT=10;INTERVAL=2
         2505 
         2506       There are other examples specified in Section 3.8.5.3.
         2507 
         2508 3.3.11.  Text
         2509 
         2510    Value Name:  TEXT
         2511 
         2512    Purpose:  This value type is used to identify values that contain
         2513       human-readable text.
         2514 
         2515    Format Definition:  This value type is defined by the following
         2516       notation:
         2517 
         2518 
         2519 
         2520 
         2521 
         2522 Desruisseaux                Standards Track                    [Page 45]
         2523 
         2524 RFC 5545                       iCalendar                  September 2009
         2525 
         2526 
         2527        text       = *(TSAFE-CHAR / ":" / DQUOTE / ESCAPED-CHAR)
         2528           ; Folded according to description above
         2529 
         2530        ESCAPED-CHAR = ("\\" / "\;" / "\," / "\N" / "\n")
         2531           ; \\ encodes \, \N or \n encodes newline
         2532           ; \; encodes ;, \, encodes ,
         2533 
         2534        TSAFE-CHAR = WSP / %x21 / %x23-2B / %x2D-39 / %x3C-5B /
         2535                     %x5D-7E / NON-US-ASCII
         2536           ; Any character except CONTROLs not needed by the current
         2537           ; character set, DQUOTE, ";", ":", "\", ","
         2538 
         2539    Description:  If the property permits, multiple TEXT values are
         2540       specified by a COMMA-separated list of values.
         2541 
         2542       The language in which the text is represented can be controlled by
         2543       the "LANGUAGE" property parameter.
         2544 
         2545       An intentional formatted text line break MUST only be included in
         2546       a "TEXT" property value by representing the line break with the
         2547       character sequence of BACKSLASH, followed by a LATIN SMALL LETTER
         2548       N or a LATIN CAPITAL LETTER N, that is "\n" or "\N".
         2549 
         2550       The "TEXT" property values may also contain special characters
         2551       that are used to signify delimiters, such as a COMMA character for
         2552       lists of values or a SEMICOLON character for structured values.
         2553       In order to support the inclusion of these special characters in
         2554       "TEXT" property values, they MUST be escaped with a BACKSLASH
         2555       character.  A BACKSLASH character in a "TEXT" property value MUST
         2556       be escaped with another BACKSLASH character.  A COMMA character in
         2557       a "TEXT" property value MUST be escaped with a BACKSLASH
         2558       character.  A SEMICOLON character in a "TEXT" property value MUST
         2559       be escaped with a BACKSLASH character.  However, a COLON character
         2560       in a "TEXT" property value SHALL NOT be escaped with a BACKSLASH
         2561       character.
         2562 
         2563    Example:  A multiple line value of:
         2564 
         2565        Project XYZ Final Review
         2566        Conference Room - 3B
         2567        Come Prepared.
         2568 
         2569       would be represented as:
         2570 
         2571        Project XYZ Final Review\nConference Room - 3B\nCome Prepared.
         2572 
         2573 
         2574 
         2575 
         2576 
         2577 
         2578 Desruisseaux                Standards Track                    [Page 46]
         2579 
         2580 RFC 5545                       iCalendar                  September 2009
         2581 
         2582 
         2583 3.3.12.  Time
         2584 
         2585    Value Name:  TIME
         2586 
         2587    Purpose:  This value type is used to identify values that contain a
         2588       time of day.
         2589 
         2590    Format Definition:  This value type is defined by the following
         2591       notation:
         2592 
         2593        time         = time-hour time-minute time-second [time-utc]
         2594 
         2595        time-hour    = 2DIGIT        ;00-23
         2596        time-minute  = 2DIGIT        ;00-59
         2597        time-second  = 2DIGIT        ;00-60
         2598        ;The "60" value is used to account for positive "leap" seconds.
         2599 
         2600        time-utc     = "Z"
         2601 
         2602    Description:  If the property permits, multiple "time" values are
         2603       specified by a COMMA-separated list of values.  No additional
         2604       content value encoding (i.e., BACKSLASH character encoding, see
         2605       Section 3.3.11) is defined for this value type.
         2606 
         2607       The "TIME" value type is used to identify values that contain a
         2608       time of day.  The format is based on the [ISO.8601.2004] complete
         2609       representation, basic format for a time of day.  The text format
         2610       consists of a two-digit, 24-hour of the day (i.e., values 00-23),
         2611       two-digit minute in the hour (i.e., values 00-59), and two-digit
         2612       seconds in the minute (i.e., values 00-60).  The seconds value of
         2613       60 MUST only be used to account for positive "leap" seconds.
         2614       Fractions of a second are not supported by this format.
         2615 
         2616       In parallel to the "DATE-TIME" definition above, the "TIME" value
         2617       type expresses time values in three forms:
         2618 
         2619       The form of time with UTC offset MUST NOT be used.  For example,
         2620       the following is not valid for a time value:
         2621 
         2622        230000-0800        ;Invalid time format
         2623 
         2624       FORM #1 LOCAL TIME
         2625 
         2626       The local time form is simply a time value that does not contain
         2627       the UTC designator nor does it reference a time zone.  For
         2628       example, 11:00 PM:
         2629 
         2630        230000
         2631 
         2632 
         2633 
         2634 Desruisseaux                Standards Track                    [Page 47]
         2635 
         2636 RFC 5545                       iCalendar                  September 2009
         2637 
         2638 
         2639       Time values of this type are said to be "floating" and are not
         2640       bound to any time zone in particular.  They are used to represent
         2641       the same hour, minute, and second value regardless of which time
         2642       zone is currently being observed.  For example, an event can be
         2643       defined that indicates that an individual will be busy from 11:00
         2644       AM to 1:00 PM every day, no matter which time zone the person is
         2645       in.  In these cases, a local time can be specified.  The recipient
         2646       of an iCalendar object with a property value consisting of a local
         2647       time, without any relative time zone information, SHOULD interpret
         2648       the value as being fixed to whatever time zone the "ATTENDEE" is
         2649       in at any given moment.  This means that two "Attendees", may
         2650       participate in the same event at different UTC times; floating
         2651       time SHOULD only be used where that is reasonable behavior.
         2652 
         2653       In most cases, a fixed time is desired.  To properly communicate a
         2654       fixed time in a property value, either UTC time or local time with
         2655       time zone reference MUST be specified.
         2656 
         2657       The use of local time in a TIME value without the "TZID" property
         2658       parameter is to be interpreted as floating time, regardless of the
         2659       existence of "VTIMEZONE" calendar components in the iCalendar
         2660       object.
         2661 
         2662       FORM #2: UTC TIME
         2663 
         2664       UTC time, or absolute time, is identified by a LATIN CAPITAL
         2665       LETTER Z suffix character, the UTC designator, appended to the
         2666       time value.  For example, the following represents 07:00 AM UTC:
         2667 
         2668        070000Z
         2669 
         2670       The "TZID" property parameter MUST NOT be applied to TIME
         2671       properties whose time values are specified in UTC.
         2672 
         2673       FORM #3: LOCAL TIME AND TIME ZONE REFERENCE
         2674 
         2675       The local time with reference to time zone information form is
         2676       identified by the use the "TZID" property parameter to reference
         2677       the appropriate time zone definition.  "TZID" is discussed in
         2678       detail in Section 3.2.19.
         2679 
         2680    Example:  The following represents 8:30 AM in New York in winter,
         2681       five hours behind UTC, in each of the three formats:
         2682 
         2683        083000
         2684        133000Z
         2685        TZID=America/New_York:083000
         2686 
         2687 
         2688 
         2689 
         2690 Desruisseaux                Standards Track                    [Page 48]
         2691 
         2692 RFC 5545                       iCalendar                  September 2009
         2693 
         2694 
         2695 3.3.13.  URI
         2696 
         2697    Value Name:  URI
         2698 
         2699    Purpose:  This value type is used to identify values that contain a
         2700       uniform resource identifier (URI) type of reference to the
         2701       property value.
         2702 
         2703    Format Definition:  This value type is defined by the following
         2704       notation:
         2705 
         2706        uri = <As defined in Section 3 of [RFC3986]>
         2707 
         2708    Description:  This value type might be used to reference binary
         2709       information, for values that are large, or otherwise undesirable
         2710       to include directly in the iCalendar object.
         2711 
         2712       Property values with this value type MUST follow the generic URI
         2713       syntax defined in [RFC3986].
         2714 
         2715       When a property parameter value is a URI value type, the URI MUST
         2716       be specified as a quoted-string value.
         2717 
         2718       No additional content value encoding (i.e., BACKSLASH character
         2719       encoding, see Section 3.3.11) is defined for this value type.
         2720 
         2721    Example:  The following is a URI for a network file:
         2722 
         2723        http://example.com/my-report.txt
         2724 
         2725 3.3.14.  UTC Offset
         2726 
         2727    Value Name:  UTC-OFFSET
         2728 
         2729    Purpose:  This value type is used to identify properties that contain
         2730       an offset from UTC to local time.
         2731 
         2732    Format Definition:  This value type is defined by the following
         2733       notation:
         2734 
         2735        utc-offset = time-numzone
         2736 
         2737        time-numzone = ("+" / "-") time-hour time-minute [time-second]
         2738 
         2739    Description:  The PLUS SIGN character MUST be specified for positive
         2740       UTC offsets (i.e., ahead of UTC).  The HYPHEN-MINUS character MUST
         2741       be specified for negative UTC offsets (i.e., behind of UTC).  The
         2742 
         2743 
         2744 
         2745 
         2746 Desruisseaux                Standards Track                    [Page 49]
         2747 
         2748 RFC 5545                       iCalendar                  September 2009
         2749 
         2750 
         2751       value of "-0000" and "-000000" are not allowed.  The time-second,
         2752       if present, MUST NOT be 60; if absent, it defaults to zero.
         2753 
         2754       No additional content value encoding (i.e., BACKSLASH character
         2755       encoding, see Section 3.3.11) is defined for this value type.
         2756 
         2757    Example:  The following UTC offsets are given for standard time for
         2758       New York (five hours behind UTC) and Geneva (one hour ahead of
         2759       UTC):
         2760 
         2761        -0500
         2762 
         2763        +0100
         2764 
         2765 3.4.  iCalendar Object
         2766 
         2767    The Calendaring and Scheduling Core Object is a collection of
         2768    calendaring and scheduling information.  Typically, this information
         2769    will consist of an iCalendar stream with a single iCalendar object.
         2770    However, multiple iCalendar objects can be sequentially grouped
         2771    together in an iCalendar stream.  The first line and last line of the
         2772    iCalendar object MUST contain a pair of iCalendar object delimiter
         2773    strings.  The syntax for an iCalendar stream is as follows:
         2774 
         2775        icalstream = 1*icalobject
         2776 
         2777        icalobject = "BEGIN" ":" "VCALENDAR" CRLF
         2778                     icalbody
         2779                     "END" ":" "VCALENDAR" CRLF
         2780 
         2781    The following is a simple example of an iCalendar object:
         2782 
         2783        BEGIN:VCALENDAR
         2784        VERSION:2.0
         2785        PRODID:-//hacksw/handcal//NONSGML v1.0//EN
         2786        BEGIN:VEVENT
         2787        UID:19970610T172345Z-AF23B2@example.com
         2788        DTSTAMP:19970610T172345Z
         2789        DTSTART:19970714T170000Z
         2790        DTEND:19970715T040000Z
         2791        SUMMARY:Bastille Day Party
         2792        END:VEVENT
         2793        END:VCALENDAR
         2794 
         2795 
         2796 
         2797 
         2798 
         2799 
         2800 
         2801 
         2802 Desruisseaux                Standards Track                    [Page 50]
         2803 
         2804 RFC 5545                       iCalendar                  September 2009
         2805 
         2806 
         2807 3.5.  Property
         2808 
         2809    A property is the definition of an individual attribute describing a
         2810    calendar object or a calendar component.  A property takes the form
         2811    defined by the "contentline" notation defined in Section 3.1.
         2812 
         2813    The following is an example of a property:
         2814 
         2815        DTSTART:19960415T133000Z
         2816 
         2817    This memo imposes no ordering of properties within an iCalendar
         2818    object.
         2819 
         2820    Property names, parameter names, and enumerated parameter values are
         2821    case-insensitive.  For example, the property name "DUE" is the same
         2822    as "due" and "Due", DTSTART;TZID=America/New_York:19980714T120000 is
         2823    the same as DtStart;TzID=America/New_York:19980714T120000.
         2824 
         2825 3.6.  Calendar Components
         2826 
         2827    The body of the iCalendar object consists of a sequence of calendar
         2828    properties and one or more calendar components.  The calendar
         2829    properties are attributes that apply to the calendar object as a
         2830    whole.  The calendar components are collections of properties that
         2831    express a particular calendar semantic.  For example, the calendar
         2832    component can specify an event, a to-do, a journal entry, time zone
         2833    information, free/busy time information, or an alarm.
         2834 
         2835    The body of the iCalendar object is defined by the following
         2836    notation:
         2837 
         2838        icalbody   = calprops component
         2839 
         2840        calprops   = *(
         2841                   ;
         2842                   ; The following are REQUIRED,
         2843                   ; but MUST NOT occur more than once.
         2844                   ;
         2845                   prodid / version /
         2846                   ;
         2847                   ; The following are OPTIONAL,
         2848                   ; but MUST NOT occur more than once.
         2849                   ;
         2850                   calscale / method /
         2851                   ;
         2852                   ; The following are OPTIONAL,
         2853                   ; and MAY occur more than once.
         2854                   ;
         2855 
         2856 
         2857 
         2858 Desruisseaux                Standards Track                    [Page 51]
         2859 
         2860 RFC 5545                       iCalendar                  September 2009
         2861 
         2862 
         2863                   x-prop / iana-prop
         2864                   ;
         2865                   )
         2866 
         2867        component  = 1*(eventc / todoc / journalc / freebusyc /
         2868                     timezonec / iana-comp / x-comp)
         2869 
         2870        iana-comp  = "BEGIN" ":" iana-token CRLF
         2871                     1*contentline
         2872                     "END" ":" iana-token CRLF
         2873 
         2874        x-comp     = "BEGIN" ":" x-name CRLF
         2875                     1*contentline
         2876                     "END" ":" x-name CRLF
         2877 
         2878    An iCalendar object MUST include the "PRODID" and "VERSION" calendar
         2879    properties.  In addition, it MUST include at least one calendar
         2880    component.  Special forms of iCalendar objects are possible to
         2881    publish just busy time (i.e., only a "VFREEBUSY" calendar component)
         2882    or time zone (i.e., only a "VTIMEZONE" calendar component)
         2883    information.  In addition, a complex iCalendar object that is used to
         2884    capture a complete snapshot of the contents of a calendar is possible
         2885    (e.g., composite of many different calendar components).  More
         2886    commonly, an iCalendar object will consist of just a single "VEVENT",
         2887    "VTODO", or "VJOURNAL" calendar component.  Applications MUST ignore
         2888    x-comp and iana-comp values they don't recognize.  Applications that
         2889    support importing iCalendar objects SHOULD support all of the
         2890    component types defined in this document, and SHOULD NOT silently
         2891    drop any components as that can lead to user data loss.
         2892 
         2893 3.6.1.  Event Component
         2894 
         2895    Component Name:  VEVENT
         2896 
         2897    Purpose:  Provide a grouping of component properties that describe an
         2898       event.
         2899 
         2900    Format Definition:  A "VEVENT" calendar component is defined by the
         2901       following notation:
         2902 
         2903        eventc     = "BEGIN" ":" "VEVENT" CRLF
         2904                     eventprop *alarmc
         2905                     "END" ":" "VEVENT" CRLF
         2906 
         2907        eventprop  = *(
         2908                   ;
         2909                   ; The following are REQUIRED,
         2910                   ; but MUST NOT occur more than once.
         2911 
         2912 
         2913 
         2914 Desruisseaux                Standards Track                    [Page 52]
         2915 
         2916 RFC 5545                       iCalendar                  September 2009
         2917 
         2918 
         2919                   ;
         2920                   dtstamp / uid /
         2921                   ;
         2922                   ; The following is REQUIRED if the component
         2923                   ; appears in an iCalendar object that doesn't
         2924                   ; specify the "METHOD" property; otherwise, it
         2925                   ; is OPTIONAL; in any case, it MUST NOT occur
         2926                   ; more than once.
         2927                   ;
         2928                   dtstart /
         2929                   ;
         2930                   ; The following are OPTIONAL,
         2931                   ; but MUST NOT occur more than once.
         2932                   ;
         2933                   class / created / description / geo /
         2934                   last-mod / location / organizer / priority /
         2935                   seq / status / summary / transp /
         2936                   url / recurid /
         2937                   ;
         2938                   ; The following is OPTIONAL,
         2939                   ; but SHOULD NOT occur more than once.
         2940                   ;
         2941                   rrule /
         2942                   ;
         2943                   ; Either 'dtend' or 'duration' MAY appear in
         2944                   ; a 'eventprop', but 'dtend' and 'duration'
         2945                   ; MUST NOT occur in the same 'eventprop'.
         2946                   ;
         2947                   dtend / duration /
         2948                   ;
         2949                   ; The following are OPTIONAL,
         2950                   ; and MAY occur more than once.
         2951                   ;
         2952                   attach / attendee / categories / comment /
         2953                   contact / exdate / rstatus / related /
         2954                   resources / rdate / x-prop / iana-prop
         2955                   ;
         2956                   )
         2957 
         2958    Description:  A "VEVENT" calendar component is a grouping of
         2959       component properties, possibly including "VALARM" calendar
         2960       components, that represents a scheduled amount of time on a
         2961       calendar.  For example, it can be an activity; such as a one-hour
         2962       long, department meeting from 8:00 AM to 9:00 AM, tomorrow.
         2963       Generally, an event will take up time on an individual calendar.
         2964       Hence, the event will appear as an opaque interval in a search for
         2965       busy time.  Alternately, the event can have its Time Transparency
         2966 
         2967 
         2968 
         2969 
         2970 Desruisseaux                Standards Track                    [Page 53]
         2971 
         2972 RFC 5545                       iCalendar                  September 2009
         2973 
         2974 
         2975       set to "TRANSPARENT" in order to prevent blocking of the event in
         2976       searches for busy time.
         2977 
         2978       The "VEVENT" is also the calendar component used to specify an
         2979       anniversary or daily reminder within a calendar.  These events
         2980       have a DATE value type for the "DTSTART" property instead of the
         2981       default value type of DATE-TIME.  If such a "VEVENT" has a "DTEND"
         2982       property, it MUST be specified as a DATE value also.  The
         2983       anniversary type of "VEVENT" can span more than one date (i.e.,
         2984       "DTEND" property value is set to a calendar date after the
         2985       "DTSTART" property value).  If such a "VEVENT" has a "DURATION"
         2986       property, it MUST be specified as a "dur-day" or "dur-week" value.
         2987 
         2988       The "DTSTART" property for a "VEVENT" specifies the inclusive
         2989       start of the event.  For recurring events, it also specifies the
         2990       very first instance in the recurrence set.  The "DTEND" property
         2991       for a "VEVENT" calendar component specifies the non-inclusive end
         2992       of the event.  For cases where a "VEVENT" calendar component
         2993       specifies a "DTSTART" property with a DATE value type but no
         2994       "DTEND" nor "DURATION" property, the event's duration is taken to
         2995       be one day.  For cases where a "VEVENT" calendar component
         2996       specifies a "DTSTART" property with a DATE-TIME value type but no
         2997       "DTEND" property, the event ends on the same calendar date and
         2998       time of day specified by the "DTSTART" property.
         2999 
         3000       The "VEVENT" calendar component cannot be nested within another
         3001       calendar component.  However, "VEVENT" calendar components can be
         3002       related to each other or to a "VTODO" or to a "VJOURNAL" calendar
         3003       component with the "RELATED-TO" property.
         3004 
         3005    Example:  The following is an example of the "VEVENT" calendar
         3006       component used to represent a meeting that will also be opaque to
         3007       searches for busy time:
         3008 
         3009        BEGIN:VEVENT
         3010        UID:19970901T130000Z-123401@example.com
         3011        DTSTAMP:19970901T130000Z
         3012        DTSTART:19970903T163000Z
         3013        DTEND:19970903T190000Z
         3014        SUMMARY:Annual Employee Review
         3015        CLASS:PRIVATE
         3016        CATEGORIES:BUSINESS,HUMAN RESOURCES
         3017        END:VEVENT
         3018 
         3019       The following is an example of the "VEVENT" calendar component
         3020       used to represent a reminder that will not be opaque, but rather
         3021       transparent, to searches for busy time:
         3022 
         3023 
         3024 
         3025 
         3026 Desruisseaux                Standards Track                    [Page 54]
         3027 
         3028 RFC 5545                       iCalendar                  September 2009
         3029 
         3030 
         3031        BEGIN:VEVENT
         3032        UID:19970901T130000Z-123402@example.com
         3033        DTSTAMP:19970901T130000Z
         3034        DTSTART:19970401T163000Z
         3035        DTEND:19970402T010000Z
         3036        SUMMARY:Laurel is in sensitivity awareness class.
         3037        CLASS:PUBLIC
         3038        CATEGORIES:BUSINESS,HUMAN RESOURCES
         3039        TRANSP:TRANSPARENT
         3040        END:VEVENT
         3041 
         3042       The following is an example of the "VEVENT" calendar component
         3043       used to represent an anniversary that will occur annually:
         3044 
         3045        BEGIN:VEVENT
         3046        UID:19970901T130000Z-123403@example.com
         3047        DTSTAMP:19970901T130000Z
         3048        DTSTART;VALUE=DATE:19971102
         3049        SUMMARY:Our Blissful Anniversary
         3050        TRANSP:TRANSPARENT
         3051        CLASS:CONFIDENTIAL
         3052        CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION
         3053        RRULE:FREQ=YEARLY
         3054        END:VEVENT
         3055 
         3056       The following is an example of the "VEVENT" calendar component
         3057       used to represent a multi-day event scheduled from June 28th, 2007
         3058       to July 8th, 2007 inclusively.  Note that the "DTEND" property is
         3059       set to July 9th, 2007, since the "DTEND" property specifies the
         3060       non-inclusive end of the event.
         3061 
         3062        BEGIN:VEVENT
         3063        UID:20070423T123432Z-541111@example.com
         3064        DTSTAMP:20070423T123432Z
         3065        DTSTART;VALUE=DATE:20070628
         3066        DTEND;VALUE=DATE:20070709
         3067        SUMMARY:Festival International de Jazz de Montreal
         3068        TRANSP:TRANSPARENT
         3069        END:VEVENT
         3070 
         3071 3.6.2.  To-Do Component
         3072 
         3073    Component Name:  VTODO
         3074 
         3075    Purpose:  Provide a grouping of calendar properties that describe a
         3076       to-do.
         3077 
         3078 
         3079 
         3080 
         3081 
         3082 Desruisseaux                Standards Track                    [Page 55]
         3083 
         3084 RFC 5545                       iCalendar                  September 2009
         3085 
         3086 
         3087    Format Definition:  A "VTODO" calendar component is defined by the
         3088       following notation:
         3089 
         3090        todoc      = "BEGIN" ":" "VTODO" CRLF
         3091                     todoprop *alarmc
         3092                     "END" ":" "VTODO" CRLF
         3093 
         3094        todoprop   = *(
         3095                   ;
         3096                   ; The following are REQUIRED,
         3097                   ; but MUST NOT occur more than once.
         3098                   ;
         3099                   dtstamp / uid /
         3100                   ;
         3101                   ; The following are OPTIONAL,
         3102                   ; but MUST NOT occur more than once.
         3103                   ;
         3104                   class / completed / created / description /
         3105                   dtstart / geo / last-mod / location / organizer /
         3106                   percent / priority / recurid / seq / status /
         3107                   summary / url /
         3108                   ;
         3109                   ; The following is OPTIONAL,
         3110                   ; but SHOULD NOT occur more than once.
         3111                   ;
         3112                   rrule /
         3113                   ;
         3114                   ; Either 'due' or 'duration' MAY appear in
         3115                   ; a 'todoprop', but 'due' and 'duration'
         3116                   ; MUST NOT occur in the same 'todoprop'.
         3117                   ; If 'duration' appear in a 'todoprop',
         3118                   ; then 'dtstart' MUST also appear in
         3119                   ; the same 'todoprop'.
         3120                   ;
         3121                   due / duration /
         3122                   ;
         3123                   ; The following are OPTIONAL,
         3124                   ; and MAY occur more than once.
         3125                   ;
         3126                   attach / attendee / categories / comment / contact /
         3127                   exdate / rstatus / related / resources /
         3128                   rdate / x-prop / iana-prop
         3129                   ;
         3130                   )
         3131 
         3132    Description:  A "VTODO" calendar component is a grouping of component
         3133       properties and possibly "VALARM" calendar components that
         3134       represent an action-item or assignment.  For example, it can be
         3135 
         3136 
         3137 
         3138 Desruisseaux                Standards Track                    [Page 56]
         3139 
         3140 RFC 5545                       iCalendar                  September 2009
         3141 
         3142 
         3143       used to represent an item of work assigned to an individual; such
         3144       as "turn in travel expense today".
         3145 
         3146       The "VTODO" calendar component cannot be nested within another
         3147       calendar component.  However, "VTODO" calendar components can be
         3148       related to each other or to a "VEVENT" or to a "VJOURNAL" calendar
         3149       component with the "RELATED-TO" property.
         3150 
         3151       A "VTODO" calendar component without the "DTSTART" and "DUE" (or
         3152       "DURATION") properties specifies a to-do that will be associated
         3153       with each successive calendar date, until it is completed.
         3154 
         3155    Examples:  The following is an example of a "VTODO" calendar
         3156       component that needs to be completed before May 1st, 2007.  On
         3157       midnight May 1st, 2007 this to-do would be considered overdue.
         3158 
         3159        BEGIN:VTODO
         3160        UID:20070313T123432Z-456553@example.com
         3161        DTSTAMP:20070313T123432Z
         3162        DUE;VALUE=DATE:20070501
         3163        SUMMARY:Submit Quebec Income Tax Return for 2006
         3164        CLASS:CONFIDENTIAL
         3165        CATEGORIES:FAMILY,FINANCE
         3166        STATUS:NEEDS-ACTION
         3167        END:VTODO
         3168 
         3169       The following is an example of a "VTODO" calendar component that
         3170       was due before 1:00 P.M. UTC on July 9th, 2007 and was completed
         3171       on July 7th, 2007 at 10:00 A.M. UTC.
         3172 
         3173        BEGIN:VTODO
         3174        UID:20070514T103211Z-123404@example.com
         3175        DTSTAMP:20070514T103211Z
         3176        DTSTART:20070514T110000Z
         3177        DUE:20070709T130000Z
         3178        COMPLETED:20070707T100000Z
         3179        SUMMARY:Submit Revised Internet-Draft
         3180        PRIORITY:1
         3181        STATUS:NEEDS-ACTION
         3182        END:VTODO
         3183 
         3184 3.6.3.  Journal Component
         3185 
         3186    Component Name:  VJOURNAL
         3187 
         3188    Purpose:  Provide a grouping of component properties that describe a
         3189       journal entry.
         3190 
         3191 
         3192 
         3193 
         3194 Desruisseaux                Standards Track                    [Page 57]
         3195 
         3196 RFC 5545                       iCalendar                  September 2009
         3197 
         3198 
         3199    Format Definition:  A "VJOURNAL" calendar component is defined by the
         3200       following notation:
         3201 
         3202        journalc   = "BEGIN" ":" "VJOURNAL" CRLF
         3203                     jourprop
         3204                     "END" ":" "VJOURNAL" CRLF
         3205 
         3206        jourprop   = *(
         3207                   ;
         3208                   ; The following are REQUIRED,
         3209                   ; but MUST NOT occur more than once.
         3210                   ;
         3211                   dtstamp / uid /
         3212                   ;
         3213                   ; The following are OPTIONAL,
         3214                   ; but MUST NOT occur more than once.
         3215                   ;
         3216                   class / created / dtstart /
         3217                   last-mod / organizer / recurid / seq /
         3218                   status / summary / url /
         3219                   ;
         3220                   ; The following is OPTIONAL,
         3221                   ; but SHOULD NOT occur more than once.
         3222                   ;
         3223                   rrule /
         3224                   ;
         3225                   ; The following are OPTIONAL,
         3226                   ; and MAY occur more than once.
         3227                   ;
         3228                   attach / attendee / categories / comment /
         3229                   contact / description / exdate / related / rdate /
         3230                   rstatus / x-prop / iana-prop
         3231                   ;
         3232                   )
         3233 
         3234    Description:  A "VJOURNAL" calendar component is a grouping of
         3235       component properties that represent one or more descriptive text
         3236       notes associated with a particular calendar date.  The "DTSTART"
         3237       property is used to specify the calendar date with which the
         3238       journal entry is associated.  Generally, it will have a DATE value
         3239       data type, but it can also be used to specify a DATE-TIME value
         3240       data type.  Examples of a journal entry include a daily record of
         3241       a legislative body or a journal entry of individual telephone
         3242       contacts for the day or an ordered list of accomplishments for the
         3243       day.  The "VJOURNAL" calendar component can also be used to
         3244       associate a document with a calendar date.
         3245 
         3246 
         3247 
         3248 
         3249 
         3250 Desruisseaux                Standards Track                    [Page 58]
         3251 
         3252 RFC 5545                       iCalendar                  September 2009
         3253 
         3254 
         3255       The "VJOURNAL" calendar component does not take up time on a
         3256       calendar.  Hence, it does not play a role in free or busy time
         3257       searches -- it is as though it has a time transparency value of
         3258       TRANSPARENT.  It is transparent to any such searches.
         3259 
         3260       The "VJOURNAL" calendar component cannot be nested within another
         3261       calendar component.  However, "VJOURNAL" calendar components can
         3262       be related to each other or to a "VEVENT" or to a "VTODO" calendar
         3263       component, with the "RELATED-TO" property.
         3264 
         3265    Example:  The following is an example of the "VJOURNAL" calendar
         3266       component:
         3267 
         3268        BEGIN:VJOURNAL
         3269        UID:19970901T130000Z-123405@example.com
         3270        DTSTAMP:19970901T130000Z
         3271        DTSTART;VALUE=DATE:19970317
         3272        SUMMARY:Staff meeting minutes
         3273        DESCRIPTION:1. Staff meeting: Participants include Joe\,
         3274          Lisa\, and Bob. Aurora project plans were reviewed.
         3275          There is currently no budget reserves for this project.
         3276          Lisa will escalate to management. Next meeting on Tuesday.\n
         3277         2. Telephone Conference: ABC Corp. sales representative
         3278          called to discuss new printer. Promised to get us a demo by
         3279          Friday.\n3. Henry Miller (Handsoff Insurance): Car was
         3280          totaled by tree. Is looking into a loaner car. 555-2323
         3281          (tel).
         3282        END:VJOURNAL
         3283 
         3284 3.6.4.  Free/Busy Component
         3285 
         3286    Component Name:  VFREEBUSY
         3287 
         3288    Purpose:  Provide a grouping of component properties that describe
         3289       either a request for free/busy time, describe a response to a
         3290       request for free/busy time, or describe a published set of busy
         3291       time.
         3292 
         3293    Format Definition:  A "VFREEBUSY" calendar component is defined by
         3294       the following notation:
         3295 
         3296        freebusyc  = "BEGIN" ":" "VFREEBUSY" CRLF
         3297                     fbprop
         3298                     "END" ":" "VFREEBUSY" CRLF
         3299 
         3300        fbprop     = *(
         3301                   ;
         3302                   ; The following are REQUIRED,
         3303 
         3304 
         3305 
         3306 Desruisseaux                Standards Track                    [Page 59]
         3307 
         3308 RFC 5545                       iCalendar                  September 2009
         3309 
         3310 
         3311                   ; but MUST NOT occur more than once.
         3312                   ;
         3313                   dtstamp / uid /
         3314                   ;
         3315                   ; The following are OPTIONAL,
         3316                   ; but MUST NOT occur more than once.
         3317                   ;
         3318                   contact / dtstart / dtend /
         3319                   organizer / url /
         3320                   ;
         3321                   ; The following are OPTIONAL,
         3322                   ; and MAY occur more than once.
         3323                   ;
         3324                   attendee / comment / freebusy / rstatus / x-prop /
         3325                   iana-prop
         3326                   ;
         3327                   )
         3328 
         3329    Description:  A "VFREEBUSY" calendar component is a grouping of
         3330       component properties that represents either a request for free or
         3331       busy time information, a reply to a request for free or busy time
         3332       information, or a published set of busy time information.
         3333 
         3334       When used to request free/busy time information, the "ATTENDEE"
         3335       property specifies the calendar users whose free/busy time is
         3336       being requested; the "ORGANIZER" property specifies the calendar
         3337       user who is requesting the free/busy time; the "DTSTART" and
         3338       "DTEND" properties specify the window of time for which the free/
         3339       busy time is being requested; the "UID" and "DTSTAMP" properties
         3340       are specified to assist in proper sequencing of multiple free/busy
         3341       time requests.
         3342 
         3343       When used to reply to a request for free/busy time, the "ATTENDEE"
         3344       property specifies the calendar user responding to the free/busy
         3345       time request; the "ORGANIZER" property specifies the calendar user
         3346       that originally requested the free/busy time; the "FREEBUSY"
         3347       property specifies the free/busy time information (if it exists);
         3348       and the "UID" and "DTSTAMP" properties are specified to assist in
         3349       proper sequencing of multiple free/busy time replies.
         3350 
         3351       When used to publish busy time, the "ORGANIZER" property specifies
         3352       the calendar user associated with the published busy time; the
         3353       "DTSTART" and "DTEND" properties specify an inclusive time window
         3354       that surrounds the busy time information; the "FREEBUSY" property
         3355       specifies the published busy time information; and the "DTSTAMP"
         3356       property specifies the DATE-TIME that iCalendar object was
         3357       created.
         3358 
         3359 
         3360 
         3361 
         3362 Desruisseaux                Standards Track                    [Page 60]
         3363 
         3364 RFC 5545                       iCalendar                  September 2009
         3365 
         3366 
         3367       The "VFREEBUSY" calendar component cannot be nested within another
         3368       calendar component.  Multiple "VFREEBUSY" calendar components can
         3369       be specified within an iCalendar object.  This permits the
         3370       grouping of free/busy information into logical collections, such
         3371       as monthly groups of busy time information.
         3372 
         3373       The "VFREEBUSY" calendar component is intended for use in
         3374       iCalendar object methods involving requests for free time,
         3375       requests for busy time, requests for both free and busy, and the
         3376       associated replies.
         3377 
         3378       Free/Busy information is represented with the "FREEBUSY" property.
         3379       This property provides a terse representation of time periods.
         3380       One or more "FREEBUSY" properties can be specified in the
         3381       "VFREEBUSY" calendar component.
         3382 
         3383       When present in a "VFREEBUSY" calendar component, the "DTSTART"
         3384       and "DTEND" properties SHOULD be specified prior to any "FREEBUSY"
         3385       properties.
         3386 
         3387       The recurrence properties ("RRULE", "RDATE", "EXDATE") are not
         3388       permitted within a "VFREEBUSY" calendar component.  Any recurring
         3389       events are resolved into their individual busy time periods using
         3390       the "FREEBUSY" property.
         3391 
         3392    Example:  The following is an example of a "VFREEBUSY" calendar
         3393       component used to request free or busy time information:
         3394 
         3395        BEGIN:VFREEBUSY
         3396        UID:19970901T082949Z-FA43EF@example.com
         3397        ORGANIZER:mailto:jane_doe@example.com
         3398        ATTENDEE:mailto:john_public@example.com
         3399        DTSTART:19971015T050000Z
         3400        DTEND:19971016T050000Z
         3401        DTSTAMP:19970901T083000Z
         3402        END:VFREEBUSY
         3403 
         3404 
         3405 
         3406 
         3407 
         3408 
         3409 
         3410 
         3411 
         3412 
         3413 
         3414 
         3415 
         3416 
         3417 
         3418 Desruisseaux                Standards Track                    [Page 61]
         3419 
         3420 RFC 5545                       iCalendar                  September 2009
         3421 
         3422 
         3423       The following is an example of a "VFREEBUSY" calendar component
         3424       used to reply to the request with busy time information:
         3425 
         3426        BEGIN:VFREEBUSY
         3427        UID:19970901T095957Z-76A912@example.com
         3428        ORGANIZER:mailto:jane_doe@example.com
         3429        ATTENDEE:mailto:john_public@example.com
         3430        DTSTAMP:19970901T100000Z
         3431        FREEBUSY:19971015T050000Z/PT8H30M,
         3432         19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M
         3433        URL:http://example.com/pub/busy/jpublic-01.ifb
         3434        COMMENT:This iCalendar file contains busy time information for
         3435          the next three months.
         3436        END:VFREEBUSY
         3437 
         3438       The following is an example of a "VFREEBUSY" calendar component
         3439       used to publish busy time information:
         3440 
         3441        BEGIN:VFREEBUSY
         3442        UID:19970901T115957Z-76A912@example.com
         3443        DTSTAMP:19970901T120000Z
         3444        ORGANIZER:jsmith@example.com
         3445        DTSTART:19980313T141711Z
         3446        DTEND:19980410T141711Z
         3447        FREEBUSY:19980314T233000Z/19980315T003000Z
         3448        FREEBUSY:19980316T153000Z/19980316T163000Z
         3449        FREEBUSY:19980318T030000Z/19980318T040000Z
         3450        URL:http://www.example.com/calendar/busytime/jsmith.ifb
         3451        END:VFREEBUSY
         3452 
         3453 3.6.5.  Time Zone Component
         3454 
         3455    Component Name:  VTIMEZONE
         3456 
         3457    Purpose:  Provide a grouping of component properties that defines a
         3458       time zone.
         3459 
         3460    Format Definition:  A "VTIMEZONE" calendar component is defined by
         3461       the following notation:
         3462 
         3463        timezonec  = "BEGIN" ":" "VTIMEZONE" CRLF
         3464                     *(
         3465                     ;
         3466                     ; 'tzid' is REQUIRED, but MUST NOT occur more
         3467                     ; than once.
         3468                     ;
         3469                     tzid /
         3470                     ;
         3471 
         3472 
         3473 
         3474 Desruisseaux                Standards Track                    [Page 62]
         3475 
         3476 RFC 5545                       iCalendar                  September 2009
         3477 
         3478 
         3479                     ; 'last-mod' and 'tzurl' are OPTIONAL,
         3480                     ; but MUST NOT occur more than once.
         3481                     ;
         3482                     last-mod / tzurl /
         3483                     ;
         3484                     ; One of 'standardc' or 'daylightc' MUST occur
         3485                     ; and each MAY occur more than once.
         3486                     ;
         3487                     standardc / daylightc /
         3488                     ;
         3489                     ; The following are OPTIONAL,
         3490                     ; and MAY occur more than once.
         3491                     ;
         3492                     x-prop / iana-prop
         3493                     ;
         3494                     )
         3495                     "END" ":" "VTIMEZONE" CRLF
         3496 
         3497        standardc  = "BEGIN" ":" "STANDARD" CRLF
         3498                     tzprop
         3499                     "END" ":" "STANDARD" CRLF
         3500 
         3501        daylightc  = "BEGIN" ":" "DAYLIGHT" CRLF
         3502                     tzprop
         3503                     "END" ":" "DAYLIGHT" CRLF
         3504 
         3505        tzprop     = *(
         3506                     ;
         3507                     ; The following are REQUIRED,
         3508                     ; but MUST NOT occur more than once.
         3509                     ;
         3510                     dtstart / tzoffsetto / tzoffsetfrom /
         3511                     ;
         3512                     ; The following is OPTIONAL,
         3513                     ; but SHOULD NOT occur more than once.
         3514                     ;
         3515                     rrule /
         3516                     ;
         3517                     ; The following are OPTIONAL,
         3518                     ; and MAY occur more than once.
         3519                     ;
         3520                     comment / rdate / tzname / x-prop / iana-prop
         3521                     ;
         3522                     )
         3523 
         3524    Description:  A time zone is unambiguously defined by the set of time
         3525       measurement rules determined by the governing body for a given
         3526       geographic area.  These rules describe, at a minimum, the base
         3527 
         3528 
         3529 
         3530 Desruisseaux                Standards Track                    [Page 63]
         3531 
         3532 RFC 5545                       iCalendar                  September 2009
         3533 
         3534 
         3535       offset from UTC for the time zone, often referred to as the
         3536       Standard Time offset.  Many locations adjust their Standard Time
         3537       forward or backward by one hour, in order to accommodate seasonal
         3538       changes in number of daylight hours, often referred to as Daylight
         3539       Saving Time.  Some locations adjust their time by a fraction of an
         3540       hour.  Standard Time is also known as Winter Time.  Daylight
         3541       Saving Time is also known as Advanced Time, Summer Time, or Legal
         3542       Time in certain countries.  The following table shows the changes
         3543       in time zone rules in effect for New York City starting from 1967.
         3544       Each line represents a description or rule for a particular
         3545       observance.
         3546 
         3547                          Effective Observance Rule
         3548 
         3549      +-----------+--------------------------+--------+--------------+
         3550      | Date      | (Date-Time)              | Offset | Abbreviation |
         3551      +-----------+--------------------------+--------+--------------+
         3552      | 1967-1973 | last Sun in Apr, 02:00   | -0400  | EDT          |
         3553      |           |                          |        |              |
         3554      | 1967-2006 | last Sun in Oct, 02:00   | -0500  | EST          |
         3555      |           |                          |        |              |
         3556      | 1974-1974 | Jan 6, 02:00             | -0400  | EDT          |
         3557      |           |                          |        |              |
         3558      | 1975-1975 | Feb 23, 02:00            | -0400  | EDT          |
         3559      |           |                          |        |              |
         3560      | 1976-1986 | last Sun in Apr, 02:00   | -0400  | EDT          |
         3561      |           |                          |        |              |
         3562      | 1987-2006 | first Sun in Apr, 02:00  | -0400  | EDT          |
         3563      |           |                          |        |              |
         3564      | 2007-*    | second Sun in Mar, 02:00 | -0400  | EDT          |
         3565      |           |                          |        |              |
         3566      | 2007-*    | first Sun in Nov, 02:00  | -0500  | EST          |
         3567      +-----------+--------------------------+--------+--------------+
         3568 
         3569    Note: The specification of a global time zone registry is not
         3570          addressed by this document and is left for future study.
         3571          However, implementers may find the TZ database [TZDB] a useful
         3572          reference.  It is an informal, public-domain collection of time
         3573          zone information, which is currently being maintained by
         3574          volunteer Internet participants, and is used in several
         3575          operating systems.  This database contains current and
         3576          historical time zone information for a wide variety of
         3577          locations around the globe; it provides a time zone identifier
         3578          for every unique time zone rule set in actual use since 1970,
         3579          with historical data going back to the introduction of standard
         3580          time.
         3581 
         3582 
         3583 
         3584 
         3585 
         3586 Desruisseaux                Standards Track                    [Page 64]
         3587 
         3588 RFC 5545                       iCalendar                  September 2009
         3589 
         3590 
         3591       Interoperability between two calendaring and scheduling
         3592       applications, especially for recurring events, to-dos or journal
         3593       entries, is dependent on the ability to capture and convey date
         3594       and time information in an unambiguous format.  The specification
         3595       of current time zone information is integral to this behavior.
         3596 
         3597       If present, the "VTIMEZONE" calendar component defines the set of
         3598       Standard Time and Daylight Saving Time observances (or rules) for
         3599       a particular time zone for a given interval of time.  The
         3600       "VTIMEZONE" calendar component cannot be nested within other
         3601       calendar components.  Multiple "VTIMEZONE" calendar components can
         3602       exist in an iCalendar object.  In this situation, each "VTIMEZONE"
         3603       MUST represent a unique time zone definition.  This is necessary
         3604       for some classes of events, such as airline flights, that start in
         3605       one time zone and end in another.
         3606 
         3607       The "VTIMEZONE" calendar component MUST include the "TZID"
         3608       property and at least one definition of a "STANDARD" or "DAYLIGHT"
         3609       sub-component.  The "STANDARD" or "DAYLIGHT" sub-component MUST
         3610       include the "DTSTART", "TZOFFSETFROM", and "TZOFFSETTO"
         3611       properties.
         3612 
         3613       An individual "VTIMEZONE" calendar component MUST be specified for
         3614       each unique "TZID" parameter value specified in the iCalendar
         3615       object.  In addition, a "VTIMEZONE" calendar component, referred
         3616       to by a recurring calendar component, MUST provide valid time zone
         3617       information for all recurrence instances.
         3618 
         3619       Each "VTIMEZONE" calendar component consists of a collection of
         3620       one or more sub-components that describe the rule for a particular
         3621       observance (either a Standard Time or a Daylight Saving Time
         3622       observance).  The "STANDARD" sub-component consists of a
         3623       collection of properties that describe Standard Time.  The
         3624       "DAYLIGHT" sub-component consists of a collection of properties
         3625       that describe Daylight Saving Time.  In general, this collection
         3626       of properties consists of:
         3627 
         3628       *  the first onset DATE-TIME for the observance;
         3629 
         3630       *  the last onset DATE-TIME for the observance, if a last onset is
         3631          known;
         3632 
         3633       *  the offset to be applied for the observance;
         3634 
         3635       *  a rule that describes the day and time when the observance
         3636          takes effect;
         3637 
         3638       *  an optional name for the observance.
         3639 
         3640 
         3641 
         3642 Desruisseaux                Standards Track                    [Page 65]
         3643 
         3644 RFC 5545                       iCalendar                  September 2009
         3645 
         3646 
         3647       For a given time zone, there may be multiple unique definitions of
         3648       the observances over a period of time.  Each observance is
         3649       described using either a "STANDARD" or "DAYLIGHT" sub-component.
         3650       The collection of these sub-components is used to describe the
         3651       time zone for a given period of time.  The offset to apply at any
         3652       given time is found by locating the observance that has the last
         3653       onset date and time before the time in question, and using the
         3654       offset value from that observance.
         3655 
         3656       The top-level properties in a "VTIMEZONE" calendar component are:
         3657 
         3658       The mandatory "TZID" property is a text value that uniquely
         3659       identifies the "VTIMEZONE" calendar component within the scope of
         3660       an iCalendar object.
         3661 
         3662       The optional "LAST-MODIFIED" property is a UTC value that
         3663       specifies the date and time that this time zone definition was
         3664       last updated.
         3665 
         3666       The optional "TZURL" property is a url value that points to a
         3667       published "VTIMEZONE" definition.  "TZURL" SHOULD refer to a
         3668       resource that is accessible by anyone who might need to interpret
         3669       the object.  This SHOULD NOT normally be a "file" URL or other URL
         3670       that is not widely accessible.
         3671 
         3672       The collection of properties that are used to define the
         3673       "STANDARD" and "DAYLIGHT" sub-components include:
         3674 
         3675       The mandatory "DTSTART" property gives the effective onset date
         3676       and local time for the time zone sub-component definition.
         3677       "DTSTART" in this usage MUST be specified as a date with a local
         3678       time value.
         3679 
         3680       The mandatory "TZOFFSETFROM" property gives the UTC offset that is
         3681       in use when the onset of this time zone observance begins.
         3682       "TZOFFSETFROM" is combined with "DTSTART" to define the effective
         3683       onset for the time zone sub-component definition.  For example,
         3684       the following represents the time at which the observance of
         3685       Standard Time took effect in Fall 1967 for New York City:
         3686 
         3687        DTSTART:19671029T020000
         3688 
         3689        TZOFFSETFROM:-0400
         3690 
         3691       The mandatory "TZOFFSETTO" property gives the UTC offset for the
         3692       time zone sub-component (Standard Time or Daylight Saving Time)
         3693       when this observance is in use.
         3694 
         3695 
         3696 
         3697 
         3698 Desruisseaux                Standards Track                    [Page 66]
         3699 
         3700 RFC 5545                       iCalendar                  September 2009
         3701 
         3702 
         3703       The optional "TZNAME" property is the customary name for the time
         3704       zone.  This could be used for displaying dates.
         3705 
         3706       The onset DATE-TIME values for the observance defined by the time
         3707       zone sub-component is defined by the "DTSTART", "RRULE", and
         3708       "RDATE" properties.
         3709 
         3710       The "RRULE" property defines the recurrence rule for the onset of
         3711       the observance defined by this time zone sub-component.  Some
         3712       specific requirements for the usage of "RRULE" for this purpose
         3713       include:
         3714 
         3715       *  If observance is known to have an effective end date, the
         3716          "UNTIL" recurrence rule parameter MUST be used to specify the
         3717          last valid onset of this observance (i.e., the UNTIL DATE-TIME
         3718          will be equal to the last instance generated by the recurrence
         3719          pattern).  It MUST be specified in UTC time.
         3720 
         3721       *  The "DTSTART" and the "TZOFFSETFROM" properties MUST be used
         3722          when generating the onset DATE-TIME values (instances) from the
         3723          "RRULE".
         3724 
         3725       The "RDATE" property can also be used to define the onset of the
         3726       observance by giving the individual onset date and times.  "RDATE"
         3727       in this usage MUST be specified as a date with local time value,
         3728       relative to the UTC offset specified in the "TZOFFSETFROM"
         3729       property.
         3730 
         3731       The optional "COMMENT" property is also allowed for descriptive
         3732       explanatory text.
         3733 
         3734    Example:  The following are examples of the "VTIMEZONE" calendar
         3735       component:
         3736 
         3737       This is an example showing all the time zone rules for New York
         3738       City since April 30, 1967 at 03:00:00 EDT.
         3739 
         3740        BEGIN:VTIMEZONE
         3741        TZID:America/New_York
         3742        LAST-MODIFIED:20050809T050000Z
         3743        BEGIN:DAYLIGHT
         3744        DTSTART:19670430T020000
         3745        RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1SU;UNTIL=19730429T070000Z
         3746        TZOFFSETFROM:-0500
         3747        TZOFFSETTO:-0400
         3748        TZNAME:EDT
         3749        END:DAYLIGHT
         3750        BEGIN:STANDARD
         3751 
         3752 
         3753 
         3754 Desruisseaux                Standards Track                    [Page 67]
         3755 
         3756 RFC 5545                       iCalendar                  September 2009
         3757 
         3758 
         3759        DTSTART:19671029T020000
         3760        RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU;UNTIL=20061029T060000Z
         3761        TZOFFSETFROM:-0400
         3762        TZOFFSETTO:-0500
         3763        TZNAME:EST
         3764        END:STANDARD
         3765        BEGIN:DAYLIGHT
         3766        DTSTART:19740106T020000
         3767        RDATE:19750223T020000
         3768        TZOFFSETFROM:-0500
         3769        TZOFFSETTO:-0400
         3770        TZNAME:EDT
         3771        END:DAYLIGHT
         3772        BEGIN:DAYLIGHT
         3773        DTSTART:19760425T020000
         3774        RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1SU;UNTIL=19860427T070000Z
         3775        TZOFFSETFROM:-0500
         3776        TZOFFSETTO:-0400
         3777        TZNAME:EDT
         3778        END:DAYLIGHT
         3779        BEGIN:DAYLIGHT
         3780        DTSTART:19870405T020000
         3781        RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU;UNTIL=20060402T070000Z
         3782        TZOFFSETFROM:-0500
         3783        TZOFFSETTO:-0400
         3784        TZNAME:EDT
         3785        END:DAYLIGHT
         3786        BEGIN:DAYLIGHT
         3787        DTSTART:20070311T020000
         3788        RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
         3789        TZOFFSETFROM:-0500
         3790        TZOFFSETTO:-0400
         3791        TZNAME:EDT
         3792        END:DAYLIGHT
         3793        BEGIN:STANDARD
         3794        DTSTART:20071104T020000
         3795        RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
         3796        TZOFFSETFROM:-0400
         3797        TZOFFSETTO:-0500
         3798        TZNAME:EST
         3799        END:STANDARD
         3800        END:VTIMEZONE
         3801 
         3802       This is an example showing time zone information for New York City
         3803       using only the "DTSTART" property.  Note that this is only
         3804       suitable for a recurring event that starts on or later than March
         3805       11, 2007 at 03:00:00 EDT (i.e., the earliest effective transition
         3806       date and time) and ends no later than March 9, 2008 at 01:59:59
         3807 
         3808 
         3809 
         3810 Desruisseaux                Standards Track                    [Page 68]
         3811 
         3812 RFC 5545                       iCalendar                  September 2009
         3813 
         3814 
         3815       EST (i.e., latest valid date and time for EST in this scenario).
         3816       For example, this can be used for a recurring event that occurs
         3817       every Friday, 8:00 A.M.-9:00 A.M., starting June 1, 2007, ending
         3818       December 31, 2007,
         3819 
         3820        BEGIN:VTIMEZONE
         3821        TZID:America/New_York
         3822        LAST-MODIFIED:20050809T050000Z
         3823        BEGIN:STANDARD
         3824        DTSTART:20071104T020000
         3825        TZOFFSETFROM:-0400
         3826        TZOFFSETTO:-0500
         3827        TZNAME:EST
         3828        END:STANDARD
         3829        BEGIN:DAYLIGHT
         3830        DTSTART:20070311T020000
         3831        TZOFFSETFROM:-0500
         3832        TZOFFSETTO:-0400
         3833        TZNAME:EDT
         3834        END:DAYLIGHT
         3835        END:VTIMEZONE
         3836 
         3837       This is a simple example showing the current time zone rules for
         3838       New York City using a "RRULE" recurrence pattern.  Note that there
         3839       is no effective end date to either of the Standard Time or
         3840       Daylight Time rules.  This information would be valid for a
         3841       recurring event starting today and continuing indefinitely.
         3842 
         3843        BEGIN:VTIMEZONE
         3844        TZID:America/New_York
         3845        LAST-MODIFIED:20050809T050000Z
         3846        TZURL:http://zones.example.com/tz/America-New_York.ics
         3847        BEGIN:STANDARD
         3848        DTSTART:20071104T020000
         3849        RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
         3850        TZOFFSETFROM:-0400
         3851        TZOFFSETTO:-0500
         3852        TZNAME:EST
         3853        END:STANDARD
         3854        BEGIN:DAYLIGHT
         3855        DTSTART:20070311T020000
         3856        RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
         3857        TZOFFSETFROM:-0500
         3858        TZOFFSETTO:-0400
         3859        TZNAME:EDT
         3860        END:DAYLIGHT
         3861        END:VTIMEZONE
         3862 
         3863 
         3864 
         3865 
         3866 Desruisseaux                Standards Track                    [Page 69]
         3867 
         3868 RFC 5545                       iCalendar                  September 2009
         3869 
         3870 
         3871       This is an example showing a set of rules for a fictitious time
         3872       zone where the Daylight Time rule has an effective end date (i.e.,
         3873       after that date, Daylight Time is no longer observed).
         3874 
         3875        BEGIN:VTIMEZONE
         3876        TZID:Fictitious
         3877        LAST-MODIFIED:19870101T000000Z
         3878        BEGIN:STANDARD
         3879        DTSTART:19671029T020000
         3880        RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
         3881        TZOFFSETFROM:-0400
         3882        TZOFFSETTO:-0500
         3883        TZNAME:EST
         3884        END:STANDARD
         3885        BEGIN:DAYLIGHT
         3886        DTSTART:19870405T020000
         3887        RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z
         3888        TZOFFSETFROM:-0500
         3889        TZOFFSETTO:-0400
         3890        TZNAME:EDT
         3891        END:DAYLIGHT
         3892        END:VTIMEZONE
         3893 
         3894 
         3895 
         3896 
         3897 
         3898 
         3899 
         3900 
         3901 
         3902 
         3903 
         3904 
         3905 
         3906 
         3907 
         3908 
         3909 
         3910 
         3911 
         3912 
         3913 
         3914 
         3915 
         3916 
         3917 
         3918 
         3919 
         3920 
         3921 
         3922 Desruisseaux                Standards Track                    [Page 70]
         3923 
         3924 RFC 5545                       iCalendar                  September 2009
         3925 
         3926 
         3927       This is an example showing a set of rules for a fictitious time
         3928       zone where the first Daylight Time rule has an effective end date.
         3929       There is a second Daylight Time rule that picks up where the other
         3930       left off.
         3931 
         3932        BEGIN:VTIMEZONE
         3933        TZID:Fictitious
         3934        LAST-MODIFIED:19870101T000000Z
         3935        BEGIN:STANDARD
         3936        DTSTART:19671029T020000
         3937        RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
         3938        TZOFFSETFROM:-0400
         3939        TZOFFSETTO:-0500
         3940        TZNAME:EST
         3941        END:STANDARD
         3942        BEGIN:DAYLIGHT
         3943        DTSTART:19870405T020000
         3944        RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z
         3945        TZOFFSETFROM:-0500
         3946        TZOFFSETTO:-0400
         3947        TZNAME:EDT
         3948        END:DAYLIGHT
         3949        BEGIN:DAYLIGHT
         3950        DTSTART:19990424T020000
         3951        RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=4
         3952        TZOFFSETFROM:-0500
         3953        TZOFFSETTO:-0400
         3954        TZNAME:EDT
         3955        END:DAYLIGHT
         3956        END:VTIMEZONE
         3957 
         3958 3.6.6.  Alarm Component
         3959 
         3960    Component Name:  VALARM
         3961 
         3962    Purpose:  Provide a grouping of component properties that define an
         3963       alarm.
         3964 
         3965    Format Definition:  A "VALARM" calendar component is defined by the
         3966       following notation:
         3967 
         3968        alarmc     = "BEGIN" ":" "VALARM" CRLF
         3969                     (audioprop / dispprop / emailprop)
         3970                     "END" ":" "VALARM" CRLF
         3971 
         3972        audioprop  = *(
         3973                   ;
         3974                   ; 'action' and 'trigger' are both REQUIRED,
         3975 
         3976 
         3977 
         3978 Desruisseaux                Standards Track                    [Page 71]
         3979 
         3980 RFC 5545                       iCalendar                  September 2009
         3981 
         3982 
         3983                   ; but MUST NOT occur more than once.
         3984                   ;
         3985                   action / trigger /
         3986                   ;
         3987                   ; 'duration' and 'repeat' are both OPTIONAL,
         3988                   ; and MUST NOT occur more than once each;
         3989                   ; but if one occurs, so MUST the other.
         3990                   ;
         3991                   duration / repeat /
         3992                   ;
         3993                   ; The following is OPTIONAL,
         3994                   ; but MUST NOT occur more than once.
         3995                   ;
         3996                   attach /
         3997                   ;
         3998                   ; The following is OPTIONAL,
         3999                   ; and MAY occur more than once.
         4000                   ;
         4001                   x-prop / iana-prop
         4002                   ;
         4003                   )
         4004 
         4005        dispprop   = *(
         4006                   ;
         4007                   ; The following are REQUIRED,
         4008                   ; but MUST NOT occur more than once.
         4009                   ;
         4010                   action / description / trigger /
         4011                   ;
         4012                   ; 'duration' and 'repeat' are both OPTIONAL,
         4013                   ; and MUST NOT occur more than once each;
         4014                   ; but if one occurs, so MUST the other.
         4015                   ;
         4016                   duration / repeat /
         4017                   ;
         4018                   ; The following is OPTIONAL,
         4019                   ; and MAY occur more than once.
         4020                   ;
         4021                   x-prop / iana-prop
         4022                   ;
         4023                   )
         4024 
         4025        emailprop  = *(
         4026                   ;
         4027                   ; The following are all REQUIRED,
         4028                   ; but MUST NOT occur more than once.
         4029                   ;
         4030                   action / description / trigger / summary /
         4031 
         4032 
         4033 
         4034 Desruisseaux                Standards Track                    [Page 72]
         4035 
         4036 RFC 5545                       iCalendar                  September 2009
         4037 
         4038 
         4039                   ;
         4040                   ; The following is REQUIRED,
         4041                   ; and MAY occur more than once.
         4042                   ;
         4043                   attendee /
         4044                   ;
         4045                   ; 'duration' and 'repeat' are both OPTIONAL,
         4046                   ; and MUST NOT occur more than once each;
         4047                   ; but if one occurs, so MUST the other.
         4048                   ;
         4049                   duration / repeat /
         4050                   ;
         4051                   ; The following are OPTIONAL,
         4052                   ; and MAY occur more than once.
         4053                   ;
         4054                   attach / x-prop / iana-prop
         4055                   ;
         4056                   )
         4057 
         4058    Description:  A "VALARM" calendar component is a grouping of
         4059       component properties that is a reminder or alarm for an event or a
         4060       to-do.  For example, it may be used to define a reminder for a
         4061       pending event or an overdue to-do.
         4062 
         4063       The "VALARM" calendar component MUST include the "ACTION" and
         4064       "TRIGGER" properties.  The "ACTION" property further constrains
         4065       the "VALARM" calendar component in the following ways:
         4066 
         4067       When the action is "AUDIO", the alarm can also include one and
         4068       only one "ATTACH" property, which MUST point to a sound resource,
         4069       which is rendered when the alarm is triggered.
         4070 
         4071       When the action is "DISPLAY", the alarm MUST also include a
         4072       "DESCRIPTION" property, which contains the text to be displayed
         4073       when the alarm is triggered.
         4074 
         4075       When the action is "EMAIL", the alarm MUST include a "DESCRIPTION"
         4076       property, which contains the text to be used as the message body,
         4077       a "SUMMARY" property, which contains the text to be used as the
         4078       message subject, and one or more "ATTENDEE" properties, which
         4079       contain the email address of attendees to receive the message.  It
         4080       can also include one or more "ATTACH" properties, which are
         4081       intended to be sent as message attachments.  When the alarm is
         4082       triggered, the email message is sent.
         4083 
         4084       The "VALARM" calendar component MUST only appear within either a
         4085       "VEVENT" or "VTODO" calendar component.  "VALARM" calendar
         4086       components cannot be nested.  Multiple mutually independent
         4087 
         4088 
         4089 
         4090 Desruisseaux                Standards Track                    [Page 73]
         4091 
         4092 RFC 5545                       iCalendar                  September 2009
         4093 
         4094 
         4095       "VALARM" calendar components can be specified for a single
         4096       "VEVENT" or "VTODO" calendar component.
         4097 
         4098       The "TRIGGER" property specifies when the alarm will be triggered.
         4099       The "TRIGGER" property specifies a duration prior to the start of
         4100       an event or a to-do.  The "TRIGGER" edge may be explicitly set to
         4101       be relative to the "START" or "END" of the event or to-do with the
         4102       "RELATED" parameter of the "TRIGGER" property.  The "TRIGGER"
         4103       property value type can alternatively be set to an absolute
         4104       calendar date with UTC time.
         4105 
         4106       In an alarm set to trigger on the "START" of an event or to-do,
         4107       the "DTSTART" property MUST be present in the associated event or
         4108       to-do.  In an alarm in a "VEVENT" calendar component set to
         4109       trigger on the "END" of the event, either the "DTEND" property
         4110       MUST be present, or the "DTSTART" and "DURATION" properties MUST
         4111       both be present.  In an alarm in a "VTODO" calendar component set
         4112       to trigger on the "END" of the to-do, either the "DUE" property
         4113       MUST be present, or the "DTSTART" and "DURATION" properties MUST
         4114       both be present.
         4115 
         4116       The alarm can be defined such that it triggers repeatedly.  A
         4117       definition of an alarm with a repeating trigger MUST include both
         4118       the "DURATION" and "REPEAT" properties.  The "DURATION" property
         4119       specifies the delay period, after which the alarm will repeat.
         4120       The "REPEAT" property specifies the number of additional
         4121       repetitions that the alarm will be triggered.  This repetition
         4122       count is in addition to the initial triggering of the alarm.  Both
         4123       of these properties MUST be present in order to specify a
         4124       repeating alarm.  If one of these two properties is absent, then
         4125       the alarm will not repeat beyond the initial trigger.
         4126 
         4127       The "ACTION" property is used within the "VALARM" calendar
         4128       component to specify the type of action invoked when the alarm is
         4129       triggered.  The "VALARM" properties provide enough information for
         4130       a specific action to be invoked.  It is typically the
         4131       responsibility of a "Calendar User Agent" (CUA) to deliver the
         4132       alarm in the specified fashion.  An "ACTION" property value of
         4133       AUDIO specifies an alarm that causes a sound to be played to alert
         4134       the user; DISPLAY specifies an alarm that causes a text message to
         4135       be displayed to the user; and EMAIL specifies an alarm that causes
         4136       an electronic email message to be delivered to one or more email
         4137       addresses.
         4138 
         4139       In an AUDIO alarm, if the optional "ATTACH" property is included,
         4140       it MUST specify an audio sound resource.  The intention is that
         4141       the sound will be played as the alarm effect.  If an "ATTACH"
         4142       property is specified that does not refer to a sound resource, or
         4143 
         4144 
         4145 
         4146 Desruisseaux                Standards Track                    [Page 74]
         4147 
         4148 RFC 5545                       iCalendar                  September 2009
         4149 
         4150 
         4151       if the specified sound resource cannot be rendered (because its
         4152       format is unsupported, or because it cannot be retrieved), then
         4153       the CUA or other entity responsible for playing the sound may
         4154       choose a fallback action, such as playing a built-in default
         4155       sound, or playing no sound at all.
         4156 
         4157       In a DISPLAY alarm, the intended alarm effect is for the text
         4158       value of the "DESCRIPTION" property to be displayed to the user.
         4159 
         4160       In an EMAIL alarm, the intended alarm effect is for an email
         4161       message to be composed and delivered to all the addresses
         4162       specified by the "ATTENDEE" properties in the "VALARM" calendar
         4163       component.  The "DESCRIPTION" property of the "VALARM" calendar
         4164       component MUST be used as the body text of the message, and the
         4165       "SUMMARY" property MUST be used as the subject text.  Any "ATTACH"
         4166       properties in the "VALARM" calendar component SHOULD be sent as
         4167       attachments to the message.
         4168 
         4169          Note: Implementations should carefully consider whether they
         4170          accept alarm components from untrusted sources, e.g., when
         4171          importing calendar objects from external sources.  One
         4172          reasonable policy is to always ignore alarm components that the
         4173          calendar user has not set herself, or at least ask for
         4174          confirmation in such a case.
         4175 
         4176    Example:  The following example is for a "VALARM" calendar component
         4177       that specifies an audio alarm that will sound at a precise time
         4178       and repeat 4 more times at 15-minute intervals:
         4179 
         4180        BEGIN:VALARM
         4181        TRIGGER;VALUE=DATE-TIME:19970317T133000Z
         4182        REPEAT:4
         4183        DURATION:PT15M
         4184        ACTION:AUDIO
         4185        ATTACH;FMTTYPE=audio/basic:ftp://example.com/pub/
         4186         sounds/bell-01.aud
         4187        END:VALARM
         4188 
         4189       The following example is for a "VALARM" calendar component that
         4190       specifies a display alarm that will trigger 30 minutes before the
         4191       scheduled start of the event or of the to-do it is associated with
         4192       and will repeat 2 more times at 15-minute intervals:
         4193 
         4194 
         4195 
         4196 
         4197 
         4198 
         4199 
         4200 
         4201 
         4202 Desruisseaux                Standards Track                    [Page 75]
         4203 
         4204 RFC 5545                       iCalendar                  September 2009
         4205 
         4206 
         4207        BEGIN:VALARM
         4208        TRIGGER:-PT30M
         4209        REPEAT:2
         4210        DURATION:PT15M
         4211        ACTION:DISPLAY
         4212        DESCRIPTION:Breakfast meeting with executive\n
         4213         team at 8:30 AM EST.
         4214        END:VALARM
         4215 
         4216       The following example is for a "VALARM" calendar component that
         4217       specifies an email alarm that will trigger 2 days before the
         4218       scheduled due DATE-TIME of a to-do with which it is associated.
         4219       It does not repeat.  The email has a subject, body, and attachment
         4220       link.
         4221 
         4222        BEGIN:VALARM
         4223        TRIGGER;RELATED=END:-P2D
         4224        ACTION:EMAIL
         4225        ATTENDEE:mailto:john_doe@example.com
         4226        SUMMARY:*** REMINDER: SEND AGENDA FOR WEEKLY STAFF MEETING ***
         4227        DESCRIPTION:A draft agenda needs to be sent out to the attendees
         4228          to the weekly managers meeting (MGR-LIST). Attached is a
         4229          pointer the document template for the agenda file.
         4230        ATTACH;FMTTYPE=application/msword:http://example.com/
         4231         templates/agenda.doc
         4232        END:VALARM
         4233 
         4234 3.7.  Calendar Properties
         4235 
         4236    The Calendar Properties are attributes that apply to the iCalendar
         4237    object, as a whole.  These properties do not appear within a calendar
         4238    component.  They SHOULD be specified after the "BEGIN:VCALENDAR"
         4239    delimiter string and prior to any calendar component.
         4240 
         4241 3.7.1.  Calendar Scale
         4242 
         4243    Property Name:  CALSCALE
         4244 
         4245    Purpose:  This property defines the calendar scale used for the
         4246       calendar information specified in the iCalendar object.
         4247 
         4248    Value Type:  TEXT
         4249 
         4250    Property Parameters:  IANA and non-standard property parameters can
         4251       be specified on this property.
         4252 
         4253    Conformance:  This property can be specified once in an iCalendar
         4254       object.  The default value is "GREGORIAN".
         4255 
         4256 
         4257 
         4258 Desruisseaux                Standards Track                    [Page 76]
         4259 
         4260 RFC 5545                       iCalendar                  September 2009
         4261 
         4262 
         4263    Description:  This memo is based on the Gregorian calendar scale.
         4264       The Gregorian calendar scale is assumed if this property is not
         4265       specified in the iCalendar object.  It is expected that other
         4266       calendar scales will be defined in other specifications or by
         4267       future versions of this memo.
         4268 
         4269    Format Definition:  This property is defined by the following
         4270       notation:
         4271 
         4272        calscale   = "CALSCALE" calparam ":" calvalue CRLF
         4273 
         4274        calparam   = *(";" other-param)
         4275 
         4276        calvalue   = "GREGORIAN"
         4277 
         4278    Example:  The following is an example of this property:
         4279 
         4280        CALSCALE:GREGORIAN
         4281 
         4282 3.7.2.  Method
         4283 
         4284    Property Name:  METHOD
         4285 
         4286    Purpose:  This property defines the iCalendar object method
         4287       associated with the calendar object.
         4288 
         4289    Value Type:  TEXT
         4290 
         4291    Property Parameters:  IANA and non-standard property parameters can
         4292       be specified on this property.
         4293 
         4294    Conformance:  This property can be specified once in an iCalendar
         4295       object.
         4296 
         4297    Description:  When used in a MIME message entity, the value of this
         4298       property MUST be the same as the Content-Type "method" parameter
         4299       value.  If either the "METHOD" property or the Content-Type
         4300       "method" parameter is specified, then the other MUST also be
         4301       specified.
         4302 
         4303       No methods are defined by this specification.  This is the subject
         4304       of other specifications, such as the iCalendar Transport-
         4305       independent Interoperability Protocol (iTIP) defined by [2446bis].
         4306 
         4307       If this property is not present in the iCalendar object, then a
         4308       scheduling transaction MUST NOT be assumed.  In such cases, the
         4309       iCalendar object is merely being used to transport a snapshot of
         4310 
         4311 
         4312 
         4313 
         4314 Desruisseaux                Standards Track                    [Page 77]
         4315 
         4316 RFC 5545                       iCalendar                  September 2009
         4317 
         4318 
         4319       some calendar information; without the intention of conveying a
         4320       scheduling semantic.
         4321 
         4322    Format Definition:  This property is defined by the following
         4323       notation:
         4324 
         4325        method     = "METHOD" metparam ":" metvalue CRLF
         4326 
         4327        metparam   = *(";" other-param)
         4328 
         4329        metvalue   = iana-token
         4330 
         4331    Example:  The following is a hypothetical example of this property to
         4332       convey that the iCalendar object is a scheduling request:
         4333 
         4334        METHOD:REQUEST
         4335 
         4336 3.7.3.  Product Identifier
         4337 
         4338    Property Name:  PRODID
         4339 
         4340    Purpose:  This property specifies the identifier for the product that
         4341       created the iCalendar object.
         4342 
         4343    Value Type:  TEXT
         4344 
         4345    Property Parameters:  IANA and non-standard property parameters can
         4346       be specified on this property.
         4347 
         4348    Conformance:  The property MUST be specified once in an iCalendar
         4349       object.
         4350 
         4351    Description:  The vendor of the implementation SHOULD assure that
         4352       this is a globally unique identifier; using some technique such as
         4353       an FPI value, as defined in [ISO.9070.1991].
         4354 
         4355       This property SHOULD NOT be used to alter the interpretation of an
         4356       iCalendar object beyond the semantics specified in this memo.  For
         4357       example, it is not to be used to further the understanding of non-
         4358       standard properties.
         4359 
         4360    Format Definition:  This property is defined by the following
         4361       notation:
         4362 
         4363        prodid     = "PRODID" pidparam ":" pidvalue CRLF
         4364 
         4365        pidparam   = *(";" other-param)
         4366 
         4367 
         4368 
         4369 
         4370 Desruisseaux                Standards Track                    [Page 78]
         4371 
         4372 RFC 5545                       iCalendar                  September 2009
         4373 
         4374 
         4375        pidvalue   = text
         4376        ;Any text that describes the product and version
         4377        ;and that is generally assured of being unique.
         4378 
         4379    Example:  The following is an example of this property.  It does not
         4380       imply that English is the default language.
         4381 
         4382        PRODID:-//ABC Corporation//NONSGML My Product//EN
         4383 
         4384 3.7.4.  Version
         4385 
         4386    Property Name:  VERSION
         4387 
         4388    Purpose:  This property specifies the identifier corresponding to the
         4389       highest version number or the minimum and maximum range of the
         4390       iCalendar specification that is required in order to interpret the
         4391       iCalendar object.
         4392 
         4393    Value Type:  TEXT
         4394 
         4395    Property Parameters:  IANA and non-standard property parameters can
         4396       be specified on this property.
         4397 
         4398    Conformance:  This property MUST be specified once in an iCalendar
         4399       object.
         4400 
         4401    Description:  A value of "2.0" corresponds to this memo.
         4402 
         4403    Format Definition:  This property is defined by the following
         4404       notation:
         4405 
         4406        version    = "VERSION" verparam ":" vervalue CRLF
         4407 
         4408        verparam   = *(";" other-param)
         4409 
         4410        vervalue   = "2.0"         ;This memo
         4411                   / maxver
         4412                   / (minver ";" maxver)
         4413 
         4414        minver     = <A IANA-registered iCalendar version identifier>
         4415        ;Minimum iCalendar version needed to parse the iCalendar object.
         4416 
         4417        maxver     = <A IANA-registered iCalendar version identifier>
         4418        ;Maximum iCalendar version needed to parse the iCalendar object.
         4419 
         4420 
         4421 
         4422 
         4423 
         4424 
         4425 
         4426 Desruisseaux                Standards Track                    [Page 79]
         4427 
         4428 RFC 5545                       iCalendar                  September 2009
         4429 
         4430 
         4431    Example:  The following is an example of this property:
         4432 
         4433        VERSION:2.0
         4434 
         4435 3.8.  Component Properties
         4436 
         4437    The following properties can appear within calendar components, as
         4438    specified by each component property definition.
         4439 
         4440 3.8.1.  Descriptive Component Properties
         4441 
         4442    The following properties specify descriptive information about
         4443    calendar components.
         4444 
         4445 3.8.1.1.  Attachment
         4446 
         4447    Property Name:  ATTACH
         4448 
         4449    Purpose:  This property provides the capability to associate a
         4450       document object with a calendar component.
         4451 
         4452    Value Type:  The default value type for this property is URI.  The
         4453       value type can also be set to BINARY to indicate inline binary
         4454       encoded content information.
         4455 
         4456    Property Parameters:  IANA, non-standard, inline encoding, and value
         4457       data type property parameters can be specified on this property.
         4458       The format type parameter can be specified on this property and is
         4459       RECOMMENDED for inline binary encoded content information.
         4460 
         4461    Conformance:  This property can be specified multiple times in a
         4462       "VEVENT", "VTODO", "VJOURNAL", or "VALARM" calendar component with
         4463       the exception of AUDIO alarm that only allows this property to
         4464       occur once.
         4465 
         4466    Description:  This property is used in "VEVENT", "VTODO", and
         4467       "VJOURNAL" calendar components to associate a resource (e.g.,
         4468       document) with the calendar component.  This property is used in
         4469       "VALARM" calendar components to specify an audio sound resource or
         4470       an email message attachment.  This property can be specified as a
         4471       URI pointing to a resource or as inline binary encoded content.
         4472 
         4473       When this property is specified as inline binary encoded content,
         4474       calendar applications MAY attempt to guess the media type of the
         4475       resource via inspection of its content if and only if the media
         4476       type of the resource is not given by the "FMTTYPE" parameter.  If
         4477       the media type remains unknown, calendar applications SHOULD treat
         4478       it as type "application/octet-stream".
         4479 
         4480 
         4481 
         4482 Desruisseaux                Standards Track                    [Page 80]
         4483 
         4484 RFC 5545                       iCalendar                  September 2009
         4485 
         4486 
         4487    Format Definition:  This property is defined by the following
         4488       notation:
         4489 
         4490        attach     = "ATTACH" attachparam ( ":" uri ) /
         4491                     (
         4492                       ";" "ENCODING" "=" "BASE64"
         4493                       ";" "VALUE" "=" "BINARY"
         4494                       ":" binary
         4495                     )
         4496                     CRLF
         4497 
         4498        attachparam = *(
         4499                    ;
         4500                    ; The following is OPTIONAL for a URI value,
         4501                    ; RECOMMENDED for a BINARY value,
         4502                    ; and MUST NOT occur more than once.
         4503                    ;
         4504                    (";" fmttypeparam) /
         4505                    ;
         4506                    ; The following is OPTIONAL,
         4507                    ; and MAY occur more than once.
         4508                    ;
         4509                    (";" other-param)
         4510                    ;
         4511                    )
         4512 
         4513    Example:  The following are examples of this property:
         4514 
         4515        ATTACH:CID:jsmith.part3.960817T083000.xyzMail@example.com
         4516 
         4517        ATTACH;FMTTYPE=application/postscript:ftp://example.com/pub/
         4518         reports/r-960812.ps
         4519 
         4520 3.8.1.2.  Categories
         4521 
         4522    Property Name:  CATEGORIES
         4523 
         4524    Purpose:  This property defines the categories for a calendar
         4525       component.
         4526 
         4527    Value Type:  TEXT
         4528 
         4529    Property Parameters:  IANA, non-standard, and language property
         4530       parameters can be specified on this property.
         4531 
         4532    Conformance:  The property can be specified within "VEVENT", "VTODO",
         4533       or "VJOURNAL" calendar components.
         4534 
         4535 
         4536 
         4537 
         4538 Desruisseaux                Standards Track                    [Page 81]
         4539 
         4540 RFC 5545                       iCalendar                  September 2009
         4541 
         4542 
         4543    Description:  This property is used to specify categories or subtypes
         4544       of the calendar component.  The categories are useful in searching
         4545       for a calendar component of a particular type and category.
         4546       Within the "VEVENT", "VTODO", or "VJOURNAL" calendar components,
         4547       more than one category can be specified as a COMMA-separated list
         4548       of categories.
         4549 
         4550    Format Definition:  This property is defined by the following
         4551       notation:
         4552 
         4553        categories = "CATEGORIES" catparam ":" text *("," text)
         4554                     CRLF
         4555 
         4556        catparam   = *(
         4557                   ;
         4558                   ; The following is OPTIONAL,
         4559                   ; but MUST NOT occur more than once.
         4560                   ;
         4561                   (";" languageparam ) /
         4562                   ;
         4563                   ; The following is OPTIONAL,
         4564                   ; and MAY occur more than once.
         4565                   ;
         4566                   (";" other-param)
         4567                   ;
         4568                   )
         4569 
         4570    Example:  The following are examples of this property:
         4571 
         4572        CATEGORIES:APPOINTMENT,EDUCATION
         4573 
         4574        CATEGORIES:MEETING
         4575 
         4576 3.8.1.3.  Classification
         4577 
         4578    Property Name:  CLASS
         4579 
         4580    Purpose:  This property defines the access classification for a
         4581       calendar component.
         4582 
         4583    Value Type:  TEXT
         4584 
         4585    Property Parameters:  IANA and non-standard property parameters can
         4586       be specified on this property.
         4587 
         4588    Conformance:  The property can be specified once in a "VEVENT",
         4589       "VTODO", or "VJOURNAL" calendar components.
         4590 
         4591 
         4592 
         4593 
         4594 Desruisseaux                Standards Track                    [Page 82]
         4595 
         4596 RFC 5545                       iCalendar                  September 2009
         4597 
         4598 
         4599    Description:  An access classification is only one component of the
         4600       general security system within a calendar application.  It
         4601       provides a method of capturing the scope of the access the
         4602       calendar owner intends for information within an individual
         4603       calendar entry.  The access classification of an individual
         4604       iCalendar component is useful when measured along with the other
         4605       security components of a calendar system (e.g., calendar user
         4606       authentication, authorization, access rights, access role, etc.).
         4607       Hence, the semantics of the individual access classifications
         4608       cannot be completely defined by this memo alone.  Additionally,
         4609       due to the "blind" nature of most exchange processes using this
         4610       memo, these access classifications cannot serve as an enforcement
         4611       statement for a system receiving an iCalendar object.  Rather,
         4612       they provide a method for capturing the intention of the calendar
         4613       owner for the access to the calendar component.  If not specified
         4614       in a component that allows this property, the default value is
         4615       PUBLIC.  Applications MUST treat x-name and iana-token values they
         4616       don't recognize the same way as they would the PRIVATE value.
         4617 
         4618    Format Definition:  This property is defined by the following
         4619       notation:
         4620 
         4621        class      = "CLASS" classparam ":" classvalue CRLF
         4622 
         4623        classparam = *(";" other-param)
         4624 
         4625        classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token
         4626                   / x-name
         4627        ;Default is PUBLIC
         4628 
         4629    Example:  The following is an example of this property:
         4630 
         4631        CLASS:PUBLIC
         4632 
         4633 3.8.1.4.  Comment
         4634 
         4635    Property Name:  COMMENT
         4636 
         4637    Purpose:  This property specifies non-processing information intended
         4638       to provide a comment to the calendar user.
         4639 
         4640    Value Type:  TEXT
         4641 
         4642    Property Parameters:  IANA, non-standard, alternate text
         4643       representation, and language property parameters can be specified
         4644       on this property.
         4645 
         4646 
         4647 
         4648 
         4649 
         4650 Desruisseaux                Standards Track                    [Page 83]
         4651 
         4652 RFC 5545                       iCalendar                  September 2009
         4653 
         4654 
         4655    Conformance:  This property can be specified multiple times in
         4656       "VEVENT", "VTODO", "VJOURNAL", and "VFREEBUSY" calendar components
         4657       as well as in the "STANDARD" and "DAYLIGHT" sub-components.
         4658 
         4659    Description:  This property is used to specify a comment to the
         4660       calendar user.
         4661 
         4662    Format Definition:  This property is defined by the following
         4663       notation:
         4664 
         4665        comment    = "COMMENT" commparam ":" text CRLF
         4666 
         4667        commparam  = *(
         4668                   ;
         4669                   ; The following are OPTIONAL,
         4670                   ; but MUST NOT occur more than once.
         4671                   ;
         4672                   (";" altrepparam) / (";" languageparam) /
         4673                   ;
         4674                   ; The following is OPTIONAL,
         4675                   ; and MAY occur more than once.
         4676                   ;
         4677                   (";" other-param)
         4678                   ;
         4679                   )
         4680 
         4681    Example:  The following is an example of this property:
         4682 
         4683        COMMENT:The meeting really needs to include both ourselves
         4684          and the customer. We can't hold this meeting without them.
         4685          As a matter of fact\, the venue for the meeting ought to be at
         4686          their site. - - John
         4687 
         4688 3.8.1.5.  Description
         4689 
         4690    Property Name:  DESCRIPTION
         4691 
         4692    Purpose:  This property provides a more complete description of the
         4693       calendar component than that provided by the "SUMMARY" property.
         4694 
         4695    Value Type:  TEXT
         4696 
         4697    Property Parameters:  IANA, non-standard, alternate text
         4698       representation, and language property parameters can be specified
         4699       on this property.
         4700 
         4701 
         4702 
         4703 
         4704 
         4705 
         4706 Desruisseaux                Standards Track                    [Page 84]
         4707 
         4708 RFC 5545                       iCalendar                  September 2009
         4709 
         4710 
         4711    Conformance:  The property can be specified in the "VEVENT", "VTODO",
         4712       "VJOURNAL", or "VALARM" calendar components.  The property can be
         4713       specified multiple times only within a "VJOURNAL" calendar
         4714       component.
         4715 
         4716    Description:  This property is used in the "VEVENT" and "VTODO" to
         4717       capture lengthy textual descriptions associated with the activity.
         4718 
         4719       This property is used in the "VJOURNAL" calendar component to
         4720       capture one or more textual journal entries.
         4721 
         4722       This property is used in the "VALARM" calendar component to
         4723       capture the display text for a DISPLAY category of alarm, and to
         4724       capture the body text for an EMAIL category of alarm.
         4725 
         4726    Format Definition:  This property is defined by the following
         4727       notation:
         4728 
         4729        description = "DESCRIPTION" descparam ":" text CRLF
         4730 
         4731        descparam   = *(
         4732                    ;
         4733                    ; The following are OPTIONAL,
         4734                    ; but MUST NOT occur more than once.
         4735                    ;
         4736                    (";" altrepparam) / (";" languageparam) /
         4737                    ;
         4738                    ; The following is OPTIONAL,
         4739                    ; and MAY occur more than once.
         4740                    ;
         4741                    (";" other-param)
         4742                    ;
         4743                    )
         4744 
         4745    Example:  The following is an example of this property with formatted
         4746       line breaks in the property value:
         4747 
         4748        DESCRIPTION:Meeting to provide technical review for "Phoenix"
         4749          design.\nHappy Face Conference Room. Phoenix design team
         4750          MUST attend this meeting.\nRSVP to team leader.
         4751 
         4752 3.8.1.6.  Geographic Position
         4753 
         4754    Property Name:  GEO
         4755 
         4756    Purpose:  This property specifies information related to the global
         4757       position for the activity specified by a calendar component.
         4758 
         4759 
         4760 
         4761 
         4762 Desruisseaux                Standards Track                    [Page 85]
         4763 
         4764 RFC 5545                       iCalendar                  September 2009
         4765 
         4766 
         4767    Value Type:  FLOAT.  The value MUST be two SEMICOLON-separated FLOAT
         4768       values.
         4769 
         4770    Property Parameters:  IANA and non-standard property parameters can
         4771       be specified on this property.
         4772 
         4773    Conformance:  This property can be specified in "VEVENT" or "VTODO"
         4774       calendar components.
         4775 
         4776    Description:  This property value specifies latitude and longitude,
         4777       in that order (i.e., "LAT LON" ordering).  The longitude
         4778       represents the location east or west of the prime meridian as a
         4779       positive or negative real number, respectively.  The longitude and
         4780       latitude values MAY be specified up to six decimal places, which
         4781       will allow for accuracy to within one meter of geographical
         4782       position.  Receiving applications MUST accept values of this
         4783       precision and MAY truncate values of greater precision.
         4784 
         4785       Values for latitude and longitude shall be expressed as decimal
         4786       fractions of degrees.  Whole degrees of latitude shall be
         4787       represented by a two-digit decimal number ranging from 0 through
         4788       90.  Whole degrees of longitude shall be represented by a decimal
         4789       number ranging from 0 through 180.  When a decimal fraction of a
         4790       degree is specified, it shall be separated from the whole number
         4791       of degrees by a decimal point.
         4792 
         4793       Latitudes north of the equator shall be specified by a plus sign
         4794       (+), or by the absence of a minus sign (-), preceding the digits
         4795       designating degrees.  Latitudes south of the Equator shall be
         4796       designated by a minus sign (-) preceding the digits designating
         4797       degrees.  A point on the Equator shall be assigned to the Northern
         4798       Hemisphere.
         4799 
         4800       Longitudes east of the prime meridian shall be specified by a plus
         4801       sign (+), or by the absence of a minus sign (-), preceding the
         4802       digits designating degrees.  Longitudes west of the meridian shall
         4803       be designated by minus sign (-) preceding the digits designating
         4804       degrees.  A point on the prime meridian shall be assigned to the
         4805       Eastern Hemisphere.  A point on the 180th meridian shall be
         4806       assigned to the Western Hemisphere.  One exception to this last
         4807       convention is permitted.  For the special condition of describing
         4808       a band of latitude around the earth, the East Bounding Coordinate
         4809       data element shall be assigned the value +180 (180) degrees.
         4810 
         4811       Any spatial address with a latitude of +90 (90) or -90 degrees
         4812       will specify the position at the North or South Pole,
         4813       respectively.  The component for longitude may have any legal
         4814       value.
         4815 
         4816 
         4817 
         4818 Desruisseaux                Standards Track                    [Page 86]
         4819 
         4820 RFC 5545                       iCalendar                  September 2009
         4821 
         4822 
         4823       With the exception of the special condition described above, this
         4824       form is specified in [ANSI INCITS 61-1986].
         4825 
         4826       The simple formula for converting degrees-minutes-seconds into
         4827       decimal degrees is:
         4828 
         4829       decimal = degrees + minutes/60 + seconds/3600.
         4830 
         4831    Format Definition:  This property is defined by the following
         4832       notation:
         4833 
         4834        geo        = "GEO" geoparam ":" geovalue CRLF
         4835 
         4836        geoparam   = *(";" other-param)
         4837 
         4838        geovalue   = float ";" float
         4839        ;Latitude and Longitude components
         4840 
         4841    Example:  The following is an example of this property:
         4842 
         4843        GEO:37.386013;-122.082932
         4844 
         4845 3.8.1.7.  Location
         4846 
         4847    Property Name:  LOCATION
         4848 
         4849    Purpose:  This property defines the intended venue for the activity
         4850       defined by a calendar component.
         4851 
         4852    Value Type:  TEXT
         4853 
         4854    Property Parameters:  IANA, non-standard, alternate text
         4855       representation, and language property parameters can be specified
         4856       on this property.
         4857 
         4858    Conformance:  This property can be specified in "VEVENT" or "VTODO"
         4859       calendar component.
         4860 
         4861    Description:  Specific venues such as conference or meeting rooms may
         4862       be explicitly specified using this property.  An alternate
         4863       representation may be specified that is a URI that points to
         4864       directory information with more structured specification of the
         4865       location.  For example, the alternate representation may specify
         4866       either an LDAP URL [RFC4516] pointing to an LDAP server entry or a
         4867       CID URL [RFC2392] pointing to a MIME body part containing a
         4868       Virtual-Information Card (vCard) [RFC2426] for the location.
         4869 
         4870 
         4871 
         4872 
         4873 
         4874 Desruisseaux                Standards Track                    [Page 87]
         4875 
         4876 RFC 5545                       iCalendar                  September 2009
         4877 
         4878 
         4879    Format Definition:  This property is defined by the following
         4880       notation:
         4881 
         4882        location   = "LOCATION"  locparam ":" text CRLF
         4883 
         4884        locparam   = *(
         4885                   ;
         4886                   ; The following are OPTIONAL,
         4887                   ; but MUST NOT occur more than once.
         4888                   ;
         4889                   (";" altrepparam) / (";" languageparam) /
         4890                   ;
         4891                   ; The following is OPTIONAL,
         4892                   ; and MAY occur more than once.
         4893                   ;
         4894                   (";" other-param)
         4895                   ;
         4896                   )
         4897 
         4898    Example:  The following are some examples of this property:
         4899 
         4900        LOCATION:Conference Room - F123\, Bldg. 002
         4901 
         4902        LOCATION;ALTREP="http://xyzcorp.com/conf-rooms/f123.vcf":
         4903         Conference Room - F123\, Bldg. 002
         4904 
         4905 3.8.1.8.  Percent Complete
         4906 
         4907    Property Name:  PERCENT-COMPLETE
         4908 
         4909    Purpose:  This property is used by an assignee or delegatee of a
         4910       to-do to convey the percent completion of a to-do to the
         4911       "Organizer".
         4912 
         4913    Value Type:  INTEGER
         4914 
         4915    Property Parameters:  IANA and non-standard property parameters can
         4916       be specified on this property.
         4917 
         4918    Conformance:  This property can be specified once in a "VTODO"
         4919       calendar component.
         4920 
         4921    Description:  The property value is a positive integer between 0 and
         4922       100.  A value of "0" indicates the to-do has not yet been started.
         4923       A value of "100" indicates that the to-do has been completed.
         4924       Integer values in between indicate the percent partially complete.
         4925 
         4926 
         4927 
         4928 
         4929 
         4930 Desruisseaux                Standards Track                    [Page 88]
         4931 
         4932 RFC 5545                       iCalendar                  September 2009
         4933 
         4934 
         4935       When a to-do is assigned to multiple individuals, the property
         4936       value indicates the percent complete for that portion of the to-do
         4937       assigned to the assignee or delegatee.  For example, if a to-do is
         4938       assigned to both individuals "A" and "B".  A reply from "A" with a
         4939       percent complete of "70" indicates that "A" has completed 70% of
         4940       the to-do assigned to them.  A reply from "B" with a percent
         4941       complete of "50" indicates "B" has completed 50% of the to-do
         4942       assigned to them.
         4943 
         4944    Format Definition:  This property is defined by the following
         4945       notation:
         4946 
         4947        percent = "PERCENT-COMPLETE" pctparam ":" integer CRLF
         4948 
         4949        pctparam   = *(";" other-param)
         4950 
         4951    Example:  The following is an example of this property to show 39%
         4952       completion:
         4953 
         4954        PERCENT-COMPLETE:39
         4955 
         4956 3.8.1.9.  Priority
         4957 
         4958    Property Name:  PRIORITY
         4959 
         4960    Purpose:  This property defines the relative priority for a calendar
         4961       component.
         4962 
         4963    Value Type:  INTEGER
         4964 
         4965    Property Parameters:  IANA and non-standard property parameters can
         4966       be specified on this property.
         4967 
         4968    Conformance:  This property can be specified in "VEVENT" and "VTODO"
         4969       calendar components.
         4970 
         4971    Description:  This priority is specified as an integer in the range 0
         4972       to 9.  A value of 0 specifies an undefined priority.  A value of 1
         4973       is the highest priority.  A value of 2 is the second highest
         4974       priority.  Subsequent numbers specify a decreasing ordinal
         4975       priority.  A value of 9 is the lowest priority.
         4976 
         4977       A CUA with a three-level priority scheme of "HIGH", "MEDIUM", and
         4978       "LOW" is mapped into this property such that a property value in
         4979       the range of 1 to 4 specifies "HIGH" priority.  A value of 5 is
         4980       the normal or "MEDIUM" priority.  A value in the range of 6 to 9
         4981       is "LOW" priority.
         4982 
         4983 
         4984 
         4985 
         4986 Desruisseaux                Standards Track                    [Page 89]
         4987 
         4988 RFC 5545                       iCalendar                  September 2009
         4989 
         4990 
         4991       A CUA with a priority schema of "A1", "A2", "A3", "B1", "B2", ...,
         4992       "C3" is mapped into this property such that a property value of 1
         4993       specifies "A1", a property value of 2 specifies "A2", a property
         4994       value of 3 specifies "A3", and so forth up to a property value of
         4995       9 specifies "C3".
         4996 
         4997       Other integer values are reserved for future use.
         4998 
         4999       Within a "VEVENT" calendar component, this property specifies a
         5000       priority for the event.  This property may be useful when more
         5001       than one event is scheduled for a given time period.
         5002 
         5003       Within a "VTODO" calendar component, this property specified a
         5004       priority for the to-do.  This property is useful in prioritizing
         5005       multiple action items for a given time period.
         5006 
         5007    Format Definition:  This property is defined by the following
         5008       notation:
         5009 
         5010        priority   = "PRIORITY" prioparam ":" priovalue CRLF
         5011        ;Default is zero (i.e., undefined).
         5012 
         5013        prioparam  = *(";" other-param)
         5014 
         5015        priovalue   = integer       ;Must be in the range [0..9]
         5016           ; All other values are reserved for future use.
         5017 
         5018    Example:  The following is an example of a property with the highest
         5019       priority:
         5020 
         5021        PRIORITY:1
         5022 
         5023       The following is an example of a property with a next highest
         5024       priority:
         5025 
         5026        PRIORITY:2
         5027 
         5028       The following is an example of a property with no priority.  This
         5029       is equivalent to not specifying the "PRIORITY" property:
         5030 
         5031        PRIORITY:0
         5032 
         5033 
         5034 
         5035 
         5036 
         5037 
         5038 
         5039 
         5040 
         5041 
         5042 Desruisseaux                Standards Track                    [Page 90]
         5043 
         5044 RFC 5545                       iCalendar                  September 2009
         5045 
         5046 
         5047 3.8.1.10.  Resources
         5048 
         5049    Property Name:  RESOURCES
         5050 
         5051    Purpose:  This property defines the equipment or resources
         5052       anticipated for an activity specified by a calendar component.
         5053 
         5054    Value Type:  TEXT
         5055 
         5056    Property Parameters:  IANA, non-standard, alternate text
         5057       representation, and language property parameters can be specified
         5058       on this property.
         5059 
         5060    Conformance:  This property can be specified once in "VEVENT" or
         5061       "VTODO" calendar component.
         5062 
         5063    Description:  The property value is an arbitrary text.  More than one
         5064       resource can be specified as a COMMA-separated list of resources.
         5065 
         5066    Format Definition:  This property is defined by the following
         5067       notation:
         5068 
         5069        resources  = "RESOURCES" resrcparam ":" text *("," text) CRLF
         5070 
         5071        resrcparam = *(
         5072                   ;
         5073                   ; The following are OPTIONAL,
         5074                   ; but MUST NOT occur more than once.
         5075                   ;
         5076                   (";" altrepparam) / (";" languageparam) /
         5077                   ;
         5078                   ; The following is OPTIONAL,
         5079                   ; and MAY occur more than once.
         5080                   ;
         5081                   (";" other-param)
         5082                   ;
         5083                   )
         5084 
         5085    Example:  The following is an example of this property:
         5086 
         5087        RESOURCES:EASEL,PROJECTOR,VCR
         5088 
         5089        RESOURCES;LANGUAGE=fr:Nettoyeur haute pression
         5090 
         5091 
         5092 
         5093 
         5094 
         5095 
         5096 
         5097 
         5098 Desruisseaux                Standards Track                    [Page 91]
         5099 
         5100 RFC 5545                       iCalendar                  September 2009
         5101 
         5102 
         5103 3.8.1.11.  Status
         5104 
         5105    Property Name:  STATUS
         5106 
         5107    Purpose:  This property defines the overall status or confirmation
         5108       for the calendar component.
         5109 
         5110    Value Type:  TEXT
         5111 
         5112    Property Parameters:  IANA and non-standard property parameters can
         5113       be specified on this property.
         5114 
         5115    Conformance:  This property can be specified once in "VEVENT",
         5116       "VTODO", or "VJOURNAL" calendar components.
         5117 
         5118    Description:  In a group-scheduled calendar component, the property
         5119       is used by the "Organizer" to provide a confirmation of the event
         5120       to the "Attendees".  For example in a "VEVENT" calendar component,
         5121       the "Organizer" can indicate that a meeting is tentative,
         5122       confirmed, or cancelled.  In a "VTODO" calendar component, the
         5123       "Organizer" can indicate that an action item needs action, is
         5124       completed, is in process or being worked on, or has been
         5125       cancelled.  In a "VJOURNAL" calendar component, the "Organizer"
         5126       can indicate that a journal entry is draft, final, or has been
         5127       cancelled or removed.
         5128 
         5129    Format Definition:  This property is defined by the following
         5130       notation:
         5131 
         5132        status          = "STATUS" statparam ":" statvalue CRLF
         5133 
         5134        statparam       = *(";" other-param)
         5135 
         5136        statvalue       = (statvalue-event
         5137                        /  statvalue-todo
         5138                        /  statvalue-jour)
         5139 
         5140        statvalue-event = "TENTATIVE"    ;Indicates event is tentative.
         5141                        / "CONFIRMED"    ;Indicates event is definite.
         5142                        / "CANCELLED"    ;Indicates event was cancelled.
         5143        ;Status values for a "VEVENT"
         5144 
         5145        statvalue-todo  = "NEEDS-ACTION" ;Indicates to-do needs action.
         5146                        / "COMPLETED"    ;Indicates to-do completed.
         5147                        / "IN-PROCESS"   ;Indicates to-do in process of.
         5148                        / "CANCELLED"    ;Indicates to-do was cancelled.
         5149        ;Status values for "VTODO".
         5150 
         5151 
         5152 
         5153 
         5154 Desruisseaux                Standards Track                    [Page 92]
         5155 
         5156 RFC 5545                       iCalendar                  September 2009
         5157 
         5158 
         5159        statvalue-jour  = "DRAFT"        ;Indicates journal is draft.
         5160                        / "FINAL"        ;Indicates journal is final.
         5161                        / "CANCELLED"    ;Indicates journal is removed.
         5162       ;Status values for "VJOURNAL".
         5163 
         5164    Example:  The following is an example of this property for a "VEVENT"
         5165       calendar component:
         5166 
         5167        STATUS:TENTATIVE
         5168 
         5169       The following is an example of this property for a "VTODO"
         5170       calendar component:
         5171 
         5172        STATUS:NEEDS-ACTION
         5173 
         5174       The following is an example of this property for a "VJOURNAL"
         5175       calendar component:
         5176 
         5177        STATUS:DRAFT
         5178 
         5179 3.8.1.12.  Summary
         5180 
         5181    Property Name:  SUMMARY
         5182 
         5183    Purpose:  This property defines a short summary or subject for the
         5184       calendar component.
         5185 
         5186    Value Type:  TEXT
         5187 
         5188    Property Parameters:  IANA, non-standard, alternate text
         5189       representation, and language property parameters can be specified
         5190       on this property.
         5191 
         5192    Conformance:  The property can be specified in "VEVENT", "VTODO",
         5193       "VJOURNAL", or "VALARM" calendar components.
         5194 
         5195    Description:  This property is used in the "VEVENT", "VTODO", and
         5196       "VJOURNAL" calendar components to capture a short, one-line
         5197       summary about the activity or journal entry.
         5198 
         5199       This property is used in the "VALARM" calendar component to
         5200       capture the subject of an EMAIL category of alarm.
         5201 
         5202    Format Definition:  This property is defined by the following
         5203       notation:
         5204 
         5205 
         5206 
         5207 
         5208 
         5209 
         5210 Desruisseaux                Standards Track                    [Page 93]
         5211 
         5212 RFC 5545                       iCalendar                  September 2009
         5213 
         5214 
         5215        summary    = "SUMMARY" summparam ":" text CRLF
         5216 
         5217        summparam  = *(
         5218                   ;
         5219                   ; The following are OPTIONAL,
         5220                   ; but MUST NOT occur more than once.
         5221                   ;
         5222                   (";" altrepparam) / (";" languageparam) /
         5223                   ;
         5224                   ; The following is OPTIONAL,
         5225                   ; and MAY occur more than once.
         5226                   ;
         5227                   (";" other-param)
         5228                   ;
         5229                   )
         5230 
         5231    Example:  The following is an example of this property:
         5232 
         5233        SUMMARY:Department Party
         5234 
         5235 3.8.2.  Date and Time Component Properties
         5236 
         5237    The following properties specify date and time related information in
         5238    calendar components.
         5239 
         5240 3.8.2.1.  Date-Time Completed
         5241 
         5242    Property Name:  COMPLETED
         5243 
         5244    Purpose:  This property defines the date and time that a to-do was
         5245       actually completed.
         5246 
         5247    Value Type:  DATE-TIME
         5248 
         5249    Property Parameters:  IANA and non-standard property parameters can
         5250       be specified on this property.
         5251 
         5252    Conformance:  The property can be specified in a "VTODO" calendar
         5253       component.  The value MUST be specified as a date with UTC time.
         5254 
         5255    Description:  This property defines the date and time that a to-do
         5256       was actually completed.
         5257 
         5258    Format Definition:  This property is defined by the following
         5259       notation:
         5260 
         5261 
         5262 
         5263 
         5264 
         5265 
         5266 Desruisseaux                Standards Track                    [Page 94]
         5267 
         5268 RFC 5545                       iCalendar                  September 2009
         5269 
         5270 
         5271        completed  = "COMPLETED" compparam ":" date-time CRLF
         5272 
         5273        compparam  = *(";" other-param)
         5274 
         5275    Example:  The following is an example of this property:
         5276 
         5277     COMPLETED:19960401T150000Z
         5278 
         5279 3.8.2.2.  Date-Time End
         5280 
         5281    Property Name:  DTEND
         5282 
         5283    Purpose:  This property specifies the date and time that a calendar
         5284       component ends.
         5285 
         5286    Value Type:  The default value type is DATE-TIME.  The value type can
         5287       be set to a DATE value type.
         5288 
         5289    Property Parameters:  IANA, non-standard, value data type, and time
         5290       zone identifier property parameters can be specified on this
         5291       property.
         5292 
         5293    Conformance:  This property can be specified in "VEVENT" or
         5294       "VFREEBUSY" calendar components.
         5295 
         5296    Description:  Within the "VEVENT" calendar component, this property
         5297       defines the date and time by which the event ends.  The value type
         5298       of this property MUST be the same as the "DTSTART" property, and
         5299       its value MUST be later in time than the value of the "DTSTART"
         5300       property.  Furthermore, this property MUST be specified as a date
         5301       with local time if and only if the "DTSTART" property is also
         5302       specified as a date with local time.
         5303 
         5304       Within the "VFREEBUSY" calendar component, this property defines
         5305       the end date and time for the free or busy time information.  The
         5306       time MUST be specified in the UTC time format.  The value MUST be
         5307       later in time than the value of the "DTSTART" property.
         5308 
         5309    Format Definition:  This property is defined by the following
         5310       notation:
         5311 
         5312 
         5313 
         5314 
         5315 
         5316 
         5317 
         5318 
         5319 
         5320 
         5321 
         5322 Desruisseaux                Standards Track                    [Page 95]
         5323 
         5324 RFC 5545                       iCalendar                  September 2009
         5325 
         5326 
         5327        dtend      = "DTEND" dtendparam ":" dtendval CRLF
         5328 
         5329        dtendparam = *(
         5330                   ;
         5331                   ; The following are OPTIONAL,
         5332                   ; but MUST NOT occur more than once.
         5333                   ;
         5334                   (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
         5335                   (";" tzidparam) /
         5336                   ;
         5337                   ; The following is OPTIONAL,
         5338                   ; and MAY occur more than once.
         5339                   ;
         5340                   (";" other-param)
         5341                   ;
         5342                   )
         5343 
         5344        dtendval   = date-time / date
         5345        ;Value MUST match value type
         5346 
         5347    Example:  The following is an example of this property:
         5348 
         5349        DTEND:19960401T150000Z
         5350 
         5351        DTEND;VALUE=DATE:19980704
         5352 
         5353 3.8.2.3.  Date-Time Due
         5354 
         5355    Property Name:  DUE
         5356 
         5357    Purpose:  This property defines the date and time that a to-do is
         5358       expected to be completed.
         5359 
         5360    Value Type:  The default value type is DATE-TIME.  The value type can
         5361       be set to a DATE value type.
         5362 
         5363    Property Parameters:  IANA, non-standard, value data type, and time
         5364       zone identifier property parameters can be specified on this
         5365       property.
         5366 
         5367    Conformance:  The property can be specified once in a "VTODO"
         5368       calendar component.
         5369 
         5370    Description:  This property defines the date and time before which a
         5371       to-do is expected to be completed.  For cases where this property
         5372       is specified in a "VTODO" calendar component that also specifies a
         5373       "DTSTART" property, the value type of this property MUST be the
         5374       same as the "DTSTART" property, and the value of this property
         5375 
         5376 
         5377 
         5378 Desruisseaux                Standards Track                    [Page 96]
         5379 
         5380 RFC 5545                       iCalendar                  September 2009
         5381 
         5382 
         5383       MUST be later in time than the value of the "DTSTART" property.
         5384       Furthermore, this property MUST be specified as a date with local
         5385       time if and only if the "DTSTART" property is also specified as a
         5386       date with local time.
         5387 
         5388    Format Definition:  This property is defined by the following
         5389       notation:
         5390 
         5391        due        = "DUE" dueparam ":" dueval CRLF
         5392 
         5393        dueparam   = *(
         5394                   ;
         5395                   ; The following are OPTIONAL,
         5396                   ; but MUST NOT occur more than once.
         5397                   ;
         5398                   (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
         5399                   (";" tzidparam) /
         5400                   ;
         5401                   ; The following is OPTIONAL,
         5402                   ; and MAY occur more than once.
         5403                   ;
         5404                   (";" other-param)
         5405                   ;
         5406                   )
         5407 
         5408        dueval     = date-time / date
         5409        ;Value MUST match value type
         5410 
         5411    Example:  The following is an example of this property:
         5412 
         5413        DUE:19980430T000000Z
         5414 
         5415 3.8.2.4.  Date-Time Start
         5416 
         5417    Property Name:  DTSTART
         5418 
         5419    Purpose:  This property specifies when the calendar component begins.
         5420 
         5421    Value Type:  The default value type is DATE-TIME.  The time value
         5422       MUST be one of the forms defined for the DATE-TIME value type.
         5423       The value type can be set to a DATE value type.
         5424 
         5425    Property Parameters:  IANA, non-standard, value data type, and time
         5426       zone identifier property parameters can be specified on this
         5427       property.
         5428 
         5429    Conformance:  This property can be specified once in the "VEVENT",
         5430       "VTODO", or "VFREEBUSY" calendar components as well as in the
         5431 
         5432 
         5433 
         5434 Desruisseaux                Standards Track                    [Page 97]
         5435 
         5436 RFC 5545                       iCalendar                  September 2009
         5437 
         5438 
         5439       "STANDARD" and "DAYLIGHT" sub-components.  This property is
         5440       REQUIRED in all types of recurring calendar components that
         5441       specify the "RRULE" property.  This property is also REQUIRED in
         5442       "VEVENT" calendar components contained in iCalendar objects that
         5443       don't specify the "METHOD" property.
         5444 
         5445    Description:  Within the "VEVENT" calendar component, this property
         5446       defines the start date and time for the event.
         5447 
         5448       Within the "VFREEBUSY" calendar component, this property defines
         5449       the start date and time for the free or busy time information.
         5450       The time MUST be specified in UTC time.
         5451 
         5452       Within the "STANDARD" and "DAYLIGHT" sub-components, this property
         5453       defines the effective start date and time for a time zone
         5454       specification.  This property is REQUIRED within each "STANDARD"
         5455       and "DAYLIGHT" sub-components included in "VTIMEZONE" calendar
         5456       components and MUST be specified as a date with local time without
         5457       the "TZID" property parameter.
         5458 
         5459    Format Definition:  This property is defined by the following
         5460       notation:
         5461 
         5462        dtstart    = "DTSTART" dtstparam ":" dtstval CRLF
         5463 
         5464        dtstparam  = *(
         5465                   ;
         5466                   ; The following are OPTIONAL,
         5467                   ; but MUST NOT occur more than once.
         5468                   ;
         5469                   (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
         5470                   (";" tzidparam) /
         5471                   ;
         5472                   ; The following is OPTIONAL,
         5473                   ; and MAY occur more than once.
         5474                   ;
         5475                   (";" other-param)
         5476                   ;
         5477                   )
         5478 
         5479        dtstval    = date-time / date
         5480        ;Value MUST match value type
         5481 
         5482    Example:  The following is an example of this property:
         5483 
         5484        DTSTART:19980118T073000Z
         5485 
         5486 
         5487 
         5488 
         5489 
         5490 Desruisseaux                Standards Track                    [Page 98]
         5491 
         5492 RFC 5545                       iCalendar                  September 2009
         5493 
         5494 
         5495 3.8.2.5.  Duration
         5496 
         5497    Property Name:  DURATION
         5498 
         5499    Purpose:  This property specifies a positive duration of time.
         5500 
         5501    Value Type:  DURATION
         5502 
         5503    Property Parameters:  IANA and non-standard property parameters can
         5504       be specified on this property.
         5505 
         5506    Conformance:  This property can be specified in "VEVENT", "VTODO", or
         5507       "VALARM" calendar components.
         5508 
         5509    Description:  In a "VEVENT" calendar component the property may be
         5510       used to specify a duration of the event, instead of an explicit
         5511       end DATE-TIME.  In a "VTODO" calendar component the property may
         5512       be used to specify a duration for the to-do, instead of an
         5513       explicit due DATE-TIME.  In a "VALARM" calendar component the
         5514       property may be used to specify the delay period prior to
         5515       repeating an alarm.  When the "DURATION" property relates to a
         5516       "DTSTART" property that is specified as a DATE value, then the
         5517       "DURATION" property MUST be specified as a "dur-day" or "dur-week"
         5518       value.
         5519 
         5520    Format Definition:  This property is defined by the following
         5521       notation:
         5522 
         5523        duration   = "DURATION" durparam ":" dur-value CRLF
         5524                     ;consisting of a positive duration of time.
         5525 
         5526        durparam   = *(";" other-param)
         5527 
         5528    Example:  The following is an example of this property that specifies
         5529       an interval of time of one hour and zero minutes and zero seconds:
         5530 
         5531        DURATION:PT1H0M0S
         5532 
         5533       The following is an example of this property that specifies an
         5534       interval of time of 15 minutes.
         5535 
         5536        DURATION:PT15M
         5537 
         5538 
         5539 
         5540 
         5541 
         5542 
         5543 
         5544 
         5545 
         5546 Desruisseaux                Standards Track                    [Page 99]
         5547 
         5548 RFC 5545                       iCalendar                  September 2009
         5549 
         5550 
         5551 3.8.2.6.  Free/Busy Time
         5552 
         5553    Property Name:  FREEBUSY
         5554 
         5555    Purpose:  This property defines one or more free or busy time
         5556       intervals.
         5557 
         5558    Value Type:  PERIOD
         5559 
         5560    Property Parameters:  IANA, non-standard, and free/busy time type
         5561       property parameters can be specified on this property.
         5562 
         5563    Conformance:  The property can be specified in a "VFREEBUSY" calendar
         5564       component.
         5565 
         5566    Description:  These time periods can be specified as either a start
         5567       and end DATE-TIME or a start DATE-TIME and DURATION.  The date and
         5568       time MUST be a UTC time format.
         5569 
         5570       "FREEBUSY" properties within the "VFREEBUSY" calendar component
         5571       SHOULD be sorted in ascending order, based on start time and then
         5572       end time, with the earliest periods first.
         5573 
         5574       The "FREEBUSY" property can specify more than one value, separated
         5575       by the COMMA character.  In such cases, the "FREEBUSY" property
         5576       values MUST all be of the same "FBTYPE" property parameter type
         5577       (e.g., all values of a particular "FBTYPE" listed together in a
         5578       single property).
         5579 
         5580    Format Definition:  This property is defined by the following
         5581       notation:
         5582 
         5583        freebusy   = "FREEBUSY" fbparam ":" fbvalue CRLF
         5584 
         5585        fbparam    = *(
         5586                   ;
         5587                   ; The following is OPTIONAL,
         5588                   ; but MUST NOT occur more than once.
         5589                   ;
         5590                   (";" fbtypeparam) /
         5591                   ;
         5592                   ; The following is OPTIONAL,
         5593                   ; and MAY occur more than once.
         5594                   ;
         5595                   (";" other-param)
         5596                   ;
         5597                   )
         5598 
         5599 
         5600 
         5601 
         5602 Desruisseaux                Standards Track                   [Page 100]
         5603 
         5604 RFC 5545                       iCalendar                  September 2009
         5605 
         5606 
         5607        fbvalue    = period *("," period)
         5608        ;Time value MUST be in the UTC time format.
         5609 
         5610    Example:  The following are some examples of this property:
         5611 
         5612        FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M
         5613 
         5614        FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H
         5615 
         5616        FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H
         5617         ,19970308T230000Z/19970309T000000Z
         5618 
         5619 3.8.2.7.  Time Transparency
         5620 
         5621    Property Name:  TRANSP
         5622 
         5623    Purpose:  This property defines whether or not an event is
         5624       transparent to busy time searches.
         5625 
         5626    Value Type:  TEXT
         5627 
         5628    Property Parameters:  IANA and non-standard property parameters can
         5629       be specified on this property.
         5630 
         5631    Conformance:  This property can be specified once in a "VEVENT"
         5632       calendar component.
         5633 
         5634    Description:  Time Transparency is the characteristic of an event
         5635       that determines whether it appears to consume time on a calendar.
         5636       Events that consume actual time for the individual or resource
         5637       associated with the calendar SHOULD be recorded as OPAQUE,
         5638       allowing them to be detected by free/busy time searches.  Other
         5639       events, which do not take up the individual's (or resource's) time
         5640       SHOULD be recorded as TRANSPARENT, making them invisible to free/
         5641       busy time searches.
         5642 
         5643    Format Definition:  This property is defined by the following
         5644       notation:
         5645 
         5646        transp     = "TRANSP" transparam ":" transvalue CRLF
         5647 
         5648        transparam = *(";" other-param)
         5649 
         5650        transvalue = "OPAQUE"
         5651                    ;Blocks or opaque on busy time searches.
         5652                    / "TRANSPARENT"
         5653                    ;Transparent on busy time searches.
         5654        ;Default value is OPAQUE
         5655 
         5656 
         5657 
         5658 Desruisseaux                Standards Track                   [Page 101]
         5659 
         5660 RFC 5545                       iCalendar                  September 2009
         5661 
         5662 
         5663    Example:  The following is an example of this property for an event
         5664       that is transparent or does not block on free/busy time searches:
         5665 
         5666        TRANSP:TRANSPARENT
         5667 
         5668       The following is an example of this property for an event that is
         5669       opaque or blocks on free/busy time searches:
         5670 
         5671        TRANSP:OPAQUE
         5672 
         5673 3.8.3.  Time Zone Component Properties
         5674 
         5675    The following properties specify time zone information in calendar
         5676    components.
         5677 
         5678 3.8.3.1.  Time Zone Identifier
         5679 
         5680    Property Name:  TZID
         5681 
         5682    Purpose:  This property specifies the text value that uniquely
         5683       identifies the "VTIMEZONE" calendar component in the scope of an
         5684       iCalendar object.
         5685 
         5686    Value Type:  TEXT
         5687 
         5688    Property Parameters:  IANA and non-standard property parameters can
         5689       be specified on this property.
         5690 
         5691    Conformance:  This property MUST be specified in a "VTIMEZONE"
         5692       calendar component.
         5693 
         5694    Description:  This is the label by which a time zone calendar
         5695       component is referenced by any iCalendar properties whose value
         5696       type is either DATE-TIME or TIME and not intended to specify a UTC
         5697       or a "floating" time.  The presence of the SOLIDUS character as a
         5698       prefix, indicates that this "TZID" represents an unique ID in a
         5699       globally defined time zone registry (when such registry is
         5700       defined).
         5701 
         5702          Note: This document does not define a naming convention for
         5703          time zone identifiers.  Implementers may want to use the naming
         5704          conventions defined in existing time zone specifications such
         5705          as the public-domain TZ database [TZDB].  The specification of
         5706          globally unique time zone identifiers is not addressed by this
         5707          document and is left for future study.
         5708 
         5709 
         5710 
         5711 
         5712 
         5713 
         5714 Desruisseaux                Standards Track                   [Page 102]
         5715 
         5716 RFC 5545                       iCalendar                  September 2009
         5717 
         5718 
         5719    Format Definition:  This property is defined by the following
         5720       notation:
         5721 
         5722        tzid       = "TZID" tzidpropparam ":" [tzidprefix] text CRLF
         5723 
         5724        tzidpropparam      = *(";" other-param)
         5725 
         5726        ;tzidprefix        = "/"
         5727        ; Defined previously. Just listed here for reader convenience.
         5728 
         5729    Example:  The following are examples of non-globally unique time zone
         5730       identifiers:
         5731 
         5732        TZID:America/New_York
         5733 
         5734        TZID:America/Los_Angeles
         5735 
         5736       The following is an example of a fictitious globally unique time
         5737       zone identifier:
         5738 
         5739        TZID:/example.org/America/New_York
         5740 
         5741 3.8.3.2.  Time Zone Name
         5742 
         5743    Property Name:  TZNAME
         5744 
         5745    Purpose:  This property specifies the customary designation for a
         5746       time zone description.
         5747 
         5748    Value Type:  TEXT
         5749 
         5750    Property Parameters:  IANA, non-standard, and language property
         5751       parameters can be specified on this property.
         5752 
         5753    Conformance:  This property can be specified in "STANDARD" and
         5754       "DAYLIGHT" sub-components.
         5755 
         5756    Description:  This property specifies a customary name that can be
         5757       used when displaying dates that occur during the observance
         5758       defined by the time zone sub-component.
         5759 
         5760    Format Definition:  This property is defined by the following
         5761       notation:
         5762 
         5763 
         5764 
         5765 
         5766 
         5767 
         5768 
         5769 
         5770 Desruisseaux                Standards Track                   [Page 103]
         5771 
         5772 RFC 5545                       iCalendar                  September 2009
         5773 
         5774 
         5775        tzname     = "TZNAME" tznparam ":" text CRLF
         5776 
         5777        tznparam   = *(
         5778                   ;
         5779                   ; The following is OPTIONAL,
         5780                   ; but MUST NOT occur more than once.
         5781                   ;
         5782                   (";" languageparam) /
         5783                   ;
         5784                   ; The following is OPTIONAL,
         5785                   ; and MAY occur more than once.
         5786                   ;
         5787                   (";" other-param)
         5788                   ;
         5789                   )
         5790 
         5791    Example:  The following are examples of this property:
         5792 
         5793        TZNAME:EST
         5794 
         5795        TZNAME;LANGUAGE=fr-CA:HNE
         5796 
         5797 3.8.3.3.  Time Zone Offset From
         5798 
         5799    Property Name:  TZOFFSETFROM
         5800 
         5801    Purpose:  This property specifies the offset that is in use prior to
         5802       this time zone observance.
         5803 
         5804    Value Type:  UTC-OFFSET
         5805 
         5806    Property Parameters:  IANA and non-standard property parameters can
         5807       be specified on this property.
         5808 
         5809    Conformance:  This property MUST be specified in "STANDARD" and
         5810       "DAYLIGHT" sub-components.
         5811 
         5812    Description:  This property specifies the offset that is in use prior
         5813       to this time observance.  It is used to calculate the absolute
         5814       time at which the transition to a given observance takes place.
         5815       This property MUST only be specified in a "VTIMEZONE" calendar
         5816       component.  A "VTIMEZONE" calendar component MUST include this
         5817       property.  The property value is a signed numeric indicating the
         5818       number of hours and possibly minutes from UTC.  Positive numbers
         5819       represent time zones east of the prime meridian, or ahead of UTC.
         5820       Negative numbers represent time zones west of the prime meridian,
         5821       or behind UTC.
         5822 
         5823 
         5824 
         5825 
         5826 Desruisseaux                Standards Track                   [Page 104]
         5827 
         5828 RFC 5545                       iCalendar                  September 2009
         5829 
         5830 
         5831    Format Definition:  This property is defined by the following
         5832       notation:
         5833 
         5834        tzoffsetfrom       = "TZOFFSETFROM" frmparam ":" utc-offset
         5835                             CRLF
         5836 
         5837        frmparam   = *(";" other-param)
         5838 
         5839    Example:  The following are examples of this property:
         5840 
         5841        TZOFFSETFROM:-0500
         5842 
         5843        TZOFFSETFROM:+1345
         5844 
         5845 3.8.3.4.  Time Zone Offset To
         5846 
         5847    Property Name:  TZOFFSETTO
         5848 
         5849    Purpose:  This property specifies the offset that is in use in this
         5850       time zone observance.
         5851 
         5852    Value Type:  UTC-OFFSET
         5853 
         5854    Property Parameters:  IANA and non-standard property parameters can
         5855       be specified on this property.
         5856 
         5857    Conformance:  This property MUST be specified in "STANDARD" and
         5858       "DAYLIGHT" sub-components.
         5859 
         5860    Description:  This property specifies the offset that is in use in
         5861       this time zone observance.  It is used to calculate the absolute
         5862       time for the new observance.  The property value is a signed
         5863       numeric indicating the number of hours and possibly minutes from
         5864       UTC.  Positive numbers represent time zones east of the prime
         5865       meridian, or ahead of UTC.  Negative numbers represent time zones
         5866       west of the prime meridian, or behind UTC.
         5867 
         5868    Format Definition:  This property is defined by the following
         5869       notation:
         5870 
         5871        tzoffsetto = "TZOFFSETTO" toparam ":" utc-offset CRLF
         5872 
         5873        toparam    = *(";" other-param)
         5874 
         5875 
         5876 
         5877 
         5878 
         5879 
         5880 
         5881 
         5882 Desruisseaux                Standards Track                   [Page 105]
         5883 
         5884 RFC 5545                       iCalendar                  September 2009
         5885 
         5886 
         5887    Example:  The following are examples of this property:
         5888 
         5889        TZOFFSETTO:-0400
         5890 
         5891        TZOFFSETTO:+1245
         5892 
         5893 3.8.3.5.  Time Zone URL
         5894 
         5895    Property Name:  TZURL
         5896 
         5897    Purpose:  This property provides a means for a "VTIMEZONE" component
         5898       to point to a network location that can be used to retrieve an up-
         5899       to-date version of itself.
         5900 
         5901    Value Type:  URI
         5902 
         5903    Property Parameters:  IANA and non-standard property parameters can
         5904       be specified on this property.
         5905 
         5906    Conformance:  This property can be specified in a "VTIMEZONE"
         5907       calendar component.
         5908 
         5909    Description:  This property provides a means for a "VTIMEZONE"
         5910       component to point to a network location that can be used to
         5911       retrieve an up-to-date version of itself.  This provides a hook to
         5912       handle changes government bodies impose upon time zone
         5913       definitions.  Retrieval of this resource results in an iCalendar
         5914       object containing a single "VTIMEZONE" component and a "METHOD"
         5915       property set to PUBLISH.
         5916 
         5917    Format Definition:  This property is defined by the following
         5918       notation:
         5919 
         5920        tzurl      = "TZURL" tzurlparam ":" uri CRLF
         5921 
         5922        tzurlparam = *(";" other-param)
         5923 
         5924    Example:  The following is an example of this property:
         5925 
         5926     TZURL:http://timezones.example.org/tz/America-Los_Angeles.ics
         5927 
         5928 3.8.4.  Relationship Component Properties
         5929 
         5930    The following properties specify relationship information in calendar
         5931    components.
         5932 
         5933 
         5934 
         5935 
         5936 
         5937 
         5938 Desruisseaux                Standards Track                   [Page 106]
         5939 
         5940 RFC 5545                       iCalendar                  September 2009
         5941 
         5942 
         5943 3.8.4.1.  Attendee
         5944 
         5945    Property Name:  ATTENDEE
         5946 
         5947    Purpose:  This property defines an "Attendee" within a calendar
         5948       component.
         5949 
         5950    Value Type:  CAL-ADDRESS
         5951 
         5952    Property Parameters:  IANA, non-standard, language, calendar user
         5953       type, group or list membership, participation role, participation
         5954       status, RSVP expectation, delegatee, delegator, sent by, common
         5955       name, or directory entry reference property parameters can be
         5956       specified on this property.
         5957 
         5958    Conformance:  This property MUST be specified in an iCalendar object
         5959       that specifies a group-scheduled calendar entity.  This property
         5960       MUST NOT be specified in an iCalendar object when publishing the
         5961       calendar information (e.g., NOT in an iCalendar object that
         5962       specifies the publication of a calendar user's busy time, event,
         5963       to-do, or journal).  This property is not specified in an
         5964       iCalendar object that specifies only a time zone definition or
         5965       that defines calendar components that are not group-scheduled
         5966       components, but are components only on a single user's calendar.
         5967 
         5968    Description:  This property MUST only be specified within calendar
         5969       components to specify participants, non-participants, and the
         5970       chair of a group-scheduled calendar entity.  The property is
         5971       specified within an "EMAIL" category of the "VALARM" calendar
         5972       component to specify an email address that is to receive the email
         5973       type of iCalendar alarm.
         5974 
         5975       The property parameter "CN" is for the common or displayable name
         5976       associated with the calendar address; "ROLE", for the intended
         5977       role that the attendee will have in the calendar component;
         5978       "PARTSTAT", for the status of the attendee's participation;
         5979       "RSVP", for indicating whether the favor of a reply is requested;
         5980       "CUTYPE", to indicate the type of calendar user; "MEMBER", to
         5981       indicate the groups that the attendee belongs to; "DELEGATED-TO",
         5982       to indicate the calendar users that the original request was
         5983       delegated to; and "DELEGATED-FROM", to indicate whom the request
         5984       was delegated from; "SENT-BY", to indicate whom is acting on
         5985       behalf of the "ATTENDEE"; and "DIR", to indicate the URI that
         5986       points to the directory information corresponding to the attendee.
         5987       These property parameters can be specified on an "ATTENDEE"
         5988       property in either a "VEVENT", "VTODO", or "VJOURNAL" calendar
         5989       component.  They MUST NOT be specified in an "ATTENDEE" property
         5990       in a "VFREEBUSY" or "VALARM" calendar component.  If the
         5991 
         5992 
         5993 
         5994 Desruisseaux                Standards Track                   [Page 107]
         5995 
         5996 RFC 5545                       iCalendar                  September 2009
         5997 
         5998 
         5999       "LANGUAGE" property parameter is specified, the identified
         6000       language applies to the "CN" parameter.
         6001 
         6002       A recipient delegated a request MUST inherit the "RSVP" and "ROLE"
         6003       values from the attendee that delegated the request to them.
         6004 
         6005       Multiple attendees can be specified by including multiple
         6006       "ATTENDEE" properties within the calendar component.
         6007 
         6008    Format Definition:  This property is defined by the following
         6009       notation:
         6010 
         6011        attendee   = "ATTENDEE" attparam ":" cal-address CRLF
         6012 
         6013        attparam   = *(
         6014                   ;
         6015                   ; The following are OPTIONAL,
         6016                   ; but MUST NOT occur more than once.
         6017                   ;
         6018                   (";" cutypeparam) / (";" memberparam) /
         6019                   (";" roleparam) / (";" partstatparam) /
         6020                   (";" rsvpparam) / (";" deltoparam) /
         6021                   (";" delfromparam) / (";" sentbyparam) /
         6022                   (";" cnparam) / (";" dirparam) /
         6023                   (";" languageparam) /
         6024                   ;
         6025                   ; The following is OPTIONAL,
         6026                   ; and MAY occur more than once.
         6027                   ;
         6028                   (";" other-param)
         6029                   ;
         6030                   )
         6031 
         6032    Example:  The following are examples of this property's use for a
         6033       to-do:
         6034 
         6035        ATTENDEE;MEMBER="mailto:DEV-GROUP@example.com":
         6036         mailto:joecool@example.com
         6037        ATTENDEE;DELEGATED-FROM="mailto:immud@example.com":
         6038         mailto:ildoit@example.com
         6039 
         6040 
         6041 
         6042 
         6043 
         6044 
         6045 
         6046 
         6047 
         6048 
         6049 
         6050 Desruisseaux                Standards Track                   [Page 108]
         6051 
         6052 RFC 5545                       iCalendar                  September 2009
         6053 
         6054 
         6055       The following is an example of this property used for specifying
         6056       multiple attendees to an event:
         6057 
         6058        ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Henry
         6059         Cabot:mailto:hcabot@example.com
         6060        ATTENDEE;ROLE=REQ-PARTICIPANT;DELEGATED-FROM="mailto:bob@
         6061         example.com";PARTSTAT=ACCEPTED;CN=Jane Doe:mailto:jdoe@
         6062         example.com
         6063 
         6064       The following is an example of this property with a URI to the
         6065       directory information associated with the attendee:
         6066 
         6067        ATTENDEE;CN=John Smith;DIR="ldap://example.com:6666/o=ABC%
         6068         20Industries,c=US???(cn=Jim%20Dolittle)":mailto:jimdo@
         6069         example.com
         6070 
         6071       The following is an example of this property with "delegatee" and
         6072       "delegator" information for an event:
         6073 
         6074        ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;DELEGATED-FROM=
         6075         "mailto:iamboss@example.com";CN=Henry Cabot:mailto:hcabot@
         6076         example.com
         6077        ATTENDEE;ROLE=NON-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO=
         6078         "mailto:hcabot@example.com";CN=The Big Cheese:mailto:iamboss
         6079         @example.com
         6080        ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Jane Doe
         6081         :mailto:jdoe@example.com
         6082 
         6083    Example:  The following is an example of this property's use when
         6084       another calendar user is acting on behalf of the "Attendee":
         6085 
         6086        ATTENDEE;SENT-BY=mailto:jan_doe@example.com;CN=John Smith:
         6087         mailto:jsmith@example.com
         6088 
         6089 3.8.4.2.  Contact
         6090 
         6091    Property Name:  CONTACT
         6092 
         6093    Purpose:  This property is used to represent contact information or
         6094       alternately a reference to contact information associated with the
         6095       calendar component.
         6096 
         6097    Value Type:  TEXT
         6098 
         6099    Property Parameters:  IANA, non-standard, alternate text
         6100       representation, and language property parameters can be specified
         6101       on this property.
         6102 
         6103 
         6104 
         6105 
         6106 Desruisseaux                Standards Track                   [Page 109]
         6107 
         6108 RFC 5545                       iCalendar                  September 2009
         6109 
         6110 
         6111    Conformance:  This property can be specified in a "VEVENT", "VTODO",
         6112       "VJOURNAL", or "VFREEBUSY" calendar component.
         6113 
         6114    Description:  The property value consists of textual contact
         6115       information.  An alternative representation for the property value
         6116       can also be specified that refers to a URI pointing to an
         6117       alternate form, such as a vCard [RFC2426], for the contact
         6118       information.
         6119 
         6120    Format Definition:  This property is defined by the following
         6121       notation:
         6122 
         6123        contact    = "CONTACT" contparam ":" text CRLF
         6124 
         6125        contparam  = *(
         6126                   ;
         6127                   ; The following are OPTIONAL,
         6128                   ; but MUST NOT occur more than once.
         6129                   ;
         6130                   (";" altrepparam) / (";" languageparam) /
         6131                   ;
         6132                   ; The following is OPTIONAL,
         6133                   ; and MAY occur more than once.
         6134                   ;
         6135                   (";" other-param)
         6136                   ;
         6137                   )
         6138 
         6139    Example:  The following is an example of this property referencing
         6140       textual contact information:
         6141 
         6142        CONTACT:Jim Dolittle\, ABC Industries\, +1-919-555-1234
         6143 
         6144       The following is an example of this property with an alternate
         6145       representation of an LDAP URI to a directory entry containing the
         6146       contact information:
         6147 
         6148        CONTACT;ALTREP="ldap://example.com:6666/o=ABC%20Industries\,
         6149         c=US???(cn=Jim%20Dolittle)":Jim Dolittle\, ABC Industries\,
         6150         +1-919-555-1234
         6151 
         6152       The following is an example of this property with an alternate
         6153       representation of a MIME body part containing the contact
         6154       information, such as a vCard [RFC2426] embedded in a text/
         6155       directory media type [RFC2425]:
         6156 
         6157        CONTACT;ALTREP="CID:part3.msg970930T083000SILVER@example.com":
         6158         Jim Dolittle\, ABC Industries\, +1-919-555-1234
         6159 
         6160 
         6161 
         6162 Desruisseaux                Standards Track                   [Page 110]
         6163 
         6164 RFC 5545                       iCalendar                  September 2009
         6165 
         6166 
         6167       The following is an example of this property referencing a network
         6168       resource, such as a vCard [RFC2426] object containing the contact
         6169       information:
         6170 
         6171        CONTACT;ALTREP="http://example.com/pdi/jdoe.vcf":Jim
         6172          Dolittle\, ABC Industries\, +1-919-555-1234
         6173 
         6174 3.8.4.3.  Organizer
         6175 
         6176    Property Name:  ORGANIZER
         6177 
         6178    Purpose:  This property defines the organizer for a calendar
         6179       component.
         6180 
         6181    Value Type:  CAL-ADDRESS
         6182 
         6183    Property Parameters:  IANA, non-standard, language, common name,
         6184       directory entry reference, and sent-by property parameters can be
         6185       specified on this property.
         6186 
         6187    Conformance:  This property MUST be specified in an iCalendar object
         6188       that specifies a group-scheduled calendar entity.  This property
         6189       MUST be specified in an iCalendar object that specifies the
         6190       publication of a calendar user's busy time.  This property MUST
         6191       NOT be specified in an iCalendar object that specifies only a time
         6192       zone definition or that defines calendar components that are not
         6193       group-scheduled components, but are components only on a single
         6194       user's calendar.
         6195 
         6196    Description:  This property is specified within the "VEVENT",
         6197       "VTODO", and "VJOURNAL" calendar components to specify the
         6198       organizer of a group-scheduled calendar entity.  The property is
         6199       specified within the "VFREEBUSY" calendar component to specify the
         6200       calendar user requesting the free or busy time.  When publishing a
         6201       "VFREEBUSY" calendar component, the property is used to specify
         6202       the calendar that the published busy time came from.
         6203 
         6204       The property has the property parameters "CN", for specifying the
         6205       common or display name associated with the "Organizer", "DIR", for
         6206       specifying a pointer to the directory information associated with
         6207       the "Organizer", "SENT-BY", for specifying another calendar user
         6208       that is acting on behalf of the "Organizer".  The non-standard
         6209       parameters may also be specified on this property.  If the
         6210       "LANGUAGE" property parameter is specified, the identified
         6211       language applies to the "CN" parameter value.
         6212 
         6213 
         6214 
         6215 
         6216 
         6217 
         6218 Desruisseaux                Standards Track                   [Page 111]
         6219 
         6220 RFC 5545                       iCalendar                  September 2009
         6221 
         6222 
         6223    Format Definition:  This property is defined by the following
         6224       notation:
         6225 
         6226        organizer  = "ORGANIZER" orgparam ":"
         6227                     cal-address CRLF
         6228 
         6229        orgparam   = *(
         6230                   ;
         6231                   ; The following are OPTIONAL,
         6232                   ; but MUST NOT occur more than once.
         6233                   ;
         6234                   (";" cnparam) / (";" dirparam) / (";" sentbyparam) /
         6235                   (";" languageparam) /
         6236                   ;
         6237                   ; The following is OPTIONAL,
         6238                   ; and MAY occur more than once.
         6239                   ;
         6240                   (";" other-param)
         6241                   ;
         6242                   )
         6243 
         6244    Example:  The following is an example of this property:
         6245 
         6246        ORGANIZER;CN=John Smith:mailto:jsmith@example.com
         6247 
         6248       The following is an example of this property with a pointer to the
         6249       directory information associated with the organizer:
         6250 
         6251        ORGANIZER;CN=JohnSmith;DIR="ldap://example.com:6666/o=DC%20Ass
         6252         ociates,c=US???(cn=John%20Smith)":mailto:jsmith@example.com
         6253 
         6254       The following is an example of this property used by another
         6255       calendar user who is acting on behalf of the organizer, with
         6256       responses intended to be sent back to the organizer, not the other
         6257       calendar user:
         6258 
         6259        ORGANIZER;SENT-BY="mailto:jane_doe@example.com":
         6260         mailto:jsmith@example.com
         6261 
         6262 3.8.4.4.  Recurrence ID
         6263 
         6264    Property Name:  RECURRENCE-ID
         6265 
         6266    Purpose:  This property is used in conjunction with the "UID" and
         6267       "SEQUENCE" properties to identify a specific instance of a
         6268       recurring "VEVENT", "VTODO", or "VJOURNAL" calendar component.
         6269       The property value is the original value of the "DTSTART" property
         6270       of the recurrence instance.
         6271 
         6272 
         6273 
         6274 Desruisseaux                Standards Track                   [Page 112]
         6275 
         6276 RFC 5545                       iCalendar                  September 2009
         6277 
         6278 
         6279    Value Type:  The default value type is DATE-TIME.  The value type can
         6280       be set to a DATE value type.  This property MUST have the same
         6281       value type as the "DTSTART" property contained within the
         6282       recurring component.  Furthermore, this property MUST be specified
         6283       as a date with local time if and only if the "DTSTART" property
         6284       contained within the recurring component is specified as a date
         6285       with local time.
         6286 
         6287    Property Parameters:  IANA, non-standard, value data type, time zone
         6288       identifier, and recurrence identifier range parameters can be
         6289       specified on this property.
         6290 
         6291    Conformance:  This property can be specified in an iCalendar object
         6292       containing a recurring calendar component.
         6293 
         6294    Description:  The full range of calendar components specified by a
         6295       recurrence set is referenced by referring to just the "UID"
         6296       property value corresponding to the calendar component.  The
         6297       "RECURRENCE-ID" property allows the reference to an individual
         6298       instance within the recurrence set.
         6299 
         6300       If the value of the "DTSTART" property is a DATE type value, then
         6301       the value MUST be the calendar date for the recurrence instance.
         6302 
         6303       The DATE-TIME value is set to the time when the original
         6304       recurrence instance would occur; meaning that if the intent is to
         6305       change a Friday meeting to Thursday, the DATE-TIME is still set to
         6306       the original Friday meeting.
         6307 
         6308       The "RECURRENCE-ID" property is used in conjunction with the "UID"
         6309       and "SEQUENCE" properties to identify a particular instance of a
         6310       recurring event, to-do, or journal.  For a given pair of "UID" and
         6311       "SEQUENCE" property values, the "RECURRENCE-ID" value for a
         6312       recurrence instance is fixed.
         6313 
         6314       The "RANGE" parameter is used to specify the effective range of
         6315       recurrence instances from the instance specified by the
         6316       "RECURRENCE-ID" property value.  The value for the range parameter
         6317       can only be "THISANDFUTURE" to indicate a range defined by the
         6318       given recurrence instance and all subsequent instances.
         6319       Subsequent instances are determined by their "RECURRENCE-ID" value
         6320       and not their current scheduled start time.  Subsequent instances
         6321       defined in separate components are not impacted by the given
         6322       recurrence instance.  When the given recurrence instance is
         6323       rescheduled, all subsequent instances are also rescheduled by the
         6324       same time difference.  For instance, if the given recurrence
         6325       instance is rescheduled to start 2 hours later, then all
         6326       subsequent instances are also rescheduled 2 hours later.
         6327 
         6328 
         6329 
         6330 Desruisseaux                Standards Track                   [Page 113]
         6331 
         6332 RFC 5545                       iCalendar                  September 2009
         6333 
         6334 
         6335       Similarly, if the duration of the given recurrence instance is
         6336       modified, then all subsequence instances are also modified to have
         6337       this same duration.
         6338 
         6339          Note: The "RANGE" parameter may not be appropriate to
         6340          reschedule specific subsequent instances of complex recurring
         6341          calendar component.  Assuming an unbounded recurring calendar
         6342          component scheduled to occur on Mondays and Wednesdays, the
         6343          "RANGE" parameter could not be used to reschedule only the
         6344          future Monday instances to occur on Tuesday instead.  In such
         6345          cases, the calendar application could simply truncate the
         6346          unbounded recurring calendar component (i.e., with the "COUNT"
         6347          or "UNTIL" rule parts), and create two new unbounded recurring
         6348          calendar components for the future instances.
         6349 
         6350    Format Definition:  This property is defined by the following
         6351       notation:
         6352 
         6353        recurid    = "RECURRENCE-ID" ridparam ":" ridval CRLF
         6354 
         6355        ridparam   = *(
         6356                   ;
         6357                   ; The following are OPTIONAL,
         6358                   ; but MUST NOT occur more than once.
         6359                   ;
         6360                   (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
         6361                   (";" tzidparam) / (";" rangeparam) /
         6362                   ;
         6363                   ; The following is OPTIONAL,
         6364                   ; and MAY occur more than once.
         6365                   ;
         6366                   (";" other-param)
         6367                   ;
         6368                   )
         6369 
         6370        ridval     = date-time / date
         6371        ;Value MUST match value type
         6372 
         6373    Example:  The following are examples of this property:
         6374 
         6375        RECURRENCE-ID;VALUE=DATE:19960401
         6376 
         6377        RECURRENCE-ID;RANGE=THISANDFUTURE:19960120T120000Z
         6378 
         6379 
         6380 
         6381 
         6382 
         6383 
         6384 
         6385 
         6386 Desruisseaux                Standards Track                   [Page 114]
         6387 
         6388 RFC 5545                       iCalendar                  September 2009
         6389 
         6390 
         6391 3.8.4.5.  Related To
         6392 
         6393    Property Name:  RELATED-TO
         6394 
         6395    Purpose:  This property is used to represent a relationship or
         6396       reference between one calendar component and another.
         6397 
         6398    Value Type:  TEXT
         6399 
         6400    Property Parameters:  IANA, non-standard, and relationship type
         6401       property parameters can be specified on this property.
         6402 
         6403    Conformance:  This property can be specified in the "VEVENT",
         6404       "VTODO", and "VJOURNAL" calendar components.
         6405 
         6406    Description:  The property value consists of the persistent, globally
         6407       unique identifier of another calendar component.  This value would
         6408       be represented in a calendar component by the "UID" property.
         6409 
         6410       By default, the property value points to another calendar
         6411       component that has a PARENT relationship to the referencing
         6412       object.  The "RELTYPE" property parameter is used to either
         6413       explicitly state the default PARENT relationship type to the
         6414       referenced calendar component or to override the default PARENT
         6415       relationship type and specify either a CHILD or SIBLING
         6416       relationship.  The PARENT relationship indicates that the calendar
         6417       component is a subordinate of the referenced calendar component.
         6418       The CHILD relationship indicates that the calendar component is a
         6419       superior of the referenced calendar component.  The SIBLING
         6420       relationship indicates that the calendar component is a peer of
         6421       the referenced calendar component.
         6422 
         6423       Changes to a calendar component referenced by this property can
         6424       have an implicit impact on the related calendar component.  For
         6425       example, if a group event changes its start or end date or time,
         6426       then the related, dependent events will need to have their start
         6427       and end dates changed in a corresponding way.  Similarly, if a
         6428       PARENT calendar component is cancelled or deleted, then there is
         6429       an implied impact to the related CHILD calendar components.  This
         6430       property is intended only to provide information on the
         6431       relationship of calendar components.  It is up to the target
         6432       calendar system to maintain any property implications of this
         6433       relationship.
         6434 
         6435 
         6436 
         6437 
         6438 
         6439 
         6440 
         6441 
         6442 Desruisseaux                Standards Track                   [Page 115]
         6443 
         6444 RFC 5545                       iCalendar                  September 2009
         6445 
         6446 
         6447    Format Definition:  This property is defined by the following
         6448       notation:
         6449 
         6450        related    = "RELATED-TO" relparam ":" text CRLF
         6451 
         6452        relparam   = *(
         6453                   ;
         6454                   ; The following is OPTIONAL,
         6455                   ; but MUST NOT occur more than once.
         6456                   ;
         6457                   (";" reltypeparam) /
         6458                   ;
         6459                   ; The following is OPTIONAL,
         6460                   ; and MAY occur more than once.
         6461                   ;
         6462                   (";" other-param)
         6463                   ;
         6464                   )
         6465 
         6466       The following is an example of this property:
         6467 
         6468        RELATED-TO:jsmith.part7.19960817T083000.xyzMail@example.com
         6469 
         6470        RELATED-TO:19960401-080045-4000F192713-0052@example.com
         6471 
         6472 3.8.4.6.  Uniform Resource Locator
         6473 
         6474    Property Name:  URL
         6475 
         6476    Purpose:  This property defines a Uniform Resource Locator (URL)
         6477       associated with the iCalendar object.
         6478 
         6479    Value Type:  URI
         6480 
         6481    Property Parameters:  IANA and non-standard property parameters can
         6482       be specified on this property.
         6483 
         6484    Conformance:  This property can be specified once in the "VEVENT",
         6485       "VTODO", "VJOURNAL", or "VFREEBUSY" calendar components.
         6486 
         6487    Description:  This property may be used in a calendar component to
         6488       convey a location where a more dynamic rendition of the calendar
         6489       information associated with the calendar component can be found.
         6490       This memo does not attempt to standardize the form of the URI, nor
         6491       the format of the resource pointed to by the property value.  If
         6492       the URL property and Content-Location MIME header are both
         6493       specified, they MUST point to the same resource.
         6494 
         6495 
         6496 
         6497 
         6498 Desruisseaux                Standards Track                   [Page 116]
         6499 
         6500 RFC 5545                       iCalendar                  September 2009
         6501 
         6502 
         6503    Format Definition:  This property is defined by the following
         6504       notation:
         6505 
         6506        url        = "URL" urlparam ":" uri CRLF
         6507 
         6508        urlparam   = *(";" other-param)
         6509 
         6510    Example:  The following is an example of this property:
         6511 
         6512        URL:http://example.com/pub/calendars/jsmith/mytime.ics
         6513 
         6514 3.8.4.7.  Unique Identifier
         6515 
         6516    Property Name:  UID
         6517 
         6518    Purpose:  This property defines the persistent, globally unique
         6519       identifier for the calendar component.
         6520 
         6521    Value Type:  TEXT
         6522 
         6523    Property Parameters:  IANA and non-standard property parameters can
         6524       be specified on this property.
         6525 
         6526    Conformance:  The property MUST be specified in the "VEVENT",
         6527       "VTODO", "VJOURNAL", or "VFREEBUSY" calendar components.
         6528 
         6529    Description:  The "UID" itself MUST be a globally unique identifier.
         6530       The generator of the identifier MUST guarantee that the identifier
         6531       is unique.  There are several algorithms that can be used to
         6532       accomplish this.  A good method to assure uniqueness is to put the
         6533       domain name or a domain literal IP address of the host on which
         6534       the identifier was created on the right-hand side of an "@", and
         6535       on the left-hand side, put a combination of the current calendar
         6536       date and time of day (i.e., formatted in as a DATE-TIME value)
         6537       along with some other currently unique (perhaps sequential)
         6538       identifier available on the system (for example, a process id
         6539       number).  Using a DATE-TIME value on the left-hand side and a
         6540       domain name or domain literal on the right-hand side makes it
         6541       possible to guarantee uniqueness since no two hosts should be
         6542       using the same domain name or IP address at the same time.  Though
         6543       other algorithms will work, it is RECOMMENDED that the right-hand
         6544       side contain some domain identifier (either of the host itself or
         6545       otherwise) such that the generator of the message identifier can
         6546       guarantee the uniqueness of the left-hand side within the scope of
         6547       that domain.
         6548 
         6549       This is the method for correlating scheduling messages with the
         6550       referenced "VEVENT", "VTODO", or "VJOURNAL" calendar component.
         6551 
         6552 
         6553 
         6554 Desruisseaux                Standards Track                   [Page 117]
         6555 
         6556 RFC 5545                       iCalendar                  September 2009
         6557 
         6558 
         6559       The full range of calendar components specified by a recurrence
         6560       set is referenced by referring to just the "UID" property value
         6561       corresponding to the calendar component.  The "RECURRENCE-ID"
         6562       property allows the reference to an individual instance within the
         6563       recurrence set.
         6564 
         6565       This property is an important method for group-scheduling
         6566       applications to match requests with later replies, modifications,
         6567       or deletion requests.  Calendaring and scheduling applications
         6568       MUST generate this property in "VEVENT", "VTODO", and "VJOURNAL"
         6569       calendar components to assure interoperability with other group-
         6570       scheduling applications.  This identifier is created by the
         6571       calendar system that generates an iCalendar object.
         6572 
         6573       Implementations MUST be able to receive and persist values of at
         6574       least 255 octets for this property, but they MUST NOT truncate
         6575       values in the middle of a UTF-8 multi-octet sequence.
         6576 
         6577    Format Definition:  This property is defined by the following
         6578       notation:
         6579 
         6580        uid        = "UID" uidparam ":" text CRLF
         6581 
         6582        uidparam   = *(";" other-param)
         6583 
         6584    Example:  The following is an example of this property:
         6585 
         6586        UID:19960401T080045Z-4000F192713-0052@example.com
         6587 
         6588 3.8.5.  Recurrence Component Properties
         6589 
         6590    The following properties specify recurrence information in calendar
         6591    components.
         6592 
         6593 3.8.5.1.  Exception Date-Times
         6594 
         6595    Property Name:  EXDATE
         6596 
         6597    Purpose:  This property defines the list of DATE-TIME exceptions for
         6598       recurring events, to-dos, journal entries, or time zone
         6599       definitions.
         6600 
         6601    Value Type:  The default value type for this property is DATE-TIME.
         6602       The value type can be set to DATE.
         6603 
         6604    Property Parameters:  IANA, non-standard, value data type, and time
         6605       zone identifier property parameters can be specified on this
         6606       property.
         6607 
         6608 
         6609 
         6610 Desruisseaux                Standards Track                   [Page 118]
         6611 
         6612 RFC 5545                       iCalendar                  September 2009
         6613 
         6614 
         6615    Conformance:  This property can be specified in recurring "VEVENT",
         6616       "VTODO", and "VJOURNAL" calendar components as well as in the
         6617       "STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE"
         6618       calendar component.
         6619 
         6620    Description:  The exception dates, if specified, are used in
         6621       computing the recurrence set.  The recurrence set is the complete
         6622       set of recurrence instances for a calendar component.  The
         6623       recurrence set is generated by considering the initial "DTSTART"
         6624       property along with the "RRULE", "RDATE", and "EXDATE" properties
         6625       contained within the recurring component.  The "DTSTART" property
         6626       defines the first instance in the recurrence set.  The "DTSTART"
         6627       property value SHOULD match the pattern of the recurrence rule, if
         6628       specified.  The recurrence set generated with a "DTSTART" property
         6629       value that doesn't match the pattern of the rule is undefined.
         6630       The final recurrence set is generated by gathering all of the
         6631       start DATE-TIME values generated by any of the specified "RRULE"
         6632       and "RDATE" properties, and then excluding any start DATE-TIME
         6633       values specified by "EXDATE" properties.  This implies that start
         6634       DATE-TIME values specified by "EXDATE" properties take precedence
         6635       over those specified by inclusion properties (i.e., "RDATE" and
         6636       "RRULE").  When duplicate instances are generated by the "RRULE"
         6637       and "RDATE" properties, only one recurrence is considered.
         6638       Duplicate instances are ignored.
         6639 
         6640       The "EXDATE" property can be used to exclude the value specified
         6641       in "DTSTART".  However, in such cases, the original "DTSTART" date
         6642       MUST still be maintained by the calendaring and scheduling system
         6643       because the original "DTSTART" value has inherent usage
         6644       dependencies by other properties such as the "RECURRENCE-ID".
         6645 
         6646    Format Definition:  This property is defined by the following
         6647       notation:
         6648 
         6649 
         6650 
         6651 
         6652 
         6653 
         6654 
         6655 
         6656 
         6657 
         6658 
         6659 
         6660 
         6661 
         6662 
         6663 
         6664 
         6665 
         6666 Desruisseaux                Standards Track                   [Page 119]
         6667 
         6668 RFC 5545                       iCalendar                  September 2009
         6669 
         6670 
         6671        exdate     = "EXDATE" exdtparam ":" exdtval *("," exdtval) CRLF
         6672 
         6673        exdtparam  = *(
         6674                   ;
         6675                   ; The following are OPTIONAL,
         6676                   ; but MUST NOT occur more than once.
         6677                   ;
         6678                   (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
         6679                   ;
         6680                   (";" tzidparam) /
         6681                   ;
         6682                   ; The following is OPTIONAL,
         6683                   ; and MAY occur more than once.
         6684                   ;
         6685                   (";" other-param)
         6686                   ;
         6687                   )
         6688 
         6689        exdtval    = date-time / date
         6690        ;Value MUST match value type
         6691 
         6692    Example:  The following is an example of this property:
         6693 
         6694        EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z
         6695 
         6696 3.8.5.2.  Recurrence Date-Times
         6697 
         6698    Property Name:  RDATE
         6699 
         6700    Purpose:  This property defines the list of DATE-TIME values for
         6701       recurring events, to-dos, journal entries, or time zone
         6702       definitions.
         6703 
         6704    Value Type:  The default value type for this property is DATE-TIME.
         6705       The value type can be set to DATE or PERIOD.
         6706 
         6707    Property Parameters:  IANA, non-standard, value data type, and time
         6708       zone identifier property parameters can be specified on this
         6709       property.
         6710 
         6711    Conformance:  This property can be specified in recurring "VEVENT",
         6712       "VTODO", and "VJOURNAL" calendar components as well as in the
         6713       "STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE"
         6714       calendar component.
         6715 
         6716    Description:  This property can appear along with the "RRULE"
         6717       property to define an aggregate set of repeating occurrences.
         6718       When they both appear in a recurring component, the recurrence
         6719 
         6720 
         6721 
         6722 Desruisseaux                Standards Track                   [Page 120]
         6723 
         6724 RFC 5545                       iCalendar                  September 2009
         6725 
         6726 
         6727       instances are defined by the union of occurrences defined by both
         6728       the "RDATE" and "RRULE".
         6729 
         6730       The recurrence dates, if specified, are used in computing the
         6731       recurrence set.  The recurrence set is the complete set of
         6732       recurrence instances for a calendar component.  The recurrence set
         6733       is generated by considering the initial "DTSTART" property along
         6734       with the "RRULE", "RDATE", and "EXDATE" properties contained
         6735       within the recurring component.  The "DTSTART" property defines
         6736       the first instance in the recurrence set.  The "DTSTART" property
         6737       value SHOULD match the pattern of the recurrence rule, if
         6738       specified.  The recurrence set generated with a "DTSTART" property
         6739       value that doesn't match the pattern of the rule is undefined.
         6740       The final recurrence set is generated by gathering all of the
         6741       start DATE-TIME values generated by any of the specified "RRULE"
         6742       and "RDATE" properties, and then excluding any start DATE-TIME
         6743       values specified by "EXDATE" properties.  This implies that start
         6744       DATE-TIME values specified by "EXDATE" properties take precedence
         6745       over those specified by inclusion properties (i.e., "RDATE" and
         6746       "RRULE").  Where duplicate instances are generated by the "RRULE"
         6747       and "RDATE" properties, only one recurrence is considered.
         6748       Duplicate instances are ignored.
         6749 
         6750    Format Definition:  This property is defined by the following
         6751       notation:
         6752 
         6753        rdate      = "RDATE" rdtparam ":" rdtval *("," rdtval) CRLF
         6754 
         6755        rdtparam   = *(
         6756                   ;
         6757                   ; The following are OPTIONAL,
         6758                   ; but MUST NOT occur more than once.
         6759                   ;
         6760                   (";" "VALUE" "=" ("DATE-TIME" / "DATE" / "PERIOD")) /
         6761                   (";" tzidparam) /
         6762                   ;
         6763                   ; The following is OPTIONAL,
         6764                   ; and MAY occur more than once.
         6765                   ;
         6766                   (";" other-param)
         6767                   ;
         6768                   )
         6769 
         6770        rdtval     = date-time / date / period
         6771        ;Value MUST match value type
         6772 
         6773 
         6774 
         6775 
         6776 
         6777 
         6778 Desruisseaux                Standards Track                   [Page 121]
         6779 
         6780 RFC 5545                       iCalendar                  September 2009
         6781 
         6782 
         6783    Example:  The following are examples of this property:
         6784 
         6785        RDATE:19970714T123000Z
         6786        RDATE;TZID=America/New_York:19970714T083000
         6787 
         6788        RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z,
         6789         19960404T010000Z/PT3H
         6790 
         6791        RDATE;VALUE=DATE:19970101,19970120,19970217,19970421
         6792         19970526,19970704,19970901,19971014,19971128,19971129,19971225
         6793 
         6794 3.8.5.3.  Recurrence Rule
         6795 
         6796    Property Name:  RRULE
         6797 
         6798    Purpose:  This property defines a rule or repeating pattern for
         6799       recurring events, to-dos, journal entries, or time zone
         6800       definitions.
         6801 
         6802    Value Type:  RECUR
         6803 
         6804    Property Parameters:  IANA and non-standard property parameters can
         6805       be specified on this property.
         6806 
         6807    Conformance:  This property can be specified in recurring "VEVENT",
         6808       "VTODO", and "VJOURNAL" calendar components as well as in the
         6809       "STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE"
         6810       calendar component, but it SHOULD NOT be specified more than once.
         6811       The recurrence set generated with multiple "RRULE" properties is
         6812       undefined.
         6813 
         6814    Description:  The recurrence rule, if specified, is used in computing
         6815       the recurrence set.  The recurrence set is the complete set of
         6816       recurrence instances for a calendar component.  The recurrence set
         6817       is generated by considering the initial "DTSTART" property along
         6818       with the "RRULE", "RDATE", and "EXDATE" properties contained
         6819       within the recurring component.  The "DTSTART" property defines
         6820       the first instance in the recurrence set.  The "DTSTART" property
         6821       value SHOULD be synchronized with the recurrence rule, if
         6822       specified.  The recurrence set generated with a "DTSTART" property
         6823       value not synchronized with the recurrence rule is undefined.  The
         6824       final recurrence set is generated by gathering all of the start
         6825       DATE-TIME values generated by any of the specified "RRULE" and
         6826       "RDATE" properties, and then excluding any start DATE-TIME values
         6827       specified by "EXDATE" properties.  This implies that start DATE-
         6828       TIME values specified by "EXDATE" properties take precedence over
         6829       those specified by inclusion properties (i.e., "RDATE" and
         6830       "RRULE").  Where duplicate instances are generated by the "RRULE"
         6831 
         6832 
         6833 
         6834 Desruisseaux                Standards Track                   [Page 122]
         6835 
         6836 RFC 5545                       iCalendar                  September 2009
         6837 
         6838 
         6839       and "RDATE" properties, only one recurrence is considered.
         6840       Duplicate instances are ignored.
         6841 
         6842       The "DTSTART" property specified within the iCalendar object
         6843       defines the first instance of the recurrence.  In most cases, a
         6844       "DTSTART" property of DATE-TIME value type used with a recurrence
         6845       rule, should be specified as a date with local time and time zone
         6846       reference to make sure all the recurrence instances start at the
         6847       same local time regardless of time zone changes.
         6848 
         6849       If the duration of the recurring component is specified with the
         6850       "DTEND" or "DUE" property, then the same exact duration will apply
         6851       to all the members of the generated recurrence set.  Else, if the
         6852       duration of the recurring component is specified with the
         6853       "DURATION" property, then the same nominal duration will apply to
         6854       all the members of the generated recurrence set and the exact
         6855       duration of each recurrence instance will depend on its specific
         6856       start time.  For example, recurrence instances of a nominal
         6857       duration of one day will have an exact duration of more or less
         6858       than 24 hours on a day where a time zone shift occurs.  The
         6859       duration of a specific recurrence may be modified in an exception
         6860       component or simply by using an "RDATE" property of PERIOD value
         6861       type.
         6862 
         6863    Format Definition:  This property is defined by the following
         6864       notation:
         6865 
         6866        rrule      = "RRULE" rrulparam ":" recur CRLF
         6867 
         6868        rrulparam  = *(";" other-param)
         6869 
         6870    Example:  All examples assume the Eastern United States time zone.
         6871 
         6872       Daily for 10 occurrences:
         6873 
         6874        DTSTART;TZID=America/New_York:19970902T090000
         6875        RRULE:FREQ=DAILY;COUNT=10
         6876 
         6877        ==> (1997 9:00 AM EDT) September 2-11
         6878 
         6879       Daily until December 24, 1997:
         6880 
         6881        DTSTART;TZID=America/New_York:19970902T090000
         6882        RRULE:FREQ=DAILY;UNTIL=19971224T000000Z
         6883 
         6884        ==> (1997 9:00 AM EDT) September 2-30;October 1-25
         6885            (1997 9:00 AM EST) October 26-31;November 1-30;December 1-23
         6886 
         6887 
         6888 
         6889 
         6890 Desruisseaux                Standards Track                   [Page 123]
         6891 
         6892 RFC 5545                       iCalendar                  September 2009
         6893 
         6894 
         6895       Every other day - forever:
         6896 
         6897        DTSTART;TZID=America/New_York:19970902T090000
         6898        RRULE:FREQ=DAILY;INTERVAL=2
         6899 
         6900        ==> (1997 9:00 AM EDT) September 2,4,6,8...24,26,28,30;
         6901                               October 2,4,6...20,22,24
         6902            (1997 9:00 AM EST) October 26,28,30;
         6903                               November 1,3,5,7...25,27,29;
         6904                               December 1,3,...
         6905 
         6906       Every 10 days, 5 occurrences:
         6907 
         6908        DTSTART;TZID=America/New_York:19970902T090000
         6909        RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5
         6910 
         6911        ==> (1997 9:00 AM EDT) September 2,12,22;
         6912                               October 2,12
         6913 
         6914       Every day in January, for 3 years:
         6915 
         6916        DTSTART;TZID=America/New_York:19980101T090000
         6917 
         6918        RRULE:FREQ=YEARLY;UNTIL=20000131T140000Z;
         6919         BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA
         6920        or
         6921        RRULE:FREQ=DAILY;UNTIL=20000131T140000Z;BYMONTH=1
         6922 
         6923        ==> (1998 9:00 AM EST)January 1-31
         6924            (1999 9:00 AM EST)January 1-31
         6925            (2000 9:00 AM EST)January 1-31
         6926 
         6927       Weekly for 10 occurrences:
         6928 
         6929        DTSTART;TZID=America/New_York:19970902T090000
         6930        RRULE:FREQ=WEEKLY;COUNT=10
         6931 
         6932        ==> (1997 9:00 AM EDT) September 2,9,16,23,30;October 7,14,21
         6933            (1997 9:00 AM EST) October 28;November 4
         6934 
         6935 
         6936 
         6937 
         6938 
         6939 
         6940 
         6941 
         6942 
         6943 
         6944 
         6945 
         6946 Desruisseaux                Standards Track                   [Page 124]
         6947 
         6948 RFC 5545                       iCalendar                  September 2009
         6949 
         6950 
         6951       Weekly until December 24, 1997:
         6952 
         6953        DTSTART;TZID=America/New_York:19970902T090000
         6954        RRULE:FREQ=WEEKLY;UNTIL=19971224T000000Z
         6955 
         6956        ==> (1997 9:00 AM EDT) September 2,9,16,23,30;
         6957                               October 7,14,21
         6958            (1997 9:00 AM EST) October 28;
         6959                               November 4,11,18,25;
         6960                               December 2,9,16,23
         6961 
         6962       Every other week - forever:
         6963 
         6964        DTSTART;TZID=America/New_York:19970902T090000
         6965        RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=SU
         6966 
         6967        ==> (1997 9:00 AM EDT) September 2,16,30;
         6968                               October 14
         6969            (1997 9:00 AM EST) October 28;
         6970                               November 11,25;
         6971                               December 9,23
         6972            (1998 9:00 AM EST) January 6,20;
         6973                               February 3, 17
         6974            ...
         6975 
         6976       Weekly on Tuesday and Thursday for five weeks:
         6977 
         6978        DTSTART;TZID=America/New_York:19970902T090000
         6979        RRULE:FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH
         6980 
         6981        or
         6982 
         6983        RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH
         6984 
         6985        ==> (1997 9:00 AM EDT) September 2,4,9,11,16,18,23,25,30;
         6986                               October 2
         6987 
         6988       Every other week on Monday, Wednesday, and Friday until December
         6989       24, 1997, starting on Monday, September 1, 1997:
         6990 
         6991        DTSTART;TZID=America/New_York:19970901T090000
         6992        RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;
         6993         BYDAY=MO,WE,FR
         6994 
         6995        ==> (1997 9:00 AM EDT) September 1,3,5,15,17,19,29;
         6996                               October 1,3,13,15,17
         6997            (1997 9:00 AM EST) October 27,29,31;
         6998                               November 10,12,14,24,26,28;
         6999 
         7000 
         7001 
         7002 Desruisseaux                Standards Track                   [Page 125]
         7003 
         7004 RFC 5545                       iCalendar                  September 2009
         7005 
         7006 
         7007                               December 8,10,12,22
         7008 
         7009       Every other week on Tuesday and Thursday, for 8 occurrences:
         7010 
         7011        DTSTART;TZID=America/New_York:19970902T090000
         7012        RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH
         7013 
         7014        ==> (1997 9:00 AM EDT) September 2,4,16,18,30;
         7015                               October 2,14,16
         7016 
         7017       Monthly on the first Friday for 10 occurrences:
         7018 
         7019        DTSTART;TZID=America/New_York:19970905T090000
         7020        RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR
         7021 
         7022        ==> (1997 9:00 AM EDT) September 5;October 3
         7023            (1997 9:00 AM EST) November 7;December 5
         7024            (1998 9:00 AM EST) January 2;February 6;March 6;April 3
         7025            (1998 9:00 AM EDT) May 1;June 5
         7026 
         7027       Monthly on the first Friday until December 24, 1997:
         7028 
         7029        DTSTART;TZID=America/New_York:19970905T090000
         7030        RRULE:FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR
         7031 
         7032        ==> (1997 9:00 AM EDT) September 5; October 3
         7033            (1997 9:00 AM EST) November 7; December 5
         7034 
         7035       Every other month on the first and last Sunday of the month for 10
         7036       occurrences:
         7037 
         7038        DTSTART;TZID=America/New_York:19970907T090000
         7039        RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU
         7040 
         7041        ==> (1997 9:00 AM EDT) September 7,28
         7042            (1997 9:00 AM EST) November 2,30
         7043            (1998 9:00 AM EST) January 4,25;March 1,29
         7044            (1998 9:00 AM EDT) May 3,31
         7045 
         7046       Monthly on the second-to-last Monday of the month for 6 months:
         7047 
         7048        DTSTART;TZID=America/New_York:19970922T090000
         7049        RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO
         7050 
         7051        ==> (1997 9:00 AM EDT) September 22;October 20
         7052            (1997 9:00 AM EST) November 17;December 22
         7053            (1998 9:00 AM EST) January 19;February 16
         7054 
         7055 
         7056 
         7057 
         7058 Desruisseaux                Standards Track                   [Page 126]
         7059 
         7060 RFC 5545                       iCalendar                  September 2009
         7061 
         7062 
         7063       Monthly on the third-to-the-last day of the month, forever:
         7064 
         7065        DTSTART;TZID=America/New_York:19970928T090000
         7066        RRULE:FREQ=MONTHLY;BYMONTHDAY=-3
         7067 
         7068        ==> (1997 9:00 AM EDT) September 28
         7069            (1997 9:00 AM EST) October 29;November 28;December 29
         7070            (1998 9:00 AM EST) January 29;February 26
         7071            ...
         7072 
         7073       Monthly on the 2nd and 15th of the month for 10 occurrences:
         7074 
         7075        DTSTART;TZID=America/New_York:19970902T090000
         7076        RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15
         7077 
         7078        ==> (1997 9:00 AM EDT) September 2,15;October 2,15
         7079            (1997 9:00 AM EST) November 2,15;December 2,15
         7080            (1998 9:00 AM EST) January 2,15
         7081 
         7082       Monthly on the first and last day of the month for 10 occurrences:
         7083 
         7084        DTSTART;TZID=America/New_York:19970930T090000
         7085        RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1
         7086 
         7087        ==> (1997 9:00 AM EDT) September 30;October 1
         7088            (1997 9:00 AM EST) October 31;November 1,30;December 1,31
         7089            (1998 9:00 AM EST) January 1,31;February 1
         7090 
         7091       Every 18 months on the 10th thru 15th of the month for 10
         7092       occurrences:
         7093 
         7094        DTSTART;TZID=America/New_York:19970910T090000
         7095        RRULE:FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,
         7096         13,14,15
         7097 
         7098        ==> (1997 9:00 AM EDT) September 10,11,12,13,14,15
         7099            (1999 9:00 AM EST) March 10,11,12,13
         7100 
         7101       Every Tuesday, every other month:
         7102 
         7103        DTSTART;TZID=America/New_York:19970902T090000
         7104        RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU
         7105 
         7106        ==> (1997 9:00 AM EDT) September 2,9,16,23,30
         7107            (1997 9:00 AM EST) November 4,11,18,25
         7108            (1998 9:00 AM EST) January 6,13,20,27;March 3,10,17,24,31
         7109            ...
         7110 
         7111 
         7112 
         7113 
         7114 Desruisseaux                Standards Track                   [Page 127]
         7115 
         7116 RFC 5545                       iCalendar                  September 2009
         7117 
         7118 
         7119       Yearly in June and July for 10 occurrences:
         7120 
         7121        DTSTART;TZID=America/New_York:19970610T090000
         7122        RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7
         7123 
         7124        ==> (1997 9:00 AM EDT) June 10;July 10
         7125            (1998 9:00 AM EDT) June 10;July 10
         7126            (1999 9:00 AM EDT) June 10;July 10
         7127            (2000 9:00 AM EDT) June 10;July 10
         7128            (2001 9:00 AM EDT) June 10;July 10
         7129 
         7130          Note: Since none of the BYDAY, BYMONTHDAY, or BYYEARDAY
         7131          components are specified, the day is gotten from "DTSTART".
         7132 
         7133       Every other year on January, February, and March for 10
         7134       occurrences:
         7135 
         7136        DTSTART;TZID=America/New_York:19970310T090000
         7137        RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3
         7138 
         7139        ==> (1997 9:00 AM EST) March 10
         7140            (1999 9:00 AM EST) January 10;February 10;March 10
         7141            (2001 9:00 AM EST) January 10;February 10;March 10
         7142            (2003 9:00 AM EST) January 10;February 10;March 10
         7143 
         7144       Every third year on the 1st, 100th, and 200th day for 10
         7145       occurrences:
         7146 
         7147        DTSTART;TZID=America/New_York:19970101T090000
         7148        RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200
         7149 
         7150        ==> (1997 9:00 AM EST) January 1
         7151            (1997 9:00 AM EDT) April 10;July 19
         7152            (2000 9:00 AM EST) January 1
         7153            (2000 9:00 AM EDT) April 9;July 18
         7154            (2003 9:00 AM EST) January 1
         7155            (2003 9:00 AM EDT) April 10;July 19
         7156            (2006 9:00 AM EST) January 1
         7157 
         7158       Every 20th Monday of the year, forever:
         7159 
         7160        DTSTART;TZID=America/New_York:19970519T090000
         7161        RRULE:FREQ=YEARLY;BYDAY=20MO
         7162 
         7163        ==> (1997 9:00 AM EDT) May 19
         7164            (1998 9:00 AM EDT) May 18
         7165            (1999 9:00 AM EDT) May 17
         7166            ...
         7167 
         7168 
         7169 
         7170 Desruisseaux                Standards Track                   [Page 128]
         7171 
         7172 RFC 5545                       iCalendar                  September 2009
         7173 
         7174 
         7175       Monday of week number 20 (where the default start of the week is
         7176       Monday), forever:
         7177 
         7178        DTSTART;TZID=America/New_York:19970512T090000
         7179        RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO
         7180 
         7181        ==> (1997 9:00 AM EDT) May 12
         7182            (1998 9:00 AM EDT) May 11
         7183            (1999 9:00 AM EDT) May 17
         7184            ...
         7185 
         7186       Every Thursday in March, forever:
         7187 
         7188        DTSTART;TZID=America/New_York:19970313T090000
         7189        RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH
         7190 
         7191        ==> (1997 9:00 AM EST) March 13,20,27
         7192            (1998 9:00 AM EST) March 5,12,19,26
         7193            (1999 9:00 AM EST) March 4,11,18,25
         7194            ...
         7195 
         7196       Every Thursday, but only during June, July, and August, forever:
         7197 
         7198        DTSTART;TZID=America/New_York:19970605T090000
         7199        RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8
         7200 
         7201        ==> (1997 9:00 AM EDT) June 5,12,19,26;July 3,10,17,24,31;
         7202                               August 7,14,21,28
         7203            (1998 9:00 AM EDT) June 4,11,18,25;July 2,9,16,23,30;
         7204                               August 6,13,20,27
         7205            (1999 9:00 AM EDT) June 3,10,17,24;July 1,8,15,22,29;
         7206                               August 5,12,19,26
         7207            ...
         7208 
         7209       Every Friday the 13th, forever:
         7210 
         7211        DTSTART;TZID=America/New_York:19970902T090000
         7212        EXDATE;TZID=America/New_York:19970902T090000
         7213        RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13
         7214 
         7215        ==> (1998 9:00 AM EST) February 13;March 13;November 13
         7216            (1999 9:00 AM EDT) August 13
         7217            (2000 9:00 AM EDT) October 13
         7218            ...
         7219 
         7220 
         7221 
         7222 
         7223 
         7224 
         7225 
         7226 Desruisseaux                Standards Track                   [Page 129]
         7227 
         7228 RFC 5545                       iCalendar                  September 2009
         7229 
         7230 
         7231       The first Saturday that follows the first Sunday of the month,
         7232       forever:
         7233 
         7234        DTSTART;TZID=America/New_York:19970913T090000
         7235        RRULE:FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13
         7236 
         7237        ==> (1997 9:00 AM EDT) September 13;October 11
         7238            (1997 9:00 AM EST) November 8;December 13
         7239            (1998 9:00 AM EST) January 10;February 7;March 7
         7240            (1998 9:00 AM EDT) April 11;May 9;June 13...
         7241            ...
         7242 
         7243       Every 4 years, the first Tuesday after a Monday in November,
         7244       forever (U.S. Presidential Election day):
         7245 
         7246        DTSTART;TZID=America/New_York:19961105T090000
         7247        RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;
         7248         BYMONTHDAY=2,3,4,5,6,7,8
         7249 
         7250         ==> (1996 9:00 AM EST) November 5
         7251             (2000 9:00 AM EST) November 7
         7252             (2004 9:00 AM EST) November 2
         7253             ...
         7254 
         7255       The third instance into the month of one of Tuesday, Wednesday, or
         7256       Thursday, for the next 3 months:
         7257 
         7258        DTSTART;TZID=America/New_York:19970904T090000
         7259        RRULE:FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3
         7260 
         7261        ==> (1997 9:00 AM EDT) September 4;October 7
         7262            (1997 9:00 AM EST) November 6
         7263 
         7264       The second-to-last weekday of the month:
         7265 
         7266        DTSTART;TZID=America/New_York:19970929T090000
         7267        RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2
         7268 
         7269        ==> (1997 9:00 AM EDT) September 29
         7270            (1997 9:00 AM EST) October 30;November 27;December 30
         7271            (1998 9:00 AM EST) January 29;February 26;March 30
         7272            ...
         7273 
         7274 
         7275 
         7276 
         7277 
         7278 
         7279 
         7280 
         7281 
         7282 Desruisseaux                Standards Track                   [Page 130]
         7283 
         7284 RFC 5545                       iCalendar                  September 2009
         7285 
         7286 
         7287       Every 3 hours from 9:00 AM to 5:00 PM on a specific day:
         7288 
         7289        DTSTART;TZID=America/New_York:19970902T090000
         7290        RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z
         7291 
         7292        ==> (September 2, 1997 EDT) 09:00,12:00,15:00
         7293 
         7294       Every 15 minutes for 6 occurrences:
         7295 
         7296        DTSTART;TZID=America/New_York:19970902T090000
         7297        RRULE:FREQ=MINUTELY;INTERVAL=15;COUNT=6
         7298 
         7299        ==> (September 2, 1997 EDT) 09:00,09:15,09:30,09:45,10:00,10:15
         7300 
         7301       Every hour and a half for 4 occurrences:
         7302 
         7303        DTSTART;TZID=America/New_York:19970902T090000
         7304        RRULE:FREQ=MINUTELY;INTERVAL=90;COUNT=4
         7305 
         7306        ==> (September 2, 1997 EDT) 09:00,10:30;12:00;13:30
         7307 
         7308       Every 20 minutes from 9:00 AM to 4:40 PM every day:
         7309 
         7310        DTSTART;TZID=America/New_York:19970902T090000
         7311        RRULE:FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40
         7312        or
         7313        RRULE:FREQ=MINUTELY;INTERVAL=20;BYHOUR=9,10,11,12,13,14,15,16
         7314 
         7315        ==> (September 2, 1997 EDT) 9:00,9:20,9:40,10:00,10:20,
         7316                                    ... 16:00,16:20,16:40
         7317            (September 3, 1997 EDT) 9:00,9:20,9:40,10:00,10:20,
         7318                                    ...16:00,16:20,16:40
         7319            ...
         7320 
         7321       An example where the days generated makes a difference because of
         7322       WKST:
         7323 
         7324        DTSTART;TZID=America/New_York:19970805T090000
         7325        RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO
         7326 
         7327        ==> (1997 EDT) August 5,10,19,24
         7328 
         7329       changing only WKST from MO to SU, yields different results...
         7330 
         7331        DTSTART;TZID=America/New_York:19970805T090000
         7332        RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU
         7333 
         7334        ==> (1997 EDT) August 5,17,19,31
         7335 
         7336 
         7337 
         7338 Desruisseaux                Standards Track                   [Page 131]
         7339 
         7340 RFC 5545                       iCalendar                  September 2009
         7341 
         7342 
         7343       An example where an invalid date (i.e., February 30) is ignored.
         7344 
         7345        DTSTART;TZID=America/New_York:20070115T090000
         7346        RRULE:FREQ=MONTHLY;BYMONTHDAY=15,30;COUNT=5
         7347 
         7348        ==> (2007 EST) January 15,30
         7349            (2007 EST) February 15
         7350            (2007 EDT) March 15,30
         7351 
         7352 3.8.6.  Alarm Component Properties
         7353 
         7354    The following properties specify alarm information in calendar
         7355    components.
         7356 
         7357 3.8.6.1.  Action
         7358 
         7359    Property Name:  ACTION
         7360 
         7361    Purpose:  This property defines the action to be invoked when an
         7362       alarm is triggered.
         7363 
         7364    Value Type:  TEXT
         7365 
         7366    Property Parameters:  IANA and non-standard property parameters can
         7367       be specified on this property.
         7368 
         7369    Conformance:  This property MUST be specified once in a "VALARM"
         7370       calendar component.
         7371 
         7372    Description:  Each "VALARM" calendar component has a particular type
         7373       of action with which it is associated.  This property specifies
         7374       the type of action.  Applications MUST ignore alarms with x-name
         7375       and iana-token values they don't recognize.
         7376 
         7377    Format Definition:  This property is defined by the following
         7378       notation:
         7379 
         7380        action      = "ACTION" actionparam ":" actionvalue CRLF
         7381 
         7382        actionparam = *(";" other-param)
         7383 
         7384 
         7385        actionvalue = "AUDIO" / "DISPLAY" / "EMAIL"
         7386                    / iana-token / x-name
         7387 
         7388    Example:  The following are examples of this property in a "VALARM"
         7389       calendar component:
         7390 
         7391 
         7392 
         7393 
         7394 Desruisseaux                Standards Track                   [Page 132]
         7395 
         7396 RFC 5545                       iCalendar                  September 2009
         7397 
         7398 
         7399        ACTION:AUDIO
         7400 
         7401        ACTION:DISPLAY
         7402 
         7403 3.8.6.2.  Repeat Count
         7404 
         7405    Property Name:  REPEAT
         7406 
         7407    Purpose:  This property defines the number of times the alarm should
         7408       be repeated, after the initial trigger.
         7409 
         7410    Value Type:  INTEGER
         7411 
         7412    Property Parameters:  IANA and non-standard property parameters can
         7413       be specified on this property.
         7414 
         7415    Conformance:  This property can be specified in a "VALARM" calendar
         7416       component.
         7417 
         7418    Description:  This property defines the number of times an alarm
         7419       should be repeated after its initial trigger.  If the alarm
         7420       triggers more than once, then this property MUST be specified
         7421       along with the "DURATION" property.
         7422 
         7423    Format Definition:  This property is defined by the following
         7424       notation:
         7425 
         7426        repeat  = "REPEAT" repparam ":" integer CRLF
         7427        ;Default is "0", zero.
         7428 
         7429        repparam   = *(";" other-param)
         7430 
         7431    Example:  The following is an example of this property for an alarm
         7432       that repeats 4 additional times with a 5-minute delay after the
         7433       initial triggering of the alarm:
         7434 
         7435        REPEAT:4
         7436        DURATION:PT5M
         7437 
         7438 3.8.6.3.  Trigger
         7439 
         7440    Property Name:  TRIGGER
         7441 
         7442    Purpose:  This property specifies when an alarm will trigger.
         7443 
         7444    Value Type:  The default value type is DURATION.  The value type can
         7445       be set to a DATE-TIME value type, in which case the value MUST
         7446       specify a UTC-formatted DATE-TIME value.
         7447 
         7448 
         7449 
         7450 Desruisseaux                Standards Track                   [Page 133]
         7451 
         7452 RFC 5545                       iCalendar                  September 2009
         7453 
         7454 
         7455    Property Parameters:  IANA, non-standard, value data type, time zone
         7456       identifier, or trigger relationship property parameters can be
         7457       specified on this property.  The trigger relationship property
         7458       parameter MUST only be specified when the value type is
         7459       "DURATION".
         7460 
         7461    Conformance:  This property MUST be specified in the "VALARM"
         7462       calendar component.
         7463 
         7464    Description:  This property defines when an alarm will trigger.  The
         7465       default value type is DURATION, specifying a relative time for the
         7466       trigger of the alarm.  The default duration is relative to the
         7467       start of an event or to-do with which the alarm is associated.
         7468       The duration can be explicitly set to trigger from either the end
         7469       or the start of the associated event or to-do with the "RELATED"
         7470       parameter.  A value of START will set the alarm to trigger off the
         7471       start of the associated event or to-do.  A value of END will set
         7472       the alarm to trigger off the end of the associated event or to-do.
         7473 
         7474       Either a positive or negative duration may be specified for the
         7475       "TRIGGER" property.  An alarm with a positive duration is
         7476       triggered after the associated start or end of the event or to-do.
         7477       An alarm with a negative duration is triggered before the
         7478       associated start or end of the event or to-do.
         7479 
         7480       The "RELATED" property parameter is not valid if the value type of
         7481       the property is set to DATE-TIME (i.e., for an absolute date and
         7482       time alarm trigger).  If a value type of DATE-TIME is specified,
         7483       then the property value MUST be specified in the UTC time format.
         7484       If an absolute trigger is specified on an alarm for a recurring
         7485       event or to-do, then the alarm will only trigger for the specified
         7486       absolute DATE-TIME, along with any specified repeating instances.
         7487 
         7488       If the trigger is set relative to START, then the "DTSTART"
         7489       property MUST be present in the associated "VEVENT" or "VTODO"
         7490       calendar component.  If an alarm is specified for an event with
         7491       the trigger set relative to the END, then the "DTEND" property or
         7492       the "DTSTART" and "DURATION " properties MUST be present in the
         7493       associated "VEVENT" calendar component.  If the alarm is specified
         7494       for a to-do with a trigger set relative to the END, then either
         7495       the "DUE" property or the "DTSTART" and "DURATION " properties
         7496       MUST be present in the associated "VTODO" calendar component.
         7497 
         7498       Alarms specified in an event or to-do that is defined in terms of
         7499       a DATE value type will be triggered relative to 00:00:00 of the
         7500       user's configured time zone on the specified date, or relative to
         7501       00:00:00 UTC on the specified date if no configured time zone can
         7502       be found for the user.  For example, if "DTSTART" is a DATE value
         7503 
         7504 
         7505 
         7506 Desruisseaux                Standards Track                   [Page 134]
         7507 
         7508 RFC 5545                       iCalendar                  September 2009
         7509 
         7510 
         7511       set to 19980205 then the duration trigger will be relative to
         7512       19980205T000000 America/New_York for a user configured with the
         7513       America/New_York time zone.
         7514 
         7515    Format Definition:  This property is defined by the following
         7516       notation:
         7517 
         7518        trigger    = "TRIGGER" (trigrel / trigabs) CRLF
         7519 
         7520        trigrel    = *(
         7521                   ;
         7522                   ; The following are OPTIONAL,
         7523                   ; but MUST NOT occur more than once.
         7524                   ;
         7525                   (";" "VALUE" "=" "DURATION") /
         7526                   (";" trigrelparam) /
         7527                   ;
         7528                   ; The following is OPTIONAL,
         7529                   ; and MAY occur more than once.
         7530                   ;
         7531                   (";" other-param)
         7532                   ;
         7533                   ) ":"  dur-value
         7534 
         7535        trigabs    = *(
         7536                   ;
         7537                   ; The following is REQUIRED,
         7538                   ; but MUST NOT occur more than once.
         7539                   ;
         7540                   (";" "VALUE" "=" "DATE-TIME") /
         7541                   ;
         7542                   ; The following is OPTIONAL,
         7543                   ; and MAY occur more than once.
         7544                   ;
         7545                   (";" other-param)
         7546                   ;
         7547                   ) ":" date-time
         7548 
         7549    Example:  A trigger set 15 minutes prior to the start of the event or
         7550       to-do.
         7551 
         7552        TRIGGER:-PT15M
         7553 
         7554       A trigger set five minutes after the end of an event or the due
         7555       date of a to-do.
         7556 
         7557        TRIGGER;RELATED=END:PT5M
         7558 
         7559 
         7560 
         7561 
         7562 Desruisseaux                Standards Track                   [Page 135]
         7563 
         7564 RFC 5545                       iCalendar                  September 2009
         7565 
         7566 
         7567       A trigger set to an absolute DATE-TIME.
         7568 
         7569        TRIGGER;VALUE=DATE-TIME:19980101T050000Z
         7570 
         7571 3.8.7.  Change Management Component Properties
         7572 
         7573    The following properties specify change management information in
         7574    calendar components.
         7575 
         7576 3.8.7.1.  Date-Time Created
         7577 
         7578    Property Name:  CREATED
         7579 
         7580    Purpose:  This property specifies the date and time that the calendar
         7581       information was created by the calendar user agent in the calendar
         7582       store.
         7583 
         7584          Note: This is analogous to the creation date and time for a
         7585          file in the file system.
         7586 
         7587    Value Type:  DATE-TIME
         7588 
         7589    Property Parameters:  IANA and non-standard property parameters can
         7590       be specified on this property.
         7591 
         7592    Conformance:  The property can be specified once in "VEVENT",
         7593       "VTODO", or "VJOURNAL" calendar components.  The value MUST be
         7594       specified as a date with UTC time.
         7595 
         7596    Description:  This property specifies the date and time that the
         7597       calendar information was created by the calendar user agent in the
         7598       calendar store.
         7599 
         7600    Format Definition:  This property is defined by the following
         7601       notation:
         7602 
         7603        created    = "CREATED" creaparam ":" date-time CRLF
         7604 
         7605        creaparam  = *(";" other-param)
         7606 
         7607    Example:  The following is an example of this property:
         7608 
         7609        CREATED:19960329T133000Z
         7610 
         7611 
         7612 
         7613 
         7614 
         7615 
         7616 
         7617 
         7618 Desruisseaux                Standards Track                   [Page 136]
         7619 
         7620 RFC 5545                       iCalendar                  September 2009
         7621 
         7622 
         7623 3.8.7.2.  Date-Time Stamp
         7624 
         7625    Property Name:  DTSTAMP
         7626 
         7627    Purpose:  In the case of an iCalendar object that specifies a
         7628       "METHOD" property, this property specifies the date and time that
         7629       the instance of the iCalendar object was created.  In the case of
         7630       an iCalendar object that doesn't specify a "METHOD" property, this
         7631       property specifies the date and time that the information
         7632       associated with the calendar component was last revised in the
         7633       calendar store.
         7634 
         7635    Value Type:  DATE-TIME
         7636 
         7637    Property Parameters:  IANA and non-standard property parameters can
         7638       be specified on this property.
         7639 
         7640    Conformance:  This property MUST be included in the "VEVENT",
         7641       "VTODO", "VJOURNAL", or "VFREEBUSY" calendar components.
         7642 
         7643    Description:  The value MUST be specified in the UTC time format.
         7644 
         7645       This property is also useful to protocols such as [2447bis] that
         7646       have inherent latency issues with the delivery of content.  This
         7647       property will assist in the proper sequencing of messages
         7648       containing iCalendar objects.
         7649 
         7650       In the case of an iCalendar object that specifies a "METHOD"
         7651       property, this property differs from the "CREATED" and "LAST-
         7652       MODIFIED" properties.  These two properties are used to specify
         7653       when the particular calendar data in the calendar store was
         7654       created and last modified.  This is different than when the
         7655       iCalendar object representation of the calendar service
         7656       information was created or last modified.
         7657 
         7658       In the case of an iCalendar object that doesn't specify a "METHOD"
         7659       property, this property is equivalent to the "LAST-MODIFIED"
         7660       property.
         7661 
         7662    Format Definition:  This property is defined by the following
         7663       notation:
         7664 
         7665        dtstamp    = "DTSTAMP" stmparam ":" date-time CRLF
         7666 
         7667        stmparam   = *(";" other-param)
         7668 
         7669 
         7670 
         7671 
         7672 
         7673 
         7674 Desruisseaux                Standards Track                   [Page 137]
         7675 
         7676 RFC 5545                       iCalendar                  September 2009
         7677 
         7678 
         7679    Example:
         7680 
         7681        DTSTAMP:19971210T080000Z
         7682 
         7683 3.8.7.3.  Last Modified
         7684 
         7685    Property Name:  LAST-MODIFIED
         7686 
         7687    Purpose:  This property specifies the date and time that the
         7688       information associated with the calendar component was last
         7689       revised in the calendar store.
         7690 
         7691          Note: This is analogous to the modification date and time for a
         7692          file in the file system.
         7693 
         7694    Value Type:  DATE-TIME
         7695 
         7696    Property Parameters:  IANA and non-standard property parameters can
         7697       be specified on this property.
         7698 
         7699    Conformance:  This property can be specified in the "VEVENT",
         7700       "VTODO", "VJOURNAL", or "VTIMEZONE" calendar components.
         7701 
         7702    Description:  The property value MUST be specified in the UTC time
         7703       format.
         7704 
         7705    Format Definition:  This property is defined by the following
         7706       notation:
         7707 
         7708        last-mod   = "LAST-MODIFIED" lstparam ":" date-time CRLF
         7709 
         7710        lstparam   = *(";" other-param)
         7711 
         7712    Example:  The following is an example of this property:
         7713 
         7714        LAST-MODIFIED:19960817T133000Z
         7715 
         7716 3.8.7.4.  Sequence Number
         7717 
         7718    Property Name:  SEQUENCE
         7719 
         7720    Purpose:  This property defines the revision sequence number of the
         7721       calendar component within a sequence of revisions.
         7722 
         7723    Value Type:  INTEGER
         7724 
         7725    Property Parameters:  IANA and non-standard property parameters can
         7726       be specified on this property.
         7727 
         7728 
         7729 
         7730 Desruisseaux                Standards Track                   [Page 138]
         7731 
         7732 RFC 5545                       iCalendar                  September 2009
         7733 
         7734 
         7735    Conformance:  The property can be specified in "VEVENT", "VTODO", or
         7736       "VJOURNAL" calendar component.
         7737 
         7738    Description:  When a calendar component is created, its sequence
         7739       number is 0.  It is monotonically incremented by the "Organizer's"
         7740       CUA each time the "Organizer" makes a significant revision to the
         7741       calendar component.
         7742 
         7743       The "Organizer" includes this property in an iCalendar object that
         7744       it sends to an "Attendee" to specify the current version of the
         7745       calendar component.
         7746 
         7747       The "Attendee" includes this property in an iCalendar object that
         7748       it sends to the "Organizer" to specify the version of the calendar
         7749       component to which the "Attendee" is referring.
         7750 
         7751       A change to the sequence number is not the mechanism that an
         7752       "Organizer" uses to request a response from the "Attendees".  The
         7753       "RSVP" parameter on the "ATTENDEE" property is used by the
         7754       "Organizer" to indicate that a response from the "Attendees" is
         7755       requested.
         7756 
         7757       Recurrence instances of a recurring component MAY have different
         7758       sequence numbers.
         7759 
         7760    Format Definition:  This property is defined by the following
         7761       notation:
         7762 
         7763        seq = "SEQUENCE" seqparam ":" integer CRLF
         7764        ; Default is "0"
         7765 
         7766        seqparam   = *(";" other-param)
         7767 
         7768    Example:  The following is an example of this property for a calendar
         7769       component that was just created by the "Organizer":
         7770 
         7771        SEQUENCE:0
         7772 
         7773       The following is an example of this property for a calendar
         7774       component that has been revised two different times by the
         7775       "Organizer":
         7776 
         7777        SEQUENCE:2
         7778 
         7779 3.8.8.  Miscellaneous Component Properties
         7780 
         7781    The following properties specify information about a number of
         7782    miscellaneous features of calendar components.
         7783 
         7784 
         7785 
         7786 Desruisseaux                Standards Track                   [Page 139]
         7787 
         7788 RFC 5545                       iCalendar                  September 2009
         7789 
         7790 
         7791 3.8.8.1.  IANA Properties
         7792 
         7793    Property Name:  An IANA-registered property name
         7794 
         7795    Value Type:  The default value type is TEXT.  The value type can be
         7796       set to any value type.
         7797 
         7798    Property Parameters:  Any parameter can be specified on this
         7799       property.
         7800 
         7801    Description:  This specification allows other properties registered
         7802       with IANA to be specified in any calendar components.  Compliant
         7803       applications are expected to be able to parse these other IANA-
         7804       registered properties but can ignore them.
         7805 
         7806    Format Definition:  This property is defined by the following
         7807       notation:
         7808 
         7809        iana-prop = iana-token *(";" icalparameter) ":" value CRLF
         7810 
         7811    Example:  The following are examples of properties that might be
         7812       registered to IANA:
         7813 
         7814        DRESSCODE:CASUAL
         7815 
         7816        NON-SMOKING;VALUE=BOOLEAN:TRUE
         7817 
         7818 3.8.8.2.  Non-Standard Properties
         7819 
         7820    Property Name:  Any property name with a "X-" prefix
         7821 
         7822    Purpose:  This class of property provides a framework for defining
         7823       non-standard properties.
         7824 
         7825    Value Type:  The default value type is TEXT.  The value type can be
         7826       set to any value type.
         7827 
         7828    Property Parameters:  IANA, non-standard, and language property
         7829       parameters can be specified on this property.
         7830 
         7831    Conformance:  This property can be specified in any calendar
         7832       component.
         7833 
         7834    Description:  The MIME Calendaring and Scheduling Content Type
         7835       provides a "standard mechanism for doing non-standard things".
         7836       This extension support is provided for implementers to "push the
         7837       envelope" on the existing version of the memo.  Extension
         7838       properties are specified by property and/or property parameter
         7839 
         7840 
         7841 
         7842 Desruisseaux                Standards Track                   [Page 140]
         7843 
         7844 RFC 5545                       iCalendar                  September 2009
         7845 
         7846 
         7847       names that have the prefix text of "X-" (the two-character
         7848       sequence: LATIN CAPITAL LETTER X character followed by the HYPHEN-
         7849       MINUS character).  It is recommended that vendors concatenate onto
         7850       this sentinel another short prefix text to identify the vendor.
         7851       This will facilitate readability of the extensions and minimize
         7852       possible collision of names between different vendors.  User
         7853       agents that support this content type are expected to be able to
         7854       parse the extension properties and property parameters but can
         7855       ignore them.
         7856 
         7857       At present, there is no registration authority for names of
         7858       extension properties and property parameters.  The value type for
         7859       this property is TEXT.  Optionally, the value type can be any of
         7860       the other valid value types.
         7861 
         7862    Format Definition:  This property is defined by the following
         7863       notation:
         7864 
         7865        x-prop = x-name *(";" icalparameter) ":" value CRLF
         7866 
         7867    Example:  The following might be the ABC vendor's extension for an
         7868       audio-clip form of subject property:
         7869 
         7870        X-ABC-MMSUBJ;VALUE=URI;FMTTYPE=audio/basic:http://www.example.
         7871         org/mysubj.au
         7872 
         7873 3.8.8.3.  Request Status
         7874 
         7875    Property Name:  REQUEST-STATUS
         7876 
         7877    Purpose:  This property defines the status code returned for a
         7878       scheduling request.
         7879 
         7880    Value Type:  TEXT
         7881 
         7882    Property Parameters:  IANA, non-standard, and language property
         7883       parameters can be specified on this property.
         7884 
         7885    Conformance:  The property can be specified in the "VEVENT", "VTODO",
         7886       "VJOURNAL", or "VFREEBUSY" calendar component.
         7887 
         7888    Description:  This property is used to return status code information
         7889       related to the processing of an associated iCalendar object.  The
         7890       value type for this property is TEXT.
         7891 
         7892 
         7893 
         7894 
         7895 
         7896 
         7897 
         7898 Desruisseaux                Standards Track                   [Page 141]
         7899 
         7900 RFC 5545                       iCalendar                  September 2009
         7901 
         7902 
         7903       The value consists of a short return status component, a longer
         7904       return status description component, and optionally a status-
         7905       specific data component.  The components of the value are
         7906       separated by the SEMICOLON character.
         7907 
         7908       The short return status is a PERIOD character separated pair or
         7909       3-tuple of integers.  For example, "3.1" or "3.1.1".  The
         7910       successive levels of integers provide for a successive level of
         7911       status code granularity.
         7912 
         7913       The following are initial classes for the return status code.
         7914       Individual iCalendar object methods will define specific return
         7915       status codes for these classes.  In addition, other classes for
         7916       the return status code may be defined using the registration
         7917       process defined later in this memo.
         7918 
         7919    +--------+----------------------------------------------------------+
         7920    | Short  | Longer Return Status Description                         |
         7921    | Return |                                                          |
         7922    | Status |                                                          |
         7923    | Code   |                                                          |
         7924    +--------+----------------------------------------------------------+
         7925    | 1.xx   | Preliminary success.  This class of status code          |
         7926    |        | indicates that the request has been initially processed  |
         7927    |        | but that completion is pending.                          |
         7928    |        |                                                          |
         7929    | 2.xx   | Successful.  This class of status code indicates that    |
         7930    |        | the request was completed successfully.  However, the    |
         7931    |        | exact status code can indicate that a fallback has been  |
         7932    |        | taken.                                                   |
         7933    |        |                                                          |
         7934    | 3.xx   | Client Error.  This class of status code indicates that  |
         7935    |        | the request was not successful.  The error is the result |
         7936    |        | of either a syntax or a semantic error in the client-    |
         7937    |        | formatted request.  Request should not be retried until  |
         7938    |        | the condition in the request is corrected.               |
         7939    |        |                                                          |
         7940    | 4.xx   | Scheduling Error.  This class of status code indicates   |
         7941    |        | that the request was not successful.  Some sort of error |
         7942    |        | occurred within the calendaring and scheduling service,  |
         7943    |        | not directly related to the request itself.              |
         7944    +--------+----------------------------------------------------------+
         7945 
         7946 
         7947 
         7948 
         7949 
         7950 
         7951 
         7952 
         7953 
         7954 Desruisseaux                Standards Track                   [Page 142]
         7955 
         7956 RFC 5545                       iCalendar                  September 2009
         7957 
         7958 
         7959    Format Definition:  This property is defined by the following
         7960       notation:
         7961 
         7962        rstatus    = "REQUEST-STATUS" rstatparam ":"
         7963                     statcode ";" statdesc [";" extdata]
         7964 
         7965        rstatparam = *(
         7966                   ;
         7967                   ; The following is OPTIONAL,
         7968                   ; but MUST NOT occur more than once.
         7969                   ;
         7970                   (";" languageparam) /
         7971                   ;
         7972                   ; The following is OPTIONAL,
         7973                   ; and MAY occur more than once.
         7974                   ;
         7975                   (";" other-param)
         7976                   ;
         7977                   )
         7978 
         7979        statcode   = 1*DIGIT 1*2("." 1*DIGIT)
         7980        ;Hierarchical, numeric return status code
         7981 
         7982        statdesc   = text
         7983        ;Textual status description
         7984 
         7985        extdata    = text
         7986        ;Textual exception data.  For example, the offending property
         7987        ;name and value or complete property line.
         7988 
         7989    Example:  The following are some possible examples of this property.
         7990 
         7991       The COMMA and SEMICOLON separator characters in the property value
         7992       are BACKSLASH character escaped because they appear in a text
         7993       value.
         7994 
         7995        REQUEST-STATUS:2.0;Success
         7996 
         7997        REQUEST-STATUS:3.1;Invalid property value;DTSTART:96-Apr-01
         7998 
         7999        REQUEST-STATUS:2.8; Success\, repeating event ignored. Scheduled
         8000         as a single event.;RRULE:FREQ=WEEKLY\;INTERVAL=2
         8001 
         8002        REQUEST-STATUS:4.1;Event conflict.  Date-time is busy.
         8003 
         8004        REQUEST-STATUS:3.7;Invalid calendar user;ATTENDEE:
         8005         mailto:jsmith@example.com
         8006 
         8007 
         8008 
         8009 
         8010 Desruisseaux                Standards Track                   [Page 143]
         8011 
         8012 RFC 5545                       iCalendar                  September 2009
         8013 
         8014 
         8015 4.  iCalendar Object Examples
         8016 
         8017    The following examples are provided as an informational source of
         8018    illustrative iCalendar objects consistent with this content type.
         8019 
         8020    The following example specifies a three-day conference that begins at
         8021    2:30 P.M. UTC, September 18, 1996 and ends at 10:00 P.M. UTC,
         8022    September 20, 1996.
         8023 
         8024        BEGIN:VCALENDAR
         8025        PRODID:-//xyz Corp//NONSGML PDA Calendar Version 1.0//EN
         8026        VERSION:2.0
         8027        BEGIN:VEVENT
         8028        DTSTAMP:19960704T120000Z
         8029        UID:uid1@example.com
         8030        ORGANIZER:mailto:jsmith@example.com
         8031        DTSTART:19960918T143000Z
         8032        DTEND:19960920T220000Z
         8033        STATUS:CONFIRMED
         8034        CATEGORIES:CONFERENCE
         8035        SUMMARY:Networld+Interop Conference
         8036        DESCRIPTION:Networld+Interop Conference
         8037          and Exhibit\nAtlanta World Congress Center\n
         8038         Atlanta\, Georgia
         8039        END:VEVENT
         8040        END:VCALENDAR
         8041 
         8042    The following example specifies a group-scheduled meeting that begins
         8043    at 8:30 AM EST on March 12, 1998 and ends at 9:30 AM EST on March 12,
         8044    1998.  The "Organizer" has scheduled the meeting with one or more
         8045    calendar users in a group.  A time zone specification for Eastern
         8046    United States has been specified.
         8047 
         8048        BEGIN:VCALENDAR
         8049        PRODID:-//RDU Software//NONSGML HandCal//EN
         8050        VERSION:2.0
         8051        BEGIN:VTIMEZONE
         8052        TZID:America/New_York
         8053        BEGIN:STANDARD
         8054        DTSTART:19981025T020000
         8055        TZOFFSETFROM:-0400
         8056        TZOFFSETTO:-0500
         8057        TZNAME:EST
         8058        END:STANDARD
         8059        BEGIN:DAYLIGHT
         8060        DTSTART:19990404T020000
         8061        TZOFFSETFROM:-0500
         8062        TZOFFSETTO:-0400
         8063 
         8064 
         8065 
         8066 Desruisseaux                Standards Track                   [Page 144]
         8067 
         8068 RFC 5545                       iCalendar                  September 2009
         8069 
         8070 
         8071        TZNAME:EDT
         8072        END:DAYLIGHT
         8073        END:VTIMEZONE
         8074        BEGIN:VEVENT
         8075        DTSTAMP:19980309T231000Z
         8076        UID:guid-1.example.com
         8077        ORGANIZER:mailto:mrbig@example.com
         8078        ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP:
         8079         mailto:employee-A@example.com
         8080        DESCRIPTION:Project XYZ Review Meeting
         8081        CATEGORIES:MEETING
         8082        CLASS:PUBLIC
         8083        CREATED:19980309T130000Z
         8084        SUMMARY:XYZ Project Review
         8085        DTSTART;TZID=America/New_York:19980312T083000
         8086        DTEND;TZID=America/New_York:19980312T093000
         8087        LOCATION:1CP Conference Room 4350
         8088        END:VEVENT
         8089        END:VCALENDAR
         8090 
         8091    The following is an example of an iCalendar object passed in a MIME
         8092    message with a single body part consisting of a "text/calendar"
         8093    Content Type.
         8094 
         8095        TO:jsmith@example.com
         8096        FROM:jdoe@example.com
         8097        MIME-VERSION:1.0
         8098        MESSAGE-ID:<id3@example.com>
         8099        CONTENT-TYPE:text/calendar; method="xyz"; component="VEVENT"
         8100 
         8101        BEGIN:VCALENDAR
         8102        METHOD:xyz
         8103        VERSION:2.0
         8104        PRODID:-//ABC Corporation//NONSGML My Product//EN
         8105        BEGIN:VEVENT
         8106        DTSTAMP:19970324T120000Z
         8107        SEQUENCE:0
         8108        UID:uid3@example.com
         8109        ORGANIZER:mailto:jdoe@example.com
         8110        ATTENDEE;RSVP=TRUE:mailto:jsmith@example.com
         8111        DTSTART:19970324T123000Z
         8112        DTEND:19970324T210000Z
         8113        CATEGORIES:MEETING,PROJECT
         8114        CLASS:PUBLIC
         8115        SUMMARY:Calendaring Interoperability Planning Meeting
         8116        DESCRIPTION:Discuss how we can test c&s interoperability\n
         8117         using iCalendar and other IETF standards.
         8118        LOCATION:LDB Lobby
         8119 
         8120 
         8121 
         8122 Desruisseaux                Standards Track                   [Page 145]
         8123 
         8124 RFC 5545                       iCalendar                  September 2009
         8125 
         8126 
         8127        ATTACH;FMTTYPE=application/postscript:ftp://example.com/pub/
         8128         conf/bkgrnd.ps
         8129        END:VEVENT
         8130        END:VCALENDAR
         8131 
         8132    The following is an example of a to-do due on April 15, 1998.  An
         8133    audio alarm has been specified to remind the calendar user at noon,
         8134    the day before the to-do is expected to be completed and repeat
         8135    hourly, four additional times.  The to-do definition has been
         8136    modified twice since it was initially created.
         8137 
         8138        BEGIN:VCALENDAR
         8139        VERSION:2.0
         8140        PRODID:-//ABC Corporation//NONSGML My Product//EN
         8141        BEGIN:VTODO
         8142        DTSTAMP:19980130T134500Z
         8143        SEQUENCE:2
         8144        UID:uid4@example.com
         8145        ORGANIZER:mailto:unclesam@example.com
         8146        ATTENDEE;PARTSTAT=ACCEPTED:mailto:jqpublic@example.com
         8147        DUE:19980415T000000
         8148        STATUS:NEEDS-ACTION
         8149        SUMMARY:Submit Income Taxes
         8150        BEGIN:VALARM
         8151        ACTION:AUDIO
         8152        TRIGGER:19980403T120000Z
         8153        ATTACH;FMTTYPE=audio/basic:http://example.com/pub/audio-
         8154         files/ssbanner.aud
         8155        REPEAT:4
         8156        DURATION:PT1H
         8157        END:VALARM
         8158        END:VTODO
         8159        END:VCALENDAR
         8160 
         8161    The following is an example of a journal entry:
         8162 
         8163        BEGIN:VCALENDAR
         8164        VERSION:2.0
         8165        PRODID:-//ABC Corporation//NONSGML My Product//EN
         8166        BEGIN:VJOURNAL
         8167        DTSTAMP:19970324T120000Z
         8168        UID:uid5@example.com
         8169        ORGANIZER:mailto:jsmith@example.com
         8170        STATUS:DRAFT
         8171        CLASS:PUBLIC
         8172        CATEGORIES:Project Report,XYZ,Weekly Meeting
         8173        DESCRIPTION:Project xyz Review Meeting Minutes\n
         8174         Agenda\n1. Review of project version 1.0 requirements.\n2.
         8175 
         8176 
         8177 
         8178 Desruisseaux                Standards Track                   [Page 146]
         8179 
         8180 RFC 5545                       iCalendar                  September 2009
         8181 
         8182 
         8183          Definition
         8184         of project processes.\n3. Review of project schedule.\n
         8185         Participants: John Smith\, Jane Doe\, Jim Dandy\n-It was
         8186          decided that the requirements need to be signed off by
         8187          product marketing.\n-Project processes were accepted.\n
         8188         -Project schedule needs to account for scheduled holidays
         8189          and employee vacation time. Check with HR for specific
         8190          dates.\n-New schedule will be distributed by Friday.\n-
         8191         Next weeks meeting is cancelled. No meeting until 3/23.
         8192        END:VJOURNAL
         8193        END:VCALENDAR
         8194 
         8195    The following is an example of published busy time information.  The
         8196    iCalendar object might be placed in the network resource
         8197    http://www.example.com/calendar/busytime/jsmith.ifb.
         8198 
         8199        BEGIN:VCALENDAR
         8200        VERSION:2.0
         8201        PRODID:-//RDU Software//NONSGML HandCal//EN
         8202        BEGIN:VFREEBUSY
         8203        ORGANIZER:mailto:jsmith@example.com
         8204        DTSTART:19980313T141711Z
         8205        DTEND:19980410T141711Z
         8206        FREEBUSY:19980314T233000Z/19980315T003000Z
         8207        FREEBUSY:19980316T153000Z/19980316T163000Z
         8208        FREEBUSY:19980318T030000Z/19980318T040000Z
         8209        URL:http://www.example.com/calendar/busytime/jsmith.ifb
         8210        END:VFREEBUSY
         8211        END:VCALENDAR
         8212 
         8213 5.  Recommended Practices
         8214 
         8215    These recommended practices should be followed in order to assure
         8216    consistent handling of the following cases for an iCalendar object.
         8217 
         8218    1.  Content lines longer than 75 octets SHOULD be folded.
         8219 
         8220    2.  When the combination of the "RRULE" and "RDATE" properties in a
         8221        recurring component produces multiple instances having the same
         8222        start DATE-TIME value, they should be collapsed to, and
         8223        considered as, a single instance.  If the "RDATE" property is
         8224        specified as a PERIOD value the duration of the recurrence
         8225        instance will be the one specified by the "RDATE" property, and
         8226        not the duration of the recurrence instance defined by the
         8227        "DTSTART" property.
         8228 
         8229    3.  When a calendar user receives multiple requests for the same
         8230        calendar component (e.g., REQUEST for a "VEVENT" calendar
         8231 
         8232 
         8233 
         8234 Desruisseaux                Standards Track                   [Page 147]
         8235 
         8236 RFC 5545                       iCalendar                  September 2009
         8237 
         8238 
         8239        component) as a result of being on multiple mailing lists
         8240        specified by "ATTENDEE" properties in the request, they SHOULD
         8241        respond to only one of the requests.  The calendar user SHOULD
         8242        also specify (using the "MEMBER" parameter of the "ATTENDEE"
         8243        property) of which mailing list they are a member.
         8244 
         8245    4.  An implementation can truncate a "SUMMARY" property value to 255
         8246        octets, but it MUST NOT truncate the value in the middle of a
         8247        UTF-8 multi-octet sequence.
         8248 
         8249    5.  If seconds of the minute are not supported by an implementation,
         8250        then a value of "00" SHOULD be specified for the seconds
         8251        component in a time value.
         8252 
         8253    6.  "TZURL" values SHOULD NOT be specified as a file URI type.  This
         8254        URI form can be useful within an organization, but is problematic
         8255        in the Internet.
         8256 
         8257    7.  Some possible English values for "CATEGORIES" property include:
         8258        "ANNIVERSARY", "APPOINTMENT", "BUSINESS", "EDUCATION", "HOLIDAY",
         8259        "MEETING", "MISCELLANEOUS", "NON-WORKING HOURS", "NOT IN OFFICE",
         8260        "PERSONAL", "PHONE CALL", "SICK DAY", "SPECIAL OCCASION",
         8261        "TRAVEL", "VACATION".  Categories can be specified in any
         8262        registered language.
         8263 
         8264    8.  Some possible English values for the "RESOURCES" property
         8265        include: "CATERING", "CHAIRS", "COMPUTER PROJECTOR", "EASEL",
         8266        "OVERHEAD PROJECTOR", "SPEAKER PHONE", "TABLE", "TV", "VCR",
         8267        "VIDEO PHONE", "VEHICLE".  Resources can be specified in any
         8268        registered language.
         8269 
         8270 6.  Internationalization Considerations
         8271 
         8272    Applications MUST generate iCalendar streams in the UTF-8 charset and
         8273    MUST accept an iCalendar stream in the UTF-8 or US-ASCII charset.
         8274 
         8275 7.  Security Considerations
         8276 
         8277    Because calendaring and scheduling information is very privacy-
         8278    sensitive, the protocol used for the transmission of calendaring and
         8279    scheduling information should have capabilities to protect the
         8280    information from possible threats, such as eavesdropping, replay,
         8281    message insertion, deletion, modification, and man-in-the-middle
         8282    attacks.
         8283 
         8284    As this document only defines the data format and media type of text/
         8285    calendar that is independent of any calendar service or protocol, it
         8286    is up to the actual protocol specifications such as iTIP [2446bis],
         8287 
         8288 
         8289 
         8290 Desruisseaux                Standards Track                   [Page 148]
         8291 
         8292 RFC 5545                       iCalendar                  September 2009
         8293 
         8294 
         8295    iMIP [2447bis], and "Calendaring Extensions to WebDAV (CalDAV)"
         8296    [RFC4791] to describe the threats that the above attacks present, as
         8297    well as ways in which to mitigate them.
         8298 
         8299 8.  IANA Considerations
         8300 
         8301 8.1.  iCalendar Media Type Registration
         8302 
         8303    The Calendaring and Scheduling Core Object Specification is intended
         8304    for use as a MIME content type.
         8305 
         8306    To: ietf-types@iana.org
         8307 
         8308    Subject: Registration of media type text/calendar
         8309 
         8310    Type name:  text
         8311 
         8312    Subtype name:  calendar
         8313 
         8314    Required parameters:  none
         8315 
         8316    Optional parameters:  charset, method, component, and optinfo
         8317 
         8318       The "charset" parameter is defined in [RFC2046] for subtypes of
         8319       the "text" media type.  It is used to indicate the charset used in
         8320       the body part.  The charset supported by this revision of
         8321       iCalendar is UTF-8.  The use of any other charset is deprecated by
         8322       this revision of iCalendar; however, note that this revision
         8323       requires that compliant applications MUST accept iCalendar streams
         8324       using either the UTF-8 or US-ASCII charset.
         8325 
         8326       The "method" parameter is used to convey the iCalendar object
         8327       method or transaction semantics for the calendaring and scheduling
         8328       information.  It also is an identifier for the restricted set of
         8329       properties and values of which the iCalendar object consists.  The
         8330       parameter is to be used as a guide for applications interpreting
         8331       the information contained within the body part.  It SHOULD NOT be
         8332       used to exclude or require particular pieces of information unless
         8333       the identified method definition specifically calls for this
         8334       behavior.  Unless specifically forbidden by a particular method
         8335       definition, a text/calendar content type can contain any set of
         8336       properties permitted by the Calendaring and Scheduling Core Object
         8337       Specification.  The "method" parameter MUST be specified and MUST
         8338       be set to the same value as the "METHOD" component property of the
         8339       iCalendar objects of the iCalendar stream if and only if the
         8340       iCalendar objects in the iCalendar stream all have a "METHOD"
         8341       component property set to the same value.
         8342 
         8343 
         8344 
         8345 
         8346 Desruisseaux                Standards Track                   [Page 149]
         8347 
         8348 RFC 5545                       iCalendar                  September 2009
         8349 
         8350 
         8351       The value for the "method" parameter is defined as follows:
         8352 
         8353        method  = 1*(ALPHA / DIGIT / "-")
         8354        ; IANA-registered iCalendar object method
         8355 
         8356       The "component" parameter conveys the type of iCalendar calendar
         8357       component within the body part.  If the iCalendar object contains
         8358       more than one calendar component type, then multiple component
         8359       parameters MUST be specified.
         8360 
         8361       The value for the "component" parameter is defined as follows:
         8362 
         8363        component = "VEVENT"
         8364                  / "VTODO"
         8365                  / "VJOURNAL"
         8366                  / "VFREEBUSY"
         8367                  / "VTIMEZONE"
         8368                  / iana-token
         8369                  / x-name
         8370 
         8371       The "optinfo" parameter conveys optional information about the
         8372       iCalendar object within the body part.  This parameter can only
         8373       specify semantics already specified by the iCalendar object and
         8374       that can be otherwise determined by parsing the body part.  In
         8375       addition, the optional information specified by this parameter
         8376       MUST be consistent with that information specified by the
         8377       iCalendar object.  For example, it can be used to convey the
         8378       "Attendee" response status to a meeting request.  The parameter
         8379       value consists of a string value.
         8380 
         8381       The parameter can be specified multiple times.
         8382 
         8383       The value for the "optinfo" parameter is defined as follows:
         8384 
         8385        optinfo    = infovalue / qinfovalue
         8386 
         8387        infovalue  = iana-token / x-name
         8388 
         8389        qinfovalue = DQUOTE (infovalue) DQUOTE
         8390 
         8391    Encoding considerations:  This media type can contain 8bit
         8392       characters, so the use of quoted-printable or base64 MIME Content-
         8393       Transfer-Encodings might be necessary when iCalendar objects are
         8394       transferred across protocols restricted to the 7bit repertoire.
         8395       Note that a text valued property in the content entity can also
         8396       have content encoding of special characters using a BACKSLASH
         8397       character escapement technique.  This means that content values
         8398       can end up being encoded twice.
         8399 
         8400 
         8401 
         8402 Desruisseaux                Standards Track                   [Page 150]
         8403 
         8404 RFC 5545                       iCalendar                  September 2009
         8405 
         8406 
         8407    Security considerations:  See Section 7.
         8408 
         8409    Interoperability considerations:  This media type is intended to
         8410       define a common format for conveying calendaring and scheduling
         8411       information between different systems.  It is heavily based on the
         8412       earlier [VCAL] industry specification.
         8413 
         8414    Published specification:  This specification.
         8415 
         8416    Applications that use this media type:  This media type is designed
         8417       for widespread use by Internet calendaring and scheduling
         8418       applications.  In addition, applications in the workflow and
         8419       document management area might find this content-type applicable.
         8420       The iTIP [2446bis], iMIP [2447bis], and CalDAV [RFC4791] Internet
         8421       protocols directly use this media type also.
         8422 
         8423    Additional information:
         8424 
         8425       Magic number(s):  None.
         8426 
         8427       File extension(s):  The file extension of "ics" is to be used to
         8428          designate a file containing (an arbitrary set of) calendaring
         8429          and scheduling information consistent with this MIME content
         8430          type.
         8431 
         8432          The file extension of "ifb" is to be used to designate a file
         8433          containing free or busy time information consistent with this
         8434          MIME content type.
         8435 
         8436       Macintosh file type code(s):  The file type code of "iCal" is to
         8437          be used in Apple MacIntosh operating system environments to
         8438          designate a file containing calendaring and scheduling
         8439          information consistent with this MIME media type.
         8440 
         8441          The file type code of "iFBf" is to be used in Apple MacIntosh
         8442          operating system environments to designate a file containing
         8443          free or busy time information consistent with this MIME media
         8444          type.
         8445 
         8446    Person & email address to contact for further information:  See the
         8447       "Author's Address" section of this document.
         8448 
         8449    Intended usage:  COMMON
         8450 
         8451    Restrictions on usage:  There are no restrictions on where this media
         8452       type can be used.
         8453 
         8454    Author:  See the "Author's Address" section of this document.
         8455 
         8456 
         8457 
         8458 Desruisseaux                Standards Track                   [Page 151]
         8459 
         8460 RFC 5545                       iCalendar                  September 2009
         8461 
         8462 
         8463    Change controller:  IETF
         8464 
         8465 8.2.  New iCalendar Elements Registration
         8466 
         8467    This section defines the process to register new or modified
         8468    iCalendar elements, that is, components, properties, parameters,
         8469    value data types, and values, with IANA.
         8470 
         8471 8.2.1.  iCalendar Elements Registration Procedure
         8472 
         8473    The IETF will create a mailing list, icalendar@ietf.org, which can be
         8474    used for public discussion of iCalendar elements proposals prior to
         8475    registration.  Use of the mailing list is strongly encouraged.  The
         8476    IESG will appoint a designated expert who will monitor the
         8477    icalendar@ietf.org mailing list and review registrations.
         8478 
         8479    Registration of new iCalendar elements MUST be reviewed by the
         8480    designated expert and published in an RFC.  A Standards Track RFC is
         8481    REQUIRED for the registration of new value data types that modify
         8482    existing properties, as well as for the registration of participation
         8483    status values to be used in "VEVENT" calendar components.  A
         8484    Standards Track RFC is also REQUIRED for registration of iCalendar
         8485    elements that modify iCalendar elements previously documented in a
         8486    Standards Track RFC.
         8487 
         8488    The registration procedure begins when a completed registration
         8489    template, defined in the sections below, is sent to
         8490    icalendar@ietf.org and iana@iana.org.  The designated expert is
         8491    expected to tell IANA and the submitter of the registration within
         8492    two weeks whether the registration is approved, approved with minor
         8493    changes, or rejected with cause.  When a registration is rejected
         8494    with cause, it can be re-submitted if the concerns listed in the
         8495    cause are addressed.  Decisions made by the designated expert can be
         8496    appealed to the IESG Applications Area Director, then to the IESG.
         8497    They follow the normal appeals procedure for IESG decisions.
         8498 
         8499 8.2.2.  Registration Template for Components
         8500 
         8501    A component is defined by completing the following template.
         8502 
         8503    Component name:  The name of the component.
         8504 
         8505    Purpose:  The purpose of the component.  Give a short but clear
         8506       description.
         8507 
         8508    Format definition:  The ABNF for the component definition needs to be
         8509       specified.
         8510 
         8511 
         8512 
         8513 
         8514 Desruisseaux                Standards Track                   [Page 152]
         8515 
         8516 RFC 5545                       iCalendar                  September 2009
         8517 
         8518 
         8519    Description:  Any special notes about the component, how it is to be
         8520       used, etc.
         8521 
         8522    Example(s):  One or more examples of instances of the component need
         8523       to be specified.
         8524 
         8525 8.2.3.  Registration Template for Properties
         8526 
         8527    A property is defined by completing the following template.
         8528 
         8529    Property name:  The name of the property.
         8530 
         8531    Purpose:  The purpose of the property.  Give a short but clear
         8532       description.
         8533 
         8534    Value type:  Any of the valid value types for the property value need
         8535       to be specified.  The default value type also needs to be
         8536       specified.
         8537 
         8538    Property parameters:  Any of the valid property parameters for the
         8539       property MUST be specified.
         8540 
         8541    Conformance:  The calendar components in which the property can
         8542       appear MUST be specified.
         8543 
         8544    Description:  Any special notes about the property, how it is to be
         8545       used, etc.
         8546 
         8547    Format definition:  The ABNF for the property definition needs to be
         8548       specified.
         8549 
         8550    Example(s):  One or more examples of instances of the property need
         8551       to be specified.
         8552 
         8553 8.2.4.  Registration Template for Parameters
         8554 
         8555    A parameter is defined by completing the following template.
         8556 
         8557    Parameter name:  The name of the parameter.
         8558 
         8559    Purpose:  The purpose of the parameter.  Give a short but clear
         8560       description.
         8561 
         8562    Format definition:  The ABNF for the parameter definition needs to be
         8563       specified.
         8564 
         8565    Description:  Any special notes about the parameter, how it is to be
         8566       used, etc.
         8567 
         8568 
         8569 
         8570 Desruisseaux                Standards Track                   [Page 153]
         8571 
         8572 RFC 5545                       iCalendar                  September 2009
         8573 
         8574 
         8575    Example(s):  One or more examples of instances of the parameter need
         8576       to be specified.
         8577 
         8578 8.2.5.  Registration Template for Value Data Types
         8579 
         8580    A value data type is defined by completing the following template.
         8581 
         8582    Value name:  The name of the value type.
         8583 
         8584    Purpose:  The purpose of the value type.  Give a short but clear
         8585       description.
         8586 
         8587    Format definition:  The ABNF for the value type definition needs to
         8588       be specified.
         8589 
         8590    Description:  Any special notes about the value type, how it is to be
         8591       used, etc.
         8592 
         8593    Example(s):  One or more examples of instances of the value type need
         8594       to be specified.
         8595 
         8596 8.2.6.  Registration Template for Values
         8597 
         8598    A value is defined by completing the following template.
         8599 
         8600    Value:  The value literal.
         8601 
         8602    Purpose:  The purpose of the value.  Give a short but clear
         8603       description.
         8604 
         8605    Conformance:  The calendar properties and/or parameters that can take
         8606       this value need to be specified.
         8607 
         8608    Example(s):  One or more examples of instances of the value need to
         8609       be specified.
         8610 
         8611    The following is a fictitious example of a registration of an
         8612    iCalendar value:
         8613 
         8614    Value:  TOP-SECRET
         8615 
         8616    Purpose:  This value is used to specify the access classification of
         8617       top-secret calendar components.
         8618 
         8619    Conformance:  This value can be used with the "CLASS" property.
         8620 
         8621 
         8622 
         8623 
         8624 
         8625 
         8626 Desruisseaux                Standards Track                   [Page 154]
         8627 
         8628 RFC 5545                       iCalendar                  September 2009
         8629 
         8630 
         8631    Example(s):  The following is an example of this value used with the
         8632       "CLASS" property:
         8633 
         8634      CLASS:TOP-SECRET
         8635 
         8636 8.3.  Initial iCalendar Elements Registries
         8637 
         8638    The IANA created and maintains the following registries for iCalendar
         8639    elements with pointers to appropriate reference documents.
         8640 
         8641 8.3.1.  Components Registry
         8642 
         8643    The following table has been used to initialize the components
         8644    registry.
         8645 
         8646              +-----------+---------+-------------------------+
         8647              | Component | Status  | Reference               |
         8648              +-----------+---------+-------------------------+
         8649              | VCALENDAR | Current | RFC 5545, Section 3.4   |
         8650              |           |         |                         |
         8651              | VEVENT    | Current | RFC 5545, Section 3.6.1 |
         8652              |           |         |                         |
         8653              | VTODO     | Current | RFC 5545, Section 3.6.2 |
         8654              |           |         |                         |
         8655              | VJOURNAL  | Current | RFC 5545, Section 3.6.3 |
         8656              |           |         |                         |
         8657              | VFREEBUSY | Current | RFC 5545, Section 3.6.4 |
         8658              |           |         |                         |
         8659              | VTIMEZONE | Current | RFC 5545, Section 3.6.5 |
         8660              |           |         |                         |
         8661              | VALARM    | Current | RFC 5545, Section 3.6.6 |
         8662              |           |         |                         |
         8663              | STANDARD  | Current | RFC 5545, Section 3.6.5 |
         8664              |           |         |                         |
         8665              | DAYLIGHT  | Current | RFC 5545, Section 3.6.5 |
         8666              +-----------+---------+-------------------------+
         8667 
         8668 
         8669 
         8670 
         8671 
         8672 
         8673 
         8674 
         8675 
         8676 
         8677 
         8678 
         8679 
         8680 
         8681 
         8682 Desruisseaux                Standards Track                   [Page 155]
         8683 
         8684 RFC 5545                       iCalendar                  September 2009
         8685 
         8686 
         8687 8.3.2.  Properties Registry
         8688 
         8689    The following table is has been used to initialize the properties
         8690    registry.
         8691 
         8692       +------------------+------------+----------------------------+
         8693       | Property         | Status     | Reference                  |
         8694       +------------------+------------+----------------------------+
         8695       | CALSCALE         | Current    | RFC 5545, Section 3.7.1    |
         8696       | METHOD           | Current    | RFC 5545, Section 3.7.2    |
         8697       |                  |            |                            |
         8698       | PRODID           | Current    | RFC 5545, Section 3.7.3    |
         8699       |                  |            |                            |
         8700       | VERSION          | Current    | RFC 5545, Section 3.7.4    |
         8701       |                  |            |                            |
         8702       | ATTACH           | Current    | RFC 5545, Section 3.8.1.1  |
         8703       |                  |            |                            |
         8704       | CATEGORIES       | Current    | RFC 5545, Section 3.8.1.2  |
         8705       |                  |            |                            |
         8706       | CLASS            | Current    | RFC 5545, Section 3.8.1.3  |
         8707       |                  |            |                            |
         8708       | COMMENT          | Current    | RFC 5545, Section 3.8.1.4  |
         8709       |                  |            |                            |
         8710       | DESCRIPTION      | Current    | RFC 5545, Section 3.8.1.5  |
         8711       |                  |            |                            |
         8712       | GEO              | Current    | RFC 5545, Section 3.8.1.6  |
         8713       |                  |            |                            |
         8714       | LOCATION         | Current    | RFC 5545, Section 3.8.1.7  |
         8715       |                  |            |                            |
         8716       | PERCENT-COMPLETE | Current    | RFC 5545, Section 3.8.1.8  |
         8717       |                  |            |                            |
         8718       | PRIORITY         | Current    | RFC 5545, Section 3.8.1.9  |
         8719       |                  |            |                            |
         8720       | RESOURCES        | Current    | RFC 5545, Section 3.8.1.10 |
         8721       |                  |            |                            |
         8722       | STATUS           | Current    | RFC 5545, Section 3.8.1.11 |
         8723       |                  |            |                            |
         8724       | SUMMARY          | Current    | RFC 5545, Section 3.8.1.12 |
         8725       |                  |            |                            |
         8726       | COMPLETED        | Current    | RFC 5545, Section 3.8.2.1  |
         8727       |                  |            |                            |
         8728       | DTEND            | Current    | RFC 5545, Section 3.8.2.2  |
         8729       |                  |            |                            |
         8730       | DUE              | Current    | RFC 5545, Section 3.8.2.3  |
         8731       |                  |            |                            |
         8732       | DTSTART          | Current    | RFC 5545, Section 3.8.2.4  |
         8733       |                  |            |                            |
         8734       | DURATION         | Current    | RFC 5545, Section 3.8.2.5  |
         8735 
         8736 
         8737 
         8738 Desruisseaux                Standards Track                   [Page 156]
         8739 
         8740 RFC 5545                       iCalendar                  September 2009
         8741 
         8742 
         8743       |                  |            |                            |
         8744       | FREEBUSY         | Current    | RFC 5545, Section 3.8.2.6  |
         8745       |                  |            |                            |
         8746       | TRANSP           | Current    | RFC 5545, Section 3.8.2.7  |
         8747       |                  |            |                            |
         8748       | TZID             | Current    | RFC 5545, Section 3.8.3.1  |
         8749       |                  |            |                            |
         8750       | TZNAME           | Current    | RFC 5545, Section 3.8.3.2  |
         8751       |                  |            |                            |
         8752       | TZOFFSETFROM     | Current    | RFC 5545, Section 3.8.3.3  |
         8753       |                  |            |                            |
         8754       | TZOFFSETTO       | Current    | RFC 5545, Section 3.8.3.4  |
         8755       |                  |            |                            |
         8756       | TZURL            | Current    | RFC 5545, Section 3.8.3.5  |
         8757       |                  |            |                            |
         8758       | ATTENDEE         | Current    | RFC 5545, Section 3.8.4.1  |
         8759       |                  |            |                            |
         8760       | CONTACT          | Current    | RFC 5545, Section 3.8.4.2  |
         8761       |                  |            |                            |
         8762       | ORGANIZER        | Current    | RFC 5545, Section 3.8.4.3  |
         8763       |                  |            |                            |
         8764       | RECURRENCE-ID    | Current    | RFC 5545, Section 3.8.4.4  |
         8765       |                  |            |                            |
         8766       | RELATED-TO       | Current    | RFC 5545, Section 3.8.4.5  |
         8767       |                  |            |                            |
         8768       | URL              | Current    | RFC 5545, Section 3.8.4.6  |
         8769       |                  |            |                            |
         8770       | UID              | Current    | RFC 5545, Section 3.8.4.7  |
         8771       |                  |            |                            |
         8772       | EXDATE           | Current    | RFC 5545, Section 3.8.5.1  |
         8773       |                  |            |                            |
         8774       | EXRULE           | Deprecated | [RFC2445], Section 4.8.5.2 |
         8775       |                  |            |                            |
         8776       | RDATE            | Current    | RFC 5545, Section 3.8.5.2  |
         8777       |                  |            |                            |
         8778       | RRULE            | Current    | RFC 5545, Section 3.8.5.3  |
         8779       |                  |            |                            |
         8780       | ACTION           | Current    | RFC 5545, Section 3.8.6.1  |
         8781       |                  |            |                            |
         8782       | REPEAT           | Current    | RFC 5545, Section 3.8.6.2  |
         8783       |                  |            |                            |
         8784       | TRIGGER          | Current    | RFC 5545, Section 3.8.6.3  |
         8785       |                  |            |                            |
         8786       | CREATED          | Current    | RFC 5545, Section 3.8.7.1  |
         8787       |                  |            |                            |
         8788       | DTSTAMP          | Current    | RFC 5545, Section 3.8.7.2  |
         8789       |                  |            |                            |
         8790       | LAST-MODIFIED    | Current    | RFC 5545, Section 3.8.7.3  |
         8791 
         8792 
         8793 
         8794 Desruisseaux                Standards Track                   [Page 157]
         8795 
         8796 RFC 5545                       iCalendar                  September 2009
         8797 
         8798 
         8799       |                  |            |                            |
         8800       | SEQUENCE         | Current    | RFC 5545, Section 3.8.7.4  |
         8801       |                  |            |                            |
         8802       | REQUEST-STATUS   | Current    | RFC 5545, Section 3.8.8.3  |
         8803       +------------------+------------+----------------------------+
         8804 
         8805 8.3.3.  Parameters Registry
         8806 
         8807    The following table has been used to initialize the parameters
         8808    registry.
         8809 
         8810           +----------------+---------+--------------------------+
         8811           | Parameter      | Status  | Reference                |
         8812           +----------------+---------+--------------------------+
         8813           | ALTREP         | Current | RFC 5545, Section 3.2.1  |
         8814           |                |         |                          |
         8815           | CN             | Current | RFC 5545, Section 3.2.2  |
         8816           |                |         |                          |
         8817           | CUTYPE         | Current | RFC 5545, Section 3.2.3  |
         8818           |                |         |                          |
         8819           | DELEGATED-FROM | Current | RFC 5545, Section 3.2.4  |
         8820           |                |         |                          |
         8821           | DELEGATED-TO   | Current | RFC 5545, Section 3.2.5  |
         8822           |                |         |                          |
         8823           | DIR            | Current | RFC 5545, Section 3.2.6  |
         8824           |                |         |                          |
         8825           | ENCODING       | Current | RFC 5545, Section 3.2.7  |
         8826           |                |         |                          |
         8827           | FMTTYPE        | Current | RFC 5545, Section 3.2.8  |
         8828           |                |         |                          |
         8829           | FBTYPE         | Current | RFC 5545, Section 3.2.9  |
         8830           |                |         |                          |
         8831           | LANGUAGE       | Current | RFC 5545, Section 3.2.10 |
         8832           |                |         |                          |
         8833           | MEMBER         | Current | RFC 5545, Section 3.2.11 |
         8834           |                |         |                          |
         8835           | PARTSTAT       | Current | RFC 5545, Section 3.2.12 |
         8836           |                |         |                          |
         8837           | RANGE          | Current | RFC 5545, Section 3.2.13 |
         8838           |                |         |                          |
         8839           | RELATED        | Current | RFC 5545, Section 3.2.14 |
         8840           |                |         |                          |
         8841           | RELTYPE        | Current | RFC 5545, Section 3.2.15 |
         8842           |                |         |                          |
         8843           | ROLE           | Current | RFC 5545, Section 3.2.16 |
         8844           |                |         |                          |
         8845           | RSVP           | Current | RFC 5545, Section 3.2.17 |
         8846           |                |         |                          |
         8847 
         8848 
         8849 
         8850 Desruisseaux                Standards Track                   [Page 158]
         8851 
         8852 RFC 5545                       iCalendar                  September 2009
         8853 
         8854 
         8855           | SENT-BY        | Current | RFC 5545, Section 3.2.18 |
         8856           |                |         |                          |
         8857           | TZID           | Current | RFC 5545, Section 3.2.19 |
         8858           |                |         |                          |
         8859           | VALUE          | Current | RFC 5545, Section 3.2.20 |
         8860           +----------------+---------+--------------------------+
         8861 
         8862 8.3.4.  Value Data Types Registry
         8863 
         8864    The following table has been used to initialize the value data types
         8865    registry.
         8866 
         8867          +-----------------+---------+--------------------------+
         8868          | Value Data Type | Status  | Reference                |
         8869          +-----------------+---------+--------------------------+
         8870          | BINARY          | Current | RFC 5545, Section 3.3.1  |
         8871          |                 |         |                          |
         8872          | BOOLEAN         | Current | RFC 5545, Section 3.3.2  |
         8873          |                 |         |                          |
         8874          | CAL-ADDRESS     | Current | RFC 5545, Section 3.3.3  |
         8875          |                 |         |                          |
         8876          | DATE            | Current | RFC 5545, Section 3.3.4  |
         8877          |                 |         |                          |
         8878          | DATE-TIME       | Current | RFC 5545, Section 3.3.5  |
         8879          |                 |         |                          |
         8880          | DURATION        | Current | RFC 5545, Section 3.3.6  |
         8881          |                 |         |                          |
         8882          | FLOAT           | Current | RFC 5545, Section 3.3.7  |
         8883          |                 |         |                          |
         8884          | INTEGER         | Current | RFC 5545, Section 3.3.8  |
         8885          |                 |         |                          |
         8886          | PERIOD          | Current | RFC 5545, Section 3.3.9  |
         8887          |                 |         |                          |
         8888          | RECUR           | Current | RFC 5545, Section 3.3.10 |
         8889          |                 |         |                          |
         8890          | TEXT            | Current | RFC 5545, Section 3.3.11 |
         8891          |                 |         |                          |
         8892          | TIME            | Current | RFC 5545, Section 3.3.12 |
         8893          |                 |         |                          |
         8894          | URI             | Current | RFC 5545, Section 3.3.13 |
         8895          |                 |         |                          |
         8896          | UTC-OFFSET      | Current | RFC 5545, Section 3.3.14 |
         8897          +-----------------+---------+--------------------------+
         8898 
         8899 
         8900 
         8901 
         8902 
         8903 
         8904 
         8905 
         8906 Desruisseaux                Standards Track                   [Page 159]
         8907 
         8908 RFC 5545                       iCalendar                  September 2009
         8909 
         8910 
         8911 8.3.5.  Calendar User Types Registry
         8912 
         8913    The following table has been used to initialize the calendar user
         8914    types registry.
         8915 
         8916         +--------------------+---------+-------------------------+
         8917         | Calendar User Type | Status  | Reference               |
         8918         +--------------------+---------+-------------------------+
         8919         | INDIVIDUAL         | Current | RFC 5545, Section 3.2.3 |
         8920         |                    |         |                         |
         8921         | GROUP              | Current | RFC 5545, Section 3.2.3 |
         8922         |                    |         |                         |
         8923         | RESOURCE           | Current | RFC 5545, Section 3.2.3 |
         8924         |                    |         |                         |
         8925         | ROOM               | Current | RFC 5545, Section 3.2.3 |
         8926         |                    |         |                         |
         8927         | UNKNOWN            | Current | RFC 5545, Section 3.2.3 |
         8928         +--------------------+---------+-------------------------+
         8929 
         8930 8.3.6.  Free/Busy Time Types Registry
         8931 
         8932    The following table has been used to initialize the free/busy time
         8933    types registry.
         8934 
         8935         +---------------------+---------+-------------------------+
         8936         | Free/Busy Time Type | Status  | Reference               |
         8937         +---------------------+---------+-------------------------+
         8938         | FREE                | Current | RFC 5545, Section 3.2.9 |
         8939         |                     |         |                         |
         8940         | BUSY                | Current | RFC 5545, Section 3.2.9 |
         8941         |                     |         |                         |
         8942         | BUSY-UNAVAILABLE    | Current | RFC 5545, Section 3.2.9 |
         8943         |                     |         |                         |
         8944         | BUSY-TENTATIVE      | Current | RFC 5545, Section 3.2.9 |
         8945         +---------------------+---------+-------------------------+
         8946 
         8947 
         8948 
         8949 
         8950 
         8951 
         8952 
         8953 
         8954 
         8955 
         8956 
         8957 
         8958 
         8959 
         8960 
         8961 
         8962 Desruisseaux                Standards Track                   [Page 160]
         8963 
         8964 RFC 5545                       iCalendar                  September 2009
         8965 
         8966 
         8967 8.3.7.  Participation Statuses Registry
         8968 
         8969    The following table has been used to initialize the participation
         8970    statuses registry.
         8971 
         8972         +--------------------+---------+--------------------------+
         8973         | Participant Status | Status  | Reference                |
         8974         +--------------------+---------+--------------------------+
         8975         | NEEDS-ACTION       | Current | RFC 5545, Section 3.2.12 |
         8976         |                    |         |                          |
         8977         | ACCEPTED           | Current | RFC 5545, Section 3.2.12 |
         8978         |                    |         |                          |
         8979         | DECLINED           | Current | RFC 5545, Section 3.2.12 |
         8980         |                    |         |                          |
         8981         | TENTATIVE          | Current | RFC 5545, Section 3.2.12 |
         8982         |                    |         |                          |
         8983         | DELEGATED          | Current | RFC 5545, Section 3.2.12 |
         8984         |                    |         |                          |
         8985         | COMPLETED          | Current | RFC 5545, Section 3.2.12 |
         8986         |                    |         |                          |
         8987         | IN-PROCESS         | Current | RFC 5545, Section 3.2.12 |
         8988         +--------------------+---------+--------------------------+
         8989 
         8990 8.3.8.  Relationship Types Registry
         8991 
         8992    The following table has been used to initialize the relationship
         8993    types registry.
         8994 
         8995         +-------------------+---------+--------------------------+
         8996         | Relationship Type | Status  | Reference                |
         8997         +-------------------+---------+--------------------------+
         8998         | CHILD             | Current | RFC 5545, Section 3.2.15 |
         8999         |                   |         |                          |
         9000         | PARENT            | Current | RFC 5545, Section 3.2.15 |
         9001         |                   |         |                          |
         9002         | SIBLING           | Current | RFC 5545, Section 3.2.15 |
         9003         +-------------------+---------+--------------------------+
         9004 
         9005 
         9006 
         9007 
         9008 
         9009 
         9010 
         9011 
         9012 
         9013 
         9014 
         9015 
         9016 
         9017 
         9018 Desruisseaux                Standards Track                   [Page 161]
         9019 
         9020 RFC 5545                       iCalendar                  September 2009
         9021 
         9022 
         9023 8.3.9.  Participation Roles Registry
         9024 
         9025    The following table has been used to initialize the participation
         9026    roles registry.
         9027 
         9028          +-----------------+---------+--------------------------+
         9029          | Role Type       | Status  | Reference                |
         9030          +-----------------+---------+--------------------------+
         9031          | CHAIR           | Current | RFC 5545, Section 3.2.16 |
         9032          |                 |         |                          |
         9033          | REQ-PARTICIPANT | Current | RFC 5545, Section 3.2.16 |
         9034          |                 |         |                          |
         9035          | OPT-PARTICIPANT | Current | RFC 5545, Section 3.2.16 |
         9036          |                 |         |                          |
         9037          | NON-PARTICIPANT | Current | RFC 5545, Section 3.2.16 |
         9038          +-----------------+---------+--------------------------+
         9039 
         9040 8.3.10.  Actions Registry
         9041 
         9042    The following table has been used to initialize the actions registry.
         9043 
         9044           +-----------+------------+----------------------------+
         9045           | Action    | Status     | Reference                  |
         9046           +-----------+------------+----------------------------+
         9047           | AUDIO     | Current    | RFC 5545, Section 3.8.6.1  |
         9048           |           |            |                            |
         9049           | DISPLAY   | Current    | RFC 5545, Section 3.8.6.1  |
         9050           |           |            |                            |
         9051           | EMAIL     | Current    | RFC 5545, Section 3.8.6.1  |
         9052           |           |            |                            |
         9053           | PROCEDURE | Deprecated | [RFC2445], Section 4.8.6.1 |
         9054           +-----------+------------+----------------------------+
         9055 
         9056 8.3.11.  Classifications Registry
         9057 
         9058    The following table has been used to initialize the classifications
         9059    registry.
         9060 
         9061          +----------------+---------+---------------------------+
         9062          | Classification | Status  | Reference                 |
         9063          +----------------+---------+---------------------------+
         9064          | PUBLIC         | Current | RFC 5545, Section 3.8.1.3 |
         9065          |                |         |                           |
         9066          | PRIVATE        | Current | RFC 5545, Section 3.8.1.3 |
         9067          |                |         |                           |
         9068          | CONFIDENTIAL   | Current | RFC 5545, Section 3.8.1.3 |
         9069          +----------------+---------+---------------------------+
         9070 
         9071 
         9072 
         9073 
         9074 Desruisseaux                Standards Track                   [Page 162]
         9075 
         9076 RFC 5545                       iCalendar                  September 2009
         9077 
         9078 
         9079 8.3.12.  Methods Registry
         9080 
         9081    No values are defined in this document for the "METHOD" property.
         9082 
         9083 9.  Acknowledgments
         9084 
         9085    The editor of this document wishes to thank Frank Dawson and Derik
         9086    Stenerson, the original authors of RFC 2445, as well as the following
         9087    individuals who have participated in the drafting, review, and
         9088    discussion of this memo:
         9089 
         9090    Joe Abley, Hervey Allen, Steve Allen, Jay Batson, Oliver Block,
         9091    Stephane Bortzmeyer, Chris Bryant, Tantek Celik, Mark Crispin, Cyrus
         9092    Daboo, Mike Douglass, Andrew N. Dowden, Lisa Dusseault, Lars Eggert,
         9093    Gren Eliot, Pasi Eronen, Ben Fortuna, Ned Freed, Neal Gafter, Ted
         9094    Hardie, Tim Hare, Jeffrey Harris, Helge Hess, Paul B. Hill, Thomas
         9095    Hnetila, Russ Housley, Leif Johansson, Ciny Joy, Bruce Kahn, Reinhold
         9096    Kainhofer, Martin Kiff, Patrice Lapierre, Michiel van Leeuwen,
         9097    Jonathan Lennox, Jeff McCullough, Bill McQuillan, Alexey Melnikov,
         9098    John W. Noerenberg II, Chuck Norris, Mark Paterson, Simon Pilette,
         9099    Arnaud Quillaud, Robert Ransdell, Julian F. Reschke, Caleb
         9100    Richardson, Sam Roberts, Dan Romascanu, Mike Samuel, George Sexton,
         9101    Nigel Swinson, Clint Talbert, Simon Vaillancourt, Magnus Westerlund,
         9102    and Sandy Wills.
         9103 
         9104    A special thanks to the working group chairs Aki Niemi and Eliot Lear
         9105    for their support and guidance.
         9106 
         9107    The editor would also like to thank the Calendaring and Scheduling
         9108    Consortium for advice with this specification, and for organizing
         9109    interoperability testing events to help refine it.
         9110 
         9111 
         9112 
         9113 
         9114 
         9115 
         9116 
         9117 
         9118 
         9119 
         9120 
         9121 
         9122 
         9123 
         9124 
         9125 
         9126 
         9127 
         9128 
         9129 
         9130 Desruisseaux                Standards Track                   [Page 163]
         9131 
         9132 RFC 5545                       iCalendar                  September 2009
         9133 
         9134 
         9135 10.  References
         9136 
         9137 10.1.  Normative References
         9138 
         9139    [ISO.8601.2004]        International Organization for
         9140                           Standardization, "Data elements and
         9141                           interchange formats -- Information interchange
         9142                           -- Representation of dates and times", 2004.
         9143 
         9144    [ISO.9070.1991]        International Organization for
         9145                           Standardization, "Information Technology_SGML
         9146                           Support Facilities -- Registration Procedures
         9147                           for Public Text Owner Identifiers, Second
         9148                           Edition", April 1991.
         9149 
         9150    [RFC2045]              Freed, N. and N. Borenstein, "Multipurpose
         9151                           Internet Mail Extensions (MIME) Part One:
         9152                           Format of Internet Message Bodies", RFC 2045,
         9153                           November 1996.
         9154 
         9155    [RFC2046]              Freed, N. and N. Borenstein, "Multipurpose
         9156                           Internet Mail Extensions (MIME) Part Two:
         9157                           Media Types", RFC 2046, November 1996.
         9158 
         9159    [RFC2119]              Bradner, S., "Key words for use in RFCs to
         9160                           Indicate Requirement Levels", BCP 14,
         9161                           RFC 2119, March 1997.
         9162 
         9163    [RFC2368]              Hoffman, P., Masinter, L., and J. Zawinski,
         9164                           "The mailto URL scheme", RFC 2368, July 1998.
         9165 
         9166    [RFC3629]              Yergeau, F., "UTF-8, a transformation format
         9167                           of ISO 10646", STD 63, RFC 3629,
         9168                           November 2003.
         9169 
         9170    [RFC3986]              Berners-Lee, T., Fielding, R., and L.
         9171                           Masinter, "Uniform Resource Identifier (URI):
         9172                           Generic Syntax", STD 66, RFC 3986,
         9173                           January 2005.
         9174 
         9175    [RFC4288]              Freed, N. and J. Klensin, "Media Type
         9176                           Specifications and Registration Procedures",
         9177                           BCP 13, RFC 4288, December 2005.
         9178 
         9179    [RFC4648]              Josefsson, S., "The Base16, Base32, and Base64
         9180                           Data Encodings", RFC 4648, October 2006.
         9181 
         9182 
         9183 
         9184 
         9185 
         9186 Desruisseaux                Standards Track                   [Page 164]
         9187 
         9188 RFC 5545                       iCalendar                  September 2009
         9189 
         9190 
         9191    [RFC5234]              Crocker, D. and P. Overell, "Augmented BNF for
         9192                           Syntax Specifications: ABNF", STD 68,
         9193                           RFC 5234, January 2008.
         9194 
         9195    [RFC5646]              Phillips, A., Ed., and M. Davis, Ed., "Tags
         9196                           for Identifying Languages", BCP 47, RFC 5646,
         9197                           September 2009.
         9198 
         9199    [US-ASCII]             American National Standards Institute, "Coded
         9200                           Character Set - 7-bit American Standard Code
         9201                           for Information Interchange", ANSI X3.4, 1986.
         9202 
         9203 10.2.  Informative References
         9204 
         9205    [2446bis]              Daboo, C., "iCalendar Transport-Independent
         9206                           Interoperability Protocol (iTIP)", Work
         9207                           in Progress, April 2009.
         9208 
         9209    [2447bis]              Melnikov, A., "iCalendar Message-Based
         9210                           Interoperability Protocol (iMIP)", Work
         9211                           in Progress, June 2008.
         9212 
         9213    [ANSI INCITS 61-1986]  International Committee for Information
         9214                           Technology, "Representation of Geographic
         9215                           Point Locations for Information Interchange
         9216                           (formerly ANSI X3.61-1986 (R1997))", ANSI
         9217                           INCITS 61-1986 (R2007), 2007.
         9218 
         9219    [RFC1738]              Berners-Lee, T., Masinter, L., and M.
         9220                           McCahill, "Uniform Resource Locators (URL)",
         9221                           RFC 1738, December 1994.
         9222 
         9223    [RFC2392]              Levinson, E., "Content-ID and Message-ID
         9224                           Uniform Resource Locators", RFC 2392,
         9225                           August 1998.
         9226 
         9227    [RFC2397]              Masinter, L., "The "data" URL scheme",
         9228                           RFC 2397, August 1998.
         9229 
         9230    [RFC2425]              Howes, T., Smith, M., and F. Dawson, "A MIME
         9231                           Content-Type for Directory Information",
         9232                           RFC 2425, September 1998.
         9233 
         9234    [RFC2426]              Dawson, F. and T. Howes, "vCard MIME Directory
         9235                           Profile", RFC 2426, September 1998.
         9236 
         9237 
         9238 
         9239 
         9240 
         9241 
         9242 Desruisseaux                Standards Track                   [Page 165]
         9243 
         9244 RFC 5545                       iCalendar                  September 2009
         9245 
         9246 
         9247    [RFC2445]              Dawson, F. and Stenerson, D., "Internet
         9248                           Calendaring and Scheduling Core Object
         9249                           Specification (iCalendar)", RFC 2445,
         9250                           November 1998.
         9251 
         9252    [RFC2616]              Fielding, R., Gettys, J., Mogul, J., Frystyk,
         9253                           H., Masinter, L., Leach, P., and T. Berners-
         9254                           Lee, "Hypertext Transfer Protocol --
         9255                           HTTP/1.1", RFC 2616, June 1999.
         9256 
         9257    [RFC2818]              Rescorla, E., "HTTP Over TLS", RFC 2818,
         9258                           May 2000.
         9259 
         9260    [RFC4516]              Smith, M. and T. Howes, "Lightweight Directory
         9261                           Access Protocol (LDAP): Uniform Resource
         9262                           Locator", RFC 4516, June 2006.
         9263 
         9264    [RFC4791]              Daboo, C., Desruisseaux, B., and L. Dusseault,
         9265                           "Calendaring Extensions to WebDAV (CalDAV)",
         9266                           RFC 4791, March 2007.
         9267 
         9268    [TZDB]                 Eggert, P. and A.D. Olson, "Sources for Time
         9269                           Zone and Daylight Saving Time Data",
         9270                           July 2009,
         9271                           <http://www.twinsun.com/tz/tz-link.htm>.
         9272 
         9273    [VCAL]                 Internet Mail Consortium, "vCalendar: The
         9274                           Electronic Calendaring and Scheduling Exchange
         9275                           Format", September 1996,
         9276                           <http://www.imc.org/pdi/vcal-10.txt>.
         9277 
         9278 
         9279 
         9280 
         9281 
         9282 
         9283 
         9284 
         9285 
         9286 
         9287 
         9288 
         9289 
         9290 
         9291 
         9292 
         9293 
         9294 
         9295 
         9296 
         9297 
         9298 Desruisseaux                Standards Track                   [Page 166]
         9299 
         9300 RFC 5545                       iCalendar                  September 2009
         9301 
         9302 
         9303 Appendix A.  Differences from RFC 2445
         9304 
         9305    This appendix contains a list of changes that have been made in the
         9306    Internet Calendaring and Scheduling Core Object Specification from
         9307    RFC 2445.
         9308 
         9309 A.1.  New Restrictions
         9310 
         9311    1.  The "DTSTART" property SHOULD be synchronized with the recurrence
         9312        rule, if specified.
         9313 
         9314    2.  The "RRULE" property SHOULD NOT occur more than once in a
         9315        component.
         9316 
         9317    3.  The BYHOUR, BYMINUTE, and BYSECOND rule parts MUST NOT be
         9318        specified in the "RRULE" property when the "DTSTART" property is
         9319        specified as a DATE value.
         9320 
         9321    4.  The value type of the "DTEND" or "DUE" properties MUST match the
         9322        value type of "DTSTART" property.
         9323 
         9324    5.  The "DURATION" property can no longer appear in "VFREEBUSY"
         9325        components.
         9326 
         9327 A.2.  Restrictions Removed
         9328 
         9329    1.  The "DTSTART" and "DTEND" properties are no longer required to be
         9330        specified as date with local time and time zone reference when
         9331        used with a recurrence rule.
         9332 
         9333 A.3.  Deprecated Features
         9334 
         9335    1.  The "EXRULE" property can no longer be specified in a component.
         9336 
         9337    2.  The "THISANDPRIOR" value can no longer be used with the "RANGE"
         9338        parameter.
         9339 
         9340    3.  The "PROCEDURE" value can no longer be used with the "ACTION"
         9341        property.
         9342 
         9343    4.  The value type RECUR no longer allows multiple values to be
         9344        specified by a COMMA-separated list of values.
         9345 
         9346    5.  x-name rule parts can no longer be specified in properties of
         9347        RECUR value type (e.g., "RRULE"). x-param can be used on RECUR
         9348        value type properties instead.
         9349 
         9350 
         9351 
         9352 
         9353 
         9354 Desruisseaux                Standards Track                   [Page 167]
         9355 
         9356 RFC 5545                       iCalendar                  September 2009
         9357 
         9358 
         9359 Author's Address
         9360 
         9361    Bernard Desruisseaux (editor)
         9362    Oracle Corporation
         9363    600 blvd. de Maisonneuve West
         9364    Suite 1900
         9365    Montreal, QC  H3A 3J2
         9366    CANADA
         9367 
         9368    EMail: bernard.desruisseaux@oracle.com
         9369    URI:   http://www.oracle.com/
         9370 
         9371 
         9372 
         9373 
         9374 
         9375 
         9376 
         9377 
         9378 
         9379 
         9380 
         9381 
         9382 
         9383 
         9384 
         9385 
         9386 
         9387 
         9388 
         9389 
         9390 
         9391 
         9392 
         9393 
         9394 
         9395 
         9396 
         9397 
         9398 
         9399 
         9400 
         9401 
         9402 
         9403 
         9404 
         9405 
         9406 
         9407 
         9408 
         9409 
         9410 Desruisseaux                Standards Track                   [Page 168]
         9411