home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_a_c / draft-ietf-calsch-ical-03.txt < prev    next >
Text File  |  1997-10-27  |  183KB  |  5,003 lines

  1.  
  2.  
  3. Network Working Group                               Frank Dawson, Lotus
  4. Internet Draft                               Derik Stenerson, Microsoft
  5. <draft-ietf-calsch-ical-03.txt>                        October 22, 1997
  6. Expires Mary 1998
  7.  
  8.  
  9.      Internet Calendaring and Scheduling Core Object Specification
  10.                               (iCalendar)
  11.  
  12.  
  13. Status of this Memo
  14.  
  15.  
  16.    This memo is an Internet-Draft. Internet-Drafts are working documents
  17.    of the Internet Engineering Task Force (IETF), its areas, and its
  18.    working groups. Note that other groups MAY also distribute working
  19.    documents as Internet-Drafts.
  20.  
  21.    Internet-Drafts are draft documents valid for a maximum of six
  22.    months. Internet-Drafts MAY be updated, replaced, or made obsolete by
  23.    other documents at any time. It is not appropriate to use Internet-
  24.    Drafts as reference material or to cite them other than as a "working
  25.    draft" or "work in progress".
  26.  
  27.    To learn the current status of any Internet-Draft, please check the
  28.    1id-abstracts.txt listing contained in the Internet-Drafts Shadow
  29.    Directories on ds.internic.net (US East Coast), nic.nordu.net
  30.    (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific
  31.    Rim).
  32.  
  33.    Distribution of this memo is unlimited.
  34.  
  35.    Copyright (C) The Internet Society 1997. All Rights Reserved.
  36.  
  37.  
  38. Abstract
  39.  
  40.  
  41.    There is a clear need to provide and deploy interoperable calendaring
  42.    and scheduling services for the Internet. Current group scheduling
  43.    and Personal Information Management (PIM) products are being extended
  44.    for use across the Internet, today, in proprietary ways. This memo
  45.    has been defined to provide the a definition of a common format for
  46.    openly exchanging calendaring and scheduling information across the
  47.    Internet.
  48.  
  49.    This memo is formatted as a registration for a MIME media type per
  50.    [RFC 2048]. However, the format in this memo is equally applicable
  51.    for use outside of a MIME message content type.
  52.  
  53.    The proposed media type value is ''TEXT/CALENDAR''. This string would
  54.    label a media type containing calendaring and scheduling information
  55.    encoded as text characters formatted in a manner outlined below.
  56.  
  57.    This MIME media type provides a standard content type for capturing
  58.    calendar event and to-do information. It also can be used to convey
  59.    free/busy time information. The content type is suitable as a MIME
  60.    message entity that can be transferred over MIME based email systems
  61.    or using HTTP. In addition, the content type is useful as an object
  62.  
  63.  
  64.  
  65. Dawson/Stenerson                   1                    Expirs MAY 1998
  66.  
  67.  
  68. Internet Draft       C&S Core Object Specification     October 22, 1997
  69.  
  70.  
  71.    for interactions between desktop applications using the operating
  72.    system clipboard, drag/drop or file systems capabilities.
  73.  
  74.    This memo is based on the earlier work of the vCalendar specification
  75.    for the exchange of personal calendaring and scheduling information.
  76.    In order to avoid confusion with this referenced work, this memo is
  77.    to be known as the iCalendar specification. This memo is based on the
  78.    calendaring and scheduling model defined in []. The document is also
  79.    the basis for the calendaring and scheduling interoperability
  80.    protocol defined in [ITIP].
  81.  
  82.    This memo also includes the format for defining iCalendar object
  83.    methods. An iCalendar object method is a set of usage constraints for
  84.    the iCalendar object. For example, these methods might define
  85.    scheduling messages that request an event be scheduled, reply to an
  86.    event request, send a cancellation notice for an event, modify or
  87.    replace the definition of an event, provide a counter proposal for an
  88.    original event request, delegate an event request to another
  89.    individual, request free or busy time, reply to a free or busy time
  90.    request, or provide similar scheduling messages for a to-do or
  91.    journal entry calendar component.
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127. Dawson/Stenerson                   2                   Expires MAY 1998
  128.  
  129.  
  130. Internet Draft       C&S Core Object Specification     October 22, 1997
  131.  
  132.  
  133.  
  134.    Table of Contents
  135.  
  136. 1......................................................................7
  137. Introduction...........................................................8
  138. 2. Basic Grammar and Conventions.......................................8
  139.  2.1 Formatting Conventions...........................................9
  140.  2.2 Related Memos...................................................10
  141. 3. TEXT/CALENDAR Registration Information.............................10
  142. 4. iCalendar Object Specification.....................................12
  143.  4.1 Content Considerations..........................................13
  144.   4.1.1 Content Lines................................................13
  145.   4.1.2 List and Field Separators....................................14
  146.   4.1.3 Multiple Values..............................................15
  147.   4.1.4 Binary Content...............................................15
  148.   4.1.5 Property Parameters..........................................15
  149.   4.1.6 Alternate Text Representation................................16
  150.   4.1.7 Character Set................................................17
  151.   4.1.8 Language.....................................................17
  152.   4.1.9 Value Data Types.............................................17
  153.  4.2 iCalendar object................................................28
  154.  4.3 Property........................................................28
  155.  4.4 Calendar Components.............................................29
  156.   4.4.1 Event Component..............................................29
  157.   4.4.2 To-do Component..............................................31
  158.   4.4.3 Journal Component............................................31
  159.   4.4.4 Free/Busy Component..........................................32
  160.   4.4.5 Alarm Component..............................................33
  161.   4.4.6 Timezone Component...........................................34
  162.  4.5 Calendar Properties.............................................38
  163.   4.5.1 Calendar Scale...............................................38
  164.   4.5.2 Method.......................................................39
  165.   4.5.3 Product Identifier...........................................39
  166.   4.5.4 Source.......................................................40
  167.   4.5.5 Source Name..................................................40
  168.   4.5.6 Version......................................................41
  169.  4.6 Component Properties............................................41
  170.   4.6.1 Attachment...................................................41
  171.   4.6.2 Attendee.....................................................42
  172.   4.6.3 Categories...................................................44
  173.   4.6.4 Classification...............................................45
  174.   4.6.5 Comment......................................................46
  175.   4.6.6 Contact......................................................46
  176.   4.6.7 Date/Time Completed..........................................47
  177.   4.6.8 Date/Time Created............................................47
  178.   4.6.9 Date/Time Due................................................47
  179.   4.6.10 Date/Time End...............................................48
  180.   4.6.11 Date/Time Stamp.............................................48
  181.   4.6.12 Date/Time Start.............................................49
  182.   4.6.13 Daylight....................................................49
  183.   4.6.14 Description.................................................50
  184.   4.6.15 Duration....................................................50
  185.   4.6.16 Exception Date/Times........................................51
  186.   4.6.17 Exception Rule..............................................52
  187.  
  188.  
  189. Dawson/Stenerson                   3                   Expires MAY 1998
  190.  
  191.  
  192. Internet Draft       C&S Core Object Specification     October 22, 1997
  193.  
  194.  
  195.   4.6.18 Free/Busy Time..............................................52
  196.   4.6.19 Geographic Position.........................................54
  197.   4.6.20 Last Modified...............................................54
  198.   4.6.21 Location....................................................54
  199.   4.6.22 Percent Complete............................................55
  200.   4.6.23 Priority....................................................56
  201.   4.6.24 Recurrence Date/Times.......................................56
  202.   4.6.25 Recurrence ID...............................................57
  203.   4.6.26 Recurrence Rule.............................................58
  204.   4.6.27 Related To..................................................65
  205.   4.6.28 Repeat Count................................................66
  206.   4.6.29 Request Status..............................................66
  207.   4.6.30 Resources...................................................68
  208.   4.6.31 Sequence Number.............................................68
  209.   4.6.32 Status......................................................69
  210.   4.6.33 Summary.....................................................70
  211.   4.6.34 Time Transparency...........................................70
  212.   4.6.35 Time Zone Name..............................................71
  213.   4.6.36 Time Zone Offset............................................71
  214.   4.6.37 Uniform Resource Locator....................................71
  215.   4.6.38 Unique Identifier...........................................72
  216.   4.6.39 Non-standard Properties.....................................73
  217. 5. Recommended Practices..............................................73
  218. 6. Registration of Content Type Elements..............................74
  219.  6.1 Registration of New and Modified iCalendar object Methods.......74
  220.  6.2 Registration of New Properties..................................74
  221.   6.2.1 Define the property..........................................74
  222.   6.2.2 Post the Property definition.................................75
  223.   6.2.3 Allow a comment period.......................................75
  224.   6.2.4 Submit the property for approval.............................75
  225.  6.3 Property Change Control.........................................76
  226. 7. File extension.....................................................76
  227. 8. Macintosh File Type Code...........................................76
  228. 9. References.........................................................76
  229. 10. Acknowledgments...................................................78
  230. 11. Copyright.........................................................78
  231. 12. Author's Address..................................................78
  232. 13. iCalendar object Examples.........................................79
  233. 14. Full Copyright Statement..........................................82
  234.  
  235.  
  236.  
  237. 1.
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251. Dawson/Stenerson                   4                   Expires MAY 1998
  252.  
  253.  
  254. Internet Draft       C&S Core Object Specification     October 22, 1997
  255.  
  256.  
  257. Introduction
  258.  
  259.  
  260.    The use of calendaring and scheduling has grown considerably in the
  261.    last decade. Enterprise and inter-enterprise business has become
  262.    dependent on rapid scheduling of events and actions using this
  263.    information technology. However, the longer term growth of
  264.    calendaring and scheduling, is currently limited by the lack of
  265.    Internet standards for the message content types that are central to
  266.    these groupware applications. This memo is intended to progress the
  267.    level of interoperability possible between dissimilar calendaring and
  268.    scheduling applications. This memo defines a MIME content type for
  269.    exchanging electronic calendaring and scheduling information. The
  270.    Internet Calendaring and Scheduling Core Object Specification, or
  271.    iCalendar, allows for the capture and exchange of information
  272.    normally stored within a calendaring and scheduling application; such
  273.    as a Personal Information Manager or a Group Scheduling product.
  274.  
  275.    The calendaring and scheduling model implemented by this memo is
  276.    defined in the [ICMS].
  277.  
  278.    The format is suitable as an exchange format between applications or
  279.    systems. The format is defined in terms of a MIME content type. This
  280.    will enable the object to be exchanged using several transports,
  281.    including but not limited to SMTP, HTTP, a file system, desktop
  282.    interactive protocols such as the use of a memory-based clipboard or
  283.    drag/drop interactions, point-to-point asynchronous communication,
  284.    wired-network transport, or some form of unwired transport such as
  285.    infrared might also be used.
  286.  
  287.    The definition of a calendaring and scheduling interoperability
  288.    protocol is the subject of another memo [ITIP].
  289.  
  290.    The memo also provides for the definition of iCalendar object methods
  291.    that will map this content type to a set of messages for supporting
  292.    calendaring and scheduling operations such as requesting, replying
  293.    to, modifying, and canceling meetings or appointments, to-dos and
  294.    journal entries. The iCalendar object methods can be used to define
  295.    other calendaring and scheduling operations such a requesting for and
  296.    replying with free/busy time data.
  297.  
  298.    The memo also includes a formal grammar for the content type to aid
  299.    in the implementation of parsers and to serve as the definitive
  300.    reference when ambiguities or questions arise in interpreting the
  301.    descriptive prose definition of the memo.
  302.  
  303. 2.      Basic Grammar and Conventions
  304.  
  305.  
  306.    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
  307.    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" and "OPTIONAL" in this
  308.    document are to be interopreted as described in [RFC 2119].
  309.  
  310.    This memo makes use of both a descriptive prose and a more formal
  311.    notation for defining the calendaring and scheduling format.
  312.  
  313.  
  314.  
  315. Dawson/Stenerson                   5                   Expires MAY 1998
  316.  
  317.  
  318. Internet Draft       C&S Core Object Specification     October 22, 1997
  319.  
  320.  
  321.    The notation used in this memo is the augmented BNF notation of [RFC
  322.    822]. Readers intending on implementing this format defined in this
  323.    memo should be familiar with this notation in order to properly
  324.    interpret the specifications of this memo.
  325.  
  326.    All numeric and hexadecimal values used in this memo are given in
  327.    decimal notation. All names of properties, property parameters,
  328.    enumerated property values and property parameter values are case-
  329.    insensitive. However, all other property values are case-sensitive,
  330.    unless otherwise stated.
  331.  
  332.         Note: All indented editorial notes, such as this one, are
  333.         intended to provide the reader with additional information that
  334.         is not essential to the building of a conformant implementation
  335.         of the specifications of this memo. The information is provided
  336.         to highlight a particular feature or characteristic of the
  337.         specifications.
  338.  
  339.    The format for the iCalendar object is based on the syntax of the
  340.    [MIME DIR] content type. While the iCalendar object is not a profile
  341.    of the [MIME DIR] content type, it does reuse a number of the
  342.    elements from the [MIME DIR] specification.
  343.  
  344. 2.1     Formatting Conventions
  345.  
  346.  
  347.    The mechanisms defined in this memo are defined in propose. In order
  348.    to refer to elements of the calendaring and scheduling model, core
  349.    object or interoperability protocol defined in this memo, [ICMS] and
  350.    [ITIP], some formatting conventions have been used. Calendaring and
  351.    scheduling roles defined by [ICMS] are referred to in quoted-strings
  352.    of text with the first character of each word in upper case. For
  353.    example, "Organizer" refers to a role of a "Calendar User" within the
  354.    scheduling protocol defined by [ITIP] Calendar components defined by
  355.    this memo are referred to with capitalized, quoted-strings of text.
  356.    All calendar components start with the letter "V". For example,
  357.    "VEVENT" refers to the event calendar component, "VTODO" refers to
  358.    the to-do calendar component and "VJOURNAL" refers to the daily
  359.    journal calendar component. Scheduling methods defined by [ITIP] are
  360.    referred to with capitalized, quoted-strings of text. For example,
  361.    "REQUEST" refers to the method for requesting a scheduling calendar
  362.    component be created or modified, "REPLY" refers to the method a
  363.    recipient of a request uses to update their status with the
  364.    "Organizer" of the calendar component.
  365.  
  366.    The properties defined by this memo are referred to with capitalized,
  367.    quoted-strings of text, followed by the word "property". For example,
  368.    "ATTENDEE" property refers to the iCalendar property used to convey
  369.    the calendar address of a calendar user. Property parameters defined
  370.    by this memo are referred to with lower case, quoted-strings of text,
  371.    followed by the word "parameter". For example, "value" parameter
  372.    refers to the iCalendar property parameter used to override the
  373.    default data type for a property value. Enumerated values defined by
  374.  
  375.  
  376.  
  377.  
  378. Dawson/Stenerson                   6                   Expires MAY 1998
  379.  
  380.  
  381. Internet Draft       C&S Core Object Specification     October 22, 1997
  382.  
  383.  
  384.    this memo are referred to with capitalized text, either alone or
  385.    followed by the word "value".
  386.  
  387. 2.2     Related Memos
  388.  
  389.  
  390.    Implementers will need to be familiar with several other memos that,
  391.    along with this memo, form a framework for Internet calendaring and
  392.    scheduling standards. This memo, [ICAL], specifies a core
  393.    specification of objects, data types, properties and property
  394.    parameters.
  395.  
  396.    [ICMS] - specifies a common terminology and abstract;
  397.  
  398.    [ITIP] - specifies an interoperability protocol for scheduling
  399.    between different implementations;
  400.  
  401.    [IMIP] specifies an Internet email binding for [ITIP];
  402.  
  403.    [IRIP] - specifies an Internet real time protocol binding for [ITIP].
  404.  
  405.    This memo does not attempt to repeat the specification of concepts or
  406.    definitions from these other memos. Where possible, references are
  407.    made to the memo that provides for the specification of these
  408.    concepts or definitions.
  409.  
  410. 3.      TEXT/CALENDAR Registration Information
  411.  
  412.  
  413.    The Calendaring and Scheduling Core Object Specification is intended
  414.    for use as a MIME content type. However, the implementation of the
  415.    memo is in no way limited solely as a MIME content type.
  416.  
  417.    The following text is intended to register this memo as the MIME
  418.    content type "text/calendar".
  419.  
  420.      To: ietf-types@uninett.no
  421.  
  422.      Subject: Registration of MIME content type text/calendar.
  423.  
  424.      MIME media type name: text
  425.  
  426.      MIME subtype name: calendar
  427.  
  428.      Required parameters: method
  429.  
  430.      The "method" parameter is used to convey the iCalendar object
  431.      method to which the calendaring and scheduling information
  432.      pertains. It also is an identifier for the set of properties that
  433.      the iCalendar object will consist of. The parameter is to be used
  434.      as a guide for applications interpreting the information contained
  435.      within the body part. It should NOT be used to exclude or require
  436.      particular pieces of information unless the identified method
  437.      definition specifically calls for this behavior. Unless
  438.      specifically forbidden by a particular method definition, a
  439.  
  440.  
  441.  
  442. Dawson/Stenerson                   7                   Expires MAY 1998
  443.  
  444.  
  445. Internet Draft       C&S Core Object Specification     October 22, 1997
  446.  
  447.  
  448.      text/calendar content type MAY contain any set of properties
  449.      permitted by the Calendaring and Scheduling Core Object
  450.      Specification.
  451.  
  452.      The value for the "method" parameter is defined as follows:
  453.  
  454.         method  = <Identifier for any IANA registered iCalendar
  455.                    object method>
  456.  
  457.      Optional parameters: charset, component
  458.  
  459.      The "charset" parameter is defined in [RFC 2046] for other body
  460.      parts. It is used to identify the default character set used within
  461.      the body part.
  462.  
  463.      The "component" parameter conveys the type of iCalendar calendar
  464.      component within the body part. If the iCalendar object contains
  465.      more than one calendar component, then the components are specified
  466.      as a comma-separated list of values.
  467.  
  468.      The value for the "component" parameter is defined as follows:
  469.  
  470.         component       = "VEVENT" / "VTODO" / "VJOURNAL" / "VFREEBUSY"
  471.                         / x-token / iana-comp
  472.  
  473.         x-token = <The two characters "X-" or "x-" followed, with
  474.                    no intervening white space, by any atom, where
  475.                    atom is from section 3.3 of [RFC 822]>
  476.  
  477.         iana-comp = <A publicly defined extension component,
  478.                      registered with IANA, as specified by this
  479.                      document>
  480.  
  481.      Optional content header fields: Any header fields defined by [RFC
  482.      2045].
  483.  
  484.      Encoding considerations: This MIME content type can contain 8bit
  485.      characters, so the use of quoted-printable or base64 MIME content-
  486.      transfer-encodings MAY be necessary when iCalendar objects are
  487.      transferrred across protocols restricted to the 7bit repertoire.
  488.      Note that each property in the content entity MAY also have special
  489.      characters encoded using a BACKSLASH character (ASCII decimal 92)
  490.      escapement technique. This means that content values MAY end up
  491.      encoded twice.
  492.  
  493.      Security considerations: SPOOFING - - In this memo, the "Organizer"
  494.      is the only person authorized to make changes to an existing
  495.      "VEVENT", "VTODO", "VJOURNAL" calendar component and redistribute
  496.      the updates to the "Attendees". An iCalendar object that
  497.      maliciously changes or cancels an existing "VEVENT", "VTODO" or
  498.      "VJOURNAL" or "VFREEBUSY" calendar component MAY be constructed by
  499.      someone other than the "Organizer" and sent to the "Attendees". In
  500.      addition in this memo, an "Attendee" of a "VEVENT", "VTODO",
  501.      "VJOURNAL" calendar component is the only person authorized to
  502.  
  503.  
  504. Dawson/Stenerson                   8                   Expires MAY 1998
  505.  
  506.  
  507. Internet Draft       C&S Core Object Specification     October 22, 1997
  508.  
  509.  
  510.      update any parameter associated with their "ATTENDEE" property and
  511.      send it to the "Organizer". An iCalendar object that maliciously
  512.      changes the "ATTENDEE" parameters MAY be constructed by someone
  513.      other than the real "Attendee" and sent to the "Organizer".
  514.  
  515.      PROCEDURAL ALARMS - - An iCalendar object can be created that
  516.      contains a "VEVENT" and "VTODO" calendar component with an "VALARM"
  517.      calendar components. The "VALARM" calendar component MAY be of type
  518.      PROCEDURE and MAY have an attachment containing some sort of
  519.      executable program. Implementations that incorporate these types of
  520.      alarms are subject to any virus or malicious attack that MAY occur
  521.      as a result of executing the attachment.
  522.  
  523.      ATTACHMENTS - - An iCalendar object MAY include references to
  524.      Uniform Resource Locators that MAY be programmed resources.
  525.  
  526.      Implementers and users of this memo should be aware of the network
  527.      security implications of accepting and parsing such information. In
  528.      addition, the security considerations observed by implementations
  529.      of electronic mail systems should be followed for this memo.
  530.  
  531.      Interoperability considerations: This MIME content type is intended
  532.      to define a common format for conveying calendaring and scheduling
  533.      information between different systems. It is heavily based on the
  534.      earlier [VCAL] industry specification.
  535.  
  536.      Intended Usage: COMMON
  537.  
  538.      Published specification: This memo.
  539.  
  540.      Author/Change controllers:
  541.  
  542.         Frank Dawson
  543.         6544 Battleford Drive
  544.         Raleigh, NC 27613-3502
  545.         919-676-9515 (Telephone)
  546.         919-676-9564 (Data/Facsimile)
  547.         Frank_Dawson@Lotus.com (Internet Mail)
  548.  
  549.  
  550.         Derik Stenerson
  551.         One Microsoft Way
  552.         Redmond, WA  98052-6399
  553.         425-936-5522 (Telephone)
  554.         425-936-7329 (Facsimile)
  555.         deriks@microsoft.com (Internet Mail)
  556.  
  557. 4.      iCalendar Object Specification
  558.  
  559.  
  560.    The following sections define the details of a Calendaring and
  561.    Scheduling Core Object Specification. This information is intended to
  562.    be an integral part of the MIME content type registration. In
  563.    addition, this information MAY be used independent of such content
  564.  
  565.  
  566.  
  567. Dawson/Stenerson                   9                   Expires MAY 1998
  568.  
  569.  
  570. Internet Draft       C&S Core Object Specification     October 22, 1997
  571.  
  572.  
  573.    registration. In particular, this memo has direct applicability for
  574.    use as a calendaring and scheduling exchange format in file-, memory-
  575.    or network-based transport mechanisms.
  576.  
  577. 4.1     Content Considerations
  578.  
  579.  
  580.    The iCalendar object consists of lines of text. This section defines
  581.    how the content lines MUST be formatted.
  582.  
  583. 4.1.1   Content Lines
  584.  
  585.  
  586.    The iCalendar object consists of individual lines of text, delimited
  587.    by a line break, which is a CRLF sequence (ASCII decimal 13, followed
  588.    by ASCII decimal 10). Line of text should not be longer than 76
  589.    characters, excluding the line break.
  590.  
  591.    Long lines of text can be split into a multiple line representations
  592.    using a line "folding" technique. That is, a long line MAY be split
  593.    at any point by inserting a CRLF immediately followed by a single
  594.    LWSP character (i.e., SPACE, ASCII decimal 32 or HTAB, ASCII decimal
  595.    9). Any sequence of CRLF followed immediately by a single LWSP
  596.    character is ignored (i.e., removed) when processing the content
  597.    type.
  598.  
  599.    For example the line:
  600.  
  601.      DESCRIPTION:This is a long description that exists on a long line.
  602.  
  603.    Can be represented as:
  604.  
  605.      DESCRIPTION:This is a long description
  606.        that exists on a long line.
  607.  
  608.    The process of moving from this folded multiple line representation
  609.    to its single line representation is called "unfolding". Unfolding is
  610.    accomplished by removing the CRLF character and the LWSP character
  611.    that immediately follows.
  612.  
  613.    An intentional formatted text line break MAY only be included in a
  614.    property value by representing the line break with the character
  615.    sequence of BACKSLASH (ASCII decimal 92), followed by a LATIN SMALL
  616.    LETTER N (ASCII decimal 110) or a LATIN CAPITAL LETTER N (ASCII
  617.    decimal 78), that is "\n" or "\N".
  618.  
  619.    For example a multiple line "DESCRIPTION" property value of:
  620.  
  621.      Project XYZ Final Review
  622.      Conference Room - 3B
  623.      Come Prepared.
  624.  
  625.    Could be represented as:
  626.  
  627.  
  628.  
  629.  
  630.  
  631. Dawson/Stenerson                   10                  Expires MAY 1998
  632.  
  633.  
  634. Internet Draft       C&S Core Object Specification     October 22, 1997
  635.  
  636.  
  637.      DESCRIPTION:Project_XYZ Final_Review\n
  638.       Conference Room - 3B\nCome_Prepared.
  639.  
  640.    The content information associated with an iCalendar object is
  641.    formatted using a syntax similar to that defined by [MIME DIR]. That
  642.    is, the content information consists of one or more CRLF-separated
  643.    content lines as defined by the following notation:
  644.  
  645.      contentline = name [";" [ws] paramlist] ":" [ws] value CRLF
  646.      ;Folding permitted on content lines.
  647.      ;Lines should be less than 76 characters, excluding CRLF.
  648.  
  649.      LWSP       = SPACE / HTAB
  650.  
  651.      SPACE      = <ASCII Decimal 32>
  652.  
  653.      HTAB       = <ASCII Decimal 9>
  654.  
  655.      ws         = SPACE / HTAB
  656.  
  657.      name       = iana-name / x-name    ;An iCalendar property
  658.  
  659.      iana-name  = <One of the properties defined by this memo or
  660.                    an IANA registered property, as defined by the
  661.                    registration process in this memo.>
  662.  
  663.      x-name     = <The two characters "X-" or "x-" followed, with no
  664.                    intervening white space, by any atom. A non-standard
  665.                    property name.>
  666.  
  667.      value      = boolean / cal-address / date / date-time / duration
  668.                 / float / integer / period / recur / text / time / url
  669.                 / utc-offset / x-token
  670.  
  671.      iana-value = <One of the property values defined by this memo
  672.                    or an IANA registered property value as defined by
  673.                    the registration process in this memo.>
  674.  
  675. 4.1.2   List and Field Separators
  676.  
  677.  
  678.    List of values MAY be specified for property values or property
  679.    parameter values. Each value in a list of values MUST be separated by
  680.    a COMMA character (ASCII decimal 44). A COMMA character in a property
  681.    value or a property parameter value MUST be escaped with a BACKSLASH
  682.    character (ASCII decimal 92).
  683.  
  684.    Some property values are defined in terms of multiple components.
  685.    These structured property values MUST have their components separated
  686.    by a SEMICOLON character (ASCII decimal 59). A SEMICOLON character in
  687.    a property value MUST be escaped with a BACKSLASH character (ASCII
  688.    decimal 92).
  689.  
  690.  
  691.  
  692.  
  693.  
  694. Dawson/Stenerson                   11                  Expires MAY 1998
  695.  
  696.  
  697. Internet Draft       C&S Core Object Specification     October 22, 1997
  698.  
  699.  
  700.    Lists of property parameters MAY be specified for a property. Each
  701.    property parameter in a list of property parameters MUST be separated
  702.    by a SEMICOLON character (ASCII decimal 59). A SEMICOLON character in
  703.    a property parameter value MUST be escaped with a BACKSLASH character
  704.    (ASCII decimal 92).
  705.  
  706.    A COLON character (ASCII decimal 58) in a property parameter value
  707.    MUST be escaped with a BACKSLASH character (ASCII decimal 92). A
  708.    COLON character in a property value does not need to be escaped with
  709.    a BACKSLASH character.
  710.  
  711.    A BACKSLASH character (ASCII decimal 92) in a property value or a
  712.    property parameter value MUST be escaped with another BACKSLASH
  713.    character.
  714.  
  715.    For example, in the following properties a SEMICOLON is used to
  716.    separate property parameters and property value fields. A COMMA is
  717.    used to separate values.
  718.  
  719.      ATTENDEE;RSVP=TRUE;ROLE=ATTENDEE:J.Smith <jsmith@host.com>
  720.  
  721.      RDATE;VALUE=DATE:19970304,19970504,19970704,19970904
  722.  
  723. 4.1.3   Multiple Values
  724.  
  725.  
  726.    Each property defined in the iCalendar object MAY have multiple
  727.    values, if allowed in the definition of the specific property. The
  728.    general rule for encoding multi-valued items is to simply create a
  729.    new content line for each value; including the property name.
  730.    However, it should be noted that some properties support encoding
  731.    multiple values in a single property by separating the values with a
  732.    COMMA character (ASCII decimal 44).
  733.  
  734. 4.1.4   Binary Content
  735.  
  736.  
  737.    There is no support for including binary content information, inline,
  738.    within an iCalendar object. Binary content information MUST be
  739.    referenced by a uniform resource locator (URL) type of property
  740.    value.
  741.  
  742.    The following example specifies an "ATTACH" property with a reference
  743.    to an attachment consisting of a binary object:
  744.  
  745.      ATTACH:ftp://xyz.com/public/quarterly-report.doc
  746.  
  747. 4.1.5   Property Parameters
  748.  
  749.  
  750.    A property MAY have additional attributes associated with it. These
  751.    "property parameters" contain meta information about the property or
  752.    the property value. Property parameters MAY be used to specify the
  753.    location of an alternate text representation for a property value,
  754.    the content encoding used on a property value, the language of a text
  755.    property value or thedata type of the property value.
  756.  
  757.  
  758.  
  759. Dawson/Stenerson                   12                  Expires MAY 1998
  760.  
  761.  
  762. Internet Draft       C&S Core Object Specification     October 22, 1997
  763.  
  764.  
  765.    Property parameter values that contain the COLON, SEMICOLON, COMMA or
  766.    BACKSLASH character separators MUST be specified as quoted-string
  767.    text values. For example:
  768.  
  769.      DESCRIPTION;ALTREP="http://www.wiz.org":The Fall'98 Wild Wizards
  770.        Conference - - Las Vegas, NV, USA
  771.  
  772.    Property parameters are defined by the following notation:
  773.  
  774.      (  = parameter *(";" [ws] parameter)
  775.  
  776.      parameter  = altrepparm            ;Alterate text representation
  777.                 / languageparm          ;Text language
  778.                 / valuetypeparm         ;Property value data type
  779.                 / [parmtype "="] parmvalues ;Parameter extensions
  780.  
  781.      parmtype   = x-token / iana-ptype
  782.  
  783.      iana-ptype = <A publicly defined extension parameter type,
  784.                    registered with IANA, as specified in this memo>
  785.  
  786.      parmvalues = parmvalue / parmvalue *("," [ws] parmvalue)
  787.  
  788.      parmvalue  = x-name / iana-pvalue
  789.  
  790.      iana-pvalue = <A publicly defined extension parameter value,
  791.                     registered with IANA, as specified in this memo>
  792.  
  793. 4.1.6   Alternate Text Representation
  794.  
  795.  
  796.    The "ALTREP" property parameter is an OPTIONAL property parameter. It
  797.    specifies the URL that points to an alternate representation for a
  798.    textual property value. The property MUST include a value that
  799.    reflects the default representation. This property parameter MAY
  800.    include multiple values, separated by the COMMA character (ASCII
  801.    decimal 44). The property parameter MAY only be specified in the
  802.    "COMMENT", "CONTACT", "DESCRIPTION", "LOCATION" and "SUMMARY"
  803.    properties.
  804.  
  805.    For example:
  806.  
  807.      DESCRIPTION;ALTREP="CID:<part3.msg.970415T083000@host.com>":Project
  808.        XYZ Review Meeting will include the following agenda items: (a)
  809.        Market Overview, (b) Finances, (c) Project Management
  810.  
  811.    The "ALTREP" property parameter value might point to a "text/html"
  812.    content portion.
  813.  
  814.      Content-Type:text/html
  815.      Content-Id:<part3.msg.970415T083000@host.com>
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822. Dawson/Stenerson                   13                  Expires MAY 1998
  823.  
  824.  
  825. Internet Draft       C&S Core Object Specification     October 22, 1997
  826.  
  827.  
  828.      <p><b>Project XYZ Review Meeting</b> will include the following
  829.      agenda items:<li>Market
  830.      Overview</li><li>Finances</li><li>Project Management</li></p>
  831.  
  832.    The "ALTREP" property parameter is defined by the following notation:
  833.  
  834.      altrepparm = "altrep" "=" urltype
  835.  
  836.      urltype    = <quoted-string text URL value>
  837.  
  838. 4.1.7   Character Set
  839.  
  840.  
  841.    There is not a property parameter to declare the character set used
  842.    in a property value. The default character set for an iCalendar
  843.    object is [UTF-8].
  844.  
  845.    The "charset" Content-Type parameter MAY be used in MIME transports
  846.    to specify any other IANA registered character set.
  847.  
  848. 4.1.8   Language
  849.  
  850.  
  851.    The "LANGUAGE" property parameter MAY be used to identify the
  852.    language used in text values. The value of the "language" property
  853.    parameter is that defined in [RFC 1766].
  854.  
  855.         Note: For transport in a MIME entity, the Content-Language
  856.         header field MAY be used to set the default language for the
  857.         entire body part.
  858.  
  859.    The "LANGUAGE" property parameter is defined by the following
  860.    notation:
  861.  
  862.      languageparm =     "language" "=" language
  863.  
  864.      language = <Text identifying a language, as defined in [RFC 1766]>
  865.  
  866. 4.1.9   Value Data Types
  867.  
  868.  
  869.    The "VALUE" property parameter is an OPTIONAL property parameter. It
  870.    is used to identify the data type and format of the property value.
  871.    The values of a property MUST only be of a single data type. For
  872.    example, a "RDATE" property can not have a combination of DATE-TIME
  873.    and TIME values.
  874.  
  875.    The "VALUE" property parameter is defined by the following notation:
  876.  
  877.      valuetypeparm = "value" "=" valuetype
  878.  
  879.      valuetype  = "boolean"
  880.                 / "cal-address"
  881.                 / "date"
  882.                 / "date-time"
  883.                 / "duration"
  884.  
  885.  
  886.  
  887. Dawson/Stenerson                   14                  Expires MAY 1998
  888.  
  889.  
  890. Internet Draft       C&S Core Object Specification     October 22, 1997
  891.  
  892.  
  893.                 / "float"
  894.                 / "integer"
  895.                 / "period"
  896.                 / "recur"
  897.                 / "text"
  898.                 / "time"
  899.                 / "url"
  900.                 / "utc-offset"
  901.                 / x-token
  902.                 / iana-value
  903.  
  904.      iana-value = <A publicly defined extension value type, registered
  905.                    with IANA, as specified by this memo>
  906.  
  907.    The following data types are defined by this memo.
  908.  
  909. 4.1.9.1 Boolean
  910.  
  911.  
  912.    The "BOOLEAN" data type is used to identify properties that contain
  913.    either a "true" or a "false" boolean value. These values are case
  914.    insensitive. The data type is defined by the following notation:
  915.  
  916.      boolean    = "TRUE" / "FALSE"
  917.  
  918.    For example, any of the following are equivalent:
  919.  
  920.      TRUE
  921.      true
  922.      TrUe
  923.  
  924. 4.1.9.2 Calendar User Address
  925.  
  926.  
  927.    The "CAL-ADDRESS" data type is used to identify properties that
  928.    contain an address of a calendar user. The phrase component of the
  929.    address MAY be used to match an unknown address with an otherwise
  930.    known individual, group, or resource. The data type is as defined by
  931.    the following notation:
  932.  
  933.      cal-address        = addr-spec / phrase "<" addr-spec ">"
  934.  
  935.      addr-spec  = local-part "@" domain         ;RFC 822 style address
  936.      local-part = WORD *("." WORD)
  937.      domain     = domain-ref *("." domain-ref)
  938.      domain-ref = ATOM
  939.  
  940.      phrase     = 1*WORD
  941.      WORD       = ATOM / quoted-string
  942.      quoted-string = <"> *(qtext/quoted-pair) <"> ; Regular qtext or
  943.                                                   ;   quoted chars.
  944.      qtext      = <any CHAR excepting <">,        ; => MAY be folded
  945.                   "\" & CR, and including linear-
  946.                   white-space>
  947.      quoted-pair ="\" CHAR                        ; MAY quote any char
  948.  
  949.  
  950.  
  951. Dawson/Stenerson                   15                  Expires MAY 1998
  952.  
  953.  
  954. Internet Draft       C&S Core Object Specification     October 22, 1997
  955.  
  956.  
  957.      CHAR       = <any a character from the
  958.                   selected character set>
  959.      ATOM       = 1*<any CHAR except specials,
  960.                   SPACE and CTLs>
  961.  
  962. 4.1.9.3 Date
  963.  
  964.  
  965.    The "DATE" data type is used to identify values that contain a
  966.    calendar date. The format is expressed as the [ISO 8601] complete
  967.    representation, basic format for a calendar date. The text format
  968.    specifies a four-digit year, two-digit month, and two-digit day of
  969.    the month. There are no separator characters between the year, month
  970.    and day component text. The data type is defined by the following
  971.    notation:
  972.  
  973.      DIGIT      =<any ASCII decimal digit>      ;0-9
  974.  
  975.      date-fullyear      = 4DIGIT
  976.      date-month         = 2DIGIT        ;01-12
  977.      date-mday          = 2DIGIT        ;01-28, 01-29, 01-30, 01-31
  978.                                         ;based on month/year
  979.  
  980.      date               = date-fullyear date-month date-mday
  981.  
  982.    For example, the following represents July 14, 1997:
  983.  
  984.      19970714
  985.  
  986. 4.1.9.4 Date-Time
  987.  
  988.  
  989.    The "DATE-TIME" data type is used to identify values that contain a
  990.    precise calendar date and time of day. The format is expressed as the
  991.    [ISO 8601] complete representation, basic format for a calendar date
  992.    and time of day. The text format is a concatenation of the "date",
  993.    followed by the LATIN CAPITAL LETTER T character (ASCII decimal 84)
  994.    time designator, followed by the "time" format defined above. The
  995.    data type is defined by the following notation:
  996.  
  997.      date-time  = date "T" time ;As specified above in date and time
  998.  
  999.    The following represents July 14, 1997, at 1:30 PM in UTC and the
  1000.    equivalent time in New York (four hours behind UTC in DST), expressed
  1001.    as a local time and local time with UTC offset:
  1002.  
  1003.      19970714T133000Z
  1004.      19970714T083000
  1005.      19970714T083000-0400
  1006.  
  1007. 4.1.9.5 Duration
  1008.  
  1009.  
  1010.    The "DURATION" data type is used to identify properties that contain
  1011.    a duration of time. The format is expressed as the [ISO 8601] basic
  1012.    format for the duration of time. The format can represent durations
  1013.  
  1014.  
  1015.  
  1016. Dawson/Stenerson                   16                  Expires MAY 1998
  1017.  
  1018.  
  1019. Internet Draft       C&S Core Object Specification     October 22, 1997
  1020.  
  1021.  
  1022.    in terms of years, months, days, hours, minutes, and seconds. The
  1023.    data type is defined by the following notation:
  1024.  
  1025.      DIGIT      =<any ASCII decimal digit>      ;0-9
  1026.  
  1027.      dur-second = 1*DIGIT "S"
  1028.      dur-minute = 1*DIGIT "M" [dur-second]
  1029.      dur-hour   = 1*DIGIT "H" [dur-minute]
  1030.      dur-time   = "T" (dur-hour / dur-minute / dur-second)
  1031.  
  1032.      dur-week   = 1*DIGIT "W"
  1033.      dur-day    = 1*DIGIT "D"
  1034.      dur-month  = 1*DIGIT "M" [dur-day]
  1035.      dur-year   = 1*DIGIT "Y" [dur-month]
  1036.      dur-date   = (dur-day / dur-month / dur-year) [dur-time]
  1037.  
  1038.      duration   = "P" (dur-date / dur-time / dur-week)
  1039.  
  1040.    For example, a duration of 10 years, 3 months, 15 days, 5 hours, 30
  1041.    minutes and 20 seconds would be:
  1042.  
  1043.      P10Y3M15DT5H30M20S
  1044.  
  1045. 4.1.9.6 Float
  1046.  
  1047.  
  1048.    The "FLOAT" data type is used to identify properties that contain a
  1049.    real value number value. If the property permits, multiple "float"
  1050.    values MAY be specified using a COMMA character (ASCII decimal 44)
  1051.    separator character. The data type is defined by the following
  1052.    notation:
  1053.  
  1054.      DIGIT      =<any ASCII decimal digit>      ;0-9
  1055.  
  1056.      float      = ["+" / "-"] *DIGIT ["." *DIGIT]
  1057.  
  1058.    For example:
  1059.  
  1060.      1000000.0000001
  1061.      1.333
  1062.      -3.14
  1063.  
  1064. 4.1.9.7 Integer
  1065.  
  1066.  
  1067.    The "INTEGER" data type is used to identify properties that contain a
  1068.    signed integer value. The valid range for "integer" is -2147483648 to
  1069.    2147483647. If the sign is not specified, then the value is assumed
  1070.    to be positive. If the property permits, multiple "integer" values
  1071.    MAY be specified using a COMMA character (ASCII decimal 44) separator
  1072.    character. The data type is defined by the following notation:
  1073.  
  1074.      DIGIT      =<any ASCII decimal digit>      ;0-9
  1075.  
  1076.      integer    = ["+" / "-"] *DIGIT
  1077.  
  1078.  
  1079.  
  1080. Dawson/Stenerson                   17                  Expires MAY 1998
  1081.  
  1082.  
  1083. Internet Draft       C&S Core Object Specification     October 22, 1997
  1084.  
  1085.  
  1086.    For example:
  1087.  
  1088.      1234567890
  1089.      -1234567890
  1090.      +1234567890
  1091.      432109876
  1092.  
  1093. 4.1.9.8 Period of Time
  1094.  
  1095.  
  1096.    The "PERIOD" data type is used to identify values that contain a
  1097.    precise period of time. There are two forms of a period of time.
  1098.  
  1099.    A period of time MAY be identified by it start and its end. This
  1100.    format is expressed as the [ISO 8601] complete representation, basic
  1101.    format for "DATE-TIME" start of the period, followed by a SOLIDUS
  1102.    character (ASCII decimal 47), followed by the "DATE-TIME" of the end
  1103.    of the period. For example, the period starting at 10 AM in Seattle
  1104.    (eight hours behind UTC) on January 1, 1997 and ending at 11 PM in
  1105.    Seattle on January 1, 1997 would be:
  1106.  
  1107.      19970101T100000-0800/19970101T230000-0800
  1108.  
  1109.    A period of time MAY also be defined by a start and a duration of
  1110.    time. The format is expressed as the [ISO 8601] complete
  1111.    representation, basic format for the "DATE-TIME" start of the period,
  1112.    followed by a SOLIDUS character (ASCII decimal 47), followed by the
  1113.    [ISO 8601] basic format for "DURATION" of the period. For example,
  1114.    the period start at 10 AM in Seattle (eight hours behind UTC) on
  1115.    January 1, 1997 and lasting 5 hours and 30 minutes would be:
  1116.  
  1117.      19970101T100000-0800/PT5H30M
  1118.  
  1119.    The data type is defined by the following notation:
  1120.  
  1121.      period-explicit = date-time "/" date-time
  1122.      ;ISO 8601 complete representation basic format for a period of time
  1123.      ;consisting of a start and end. The start MUST be before the end.
  1124.  
  1125.      period-start = date-time "/" duration
  1126.      ;ISO 8601 complete representation basic format for a period of time
  1127.      ;consisting of a start and duration of time.
  1128.  
  1129.      period     = period-explicit / period-start
  1130.  
  1131. 4.1.9.9 Recurrence Rule
  1132.  
  1133.  
  1134.    The "RECUR" data type is used to identify properties that contain a
  1135.    recurrence rule specification. The data type is a structured value
  1136.    consisting of a list of one or more recurrence grammar components.
  1137.    Each component is defined by a NAME=VALUE pair. The components are
  1138.    separated from each other by the SEMICOLON character (ASCII decimal
  1139.    59). The components are not ordered in any particular sequence.
  1140.    Individual components MAY only be specified once.
  1141.  
  1142.  
  1143.  
  1144. Dawson/Stenerson                   18                  Expires MAY 1998
  1145.  
  1146.  
  1147. Internet Draft       C&S Core Object Specification     October 22, 1997
  1148.  
  1149.  
  1150.    The FREQ component identifies the type of recurrence rule. This
  1151.    component MUST be specified in the recurrence rule. Valid values
  1152.    include MINUTELY, to specify repeating events based on an interval of
  1153.    a minute or more; HOURLY, to specify repeating events based on an
  1154.    interval of an hour or more; DAILY, to specify repeating events based
  1155.    on an interval of a day or more; WEEKLY, to specify repeating events
  1156.    based on an interval of a week or more; MONTHLY, to specify repeating
  1157.    events based on an interval of a month or more; and YEARLY, to
  1158.    specify repeating events based on an interval of a year or more.
  1159.  
  1160.    The INTERVAL component contains a positive integer representing how
  1161.    often the recurrence rule repeats. The default value is "1" or every
  1162.    minute for a MINUTELY rule, every hour for a HOURLY rule, every day
  1163.    for a DAILY rule, every week for a WEEKLY rule, every month for a
  1164.    MONTHLY rule and every year for a YEARLY rule.
  1165.  
  1166.    The UNTIL component defines a date-time value which bounds the
  1167.    recurrence rule in an inclusive manner. If the value specified by
  1168.    UNTIL is synchronized with the specified recurrence, this date-time
  1169.    becomes the last instance of the recurrence. If not present, and the
  1170.    COUNT component is also not present, the RRULE is considered to
  1171.    repeat forever.
  1172.  
  1173.    The COUNT component defines the number of occurrences at which to
  1174.    range-bound the recurrence. This component is ignored if the "UNTIL"
  1175.    component is also present.
  1176.  
  1177.    The BYMINUTE component specifies a COMMA character (ASCII decimal 44)
  1178.    separated list of minutes within an hour. Valid values are 0 to 60.
  1179.    Zero is the beginning of the hour and 60 is the beginning of the next
  1180.    hour.
  1181.  
  1182.    The BYHOUR component specifies a COMMA character (ASCII decimal 44)
  1183.    separated list of hours of the day. Valid values are 0 to 24. Zero is
  1184.    the start of the day and 24 is the start of the next day.
  1185.  
  1186.    The BYDAY component specifies a COMMA character (ASCII decimal 44)
  1187.    separated list of days of the week; MO, indicates Monday; TU,
  1188.    indicates Tuesday; WE, indicates Wednesday; TH, indicates Thursday;
  1189.    FR, indicates Friday; SA, indicates Saturday; SU, indicates Sunday.
  1190.  
  1191.    Each BYDAY values MAY also be preceded by a positive (+n) or negative
  1192.    (-n) integer. If present, this indicates the nth occurrence of the
  1193.    specific day within the MONTHLY or YEARLY RRULE. For example, within
  1194.    a MONTHLY rule, +1MO (or simply 1MO) represents the first Monday
  1195.    within the month, whereas -1MO represents the last Monday of the
  1196.    month. If an integer modifier is not present, it means all days of
  1197.    this type within the specified frequency. For example, within a
  1198.    MONTHLY rule, MO represents all Mondays within the month.
  1199.  
  1200.    The BYMONTHDAY component specifies a COMMA character (ASCII decimal
  1201.    44) separated list of days of the month. Valid values are 1 to 31 or
  1202.    -31 to -1.
  1203.  
  1204.  
  1205.  
  1206. Dawson/Stenerson                   19                  Expires MAY 1998
  1207.  
  1208.  
  1209. Internet Draft       C&S Core Object Specification     October 22, 1997
  1210.  
  1211.  
  1212.    Each BYMONTHDAY value MAY be preceeded by a postive (+n) or negative
  1213.    (-n) integer. If present, this indicates the nth occurrence of the
  1214.    specific day of the month within the MONTHLY rule. If an integer
  1215.    modifier is not present, it means all days of this type within the
  1216.    specified frequency. For example, within a MONTHLY rule, -10
  1217.    represents the tenth to the last day of the month.
  1218.  
  1219.    The BYYEARDAY component specifies a COMMA character (ASCII decimal
  1220.    44) separated list of days of the year. Valid values are 1 to 366 or
  1221.    -366 to -1. For example, -1 represents the last day of the year
  1222.    (December 31st).
  1223.  
  1224.    The BYWEEKNO component specifies a comma-separated list of weeks of
  1225.    the year. Valid values are 1 to 53. This corresponds to weeks
  1226.    according to week numbering as defined in [ISO 8601]. That is, a week
  1227.    as "A seven day period within a calendar year, starting on a Monday
  1228.    and identified by its ordinal number within the year; the first
  1229.    calendar week of the year is the one that includes the first Thursday
  1230.    of that year." This component is only valid for YEARLY rules.
  1231.  
  1232.    Each BYWEEKNO value MAY be preceded by a positive (+n) or negative (-
  1233.    n) integer. If present, this indicates the nth occurrence of the
  1234.    specific week of the year within the YEARLY rule. If an integer
  1235.    modifier is not present, it means all days of this type within the
  1236.    specified frequency. For example, within a YEARLY rule, 3 represents
  1237.    the third week of the year.
  1238.  
  1239.    The BYMONTH component specifies a comma separated list of months of
  1240.    the year. Valid values are 1 to 12.
  1241.  
  1242.    The WKST component specifies the day on which the workweek starts.
  1243.    Valid values are MO, TU, WE, TH, FR, SA and SU. This is significant
  1244.    when a WEEKLY RRULE has an interval greater than 1, and a BYDAY
  1245.    component is specified. The default value is MO.
  1246.  
  1247.    The BYSETPOS component specifies a COMMA character (ASCII decimal 44)
  1248.    separated list of values which corresponds to the nth occurrence
  1249.    within the set of events specified by the rule. Valid values are 1 to
  1250.    366 or -366 to -1. It MUST only be used in conjunction with another
  1251.    Byxxx component. For example "the last work day of the month" could
  1252.    be represented as:
  1253.  
  1254.      RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
  1255.  
  1256.    If BYxxx component values are found which are beyond the available
  1257.    scope (ie, BYMONTHDAY=-30 in February), they are simply ignored
  1258.  
  1259.    Information, not contained in the rule, necessary to determine the
  1260.    various recurrence instance start time and dates are derived from the
  1261.    Start Time (DTSTART) entry attribute. For example,
  1262.    æ   æFREQ=YEARLY;BYMONTH=1Æ                          Æ doesnÆt specify a specific day within the
  1263.    month or a time. This information would be the same as what is
  1264.    specified for DTSTART.
  1265.  
  1266.  
  1267.  
  1268. Dawson/Stenerson                   20                  Expires MAY 1998
  1269.  
  1270.  
  1271. Internet Draft       C&S Core Object Specification     October 22, 1997
  1272.  
  1273.  
  1274.    BYxxx components modify the recurrence in some manner. BYxxx
  1275.    components for a period of time which is the same or greater than the
  1276.    frequency generally reduce or limit the number of occurrences of the
  1277.    recurrence generated. For example, æ                                      æFREQ=DAILY;BYMONTH=1Æ                                                            Æ reduces
  1278.    the number of recurrence instances from all days (if BYMONTH tag is
  1279.    not present) to all days in January. BYxxx components for a period of
  1280.    time less than the frequency generally increase or expand the number
  1281.    of occurrences of the recurrence. For example,
  1282.    æ   æFREQ=YEARLY;BYMONTH=1,2Æ                            Æ increases the number of days within the
  1283.    yearly recurrence set from 1 (if BYMONTH tag is not present) to 2.
  1284.  
  1285.    If only one BYxxx component is specified in the recurrence rule, the
  1286.    list of æ           ænÆ              Æ unique values would cause æ                                           ænÆ                                              Æ occurrences of the
  1287.    recurrence within each specified frequency interval, where each
  1288.    unique list value is substituted in the appropriate date position
  1289.    within DTSTART for each such occurrence.
  1290.  
  1291.    If multiple BYxxx components are specified, then the list of æ                                                                ænÆ                                                                   Æ
  1292.    unique values for each lower frequency BYxxx components is applied to
  1293.    the list of æ               ænÆ                  Æ unique values for higher frequency BYxxx
  1294.    components. This process will not always increase the set of
  1295.    occurrences. If a higher component is inconsistent with what was
  1296.    generated for lower components, it would reduce the set. The ordering
  1297.    of BYxxx components from lower frequency to higher frequency is as
  1298.    follows: BYMINUTE, BYHOUR, BYDAY, BYMONTHDAY, BYYEARDAY, BYWEEKNO,
  1299.    BYMONTH, BYSETPOS.
  1300.  
  1301.    Here is an example of evaluating multiple BYxxx components.
  1302.  
  1303.      æ     æFREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;BYMINUTE=30
  1304.      Æ     Æ
  1305.  
  1306.    would first apply the æ                         æBYMINUTE=30Æ                                      Æ To æ                                            æBYHOUR=8,9Æ                                                        Æ to arrive at
  1307.    æ   æevery 8:30AM and 9:30AMÆ                            Æ. This in turn would be applied to
  1308.    æ   æBYDAY=SUÆ             Æ to arrive at æ                             æevery Sunday at 8:30AM and 9:30AMÆ                                                                Æ. This
  1309.    would be applied to æ                       æBYMONTH=1Æ                                  Æ to arrive at æ                                                  æevery Sunday in
  1310.    January at 8:30AM and 9:30AMÆ                               Æ. Considering the FREQUENCY and
  1311.    INTERVAL, this would become æ                               æEvery Sunday in January at 8:30AM and
  1312.    9:30AM, every other yearÆ                           Æ. If the BYMINUTE, BYDAY, BYMONTHDAY,
  1313.    BYYEARDAY, BYHOUR or BYMONTH component was missing, the appropriate
  1314.    mintues, hour, day or month would have been retrieved from DTSTART.
  1315.  
  1316.    The data type is defined by the following notation:
  1317.  
  1318.      recur      = æ                  æFREQÆ                        Æ=freq ";"
  1319.                 [("UNTIL" "=" enddate ";") / ("COUNT" "=" digits ";")]
  1320.                 ["INTERVAL" "=" digits ";"]
  1321.                 ["BYMINUTE" "=" byminlist ";"]
  1322.                 ["BYHOUR" "=" byhrlist ";"]
  1323.                 ["BYDAY" "=" bywdaylist ";"]
  1324.                 ["BYMONTHDAY" "=" bymodaylist ";"]
  1325.                 ["BYYEARDAY" "=" byyrdaylist ";"]
  1326.                 ["BYWEEKNO" "=" bywknolist ";"]
  1327.                 ["BYMONTH" "=" bymolist ";"]
  1328.  
  1329.  
  1330. Dawson/Stenerson                   21                  Expires MAY 1998
  1331.  
  1332.  
  1333. Internet Draft       C&S Core Object Specification     October 22, 1997
  1334.  
  1335.  
  1336.                 ["BYSETPOS" "=" bysplist ";"]
  1337.                 ["WKST" "=" weekday ";")]
  1338.                 *("X-" word "=" word) ";"
  1339.         ;Individual components MAY only be specified once.
  1340.         ;Rule components need not be specified in particular any order.
  1341.  
  1342.      freq       = "MINUTELYÆ                           Æ / "HOURLY" / "DAILY" / "WEEKLY" / "YEARLY"
  1343.  
  1344.      enddate    = date          ;A UTC value
  1345.  
  1346.      digits     = 1*DIGIT
  1347.  
  1348.      DIGIT      =<any ASCII decimal digit>      ;0-9
  1349.  
  1350.      byminlist  = minutes / ( minutes *(æ                                        æ,Æ                                           Æ minutes) )
  1351.  
  1352.      minutes    = 1*2digits     ;0 to 60
  1353.  
  1354.      byhrlist   = hour / ( hour *(æ                                  æ,Æ                                     Æ hour) )
  1355.  
  1356.      hour       = 1*2 digits    ;0 to 24
  1357.  
  1358.      bywdaylist = weekdaynum / ( weekdaynum *(æ                                              æ,Æ                                                 Æ weekdaynum) )
  1359.  
  1360.      weekdaynum = [([plus] ordwk / minus ordwk)] weekday
  1361.  
  1362.      plus       = "+"
  1363.  
  1364.      minus      = "-"
  1365.  
  1366.      ordwk      = 1*2digits     ;1 to 53
  1367.  
  1368.      weekday    = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA"
  1369.      ;Corresponding to SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY,
  1370.      ;FRIDAY, SATURDAY and SUNDAY days of the week.
  1371.  
  1372.      bymodaylist = monthdaynum / ( monthdaynum *(æ                                                 æ,Æ                                                    Æ monthdaynum) )
  1373.  
  1374.      monthdaynum = ([plus] ordmoday) / (minus ordmoday)
  1375.  
  1376.      ordmoday   = 1*2digits     ;1 to 31
  1377.  
  1378.      byyrdaylist = yeardaynum / ( yeardaynum *(æ                                               æ,Æ                                                  Æ yeardaynum) )
  1379.  
  1380.      yeardaynum = ([plus] ordyrday) / (minus ordyrday)
  1381.  
  1382.      ordyrday   = 1*3digits     ;1 to 366
  1383.  
  1384.      bywknolist = weeknum / ( weeknum *(æ                                        æ,Æ                                           Æ weeknum) )
  1385.  
  1386.      weeknum    = ([plus] ordwk) / (minus ordwk)
  1387.  
  1388.      bymolist   = monthnum / ( monthnum *(æ                                          æ,Æ                                             Æ monthnum) )
  1389.  
  1390.  
  1391.  
  1392. Dawson/Stenerson                   22                  Expires MAY 1998
  1393.  
  1394.  
  1395. Internet Draft       C&S Core Object Specification     October 22, 1997
  1396.  
  1397.  
  1398.      monthnum   = 1*2digits     ;1 to 12
  1399.  
  1400.      bysplist   = setposday / ( setposday *("," setposday) )
  1401.  
  1402.      setposday  = yeardaynum
  1403.  
  1404.    For example, the following is a rule which specifies 10 meetings
  1405.    which occur every other day:
  1406.  
  1407.      FREQ=DAILY;COUNT=10;INTERVAL=2
  1408.  
  1409.    There are other examples specified in the "RRULE" specification.
  1410.  
  1411. 4.1.9.10        Text
  1412.  
  1413.  
  1414.    The "TEXT" data type is used to identify values that contain human
  1415.    readable text. The character set and language in which the text is
  1416.    represented is controlled by the "LANGUAGE" property parameters. The
  1417.    data type is defined by the following notation:
  1418.  
  1419.      text       = <Any character in the selected character set, but
  1420.                    not including CRLF>
  1421.  
  1422. 4.1.9.11        Time
  1423.  
  1424.  
  1425.    The "TIME" data type is used to identify values that contain a time
  1426.    of day. The format is expressed as the [ISO 8601] complete
  1427.    representation, basic format for a time of day. The text format
  1428.    consists of a two-digit 24-hour of the day (i.e., values 0-23), two-
  1429.    digit minute in the hour (i.e., values 0-59), and two-digit seconds
  1430.    in the minute (i.e., values 0-59). If seconds of the minute are not
  1431.    supported by an implementation, then a value of "00" should be
  1432.    specified for the seconds component. Fractions of an hour, minute or
  1433.    second are not supported by this format. This format is used to
  1434.    represent local time, local time with UTC offset and UTC time. UTC
  1435.    time is identified by a LATIN CAPITAL LETTER Z suffix character
  1436.    (ASCII decimal 90), the UTC designator, appended to the time. The
  1437.    local time with UTC offset is expressed as a local time, suffixed
  1438.    with the signed offset from UTC. The UTC offset is express as the 2-
  1439.    digit hours and 2-digit minutes difference from UTC. It is expressed
  1440.    as positive, with an OPTIONAL leading PLUS SIGN character (ASCII
  1441.    decimal 43), if the local time is ahead of UTC. It is expressed as a
  1442.    negative, with a leading HYPEN-MINUS character (ASCII decimal 45), if
  1443.    the local time is behind UTC. Local time has neither the UTC
  1444.    designator nor the UTC offset suffix text. The data type is defined
  1445.    by the following notation:
  1446.  
  1447.      DIGIT      =<any ASCII decimal digit>      ;0-9
  1448.  
  1449.      time-hour          = 2DIGIT        ;00-23
  1450.      time-minute        = 2DIGIT        ;00-59
  1451.      time-second        = 2DIGIT        ;00-59
  1452.  
  1453.  
  1454.  
  1455.  
  1456. Dawson/Stenerson                   23                  Expires MAY 1998
  1457.  
  1458.  
  1459. Internet Draft       C&S Core Object Specification     October 22, 1997
  1460.  
  1461.  
  1462.      time-numzone       = ("+" / "-") time-hour time-minute
  1463.      time-zone          = "Z" / time-numzone
  1464.  
  1465.      time               = time-hour time-minute time-second [time-zone]
  1466.  
  1467.    For example, the following represents 8:30 AM in New York, five hours
  1468.    behind UTC, in local time and local time with UTC offset. In
  1469.    addition, 1:30 PM in UTC is illustrated:
  1470.  
  1471.      083000
  1472.      083000-0500
  1473.      133000Z
  1474.  
  1475.    There are cases when a floating time is intended within a property
  1476.    value. For example, an event MAY be defined that indicates that an
  1477.    individual will be busy from 11:00 AM to 1:00 PM every day. In these
  1478.    cases, a local time MAY be specified. The recipient of an iCalendar
  1479.    object with a property value consisting of a local time, without any
  1480.    relative time zone information, should interpret the value as being
  1481.    fixed to the recipient's locale and time zone. In most cases, a fixed
  1482.    time is desired. To properly communicate a fixed time in a property
  1483.    value, either UTC, local time with UTC offset, or local time with a
  1484.    "VTIMEZONE" calendar component MUST be specified.
  1485.  
  1486. 4.1.9.12        URL
  1487.  
  1488.  
  1489.    The "URL" data type is used to identify values that contain a uniform
  1490.    resource locator (URL) type of reference to the property value. This
  1491.    data type might be used to reference binary information, for values
  1492.    that are large, or otherwise undesirable to include directly in the
  1493.    iCalendar object.
  1494.  
  1495.    The URL value formats in RFC 1738, RFC 2111 and any other IETF
  1496.    registered value format MAY be specified.
  1497.  
  1498.    The data type is defined by the following notation:
  1499.  
  1500.      url        = <As defined by any IETF RFC>
  1501.  
  1502.    Any IANA registered URL type MAY be used. These include, but are not
  1503.    limited to, those for FTP and HTTP protocols, file access, content
  1504.    identifier and message identifier.
  1505.  
  1506.    For example, the following is an URL for a local file:
  1507.  
  1508.      file:///my-report.txt
  1509.  
  1510. 4.1.9.13        UTC Offset
  1511.  
  1512.  
  1513.    The "UTC-OFFSET" data type is used to identify properties that
  1514.    contain an offset from UTC to local time. The data type is defined by
  1515.    the following notation:
  1516.  
  1517.  
  1518.  
  1519.  
  1520. Dawson/Stenerson                   24                  Expires MAY 1998
  1521.  
  1522.  
  1523. Internet Draft       C&S Core Object Specification     October 22, 1997
  1524.  
  1525.  
  1526.      utc-offset = time-numzone  ;As defined above in time data type
  1527.  
  1528.    For example, the following are UTC offsets are given for standard
  1529.    time for New York (five hours behind UTC) and Geneva (one hour ahead
  1530.    of UTC):
  1531.  
  1532.      -0500
  1533.  
  1534.      +0100
  1535.  
  1536. 4.2     iCalendar object
  1537.  
  1538.  
  1539.    The Calendaring and Scheduling Core Object is a collection of
  1540.    calendaring and scheduling information. Typically, this information
  1541.    will consist of a single iCalendar object. However, multiple
  1542.    iCalendar objects MAY be sequentially, grouped together. The first
  1543.    line and last line of the iCalendar object MUST contain a pair of
  1544.    iCalendar object delimiter strings. The syntax for an iCalendar
  1545.    object is as follows:
  1546.  
  1547.      icalobject = "BEGIN" ":" [ws] "VCALENDAR" CRLF
  1548.                   icalbody
  1549.                   "END" ":" [ws] "VCALENDAR" CRLF [icalobject]
  1550.  
  1551.    The following is a simple example of an iCalendar object:
  1552.  
  1553.      BEGIN:VCALENDAR
  1554.      VERSION:2.0
  1555.      PRODID:-//hacksw/handcal//NONSGML v1.0//EN
  1556.      BEGIN:VEVENT
  1557.      DTSTART:19970714T120000-0500
  1558.      DTEND:19970714T235959-0500
  1559.      SUMMARY:Bastille Day Party
  1560.      END:VEVENT
  1561.      END:VCALENDAR
  1562.  
  1563. 4.3     Property
  1564.  
  1565.  
  1566.    A property is the definition of an individual attribute describing a
  1567.    calendar property or a calendar component. A property takes the
  1568.    following form:
  1569.  
  1570.      property   = propname [";" [ws] parmlist] ":" [ws] value CRLF
  1571.  
  1572.      propname   = <any properties defined in this memo>
  1573.                 / iana-prop / x-token
  1574.  
  1575.      x-token    = <The two characters "X-" or "x-" followed, with no
  1576.                    intervening white space, by any atom>
  1577.  
  1578.      iana-prop  = <A publicly defined extension property, registered
  1579.                    with IANA, as specified by this memo>
  1580.  
  1581.  
  1582.  
  1583.  
  1584. Dawson/Stenerson                   25                  Expires MAY 1998
  1585.  
  1586.  
  1587. Internet Draft       C&S Core Object Specification     October 22, 1997
  1588.  
  1589.  
  1590.    The following is an example of a property:
  1591.  
  1592.      DTSTART:19960415T083000-05:00
  1593.  
  1594.    This memo places no imposed ordering of properties within an
  1595.    iCalendar object.
  1596.  
  1597.    Property names, parameter names and parameter values (i.e.,
  1598.    everything to the left of the ":" on a line) are case insensitive.
  1599.    For example, the property name "DUE" is the same as "due" and "Due".
  1600.  
  1601. 4.4     Calendar Components
  1602.  
  1603.  
  1604.    The body of the iCalendar object consists of a sequence of calendar
  1605.    properties and one or more calendar components. The calendar
  1606.    properties are attributes that apply to the calendar as a whole. The
  1607.    calendar components are collections of properties that with a
  1608.    particular calendar semantic. For example, the calendar component MAY
  1609.    specify a an event, a to-do, journal entry, time zone information, or
  1610.    free/busy time information, or alarm.
  1611.  
  1612.    The body of the iCalenar Object is defined by the following notation:
  1613.  
  1614.      icalbody   = calprops 1*component
  1615.  
  1616.      calprops   = [calscale] prodid method [source] [name] version
  1617.  
  1618.      component  = 1*(eventc / todoc / journalc / freebusyc /
  1619.                 / timezonec)
  1620.  
  1621. 4.4.1   Event Component
  1622.  
  1623.  
  1624.    A "VEVENT" calendar component is a grouping of component properties
  1625.    and an OPTIONAL "VALARM" calendar component that represent a
  1626.    scheduled amount of time on a calendar. For example, it MAY be an
  1627.    activity; such as a one-hour, department meeting from 8:00 AM to 9:00
  1628.    AM, tomorrow. Generally, these events will take up time on an
  1629.    individual calendar. Hence, the event will appear as an opaque
  1630.    interval in a search for busy time. Alternately, the event MAY have
  1631.    its Time Transparency set to "TRANSPARENT" in order to prevent
  1632.    blocking of the event in searches for busy time.
  1633.  
  1634.    The "VEVENT" is also the calendar component used to specify an
  1635.    anniversary or daily reminder within a calendar. These events have a
  1636.    start time but no end time. The start time MAY also be specified as a
  1637.    DATE value data type, instead of the default DATE-TIME.
  1638.  
  1639.    A "VEVENT" calendar component is defined by the following notation:
  1640.  
  1641.      eventc     = "BEGIN" ":" [ws] "VEVENT" CRLF
  1642.                   eventprop *alarmc
  1643.                   "END" ":" [ws] "VEVENT" CRLF
  1644.  
  1645.  
  1646.  
  1647.  
  1648. Dawson/Stenerson                   26                  Expires MAY 1998
  1649.  
  1650.  
  1651. Internet Draft       C&S Core Object Specification     October 22, 1997
  1652.  
  1653.  
  1654.      eventprop  = *attach *attendee *categories [class] *comment
  1655.                   *contact [created] [description] [dtend / duration]
  1656.                   dtstart *exdate *exrule [geo] [last-mod] [location]
  1657.                   [priority] [rstatus] *related *resources *rdate
  1658.                   *rrule dtstamp [seq] [status] summary [transp] uid
  1659.                   *url [recurid]
  1660.  
  1661.    The "VEVENT" calendar component can not be nested within another
  1662.    calendar component. The "VEVENT" calendar components MAY be related
  1663.    to each other or to a "VTODO" or "VJOURNAL" calendar component with
  1664.    the "RELATED-TO" property.
  1665.  
  1666.    The following is an example of the "VEVENT" calendar component used
  1667.    to represent a meeting that will also be opaque to searches for busy
  1668.    time:
  1669.  
  1670.      BEGIN:VEVENT
  1671.      UID:19970901T130000Z-123401@host.com
  1672.      DTSTAMP:19970901T1300Z
  1673.      DTSTART:19970903T083000-0800
  1674.      DTEND:19970903T110000-0800
  1675.      SUMMARY:Annual Employee Review
  1676.      CLASS:PRIVATE
  1677.      CATEGORIES:BUSINESS,HUMAN RESOURCES
  1678.      END:VEVENT
  1679.  
  1680.    The following is an example of the "VEVENT" calendar component used
  1681.    to represent a reminder that will not be opaque, but rather
  1682.    transparent, to searches for busy time:
  1683.  
  1684.      BEGIN:VEVENT
  1685.      UID:19970901T130000Z-123402@host.com
  1686.      DTSTAMP:19970901T1300Z DTSTART:19970401T083000-0800
  1687.      DTEND:19970401T170000-0800
  1688.      SUMMARY:Laurel is in sensitivity awareness class.
  1689.      CLASS:PUBLIC
  1690.      CATEGORIES:BUSINESS,HUMAN RESOURCES
  1691.      TRANSP:TRANSPARENT
  1692.      END:VEVENT
  1693.  
  1694.    The following is an example of the "VEVENT" calendar component used
  1695.    to represent an anniversary that will occur annually. Since it takes
  1696.    up no time, it will not appear as opaque in a search for busy time;
  1697.    no matter what the value of the "TRANSP" property indicates:
  1698.  
  1699.      BEGIN:VEVENT
  1700.      UID:19970901T130000Z-123403@host.com
  1701.      DTSTAMP:19970901T1300Z
  1702.      DTSTART:19971102
  1703.      SUMMARY:Our Blissful Anniversary
  1704.      CLASS:CONFIDENTIAL
  1705.      CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION
  1706.      RRULE:FREQ=YEARLY
  1707.      END:VEVENT
  1708.  
  1709.  
  1710. Dawson/Stenerson                   27                  Expires MAY 1998
  1711.  
  1712.  
  1713. Internet Draft       C&S Core Object Specification     October 22, 1997
  1714.  
  1715.  
  1716. 4.4.2   To-do Component
  1717.  
  1718.  
  1719.    A "VTODO" calendar component is a grouping of component properties
  1720.    and an OPTIONAL "VALARM" calendar component that represent an action-
  1721.    item or assignment. For example, it MAY be an item of work assigned
  1722.    to an individual; such as "turn in travel expense today".
  1723.  
  1724.    A "VTODO" calendar component is defined by the following notation:
  1725.  
  1726.      todoc      = "BEGIN" ":" [ws] "VTODO" CRLF
  1727.                   todoprop *alarmc
  1728.                   "END" ":" [ws] "VTODO" CRLF
  1729.  
  1730.      todoprop   = *attach *attendee *categories [class] *comment
  1731.                   [completed] *contact [created] [description] dtstamp
  1732.                   dtstart [due / duration] *exdate *exrule [geo]
  1733.                   [last-mod] [location] [percent] priority [rstatus]
  1734.                   *related *resources *rdate *rrule [recurid] [seq]
  1735.                   [status] summary uid *url
  1736.  
  1737.    The "VTODO" calendar component can not be nested within another
  1738.    calendar component. If "VTODO" calendar components need to be related
  1739.    to each other or to a "VTODO" or "VJOURNAL" calendar component, they
  1740.    can specify a relationship with the "RELATED-TO" property.
  1741.  
  1742.    The following is an example of a "VTODO" calendar component:
  1743.  
  1744.      BEGIN:VTODO
  1745.      UID:19970901T130000Z-123404@host.com
  1746.      DTSTAMP:19970901T1300Z
  1747.      DTSTART:19970415T083000-0500
  1748.      DUE:19970415T235959-0500
  1749.      SUMMARY:1996 Income Tax Preparation
  1750.      CLASS:CONFIDENTIAL
  1751.      CATEGORIES:FAMILY,FINANCE
  1752.      PRIORITY:1
  1753.      STATUS:NEEDS-ACTION
  1754.      END:VEVENT
  1755.  
  1756. 4.4.3   Journal Component
  1757.  
  1758.  
  1759.    A "VJOURNAL" calendar component is a grouping of component properties
  1760.    that represent one or more descriptive text notes on a particular
  1761.    calendar date. The "DTSTART" property is used to specify the calendar
  1762.    date that the journal entry is associated with. Generally, it will
  1763.    have a DATE value data type, but it MAY also be used to specify a
  1764.    DATE-TIME value data type. Examples of a journal entry include a
  1765.    daily record of a legislative body or a journal entry of individual
  1766.    telephone contacts for the day or an ordered list of accomplishments
  1767.    for the day. The calendar component can also be used to associate a
  1768.    document with a calendar date.
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774. Dawson/Stenerson                   28                  Expires MAY 1998
  1775.  
  1776.  
  1777. Internet Draft       C&S Core Object Specification     October 22, 1997
  1778.  
  1779.  
  1780.    The "VJOURNAL" calendar component does not take up time on a
  1781.    calendar. Hence, it does not play a role in free or busy time
  1782.    searches - - it is as though it has a time transparency value of
  1783.    TRANSPARENT. It is transparent to any such searches.
  1784.  
  1785.    A "VJOURNAL" calendar component is defined by the following notation:
  1786.  
  1787.      journalc   = "BEGIN" ":" [ws] "VJOURNAL" CRLF
  1788.                   jourprop
  1789.                   "END" ":" [ws] "VJOURNAL" CRLF
  1790.  
  1791.      jourprop   = *attach *attendee *categories [class] *comment
  1792.                   *contact [created] [description] dtstart dtstamp
  1793.                   *exdate *exrule [last-mod] *related *rdate *rrule
  1794.                   [rstatus] [seq] summary uid *url [recurid]
  1795.  
  1796.    The "VJOURNAL" calendar component can not be nested within another
  1797.    calendar component. If "VJOURNAL" calendar components need to be
  1798.    related to each other or to a "VEVENT" or "VTODO" calendar component,
  1799.    they can specify a relationship with the "RELATED-TO" property.
  1800.  
  1801.    The following is an example of the "VJOURNAL" calendar component:
  1802.  
  1803.      BEGIN:VJOURNAL
  1804.      UID:19970901T130000Z-123405@host.com
  1805.      DTSTAMP:19970901T1300Z
  1806.      DTSTART;VALUE=DATE:19970317
  1807.      SUMMARY:Staff meeting minutes
  1808.      DESCRIPTION:1. Staff meeting: Participants include Joe\, Lisa
  1809.        and Bob. Aurora project plans were reviewed. There is currently
  1810.        no budget reserves for this project. Lisa will escalate to
  1811.        management. Next meeting on Tuesday.
  1812.        2. Telephone Conference: ABC Corp. sales representative called
  1813.        to discuss new printer. Promised to get us a demo by Friday.
  1814.        3. Henry Miller (Handsoff Insurance): Car was totaled by tree.
  1815.        Is looking into a loaner car. 654-2323 (tel).
  1816.      END:VJOURNAL
  1817.  
  1818. 4.4.4   Free/Busy Component
  1819.  
  1820.  
  1821.    A "VFREEBUSY" calendar component is a grouping of component
  1822.    properties that represents either a request for, or a reply with,
  1823.    free or busy time information. Typically, this component exists in an
  1824.    iCalendar object that is being used to either request or return free
  1825.    or busy time information.
  1826.  
  1827.    A "VFREEBUSY" calendar component is defined by the following
  1828.    notation:
  1829.  
  1830.      freebusyc  = "BEGIN" ":" [ws] "VFREEBUSY" CRLF
  1831.                   fbprop
  1832.                   "END" ":" [ws] "VFREEBUSY" CRLF
  1833.  
  1834.  
  1835.  
  1836.  
  1837. Dawson/Stenerson                   29                  Expires MAY 1998
  1838.  
  1839.  
  1840. Internet Draft       C&S Core Object Specification     October 22, 1997
  1841.  
  1842.  
  1843.      fbprop     = fbrequest / fbreply
  1844.  
  1845.      fbrequest  = *attendee dtstart dtend [duration] *comment dtstamp
  1846.                   [last-mod] *related [seq] uid
  1847.      ;This set of properties is used to for free/busy time request.
  1848.  
  1849.      fbreply    = *attendee [created] *comment [dtstart dtend] dtstamp
  1850.                   *freebusy [last-mod] *related [rstatus] [seq] uid *url
  1851.      ;This set of properties is used for free/busy time reply.
  1852.  
  1853.    The "VFREEBUSY" calendar component can not be nested within another
  1854.    calendar component. The "VFREEBUSY" calendar components MAY be
  1855.    related to each other with the "RELATED-TO" property. Multiple
  1856.    "VFREEBUSY" calendar components MAY be specified within a iCalendar
  1857.    object. This permits the grouping of Free/Busy information into
  1858.    logical collections, such as monthly groups of busy time information.
  1859.  
  1860.    The "VFREEBUSY" calendar component is intended for use in iCalendar
  1861.    object methods involving requests for free time, requests for busy
  1862.    time, requests for both free and busy, and the associated replies.
  1863.  
  1864.    Free/Busy information can be expressed using the "FREEBBUSY"
  1865.    property. This property provides a terse representation of time
  1866.    periods. One or more "FREEBUSY" properties MAY be specified in the
  1867.    "VFREEBUSY" calendar component to describe the Free/Busy information.
  1868.  
  1869.    Optionally, the "DTSTART" and "DTEND" properties MAY be specified to
  1870.    express the start and end date and time for all of the Free/Busy
  1871.    information in the "VFREEBUSY"calendar component. When present in a
  1872.    "VFREEBUSY" calendar component, they should be specified prior to any
  1873.    "FREEBUSY" properties. In a free time request, these properties MAY
  1874.    be used in combination with the "DURATION" property to express a
  1875.    request for a duration of free time within a given window of time.
  1876.  
  1877.    The recurrence properties ("RRULE", "EXRULE", "RDATE", "EXDATE") are
  1878.    not permitted within a "VFREEBUSY" calendar component. Any recurring
  1879.    events are resolved into their individual busy time periods using the
  1880.    "FREEBUSY" property.
  1881.  
  1882.    The following is an example of a "VFREEBUSY" calendar component:
  1883.  
  1884.      BEGIN:VFREEBUSY
  1885.      DTSTART:19971015T050000Z
  1886.      DTEND:19971016T050000Z
  1887.      FREEBUSY;VALUE=PERIOD:19971015T050000Z/PT8H30M,
  1888.       19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M
  1889.      END:VFREEBUSY
  1890.  
  1891. 4.4.5   Alarm Component
  1892.  
  1893.  
  1894.    A "VALARM" calendar component is a grouping of component properties
  1895.    that is a reminder or alarm for an event or a to-do. The "VALARM"
  1896.    calendar component MAY only be specified in a "VEVENT" or "VTODO"
  1897.  
  1898.  
  1899.  
  1900. Dawson/Stenerson                   30                  Expires MAY 1998
  1901.  
  1902.  
  1903. Internet Draft       C&S Core Object Specification     October 22, 1997
  1904.  
  1905.  
  1906.    calendar component. For example, it MAY define a reminder for a
  1907.    pending event or an overdue to-do.
  1908.  
  1909.    The "DTSTART" property specifies the calendar date and time of day
  1910.    that the alarm will be triggered. The value MAY alternately be set to
  1911.    a period of time, before or after the event or to-do, that the alarm
  1912.    will be triggered.
  1913.  
  1914.    A "VALARM" calendar component is defined by the following notation:
  1915.  
  1916.      alarmc     = "BEGIN" ":" [ws] "VALARM" CRLF
  1917.                   alarmprop
  1918.                   "END" ":" [ws] "VALARM" CRLF
  1919.  
  1920.      alarmprop  = *attach 1*categories *comment [description]
  1921.                   dtstart duration *related repeat [summary]
  1922.  
  1923.    The "VALARM" calendar component can only appear within either a
  1924.    "VEVENT" or "VTODO" calendar component. The "VALARM" calendar
  1925.    components can not be nested.
  1926.  
  1927.    The following is an example of the "VALARM" calendar component:
  1928.  
  1929.      BEGIN:VALARM
  1930.      DTSTART:19970317T133000Z
  1931.      REPEAT:4
  1932.      DURATION:PT15M
  1933.      CATEGORIES:DISPLAY,AUDIO
  1934.      ATTACH:file:///mmedia/sounds/bell1.wav
  1935.      DESCRIPTION:Breakfast meeting with executive team at 8:30 AM
  1936.      END:VALARM
  1937.  
  1938. 4.4.6   Timezone Component
  1939.  
  1940.  
  1941.    The "VTIMEZONE" calendar component is used to define a time zone.
  1942.  
  1943.    A time zone is unambiguously defined by the set of time measurement
  1944.    rules determined by the governing body for a given geographic area.
  1945.    These rules describe at a minimum the base offset from UTC for the
  1946.    time zone, often referred to as the Standard Time offset. Many
  1947.    locations adjust their Standard Time forward or backward by one hour,
  1948.    in order to accommodate seasonal changes in number of daylight hours,
  1949.    often referred to as Daylight Saving Time. Some locations adjust
  1950.    their time by a fraction of an hour. Standard Time is also known as
  1951.    Winter Time. Daylight Saving Time is also known as Advanced Time,
  1952.    Summer Time, or Legal Time in certain countries. The following table
  1953.    shows the changes in time zone rules for the eastern United States.
  1954.  
  1955.      Effective  Transition Rule
  1956.      Date       (Date/Time)                 Offset   Abbreviation
  1957.  
  1958.      1920-1920 last Sun in Mar, 02:00  -0400    EDT
  1959.  
  1960.  
  1961.  
  1962.  
  1963. Dawson/Stenerson                   31                  Expires MAY 1998
  1964.  
  1965.  
  1966. Internet Draft       C&S Core Object Specification     October 22, 1997
  1967.  
  1968.  
  1969.      1920-1920 last Sun in Oct, 02:00  -0500    EST
  1970.  
  1971.      1921-1966 last Sun in Apr, 02:00  -0400    EDT
  1972.  
  1973.      1921-1954 last Sun in Sep, 02:00  -0500    EST
  1974.  
  1975.      1955-1966 last Sun in Oct, 02:00  -0500    EST
  1976.  
  1977.      1967-*     last Sun in Oct, 02:00  -0500    EST
  1978.  
  1979.      1967-1973  last Sun in Apr, 02:00  -0400    EDT
  1980.  
  1981.      1974-1974  Jan 6, 02:00            -0400    EDT
  1982.  
  1983.      1975-1975  Feb 23, 02:00           -0400    EDT
  1984.  
  1985.      1976-1986  last Sun in Apr, 02:00  -0400    EDT
  1986.  
  1987.      1987-*     first Sun in Apr, 02:00 -0400    EDT
  1988.  
  1989.    Interoperability between two calendaring and scheduling applications,
  1990.    especially for recurring events, to-dos or journal entries, is
  1991.    dependent on the ability to capture and convey date and time
  1992.    information in an unambiguous format. The specification of current
  1993.    time zone information is integral to this behavior.
  1994.  
  1995.    The "VTIMEZONE" calendar component is a grouping of component
  1996.    properties that define a time zone description. The time zone
  1997.    description specifies the effective Standard Time or Daylight Savings
  1998.    Time rules for a particular time zone. The "VTIMEZONE" calendar
  1999.    component can not be nested within other calendar components. The
  2000.    "VTIMEZONE" calendar component MAY be specified multiple times. If
  2001.    the "VTIMEZONE" calendar component is missing, the recipient should
  2002.    assume all local times are relative to the recipient's time zone. The
  2003.    "VTIMEZONE" calendar component should be specified in the iCalendar
  2004.    object before any other calendar components.
  2005.  
  2006.    A "VTIMEZONE" calendar component is defined by the following
  2007.    notation:
  2008.  
  2009.      timezonec  = "BEGIN" ":" [ws] "VTIMEZONE" CRLF
  2010.                   tzprop
  2011.                   "END" ":" [ws] "VTIMEZONE" CRLF
  2012.  
  2013.      tzprop     = *comment [daylight] dtstart [rdate / rrule]
  2014.                   [tzname] tzoffset
  2015.  
  2016.    The "VTIMEZONE" calendar component is important for correct
  2017.    interpretation of individual as well as recurring calendar components
  2018.    that span a time zone transition. For example, from EST to EDT.  The
  2019.    exception to this are calendar components that are considered
  2020.    floating (i.e., occurs at a particular local time no matter what time
  2021.    zone you are in). If the iCalendar object contains a non-floating
  2022.    calendar component that has a recurring date pattern (i.e., includes
  2023.  
  2024.  
  2025. Dawson/Stenerson                   32                  Expires MAY 1998
  2026.  
  2027.  
  2028. Internet Draft       C&S Core Object Specification     October 22, 1997
  2029.  
  2030.  
  2031.    the "RRULE" property) or a list of date and local time values (i.e.,
  2032.    includes the "RDATE" property), one or more "VTIMEZONE" calendar
  2033.    components MUST be specified, such that for the given range of the
  2034.    recurrence (i.e., the earliest instance to latest instance), there is
  2035.    valid time zone information for all instances. In other words, if all
  2036.    of the instances of the pattern is entirely within one offset
  2037.    observance, (e.g., all are in Standard Time), only one "VTIMEZONE"
  2038.    calendar component need be present. If a time zone transition is
  2039.    crossed, then other "VTIMEZONE" calendar components are needed.
  2040.    Further, if there are known changes to the rules for the time zone,
  2041.    even more "VTIMEZONE" calendar components are needed.
  2042.  
  2043.    Each "VTIMEZONE" calendar component consists of several properties:
  2044.  
  2045.    The "DAYLIGHT" property is a BOOLEAN value indicating Standard Time
  2046.    (FALSE) or Daylight Savings Time (TRUE). The default for DAYLIGHT is
  2047.    FALSE or Standard Time.
  2048.  
  2049.    The "DTSTART" property in this usage is a fully specified DATE-TIME
  2050.    value, including the UTC offset, indicating the effective start date
  2051.    and time for the time zone information. For example, 19671029T020000-
  2052.    0400 represents the time at which the transition to Standard Time
  2053.    took effect in 1967 for the eastern United States.
  2054.  
  2055.    The "TZOFFSET" property is a UTC-OFFSET value indicating the UTC
  2056.    offset for the time zone (Standard Time or Daylight Savings Time).
  2057.  
  2058.    The "TZNAME" property is the customary name for the time zone.
  2059.  
  2060.    The "RRULE" property indicates the recurrence rule for the transition
  2061.    to this time zone. For example, in the United States, the transition
  2062.    from Standard Time to Daylight Saving Time occurs on the first Sunday
  2063.    in April at 02:00. If a recurrence rule describing the transition is
  2064.    known to have an effective end date, the UNTIL recurrence rule
  2065.    parameter is used to specify that end date and time. If the
  2066.    recurrence rule for a particular observance (Daylight Saving Time) is
  2067.    changing, then the UNTIL of the first rule will be equal to the last
  2068.    valid instance (the last date-time) of this particular rule. See
  2069.    example below.
  2070.  
  2071.    Alternatively, the "RDATE" property can be used. The "RDATE" property
  2072.    is a property that indicates the individual dates and/or times that
  2073.    the transition takes effect. The values supplied for "RDATE" property
  2074.    for each "VTIMEZONE" calendar component MUST provide valid time zone
  2075.    information of all instances of the recurrence specified for the
  2076.    calendar component to which this time zone information is to be
  2077.    applied.
  2078.  
  2079.    The following are examples of the "VTIMEZONE" calendar component:
  2080.  
  2081.    This is a simple example showing time zone information for the
  2082.    Eastern United States using "RDATE" property. Note that this is only
  2083.    suitable for a recurring event that starts on or later than 1997,
  2084.    April 6, at 02:00:00 EST (i.e., the earliest effective transition
  2085.  
  2086.  
  2087. Dawson/Stenerson                   33                  Expires MAY 1998
  2088.  
  2089.  
  2090. Internet Draft       C&S Core Object Specification     October 22, 1997
  2091.  
  2092.  
  2093.    date and time) and ends no later than 1998, April 7, 02:00:00 EST
  2094.    (i.e., latest valid date and time for EST in this scenario).  For
  2095.    example, this can be used for a recurring event that ocurrs every
  2096.    Friday, 8am-9am, starting June 1, 1997, ending Dec 31, 1997.
  2097.  
  2098.      BEGIN:VTIMEZONE
  2099.      DAYLIGHT:FALSE
  2100.      RDATE:19971026T020000-0400
  2101.      TZOFFSET:-0500
  2102.      TZNAME:EST
  2103.      END:VTIMEZONE
  2104.  
  2105.      BEGIN:VTIMEZONE
  2106.      DAYLIGHT:TRUE
  2107.      RDATE:19970406T020000-0500
  2108.      TZOFFSET:-0400
  2109.      TZNAME:EDT
  2110.      END:VTIMEZONE
  2111.  
  2112.    This is a simple example showing the current time zone rules for the
  2113.    Eastern United States using a RRULE recurrence pattern. Note that
  2114.    there is no effective end date to either of the Standard Time or
  2115.    Daylight Time rules. This information would be valid for a
  2116.    recurrening event starting today and continuing on into the known
  2117.    future.
  2118.  
  2119.      BEGIN:VTIMEZONE
  2120.      DAYLIGHT:FALSE
  2121.      DTSTART:19671029T020000-0400
  2122.      RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
  2123.      TZOFFSET:-0500
  2124.      TZNAME:EST
  2125.      END:VTIMEZONE
  2126.  
  2127.      BEGIN:VTIMEZONE
  2128.      DAYLIGHT:TRUE
  2129.      DTSTART:19870405T020000-0500
  2130.      RRULE: FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
  2131.      TZOFFSET:-0400
  2132.      TZNAME:EDT
  2133.      END:VTIMEZONE
  2134.  
  2135.    This is an example showing a ficticious set of rules for the Eastern
  2136.    United States, where the Daylight Time rule has an effective end date
  2137.    (i.e., after that date, Daylight Time is no longer observed).
  2138.  
  2139.      BEGIN:VTIMEZONE
  2140.      DAYLIGHT:FALSE
  2141.      DTSTART:19671029T020000-0400
  2142.      RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
  2143.      TZOFFSET:-0500
  2144.      TZNAME:EST
  2145.      END:VTIMEZONE
  2146.  
  2147.  
  2148.  
  2149. Dawson/Stenerson                   34                  Expires MAY 1998
  2150.  
  2151.  
  2152. Internet Draft       C&S Core Object Specification     October 22, 1997
  2153.  
  2154.  
  2155.      BEGIN:VTIMEZONE
  2156.      DAYLIGHT:TRUE
  2157.      DTSTART:19870405T020000-0500
  2158.      RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T020000-0500
  2159.      TZOFFSET:-0400
  2160.      TZNAME:EDT
  2161.      END:VTIMEZONE
  2162.  
  2163.    This is an example showing a fictitious set of rules for the Eastern
  2164.    United States, where the first Daylight Time rule has an effective
  2165.    end date. There is a second Daylight Time rule that picks up where
  2166.    the other left off.
  2167.  
  2168.      BEGIN:VTIMEZONE
  2169.      DAYLIGHT:FALSE
  2170.      DTSTART:19671029T020000-0400
  2171.      RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
  2172.      TZOFFSET:-0500
  2173.      TZNAME:EST
  2174.      END:VTIMEZONE
  2175.  
  2176.      BEGIN:VTIMEZONE
  2177.      DAYLIGHT:TRUE
  2178.      DTSTART:19870405T020000-0500
  2179.      RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T020000-0500
  2180.      TZOFFSET:-0400
  2181.      TZNAME:EDT
  2182.      END:VTIMEZONE
  2183.  
  2184.      BEGIN:VTIMEZONE
  2185.      DAYLIGHT:TRUE
  2186.      DTSTART:19990327T020000-0500
  2187.      RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
  2188.      TZOFFSET:-0400
  2189.      TZNAME:EDT
  2190.      END:VTIMEZONE
  2191.  
  2192. 4.5     Calendar Properties
  2193.  
  2194.  
  2195.    The Calendar Properties are attributes that apply to the iCalendar
  2196.    object, as a whole. These properties do not appear within a calendar
  2197.    component. They should be specified after the "BEGIN:VCALENDAR"
  2198.    property and prior to any calendar component.
  2199.  
  2200. 4.5.1   Calendar Scale
  2201.  
  2202.  
  2203.    This property is identified by the property name CALSCALE. This
  2204.    property defines the calendar scale used for the calendar information
  2205.    specified in the iCalendar object. This memo is based on the
  2206.    Gregorian calendar scale. The Gregorian calendar scale is assumed if
  2207.    this property is not specified in the iCalendar object. It is
  2208.    expected that other calendar scales will be defined in other
  2209.    specifications or by future versions of this memo.
  2210.  
  2211.  
  2212.  
  2213. Dawson/Stenerson                   35                  Expires MAY 1998
  2214.  
  2215.  
  2216. Internet Draft       C&S Core Object Specification     October 22, 1997
  2217.  
  2218.  
  2219.    The property is defined by the following notation:
  2220.  
  2221.      calscale   = "CALSCALE" ":" [ws] calvalue CRLF
  2222.  
  2223.      calvalue   = "GREGORIAN" / iana-scale
  2224.  
  2225.      iana-scale = <Any other designator for a calendar scale
  2226.                    registered with IANA>
  2227.  
  2228.    The following is an example of this property:
  2229.  
  2230.      CALSCALE:GREGORIAN
  2231.  
  2232.    The data type for this property is TEXT.
  2233.  
  2234. 4.5.2   Method
  2235.  
  2236.  
  2237.    This property is identified by the property name METHOD. This
  2238.    property defines the iCalendar object method associated with the
  2239.    calendar object. When used in a MIME message entity, the value of
  2240.    this property MUST be the same as the Content-Type "method" parameter
  2241.    value. This property can only appear once within the iCalendar
  2242.    object.
  2243.  
  2244.    The property is defined by the following notation:
  2245.  
  2246.      method     = "METHOD" ": [ws] profvalue CRLF
  2247.  
  2248.      profvalue  = <Any IANA registered iCalendar object method.>
  2249.  
  2250.    The following is an example of this property when the iCalendar
  2251.    object is used to request a meeting:
  2252.  
  2253.      METHOD: REQUEST
  2254.  
  2255.    In the event that this property is not specified, the iCalendar
  2256.    object method is undefined. The data type for this property is TEXT.
  2257.  
  2258. 4.5.3   Product Identifier
  2259.  
  2260.  
  2261.    This property is identified by the property name PRODID. This
  2262.    property specifies the identifier for the product that created the
  2263.    iCalendar object. The vendor of the implementation should assure that
  2264.    this is a globally unique identifier; using some technique such as an
  2265.    ISO 9070 FPI value. This calendar property MUST be specified in the
  2266.    iCalendar object but can only appear once.
  2267.  
  2268.    This property should not be used to alter the interpretation of an
  2269.    iCalendar object beyond the semantics specified in this memo. For
  2270.    example, it is not to be used to further the understanding of non-
  2271.    standard properties.
  2272.  
  2273.    The property is defined by the following notation:
  2274.  
  2275.  
  2276.  
  2277. Dawson/Stenerson                   36                  Expires MAY 1998
  2278.  
  2279.  
  2280. Internet Draft       C&S Core Object Specification     October 22, 1997
  2281.  
  2282.  
  2283.      prodid     = "PRODID" ":" [ws] pidvalue CRLF
  2284.  
  2285.      pidvalue   = text
  2286.      ;Any text that describes the product and version
  2287.      ;and that is generally assured of being unique.
  2288.  
  2289.    The following is an example of this property:
  2290.  
  2291.      PRODID:-//ABC Corporation//NONSGML My Product//EN
  2292.  
  2293.    The data type for this property is TEXT.
  2294.  
  2295. 4.5.4   Source
  2296.  
  2297.  
  2298.    This property is identified by the property name SOURCE. This
  2299.    property is defined by the [MIME DIR] memo. In this memo, the
  2300.    property identifies the URL for the source of the iCalendar object.
  2301.    The URL is useful for accessing the iCalendar object using a calendar
  2302.    access protocol.
  2303.  
  2304.    The property is defined by the following notation:
  2305.  
  2306.      source     = "SOURCE" ":" [ws] url CRLF
  2307.  
  2308.    The following are examples of this property:
  2309.  
  2310.      SOURCE:http://xyz.corp.com/corp-cals/1997-events.or4
  2311.  
  2312.      SOURCE:http://xyz.corp.com/calendars/~jdoe
  2313.  
  2314.    The data type for this property is URL.
  2315.  
  2316. 4.5.5   Source Name
  2317.  
  2318.  
  2319.    This property is identified by the property name NAME. This property
  2320.    is defined by the [MIME DIR] memo. The property identifies the
  2321.    displayable, presentation name for the source of the iCalendar
  2322.    object. The source name is a useful text to associate in the user-
  2323.    interface of an application with the value in the SOURCE property.
  2324.  
  2325.    The property is defined by the following notation:
  2326.  
  2327.      name       = "NAME" ":" [ws] text CRLF
  2328.  
  2329.    The following is an example of this property:
  2330.  
  2331.      NAME:1997 Events Calendar for XYZ Corporation
  2332.  
  2333.    The data type for this property is TEXT.
  2334.  
  2335.  
  2336.  
  2337.  
  2338.  
  2339.  
  2340.  
  2341. Dawson/Stenerson                   37                  Expires MAY 1998
  2342.  
  2343.  
  2344. Internet Draft       C&S Core Object Specification     October 22, 1997
  2345.  
  2346.  
  2347. 4.5.6   Version
  2348.  
  2349.  
  2350.    This property is identified by the property name VERSION. This
  2351.    property specifies the identifier corresponding to the highest
  2352.    version number or the minimum and maximum range of the MIME
  2353.    Calendaring and Scheduling Content Type specification supported by
  2354.    the implementation that created the iCalendar object. A value of
  2355.    "2.0" corresponds to this memo. This calendar property MUST appear
  2356.    within the iCalendar object but can only appear once.
  2357.  
  2358.    The property is defined by the following notation:
  2359.  
  2360.      version    = "VERSION" ":" [ws] vervalue CRLF
  2361.  
  2362.      vervalue   = "2.0"         ;This memo
  2363.                 / maxver
  2364.                 / (minver ";" [ws] maxver)
  2365.  
  2366.      minver     = <A IANA registered iCalendar version identifier>
  2367.      ;Minimum iCalendar version used to create the iCalendar object
  2368.  
  2369.      maxver     = <A IANA registered iCalendar version identifier>
  2370.      ;Maximum iCalendar version used to create the iCalendar object
  2371.  
  2372.    The following is an example of this property:
  2373.  
  2374.      VERSION:2.0
  2375.  
  2376.    The data type for this property is TEXT.
  2377.  
  2378. 4.6     Component Properties
  2379.  
  2380.  
  2381.    The following properties MAY appear within calendar components, as
  2382.    specified by each component property definition.
  2383.  
  2384. 4.6.1   Attachment
  2385.  
  2386.  
  2387.    This property is identified by the property name ATTACH. The property
  2388.    provides the capability to associate an external object with a
  2389.    calendar component. For example, a document to be reviewed at a
  2390.    scheduled event or the description of the process steps for a to-do.
  2391.    The property MAY only be specified within "VEVENT", "VTODO", or
  2392.    "VJOURNAL" calendar components. This property MAY be specified
  2393.    multiple times within an iCalendar object.
  2394.  
  2395.    The property is defined by the following notation:
  2396.  
  2397.      attach     = "ATTACH" ":" [ws] url CRLF
  2398.  
  2399.    The following are examples of this property:
  2400.  
  2401.      ATTACH:CID:jsmith.part3.960817T083000.xyzMail@host1.com
  2402.  
  2403.  
  2404.  
  2405.  
  2406. Dawson/Stenerson                   38                  Expires MAY 1998
  2407.  
  2408.  
  2409. Internet Draft       C&S Core Object Specification     October 22, 1997
  2410.  
  2411.  
  2412.      ATTACH:FTP://xyzCorp.com/pub/reports/r-960812.ps
  2413.  
  2414.    The data type for this property is URL.
  2415.  
  2416. 4.6.2   Attendee
  2417.  
  2418.  
  2419.    This property is identified by the property name ATTENDEE. The
  2420.    property defines an attendee within a calendar component. The
  2421.    property MAY only be specified within the "VEVENT", "VTODO",
  2422.    "VJOURNAL" and "VFREEBUSY" calendar components.
  2423.  
  2424.    The property has the property parameters TYPE, for the type of
  2425.    attendee, ROLE, for the intended role of the attendee; STATUS, for
  2426.    the status of the attendeeÆs participation; RSVP, for indicating
  2427.    whether the favor of a reply is requested; EXPECT, to indicate the
  2428.    expectation of the attendeeÆs participation by the originator;
  2429.    MEMBER, to indicate the groups that the attendee belongs to;
  2430.    DELEGATED-TO, to indicate the people that the original request was
  2431.    delegated to; and DELEGATED-FROM, to indicated whom the request was
  2432.    delegated from.
  2433.  
  2434.    A recipient delegated a request MUST inherit the RSVP and EXPECT
  2435.    values from the attendee that delegated the request to them.
  2436.  
  2437.    Multiple attendees MAY be specified by including multiple "ATTENDEE"
  2438.    properties within the MIME calendaring entity.
  2439.  
  2440.    The property data type default is CAL-ADDRESS. The property data type
  2441.    MAY also be set to URL. This provides a useful mechanism to allow
  2442.    more than just the address of the attendee to be referenced. If the
  2443.    value is a URL, then it MUST be able to be resolved to a calendar
  2444.    address.
  2445.  
  2446.    The property is defined by the following notation:
  2447.  
  2448.      attendee   = "ATTENDEE" [";" [ws] paramlist]
  2449.                   [";" [ws] attparamlist] ":" [ws]
  2450.                   (cal-address / URL) CRLF
  2451.      ;Value MUST match default or explicit data type
  2452.  
  2453.      attparamlist      = (attparam *(";" attparam)
  2454.  
  2455.      attparam   = typeparm / roleparm / statusparm / rsvpparm
  2456.                 / expectparm / memberparm / deletoparm / delefromparm
  2457.  
  2458.      typeparm   = "TYPE" "="
  2459.                 ("INDIVIDUAL"   ; An individual
  2460.                 / "GROUP"       ; A group of individuals
  2461.                 / "RESOURCE"    ; A physical resource
  2462.                 / "ROOM"        ; A room resource
  2463.                 / "UNKNOWN")    ; Otherwise not known
  2464.      ;Default value is INDIVIDUAL
  2465.  
  2466.  
  2467.  
  2468.  
  2469. Dawson/Stenerson                   39                  Expires MAY 1998
  2470.  
  2471.  
  2472. Internet Draft       C&S Core Object Specification     October 22, 1997
  2473.  
  2474.  
  2475.      roleparm   = "ROLE" "="
  2476.                 ("ATTENDEE"     ; Indicates a regular attendee
  2477.                 / "OWNER"       ; Indicates owner of event or to-do
  2478.                 / "ORGANIZER"   ; Indicates organizer of event or to-do
  2479.                 / "DELEGATE")   ; Indicates delegate to event or to-do
  2480.      ;Default is ATTENDEE
  2481.  
  2482.      statusparm = "STATUS" "="
  2483.                 ("NEEDS-ACTION" ; Indicates event or to-do needs action
  2484.                 / "ACCEPTED"    ; Indicates event or to-do accepted
  2485.                 / "DECLINED"    ; Indicates event or to-do not accepted
  2486.                 / "TENTATIVE"   ; Indicates event or to-do tentatively
  2487.                 ; accepted. Status MAY change in the future.
  2488.                 / "COMPLETED"   ; Indicates to-do was completed.
  2489.                 ; COMPLETED property has date/time completed.
  2490.                 / "IN-PROCESS"  ;Indicates to-do is in the process of
  2491.                 ; being completed.
  2492.                 / "DELEGATED"   ; Indicateds event or to-do delegated
  2493.                 ; to another ATTENDEE
  2494.                 / "CANCELLED")  ; Indicates event or to-do cancelled for
  2495.                                 ; ATTENDEE
  2496.      ;Default is NEEDS-ACTION
  2497.  
  2498.      rsvpparm   = "RSVP" "="
  2499.                   ("TRUE"               ; Indicates response requested
  2500.                 / "FALSE")              ; Indicates no response needed
  2501.      ;Default is FALSE
  2502.  
  2503.      expectparm = "EXPECT" "="
  2504.                 ("FYI"          ; Indicates request is for your info
  2505.                 / "REQUIRE"     ; Indicates presence is required
  2506.                 / "REQUEST")    ; Indicates presence is requested
  2507.      ;Default is FYI
  2508.  
  2509.      memberparm = "MEMBER" "=" cal-address *("," cal-address)
  2510.      ; Indicates a group or mailing list
  2511.  
  2512.      deletoparm = "DELEGATED-TO" "=" cal-address *("," cal-address)
  2513.      ; Indicates who request delegated to
  2514.  
  2515.      delefromparm = "DELEGATED-FROM" "=" cal-address *("," cal-address)
  2516.      ;Indicates who request delegated from
  2517.  
  2518.    The following are examples of this propertyÆs use for a to-do:
  2519.  
  2520.      ATTENDEE;ROLE=OWNER;STATUS=COMPLETED:jsmith@host1.com
  2521.      ATTENDEE;MEMBER=DEV-GROUP@host2.com:joecool@host2.com
  2522.      ATTENDEE;DELEGATED-FROM=immud@host3.com:ildoit@host1.com
  2523.  
  2524.    The following is an example of this property used for specifying
  2525.    multiple attendees to an event:
  2526.  
  2527.      ATTENDEE;ROLE=OWNER;STATUS=ACCEPTED:John Smith <jsmith@host1.com>
  2528.      ATTENDEE;ROLE=ATTENDEE;STATUS=TENTATIVE:Henry Cabot
  2529.  
  2530.  
  2531. Dawson/Stenerson                   40                  Expires MAY 1998
  2532.  
  2533.  
  2534. Internet Draft       C&S Core Object Specification     October 22, 1997
  2535.  
  2536.  
  2537.       <hcabot@host2.com>
  2538.      ATTENDEE;ROLE=DELEGATE;STATUS=ACCEPTED:Jane Doe <jdoe@host1.com>
  2539.  
  2540.    The following is an example of this property with the value specified
  2541.    as an URL reference to a vCard that contains the information about
  2542.    the attendee:
  2543.  
  2544.      ATTENDEE;ROLE=ATTENDEE;STATUS=ACCEPTED;VALUE=URL:
  2545.       http://www.xyz.com/~myvcard.vcf
  2546.  
  2547.    The following is an example of this property with "delegatee"
  2548.    and"delegator" information for an event:
  2549.  
  2550.      ATTENDEE;ROLE=OWNER;STATUS=ACCEPTED:John Smith <jsmith@host1.com>
  2551.      ATTENDEE;ROLE=DELEGATE;STATUS=TENTATIVE;DELEGATED-FROM=
  2552.       iamboss@host2.com:Henry Cabot<hcabot@host2.com>
  2553.      ATTENDEE;ROLE=ATTENDEE;STATUS=DELEGATED;DELEGATED-TO=
  2554.       hcabot@host2.com=iamboss(The Big Cheese)@host2.com
  2555.      ATTENDEE;ROLE=DELEGATE;STATUS=ACCEPTED:Jane Doe <jdoe@host1.com>
  2556.  
  2557.    The default data type for this property is CAL-ADDRESS. The data type
  2558.    MAY be reset to URL; in which case the value is a location or message
  2559.    that contains the information that is to be used to specify the
  2560.    attendee address.
  2561.  
  2562. 4.6.3   Categories
  2563.  
  2564.  
  2565.    This property is identified by the property name CATEGORIES. This
  2566.    property defines the categories for a calendar component. The
  2567.    property MAY be specified within the "VEVENT", "VTODO" or "VJOURNAL"
  2568.    calendar component with an arbitrary text value. In the "VALARM"
  2569.    calendar component the property MUST be specified to declare the
  2570.    alarm category. More than one category MAY be specified as a list of
  2571.    categories separated by the COMMA character (ASCII decimal 44).
  2572.  
  2573.    The properties is defined by the following notation:
  2574.  
  2575.      categories = "CATEGORIES" [";" [ws] paramlist] ":" [ws]
  2576.                   catvalue CRLF
  2577.  
  2578.      catvalue   = cat1value *["," [ws] cat1value]
  2579.                 / cat2value *["," [ws] cat2value]
  2580.  
  2581.      cat1value  = "ANNIVERSARY" / "APPOINTMENT" / "BUSINESS"
  2582.                 / "EDUCATION" / "HOLIDAY" / "MEETING" / "MISCELLANEOUS"
  2583.                 / "NON-WORKING HOURS" / "NOT IN OFFICE" / "PERSONAL"
  2584.                 / "PHONE CALL"  / "SICK DAY" / "SPECIAL OCCASION"
  2585.                 / "TRAVEL" / "VACATION" / word
  2586.      ;Used only in "VEVENT", "VTODO" and "VJOURNAL" calendar components.
  2587.  
  2588.      cat2value  = "AUDIO" / "DISPLAY" / "EMAIL" / "PROCEDURE"
  2589.                 / x-token / iana-word
  2590.      ;Used only in "VALARM" calendar component.
  2591.  
  2592.  
  2593.  
  2594. Dawson/Stenerson                   41                  Expires MAY 1998
  2595.  
  2596.  
  2597. Internet Draft       C&S Core Object Specification     October 22, 1997
  2598.  
  2599.  
  2600.    The following are examples of this property in a "VEVENT", "VTODO" or
  2601.    "VJOURNAL" calendar component:
  2602.  
  2603.      CATEGORIES:APPOINTMENT,EDUCATION
  2604.  
  2605.      CATEGORIES:MEETING
  2606.  
  2607.    The following are examples of this property in a "VALARM" calendar
  2608.    component:
  2609.  
  2610.      CATEGORIES:AUDIO,DISPLAY
  2611.  
  2612.      CATEGORIES:PROCEDURE
  2613.  
  2614.    The data type for this property is TEXT.
  2615.  
  2616. 4.6.4   Classification
  2617.  
  2618.  
  2619.    This property is identified by the property name CLASS. This property
  2620.    defines the access classification for a calendar component. The
  2621.    property MAY only be specified in a "VEVENT", "VTODO" or "VJOURNAL"
  2622.    calendar component. The property MAY only be specified once.
  2623.  
  2624.    An access classification is only one component of the general
  2625.    security system within a calendar application. It provides a method
  2626.    of capturing the scope of the access the calendar owner intends for
  2627.    information within an individual calendar entry. The access
  2628.    classification of an individual iCalendar component is useful when
  2629.    measured along with the other security components of a calendar
  2630.    system (e.g., calendar user authentication, authorization, access
  2631.    rights, access role, etc.). Hence, the semantics of the individual
  2632.    access classifications can not be completely defined by this memo
  2633.    alone. Additionally, due to the "blind" nature of most exchange
  2634.    processes using this memo, these access classifications can not serve
  2635.    as an enforcement statement for a system receiving an iCalendar
  2636.    object . Rather, they provide a method for capturing the intention of
  2637.    the calendar owner for the access to the calendar component. . The
  2638.    [ICMS] provides a broader description of the security system within a
  2639.    calendar application.
  2640.  
  2641.    The property is defined by the following notation:
  2642.  
  2643.      class      = "CLASS" [";" [ws] paramlist] ":" [ws]
  2644.                   classvalue CRLF
  2645.  
  2646.      classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / x-token
  2647.      ;Default is PUBLIC
  2648.  
  2649.    The following is an example of this property:
  2650.  
  2651.      CLASS:PUBLIC
  2652.  
  2653.    The data type for this property is TEXT.
  2654.  
  2655.  
  2656.  
  2657. Dawson/Stenerson                   42                  Expires MAY 1998
  2658.  
  2659.  
  2660. Internet Draft       C&S Core Object Specification     October 22, 1997
  2661.  
  2662.  
  2663. 4.6.5   Comment
  2664.  
  2665.  
  2666.    This property is identified by the property name COMMENT. This
  2667.    property specifies non-processing information intended to provide a
  2668.    comment to the calendar user. The property MAY be specified in any of
  2669.    the calendar components. The property MAY be specified multiple
  2670.    times.
  2671.  
  2672.    The property is defined by the following notation:
  2673.  
  2674.      comment    = "COMMENT" ":" [ws] text CRLF
  2675.  
  2676.    The following is an example of this property:
  2677.  
  2678.      COMMENT:The meeting really needs to include both ourselves
  2679.        and the customer.  We canÆt hold this  meeting without them
  2680.        As a matter of fact\, the venue for the meeting ought to be at
  2681.        their site. - - John
  2682.  
  2683.    The data type for this property is TEXT.
  2684.  
  2685. 4.6.6   Contact
  2686.  
  2687.  
  2688.    This property is defined by the property name CONTACT. The property
  2689.    is used to represent contact information or alternately a reference
  2690.    to contact information associated with the calendar component. The
  2691.    property MAY only be specified in the "VEVENT", "VTODO" and
  2692.    "VJOURNAL" calendar components. The property value consists of
  2693.    textual contact information. Alternately, the value type for the
  2694.    property can be reset such that the property references the URL to
  2695.    the contact information.
  2696.  
  2697.    The property is defined by the following notation:
  2698.  
  2699.      contact    = "CONTACT" [";" [ws] paramlist] ":" [ws]
  2700.                   text / url CRLF
  2701.  
  2702.    The following is an example of this property referencing textual
  2703.    contact information:
  2704.  
  2705.      CONTACT:Jim Dolittle\, ABC Industries\, +1-919-555-1234
  2706.  
  2707.    The following is an example of this property referencing a LDAP URL
  2708.    to a directory entry containing the contact information:
  2709.  
  2710.    CONTACT;VALUE=URL:"ldap://host.com:6666/o=3DABC%20Industries,
  2711.      c=3DUS??(cn=3DBJim%20Dolittle)"
  2712.  
  2713.    The following is an example of this property referencing a MIME body
  2714.    part containing the contact information, such as a vCard embedded in
  2715.    a [MIME-DIR] content-type:
  2716.  
  2717.      CONTACT;VALUE=URL:<part3.msg970930T083000SILVER@host.com>
  2718.  
  2719.  
  2720.  
  2721. Dawson/Stenerson                   43                  Expires MAY 1998
  2722.  
  2723.  
  2724. Internet Draft       C&S Core Object Specification     October 22, 1997
  2725.  
  2726.  
  2727.    The default data type for this property is TEXT. The data type MAY be
  2728.    reset to URL in order to specify a reference to the contact
  2729.    information.
  2730.  
  2731. 4.6.7   Date/Time Completed
  2732.  
  2733.  
  2734.    This property is identified by the property name COMPLETED. This
  2735.    property defines the date and time that a to-do was actually
  2736.    completed. The property MAY be specified once in a "VTODO" component.
  2737.    The date and time is an UTC value.
  2738.  
  2739.    The property is defined by the following notation:
  2740.  
  2741.      completed  = "COMPLETED" ":" [ws] date-time CRLF
  2742.  
  2743.    The following is an example of this property:
  2744.  
  2745.      COMPLETED:19960401T235959Z
  2746.  
  2747.    The data type for this property is DATE-TIME.
  2748.  
  2749. 4.6.8   Date/Time Created
  2750.  
  2751.  
  2752.    This property is identified by the property name CREATED. This
  2753.    property specifies the date and time that the calendar information
  2754.    was created by the Organizer. The property MAY be specified in any of
  2755.    the calendar components. The property MAY only be specified once. The
  2756.    date and time is an UTC value.
  2757.  
  2758.    The property is defined by the following notation:
  2759.  
  2760.      created    = "CREATED" ":" [ws] date-time CRLF
  2761.  
  2762.    The following is an example of this property:
  2763.  
  2764.      CREATED:19960329T133000Z
  2765.  
  2766.    The data type for this property is DATE-TIME.
  2767.  
  2768. 4.6.9   Date/Time Due
  2769.  
  2770.  
  2771.    This property is identified by the property name DUE. This property
  2772.    defines the date and time that a to-do is expected to be completed.
  2773.    The time can either be in local time, local time with UTC offset or
  2774.    UTC time. The property MAY only be specified in a "VTODO" calendar
  2775.    component and only once. The value MUST be a date/time after the
  2776.    DTSTART value, if specified.
  2777.  
  2778.    The property is defined by the following notation:
  2779.  
  2780.      due        = "DUE" ":" [ws] date-time CRLF
  2781.  
  2782.    The following is an example of this property:
  2783.  
  2784.  
  2785.  
  2786. Dawson/Stenerson                   44                  Expires MAY 1998
  2787.  
  2788.  
  2789. Internet Draft       C&S Core Object Specification     October 22, 1997
  2790.  
  2791.  
  2792.      DUE:19960401T235959Z
  2793.  
  2794.    The type for this property is DATE-TIME.
  2795.  
  2796. 4.6.10  Date/Time End
  2797.  
  2798.  
  2799.    This property is identified by the property name DTEND. This property
  2800.    MAY be specified within the "VEVENT", "VFREEBUSY", and "VTIMEZONE"
  2801.    calendar components.
  2802.  
  2803.    Within the "VEVENT" calendar component, this property defines the end
  2804.    date and time for the event. The property is REQUIRED in "VEVENT"
  2805.    calendar components. The time can either be in local time, local time
  2806.    with UTC offset or UTC time. The local time is only to be used to
  2807.    specify date and time values that do not need to be fixed. A
  2808.    recipient MUST assume their own time zone for data and time values
  2809.    that do not include time zone information. The value MUST be later in
  2810.    time than the value of the "DTSTART" property.
  2811.  
  2812.    Within the "VFREEBUSY" calendar component, this property defines the
  2813.    end date and time for the free or busy time information. The time
  2814.    MUST be specified in local time with UTC offset or UTC time. The
  2815.    value MUST be later in time than the value of the "DTSTART" property.
  2816.  
  2817.    The property is defined by the following notation:
  2818.  
  2819.      dtend      = "DTEND" ":" [ws] date-time CRLF
  2820.  
  2821.    The following is an example of this property:
  2822.  
  2823.      DTEND:19960401T235959Z
  2824.  
  2825.    The data type for this property is DATE-TIME.
  2826.  
  2827. 4.6.11  Date/Time Stamp
  2828.  
  2829.  
  2830.    This property is identified by the property name DTSTAMP. This
  2831.    property specifies an UTC date/time stamp. The property indicates the
  2832.    date/time that the iCalendar object instance was created. This
  2833.    property MUST be included in "VEVENT", "VTODO", "VJOURNAL" and
  2834.    "VFREEBUSY" calendar components to permit the recipient to know when
  2835.    the iCalendar object was created.
  2836.  
  2837.    This property is also useful to protocols such as [IMIP] that have
  2838.    inherent latency issues with the delivery of content. This property
  2839.    will assist in the proper sequencing of messages containing iCalendar
  2840.    objects.
  2841.  
  2842.    This property is different than the "CREATED" and "LAST-MODIFIED"
  2843.    properties. These two properties are used to specify when the
  2844.    calendar service information was created and last modified. This is
  2845.    different than when the iCalendar object representation of the
  2846.    calendar service information was created or last modified.
  2847.  
  2848.  
  2849.  
  2850. Dawson/Stenerson                   45                  Expires MAY 1998
  2851.  
  2852.  
  2853. Internet Draft       C&S Core Object Specification     October 22, 1997
  2854.  
  2855.  
  2856.    The property is defined by the following notation:
  2857.  
  2858.      dtstamp    = "DTSTAMP" ":" [ws] date-time CRLF
  2859.  
  2860.    The value type for this property is DATE-TIME. The value MUST be a
  2861.    UTC date/time value.
  2862.  
  2863. 4.6.12  Date/Time Start
  2864.  
  2865.  
  2866.    This property is identified by the property name DTSTART. This
  2867.    property MAY be specified within the "VEVENT", "VFREEBUSY", and
  2868.    "VTIMEZONE" calendar components.
  2869.  
  2870.    Within the "VEVENT" calendar component, this property defines the
  2871.    start date and time for the event. The property is REQUIRED in
  2872.    "VEVENT" calendar components. The time can either be in local time,
  2873.    local time with UTC offset or UTC time. The local time is only to be
  2874.    used to specify date and time values that do not need to be fixed. A
  2875.    recipient MUST assume their own time zone for data and time values
  2876.    that do not include time zone information. Events MAY have a start
  2877.    date/time but no end date/time. In that case, the event does not take
  2878.    up any time.
  2879.  
  2880.    Within the "VFREEBUSY" calendar component, this property defines the
  2881.    start date and time for the free or busy time information. The time
  2882.    MUST be specified in local time with UTC offset or UTC time.
  2883.  
  2884.    Within the "VTIMEZONE" calendar component, this property defines the
  2885.    effective start date and time for a time zone specification. This
  2886.    property is REQUIRED within "VTIMEZONE" calendar components. The time
  2887.    MUST be specified as a UTC time.
  2888.  
  2889.    The property is defined by the following notation:
  2890.  
  2891.      dtstart    = "DTSTART" [";" [ws] paramlist] ":" [ws] (date-time /
  2892.                   date) CRLF
  2893.  
  2894.    The following is an example of this property:
  2895.  
  2896.      DTSTART:19960401T235959-0600
  2897.  
  2898.    The default data type for this property is DATE-TIME. The data type
  2899.    MAY be overridden to be DATE.
  2900.  
  2901. 4.6.13  Daylight
  2902.  
  2903.  
  2904.    This property is identified by the property name DAYLIGHT. This
  2905.    property MAY only be specified in a "VTIMEZONE" calendar component.
  2906.    This property specifies whether Daylight Saving Time (i.e., value is
  2907.    TRUE) or Standard Time (i.e., value is FALSE) is in effect for the
  2908.    time zone. The default value is FALSE or Standard Time.
  2909.  
  2910.    The property is defined by the following notation:
  2911.  
  2912.  
  2913.  
  2914. Dawson/Stenerson                   46                  Expires MAY 1998
  2915.  
  2916.  
  2917. Internet Draft       C&S Core Object Specification     October 22, 1997
  2918.  
  2919.  
  2920.      daylight   = "DAYLIGHT" ":" [ws] boolean CRLF
  2921.      ;Default value is FALSE
  2922.  
  2923.    The following is an example of this property:
  2924.  
  2925.      DAYLIGHT:TRUE              ;Specifies DST in effect in time zone
  2926.  
  2927.    The data type for this property is BOOLEAN.
  2928.  
  2929. 4.6.14  Description
  2930.  
  2931.  
  2932.    This property is identified by the property name DESCRIPTION. This
  2933.    property provides a more complete description of the calendar
  2934.    component, than that provided by the "SUMMARY" property. The property
  2935.    MAY be specified in the "VEVENT", "VTODO" and "VJOURNAL" calendar
  2936.    components. The property MAY be specified multiple times only within
  2937.    a "VJOURNAL" calendar component.
  2938.  
  2939.    The property is defined by the following notation:
  2940.  
  2941.      Description        = "DESCRIPTION" [";" [ws] paramlist] ":" [ws]
  2942.                           text CRLF
  2943.  
  2944.    The following is an example of the property with formatted line
  2945.    breaks in the property value:
  2946.  
  2947.      DESCRIPTION:Meeting to provide technical review for "Phoenix"
  2948.        design.\n Happy Face Conference Room. Phoenix design team
  2949.        MUST attend this meeting.\n RSVP to team leader.
  2950.  
  2951.    The following is an example of the property with folding of long
  2952.    lines:
  2953.  
  2954.      DESCRIPTION:Last draft of the new novel is to be completed
  2955.        for the editorÆs proof today.
  2956.  
  2957.    The data type for this property is TEXT.
  2958.  
  2959. 4.6.15  Duration
  2960.  
  2961.  
  2962.    This property is identified by the property name DURATION. The
  2963.    property specifies a duration of time. The property MAY be specified
  2964.    in a "VEVENT" calendar component in order to specify a duration of
  2965.    the event, instead of an explicit end date/time. The property MAY be
  2966.    specified in a "VTODO" calendar component in order to specify a
  2967.    duration for the to-do. The property MAY be specified in a
  2968.    "VFREEBUSY" calendar component in order to specify the amount of free
  2969.    time being requested. The property MAY be specified in an "VALARM"
  2970.    calendar component in order to specify the period between repeating
  2971.    alarms.
  2972.  
  2973.    The property is defined by the following notation:
  2974.  
  2975.  
  2976.  
  2977.  
  2978. Dawson/Stenerson                   47                  Expires MAY 1998
  2979.  
  2980.  
  2981. Internet Draft       C&S Core Object Specification     October 22, 1997
  2982.  
  2983.  
  2984.      duration   = "DURATION" ":" [ws] duration CRLF
  2985.  
  2986.    The following is an example of this property that specifies an
  2987.    interval of time of 1 hour and zero minutes and zero seconds:
  2988.  
  2989.      DURATION:PT1H0M0S
  2990.  
  2991.    The following is an example of this property that specifies an
  2992.    interval of time of 15 minutes.
  2993.  
  2994.      DURATION:PT15M
  2995.  
  2996.    The data type for this property is DURATION.
  2997.  
  2998. 4.6.16  Exception Date/Times
  2999.  
  3000.  
  3001.    This property is identified by the property name EXDATE. This
  3002.    property defines the list of date/time exceptions for a recurring
  3003.    "VEVENT", "VTODO" or "VJOURNAL" calendar component. The times can
  3004.    either be in local time, local time with UTC offset or UTC time.
  3005.  
  3006.    The exception dates, if specified, is used in computing the
  3007.    recurrence set. The recurrence set is the complete set of recurrence
  3008.    instances for a calendar component. The recurrence set is generated
  3009.    by considering the initial "DTSTART" property along with the "RRULE",
  3010.    "RDATE", "EXDATE" and "EXRULE" properties contained within the
  3011.    iCalendar object. The "DTSTART" property defines the first instance
  3012.    in the recurrence set. Multiple instances of the "RRULE" and "EXRULE"
  3013.    properties MAY also be specified to define more sophisticated
  3014.    recurrence sets. The final recurrence set is generated by gathering
  3015.    all of the start date-times generated by any of the specified "RRULE"
  3016.    and "RDATE" properties, and excluding any start date and times which
  3017.    fall within the union of start date and times generated by any
  3018.    specified "EXRULE" and "EXDATE" properties. This implies that start
  3019.    date and times within exclusion related properties (i.e., "EXDATE"
  3020.    and "EXRULE") take precedence over those specified by inclusion
  3021.    properties (i.e., "RDATE" and "RRULE"). Where duplicate instances are
  3022.    generated by the "RRULE" and "RDATE" properties, only one recurrence
  3023.    is considered. Duplicate instances are ignored.
  3024.  
  3025.    The property is defined by the following notation:
  3026.  
  3027.      exdate     = "EXDATE" [";" [ws] paramlist] ":" [ws] [date-time /
  3028.                   date] *("," [ws] date-time/date) CRLF
  3029.      ;Values MUST match the specified value type.
  3030.  
  3031.    The following is an example of this property:
  3032.  
  3033.      EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z
  3034.  
  3035.    The data type for this property is DATE-TIME. The data type MAY be
  3036.    reset to DATE.
  3037.  
  3038.  
  3039.  
  3040.  
  3041. Dawson/Stenerson                   48                  Expires MAY 1998
  3042.  
  3043.  
  3044. Internet Draft       C&S Core Object Specification     October 22, 1997
  3045.  
  3046.  
  3047. 4.6.17  Exception Rule
  3048.  
  3049.  
  3050.    This property is identified by the property name EXRULE. This
  3051.    property defines a rule or repeating pattern for an exception to a
  3052.    recurrence set. This property MAY only be specified in the "VEVENT",
  3053.    "VTODO" or "VJOURNAL" calendar components.
  3054.  
  3055.    The exception rule, if specified, is used in computing the recurrence
  3056.    set. The recurrence set is the complete set of recurrence instances
  3057.    for a calendar component. The recurrence set is generated by
  3058.    considering the initial "DTSTART" property along with the "RRULE",
  3059.    "RDATE", "EXDATE" and "EXRULE" properties contained within the
  3060.    iCalendar object. The "DTSTART" defines the first instance in the
  3061.    recurrence set. Multiple instances of the "RRULE" and "EXRULE"
  3062.    properties MAY also be specified to define more sophisticated
  3063.    recurrence sets. The final recurrence set is generated by gathering
  3064.    all of the start date-times generated by any of the specified "RRULE"
  3065.    and "RDATE" properties, and excluding any start date and times which
  3066.    fall within the union of start date and times generated by any
  3067.    specified "EXRULE" and "EXDATE" properties. This implies that start
  3068.    date and times within exclusion related properties (i.e., "EXDATE"
  3069.    and "EXRULE") take precedence over those specified by inclusion
  3070.    properties (i.e., "RDATE" and "RRULE"). Where duplicate instances are
  3071.    generated by the "RRULE" and "RDATE" properties, only one recurrence
  3072.    is considered. Duplicate instances are ignored.
  3073.  
  3074.    The property is defined by the following notation:
  3075.  
  3076.      exrule     = "EXRULE" [";" [ws] paramlist] ":" [ws] recur CRLF
  3077.  
  3078.    The following are examples of this property. Except every other week,
  3079.    on Tuesday and Thursday for 4 occurrences:
  3080.  
  3081.      EXRULE:FREQ=WEEKLY;COUNT=4;INTERVAL=2;BYDAY=TU,TH
  3082.  
  3083.    Except daily for 10 occurrences:
  3084.  
  3085.      EXRULE:FREQ=DAILY;COUNT=10
  3086.  
  3087.    Except yearly in June and July for 8 occurrences:
  3088.  
  3089.      EXRULE:FREQ=YEARLY;COUNT=8;BYMONTH=6,7
  3090.  
  3091.    The data type for this property is RECUR.
  3092.  
  3093. 4.6.18  Free/Busy Time
  3094.  
  3095.  
  3096.    This property is identified by the property name FREEBUSY. The
  3097.    property defines one or more free or busy time intervals. These time
  3098.    periods MAY be specified as either a start and end date-time or a
  3099.    start date-time and duration.
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105. Dawson/Stenerson                   49                  Expires MAY 1998
  3106.  
  3107.  
  3108. Internet Draft       C&S Core Object Specification     October 22, 1997
  3109.  
  3110.  
  3111.    The date and time is either local time with UTC offset or a UTC
  3112.    value.
  3113.  
  3114.    The "FREEBUSY" property MAY include the "TYPE" property parameter to
  3115.    specify whether the information defines a free or busy time interval.
  3116.    The default "TYPE" property parameter value is BUSY. The property MAY
  3117.    also include the "STATUS" property parameter to provide added
  3118.    information about the busy time. For example, if the busy time is
  3119.    associated with a time interval that would be unavailable for
  3120.    scheduling - - in any case - - or busy time that has been tentatively
  3121.    scheduled. The default "STATUS" property parameter value is BUSY. The
  3122.    property is defined by the following notation:
  3123.  
  3124.      freebusy   = "FREEBUSY" [";" [ws] paramlist] [";" [ws] fbparmlist]
  3125.                   ":" [ws] fbvalue CRLF
  3126.  
  3127.      fbparmlist = fbparam *(";" [ws] fbparam)
  3128.  
  3129.      fbparam    = fbtype / fbstatus
  3130.  
  3131.      fbtype     = "TYPE" "=" ("FREE" or "BUSY")
  3132.      ;Default is BUSY
  3133.  
  3134.      fbstatus   = "STATUS" "="
  3135.                   "BUSY"        ;Represents busy time interval.
  3136.                 / "UNAVAILABLE" ;Represents busy, but unavailable
  3137.                                 ;interval for cheduling; such as
  3138.                                 ;out-of-office or non-working hours.
  3139.                 / "TENTATIVE"   ;Represents busy, but tentatively
  3140.                                 ;scheduled interval.
  3141.      ;Default is BUSY
  3142.  
  3143.      fbvalue    = period *["," [ws] period]
  3144.      ;Value MUST match default or explicit data type
  3145.  
  3146.    The following are some examples of this property:
  3147.  
  3148.      FREEBUSY;STATUS=UNAVAILABLE:19970308T160000Z/PT8H30M
  3149.  
  3150.      FREEBUSY;TYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H
  3151.  
  3152.    "FREEBUSY" properties within the "VFREEBUSY" calendar component
  3153.    should be sorted in ascending order, based on start time and then end
  3154.    time, with the earliest periods first.
  3155.  
  3156.    The "FREEBUSY" property MAY specify more than one value, separated by
  3157.    the COMMA character (ASCII decimal 44). In such cases, the "FREEBUSY"
  3158.    property values should all be of the same "STATUS" property parameter
  3159.    type (e.g., all values of a particular "STATUS" listed together in a
  3160.    single property).
  3161.  
  3162.    The data type for this property is PERIOD.
  3163.  
  3164.  
  3165.  
  3166.  
  3167. Dawson/Stenerson                   50                  Expires MAY 1998
  3168.  
  3169.  
  3170. Internet Draft       C&S Core Object Specification     October 22, 1997
  3171.  
  3172.  
  3173. 4.6.19  Geographic Position
  3174.  
  3175.  
  3176.    This property is identified by the property name GEO. This property
  3177.    specifies information related to the global position for a "VEVENT"
  3178.    or "VTODO" calendar component. The property value specifies latitude
  3179.    and longitude, in that order (i.e., "LAT LON" ordering). The
  3180.    longitude represents the location east and west of the prime meridian
  3181.    as a positive or negative real number, respectively. The latitude
  3182.    represents the location north and south of the equator as a positive
  3183.    or negative real number, respectively. The longitude and latitude
  3184.    values MUST be specified as decimal degrees and should be specified
  3185.    to six decimal places. This will allow for granularity within a meter
  3186.    of the geographical position. The simple formula for converting
  3187.    degrees-minutes-seconds into decimal degrees is:
  3188.  
  3189.      decimal = degrees + minutes/60 + seconds/3600.
  3190.  
  3191.    The property is defined by the following notation:
  3192.  
  3193.      geo        = "GEO" ":" [ws] geovalue CRLF
  3194.  
  3195.      geovalue   = float ";" [ws] float
  3196.      ;Latitude and Longitude components
  3197.  
  3198.    The following is an example of this property:
  3199.  
  3200.      GEO:37.386013;-122.082932
  3201.  
  3202.    The default data type for this property is FLOAT.
  3203.  
  3204. 4.6.20  Last Modified
  3205.  
  3206.  
  3207.    This property is identified by the property name LAST-MODIFIED. The
  3208.    property specifies the date and time that the calendar information
  3209.    was last revised. This property MAY be specified in the "VEVENT",
  3210.    "VTODO", "VJOURNAL" or "VFREEBUSY" calendar components. The data and
  3211.    time MUST be a UTC value.
  3212.  
  3213.    The property is defined by the following notation:
  3214.  
  3215.      last-mod   = "LAST-MODIFIED" ":" [ws] date-time CRLF
  3216.  
  3217.    The following is are examples of this property:
  3218.  
  3219.      LAST-MODIFIED:19960817T133000Z
  3220.  
  3221.    The data type for this property is DATE-TIME.
  3222.  
  3223. 4.6.21  Location
  3224.  
  3225.  
  3226.    This property is identified by the property name LOCATION. The
  3227.    property defines the intended location for the "VEVENT" or "VTODO"
  3228.  
  3229.  
  3230.  
  3231.  
  3232. Dawson/Stenerson                   51                  Expires MAY 1998
  3233.  
  3234.  
  3235. Internet Draft       C&S Core Object Specification     October 22, 1997
  3236.  
  3237.  
  3238.    calendar component. The property MAY only be specified within a
  3239.    "VEVENT" or "VTODO" calendar component.
  3240.  
  3241.    The property is defined by the following notation:
  3242.  
  3243.      location   = "LOCATION [";" [ws] paramlist] ":" [ws] locavalue
  3244.                   CRLF
  3245.  
  3246.      locavalue  = text / url    ;The value MUST be the same type as the
  3247.                                 ;default or explicit data type.
  3248.  
  3249.    The following are some examples of this property:
  3250.  
  3251.      LOCATION:Conference Room - F123, Bldg. 002
  3252.  
  3253.      LOCATION;VALUE=URL:http://www.xyzcorp.com/~jsmith.vcf
  3254.  
  3255.    The default data type for this property is TEXT. The data type MAY be
  3256.    reset to URL. In the case of the data type being URL, the property
  3257.    value MAY reference a vCard object. This provides a useful mechanism
  3258.    to specify a location in terms of its electronic business card.
  3259.  
  3260. 4.6.22  Percent Complete
  3261.  
  3262.  
  3263.    This property is identified by the property name PERCENT-COMPLETE.
  3264.    This property is used by an assignee or delegatee of a to-do to
  3265.    convey the percent completion of a to-do to the Organizer. The
  3266.    property MAY only be specified once and within a "VTODO" calendar
  3267.    component. The property value is an integer between zero and one
  3268.    hundred. A value of "0" indicates the to-do has not yet been started.
  3269.    A value of "100" indicates that the to-do has been completed. Integer
  3270.    values in between indicate the percent partially complete.
  3271.  
  3272.    When a to-do is assigned to multiple individuals, the property value
  3273.    indicates the percent complete for that portion of the to-do assigned
  3274.    to the assignee or delegatee. For example, if a to-do is assigned to
  3275.    both individuals "A" and "B". A reply from "A" with a percent
  3276.    complete of "70" indicates that "A" has completed 70% of the to-do
  3277.    assigned to them. A reply from "B" with a percent complete of "50"
  3278.    indicates "B" has completed 50% of the to-do assigned to them.
  3279.  
  3280.    The property is defined by the following notation:
  3281.  
  3282.      percent = "PERCENT-COMPLETE" ":" [ws] integer CRLF
  3283.  
  3284.    The following is an example of this property to show 39% completion:
  3285.  
  3286.      PERCENT-COMPLETE:39
  3287.  
  3288.    The data type for this property is INTEGER.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295. Dawson/Stenerson                   52                  Expires MAY 1998
  3296.  
  3297.  
  3298. Internet Draft       C&S Core Object Specification     October 22, 1997
  3299.  
  3300.  
  3301. 4.6.23  Priority
  3302.  
  3303.  
  3304.    This property is identified by the property name PRIORITY. The
  3305.    property defines the priority for event or to-do. The property MAY
  3306.    only be specified within a "VEVENT" or "VTODO" calendar component.
  3307.    The value is an integer. A value of zero (ASCII decimal 48) specifies
  3308.    an undefined priority. A value of one (ASCII decimal 49) is the
  3309.    highest priority. A value of two (ASCII decimal 50) is the second
  3310.    highest priority. Subsequent numbers specify a decreasing ordinal
  3311.    priority.
  3312.  
  3313.    The property is specified by the following notation:
  3314.  
  3315.      priority   = "PRIORITY" ":" [ws] integer CRLF
  3316.      ;Default is zero
  3317.  
  3318.    The following is an example of this property:
  3319.  
  3320.      PRIORITY:2
  3321.  
  3322.    The data type for this property is INTEGER.
  3323.  
  3324. 4.6.24  Recurrence Date/Times
  3325.  
  3326.  
  3327.    This property is identified by the property name RDATE. This property
  3328.    defines the list of date/times for a recurrence set. The property MAY
  3329.    only appear within the "VEVENT", "VTODO", "VJOURNAL" or "VTIMEZONE"
  3330.    calendar components. This property MAY appear along with the "RRULE"
  3331.    property to define an aggregate set of repeating occurrences. When
  3332.    they both appear in an iCalendar object, the recurring events are
  3333.    defined by the union of occurrences defined by both the "RDATE" and
  3334.    "RRULE". The times can either be in local time, local time with UTC
  3335.    offset or UTC based time. If local time is used, the "VTIMEZONE"
  3336.    calendar component MUST be included in the iCalendar object,
  3337.    otherwise the local time value will be interpreted relative to the
  3338.    time zone of the recipient. The period values for "RDATE" property
  3339.    are specified using a specific start and a specific end basic format
  3340.    (period-explicit) or the period with a specific start and a specific
  3341.    duration basic format (period-start).
  3342.  
  3343.    The recurrence dates, if specified, is used in computing the
  3344.    recurrence set. The recurrence set is the complete set of recurrence
  3345.    instances for a calendar component. The recurrence set is generated
  3346.    by considering the initial "DTSTART" property along with the "RRULE",
  3347.    "RDATE", "EXDATE" and "EXRULE" properties contained within the
  3348.    iCalendar object. The "DTSTART" property defines the first instance
  3349.    in the recurrence set. Multiple instances of the "RRULE" and "EXRULE"
  3350.    properties MAY also be specified to define more sophisticated
  3351.    recurrence sets. The final recurrence set is generated by gathering
  3352.    all of the start date-times generated by any of the specified "RRULE"
  3353.    and "RDATE" properties, and excluding any start date and times which
  3354.    fall within the union of start date and times generated by any
  3355.    specified "EXRULE" and "EXDATE" properties. This implies that start
  3356.  
  3357.  
  3358.  
  3359. Dawson/Stenerson                   53                  Expires MAY 1998
  3360.  
  3361.  
  3362. Internet Draft       C&S Core Object Specification     October 22, 1997
  3363.  
  3364.  
  3365.    date and times within exclusion related properties (i.e., "EXDATE"
  3366.    and "EXRULE") take precedence over those specified by inclusion
  3367.    properties (i.e., "RDATE" and "RRULE"). Where duplicate instances are
  3368.    generated by the "RRULE" and "RDATE" properties, only one recurrence
  3369.    is considered. Duplicate instances are ignored.
  3370.  
  3371.    The property is defined by the following notation:
  3372.  
  3373.      rdate      = "RDATE" [";" [ws] paramlist] ":" [ws] rdvalue
  3374.                   *("," [ws] rdvalue) CRLF
  3375.  
  3376.      rdvalue    = date-time / date / period
  3377.      ;Value MUST match the specified data type
  3378.  
  3379.    The following are examples of this property:
  3380.  
  3381.      RDATE:19970714T083000-0400
  3382.  
  3383.      RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z,
  3384.       19960404T010000Z/PT3H
  3385.  
  3386.      RDATE;VALUE=DATE:19970101,19970120,19970217,19970421
  3387.       19970526,19970704,19970901,19971014,19971128,19971129,19971225
  3388.  
  3389.    The default data type for this property is DATE-TIME. The data type
  3390.    MAY be reset to DATE or PERIOD.
  3391.  
  3392. 4.6.25  Recurrence ID
  3393.  
  3394.  
  3395.    This property is identified by the property name RECURRENCE-ID. This
  3396.    property identifies a specific instance of a recurring "VEVENT",
  3397.    "VTODO" or "VJOURNAL" calendar component. The property value is the
  3398.    effective value of the "DTSTART" property of the recurrence instance.
  3399.    The time of day component for the value MUST be either an UTC or a
  3400.    local time with UTC offset time format, unless the original calendar
  3401.    object was expressed as a æ                             æfloatingÆ                                       Æ calendar object; that is in
  3402.    local time with no time zone calendar component specified. If the
  3403.    value of the "DTSTART" property is a DATE type value, then the value
  3404.    MUST be the calendar date for the recurrence instance.
  3405.  
  3406.    The date/time value is set to the time when the original recurrence
  3407.    instance would occur - - meaning that if the intent is to change a
  3408.    Friday meeting to Thursday, the date/time is still set to the
  3409.    original Friday meeting.
  3410.  
  3411.    The "RECURRENCE-ID" property is used in conjunction with the "UID"
  3412.    property to identify a particular instance of a recurring event, to-
  3413.    do or journal.
  3414.  
  3415.    The property is defined by the following notation:
  3416.  
  3417.      recurid    = "RECURRENCE-ID" [";" [ws] rangeparm] [";" [ws]
  3418.                   paramlist] ":" [ws] [date-time / date]
  3419.  
  3420.  
  3421.  
  3422. Dawson/Stenerson                   54                  Expires MAY 1998
  3423.  
  3424.  
  3425. Internet Draft       C&S Core Object Specification     October 22, 1997
  3426.  
  3427.  
  3428.      rangeparm  = "RANGE" "=" ("THISANDPRIOR" / "THISANDFUTURE")
  3429.  
  3430.    The default value for the range parameter is the single recurrence
  3431.    instance only.
  3432.  
  3433.    The following are examples of this property:
  3434.  
  3435.      RECURRENCE-ID:19960401T235959Z
  3436.  
  3437.      RECURRENCE-ID;RANGE=THISANDFUTURE:19960120T120000Z
  3438.  
  3439.    This default data type for this property is DATE-TIME. The data type
  3440.    MAY be reset to DATE.
  3441.  
  3442. 4.6.26  Recurrence Rule
  3443.  
  3444.  
  3445.    This property is identified by the property name RRULE. This property
  3446.    defines a rule or repeating pattern for a recurring events, to-dos,
  3447.    or time zone definitions. The property MAY be specified in the
  3448.    "VEVENT", "VTODO", "VJOURNAL" or "VTIMEZONE" calendar components. The
  3449.    data type for this property is RECUR.
  3450.  
  3451.    The recurring rule, if specified, is used in computing the recurrence
  3452.    set. The recurrence set is the complete set of recurrence instances
  3453.    for a calendar component. The recurrence set is generated by
  3454.    considering the initial "DTSTART" property along with the "RRULE",
  3455.    "RDATE", "EXDATE" and "EXRULE" properties contained within the
  3456.    iCalendar object. The "DTSTART" property defines the first instance
  3457.    in the recurrence set. Multiple instances of the "RRULE" and "EXRULE"
  3458.    properties MAY also be specified to define more sophisticated
  3459.    recurrence sets. The final recurrence set is generated by gathering
  3460.    all of the start date-times generated by any of the specified "RRULE"
  3461.    and "RDATE" properties, and excluding any start date and times which
  3462.    fall within the union of start date and times generated by any
  3463.    specified "EXRULE" and "EXDATE" properties. This implies that start
  3464.    date and times within exclusion related properties (i.e., "EXDATE"
  3465.    and "EXRULE") take precedence over those specified by inclusion
  3466.    properties (i.e., "RDATE" and "RRULE"). Where duplicate instances are
  3467.    generated by the "RRULE" and "RDATE" properties, only one recurrence
  3468.    is considered. Duplicate instances are ignored.
  3469.  
  3470.    The "DTSTART" and "DTEND" property pair or "DTSTART" and "DURATION"
  3471.    property pair, specified within the iCalendar object defines the
  3472.    first instance of the recurrence. When used with a recurrence rule,
  3473.    the "DTSTART" and "DTEND" properties MUST be specified in local time
  3474.    and the appropriate set of "VTIMEZONE" calendar components MUST be
  3475.    included. For detail on the usage of the "VTIMEZONE" calendar
  3476.    component, see the "VTIMEZONE" calendar component definition.
  3477.  
  3478.    Any duration associated with the iCalendar object applies to all
  3479.    members of the generated recurrence. Any modified duration for
  3480.    specific recurrences would have to be explicitly specified using the
  3481.    "RDATE" property.
  3482.  
  3483.  
  3484.  
  3485. Dawson/Stenerson                   55                  Expires MAY 1998
  3486.  
  3487.  
  3488. Internet Draft       C&S Core Object Specification     October 22, 1997
  3489.  
  3490.  
  3491.    This property is defined by the following notation:
  3492.  
  3493.      rrule      = "RRULE" [";" [ws] paramlist] ":" [ws] recur CRLF
  3494.  
  3495.    Examples of this property include the following. All examples assume
  3496.    the Eastern United States time zone.
  3497.  
  3498.    Daily for 10 occurrences:
  3499.  
  3500.      DTSTART:19970902T090000-0400
  3501.      RRULE:FREQ=DAILY;COUNT=10
  3502.  
  3503.      ==> (1997 9AM EDT)September 2-11
  3504.  
  3505.    Daily until 12/24/97:
  3506.  
  3507.      DTSTART:19970902T090000-0400
  3508.      RRULE:FREQ=DAILY;UNTIL=19971224T000000Z
  3509.  
  3510.      ==> (1997 9AM EDT)September 2-30;October 1-25
  3511.          (1997 9AM EST)October 26-31;November 1-30;December 1-24
  3512.  
  3513.    Every other day - forever:
  3514.  
  3515.      DTSTART:19970902T090000-0400
  3516.      RRULE:FREQ=DAILY;INTERVAL=2
  3517.      ==> (1997 9AM EDT)September2,4,6,8...24,26,28,30;
  3518.           October 2,4,6...20,22,24
  3519.          (1997 9AM EST)October 26,28,30;November 1,3,5,7...25,27,29;
  3520.           Dec 1,3,...
  3521.  
  3522.    Every 10 days, 5 occurrences:
  3523.  
  3524.      DTSTART:19970902T090000-0400
  3525.      RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5
  3526.  
  3527.      ==> (1997 9AM EDT)September 2,12,22;October 2,12
  3528.  
  3529.    Everyday in January, for 3 years:
  3530.  
  3531.      DTSTART:19980101T090000-0400
  3532.      RRULE:FREQ=YEARLY;UNTIL:20000131T090000-0400;BYMONTH=1;BYDAY=SU,
  3533.       MO,TU,WE,TH,FR,SA
  3534.      or
  3535.      RRULE:FREQ=DAILY;UNTIL:20000131T090000-0400;BYMONTH=1
  3536.  
  3537.      ==> (1998 9AM EDT)January 1-31
  3538.          (1999 9AM EDT)January 1-31
  3539.          (2000 9AM EDT)January 1-31
  3540.  
  3541.    Weekly for 10 occurrences
  3542.  
  3543.      DTSTART:19970902T090000-0400
  3544.      RRULE:FREQ=WEEKLY;COUNT=10
  3545.  
  3546.  
  3547. Dawson/Stenerson                   56                  Expires MAY 1998
  3548.  
  3549.  
  3550. Internet Draft       C&S Core Object Specification     October 22, 1997
  3551.  
  3552.  
  3553.  
  3554.      ==> (1997 9AM EDT)September 2,9,16,23,30;October 7,14,21
  3555.          (1997 9AM EST)October 28;November 4
  3556.  
  3557.    Weekly until 12/24/94
  3558.  
  3559.      DTSTART:19970902T090000-0400
  3560.      RRULE:FREQ=WEEKLY;UNTIL=19971224T000000Z
  3561.  
  3562.      ==> (1997 9AM EDT)September 2,9,16,23,30;October 7,14,21
  3563.          (1997 9AM EST)October 28;November 4,11,18,25;
  3564.                        December 2,9,16,23,24
  3565.  
  3566.    Every other week - forever:
  3567.  
  3568.      DTSTART:19970902T090000-0400
  3569.      RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=SU
  3570.  
  3571.      ==> (1997 9AM EDT)September 2,16,30;October 14
  3572.          (1997 9AM EST)October 28;November 11,25;December 9,23
  3573.          (1998 9AM EST)January 6,20;February
  3574.      ...
  3575.  
  3576.  
  3577.    Weekly on Tuesday and Thursday for 5 weeks:
  3578.  
  3579.      DTSTART:19970902T090000-0400
  3580.      RRULE:FREQ=WEEKLY;UNTIL=19971007T000000-0400;WKST=SU;BYDAY=TU,TH
  3581.      or
  3582.      RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH
  3583.  
  3584.      ==> (1997 9AM EDT)September 2,4,9,11,16,18,23,25,30;October 2
  3585.  
  3586.    Every other week on Monday, Wednesday and Friday until 12/24/97, but
  3587.    starting on Tuesday, 9/2/97:
  3588.  
  3589.      DTSTART:19970902T090000-0400
  3590.      RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000-0400;WKST=SU;
  3591.       BYDAY=MO,WE,FR
  3592.      ==> (1997 9AM EDT)September 2,3,5,15,17,19,29;October 1,3,13,15,17
  3593.          (1997 9AM EST)October 27,29,31;November 10,12,14,24,26,28;
  3594.                        December 8,10,12,22,24
  3595.  
  3596.    Every other week on Tuesday and Thursday, for 8 occurrences:
  3597.  
  3598.      DTSTART:19970902T090000-0400
  3599.      RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH
  3600.  
  3601.      ==> (1997 9AM EDT)September 2,4,16,18,30;October 2,14,16
  3602.  
  3603.    Monthly on the 1st Friday for ten occurrences:
  3604.  
  3605.      DTSTART:19970905T090000-0400
  3606.      RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR
  3607.  
  3608.  
  3609. Dawson/Stenerson                   57                  Expires MAY 1998
  3610.  
  3611.  
  3612. Internet Draft       C&S Core Object Specification     October 22, 1997
  3613.  
  3614.  
  3615.  
  3616.      ==> (1997 9AM EDT)September 5;October 3
  3617.          (1997 9AM EST)November 7;Dec 5
  3618.          (1998 9AM EST)January 2;February 6;March 6;April 3
  3619.          (1998 9AM EDT)MAY 1;June 5
  3620.  
  3621.    Monthly on the 1st Friday until 12/24/94:
  3622.  
  3623.      DTSTART:19970905T090000-0400
  3624.      RRULE:FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR
  3625.  
  3626.      ==> (1997 9AM EDT)September 5;October 3
  3627.          (1997 9AM EST)November 7;December 5
  3628.  
  3629.    Every other month on the 1st and last Sunday of the month for 10
  3630.    occurrences:
  3631.  
  3632.      DTSTART:19970907T090000-0400
  3633.      RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU
  3634.  
  3635.      ==> (1997 9AM EDT)September 7,28
  3636.          (1997 9AM EST)November 2,30
  3637.          (1998 9AM EST)January 4,25;March 1,29
  3638.          (1998 9AM EDT)MAY 3,31
  3639.  
  3640.    Monthly on the second to last Monday of the month for 6 months:
  3641.  
  3642.      DTSTART:19970922T090000-0400
  3643.      RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO
  3644.  
  3645.      ==> (1997 9AM EDT)September 22;October 20
  3646.          (1997 9AM EST)November 17;December 22
  3647.          (1998 9AM EST)January 19;February 16
  3648.  
  3649.    Monthly on the third to the last day of the month, forever:
  3650.  
  3651.      DTSTART:19970928T090000-0400
  3652.      RRULE:FREQ=MONTHLY;BYMONTHDAY=-3
  3653.  
  3654.      ==> (1997 9AM EDT)September 28
  3655.          (1997 9AM EST)October 29;November 28;December 29
  3656.          (1998 9AM EDT)January 29;February 26
  3657.      ...
  3658.  
  3659.    Monthly on the 2nd and 15th of the month for 10 occurrences:
  3660.  
  3661.      DTSTART:19970902T090000-0400
  3662.      RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15
  3663.  
  3664.      ==> (1997 9AM EDT)September 2,15;October 2,15
  3665.          (1997 9AM EST)November 2,15;December 2,15
  3666.          (1998 9AM EST)January 2,15
  3667.  
  3668.    Monthly on the first and last day of the month for 10 occurrences:
  3669.  
  3670.  
  3671. Dawson/Stenerson                   58                  Expires MAY 1998
  3672.  
  3673.  
  3674. Internet Draft       C&S Core Object Specification     October 22, 1997
  3675.  
  3676.  
  3677.      DTSTART:19970930T090000-0400
  3678.      RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1
  3679.  
  3680.      ==> (1997 9AM EDT)September 30;October 1
  3681.          (1997 9AM EST)October 31;November 1,30;December 1,31
  3682.          (1998 9AM EST)January 1,31;February 1
  3683.  
  3684.    Every 18 months on the 10th thru 15th of the month for 10
  3685.    occurrences:
  3686.  
  3687.      DTSTART:19970910T090000-0400
  3688.      RRULE:FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,13,14,
  3689.       15
  3690.  
  3691.      ==> (1997 9AM EDT)September 10,11,12,13,14,15
  3692.          (1999 9AM EST)March 10,11,12,13
  3693.  
  3694.    Every Tuesday, every other month:
  3695.  
  3696.      DTSTART:19970902T090000-0400
  3697.      RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU
  3698.  
  3699.      ==> (1997 9AM EDT)September 2,9,16,23,30
  3700.          (1997 9AM EST)November 4,11,18,25
  3701.          (1998 9AM EST)January 6,13,20,27;March 3,10,17,24,31
  3702.      ...
  3703.  
  3704.    Yearly in June and July for 10 occurrences:
  3705.  
  3706.      DTSTART:19970610T090000-0400
  3707.      RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7
  3708.  
  3709.      ==> (1997 9AM EDT)June 10;July 10
  3710.          (1998 9AM EDT)June 10;July 10
  3711.          (1999 9AM EDT)June 10;July 10
  3712.          (2000 9AM EDT)June 10;July 10
  3713.          (2001 9AM EDT)June 10;July 10
  3714.      Note: Since none of the BYDAY, BYMONTHDAY or BYYEARDAY components
  3715.      are specified, the day is gotten from DTSTART
  3716.  
  3717.    Every other year on January, February, and March for 10 occurrences:
  3718.  
  3719.      DTSTART:19970310T090000-0400
  3720.      RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3
  3721.  
  3722.      ==> (1997 9AM EST)March 10
  3723.          (1999 9AM EST)January 10;February 10;March 10
  3724.          (2001 9AM EST)January 10;February 10;March 10
  3725.          (2003 9AM EST)January 10;February 10;March 10
  3726.  
  3727.    Every 3rd year on the 1st, 100th and 200th day for 10 occurrences:
  3728.  
  3729.      DTSTART:19970101T090000-0400
  3730.      RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200
  3731.  
  3732.  
  3733. Dawson/Stenerson                   59                  Expires MAY 1998
  3734.  
  3735.  
  3736. Internet Draft       C&S Core Object Specification     October 22, 1997
  3737.  
  3738.  
  3739.  
  3740.      ==> (1997 9AM EST)January 1
  3741.          (1997 9AM EDT)April 10;July 19
  3742.          (2000 9AM EST)January 1
  3743.          (2000 9AM EDT)April 9;July 18
  3744.          (2003 9AM EST)January 1
  3745.          (2003 9AM EDT)April 10;July 19
  3746.          (2006 9AM EST)January 1
  3747.  
  3748.    Every 20th Monday of the year, forever:
  3749.  
  3750.      DTSTART:19970519T090000-0400
  3751.      RRULE:FREQ=YEARLY;BYDAY=20MO
  3752.  
  3753.      ==> (1997 9AM EDT)MAY 19
  3754.          (1998 9AM EDT)MAY 18
  3755.          (1999 9AM EDT)MAY 17
  3756.      ...
  3757.  
  3758.    Monday of Week No. 20, forever:
  3759.  
  3760.      DTSTART:19970512T090000-0400
  3761.      RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO
  3762.  
  3763.      ==> (1997 9AM EDT)MAY 12
  3764.          (1998 9AM EDT)MAY 11
  3765.          (1999 9AM EDT)MAY 17
  3766.      ...
  3767.  
  3768.    Every Thursday in March, forever:
  3769.  
  3770.      DTSTART:19970313T090000-0400
  3771.      RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH
  3772.  
  3773.      ==> (1997 9AM EST)March 13,20,27
  3774.          (1998 9AM EST)March 5,12,19,26
  3775.          (1999 9AM EST)March 4,11,18,25
  3776.      ...
  3777.  
  3778.    Every Thursday, but only during summer months, forever:
  3779.  
  3780.      DTSTART:19970605T090000-0400
  3781.      RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8
  3782.  
  3783.      ==> (1997 9AM EDT)June 5,12,19,26;July 3,10,17,24,31;
  3784.                        August 7,14,21,28
  3785.          (1998 9AM EDT)June 4,11,18,25;July 2,9,16,23,30;
  3786.                        August 6,13,20,27
  3787.          (1999 9AM EDT)June 3,10,17,24;July 1,8,15,22,29;
  3788.                        August 5,12,19,26
  3789.      ...
  3790.  
  3791.    Every Friday the 13th, forever:
  3792.  
  3793.  
  3794.  
  3795. Dawson/Stenerson                   60                  Expires MAY 1998
  3796.  
  3797.  
  3798. Internet Draft       C&S Core Object Specification     October 22, 1997
  3799.  
  3800.  
  3801.      DTSTART:19970902T090000-0400
  3802.      EXDATE:19970902T090000-0400
  3803.      RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13
  3804.  
  3805.      ==> (1998 9AM EST)February 13;March 13;November 13
  3806.          (1999 9AM EDT)August 13
  3807.          (2000 9AM EDT)October 13
  3808.      ...
  3809.  
  3810.    The first Saturday that follows the first Sunday of the month,
  3811.    forever:
  3812.  
  3813.      DTSTART:19970913T090000-0400
  3814.      RRULE:FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13
  3815.  
  3816.      ==> (1997 9AM EDT)September 13;October 11
  3817.          (1997 9AM EST)November 8;December 13
  3818.          (1998 9AM EST)January 10;February 7;March 7
  3819.          (1998 9AM EDT)April 11;MAY 9;June 13...
  3820.      ...
  3821.  
  3822.    Every four years, the first Tuesday after a Monday in November,
  3823.    forever (U.S. Presidential Election day):
  3824.  
  3825.      DTSTART:19961105T090000-0400
  3826.      RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,
  3827.       5,6,7,8
  3828.  
  3829.      ==> (1996 9AM EST)November 5
  3830.          (2000 9AM EST)November 7
  3831.          (2004 9AM EST)November 2
  3832.      ...
  3833.  
  3834.    The 3rd instance into the month of one of Tuesday, Wednesday or
  3835.    Thursday, for the next 3 months:
  3836.  
  3837.      DTSTART:19970904T090000-0400
  3838.      RRULE:FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3
  3839.  
  3840.      ==> (1997 9AM EDT)September 4;October 7
  3841.          (1997 9AM EST)November 5
  3842.  
  3843.    The 2nd to last weekday of the month:
  3844.  
  3845.      DTSTART:19970929T090000-0400
  3846.      RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2
  3847.  
  3848.      ==> (1997 9AM EDT)September 29
  3849.          (1997 9AM EST)October 30;November 27;December 30
  3850.          (1998 9AM EST)January 29;February 26;March 30
  3851.      ...
  3852.  
  3853.    Every 3 hours from 9AM to 5PM on a specific day:
  3854.  
  3855.  
  3856.  
  3857. Dawson/Stenerson                   61                  Expires MAY 1998
  3858.  
  3859.  
  3860. Internet Draft       C&S Core Object Specification     October 22, 1997
  3861.  
  3862.  
  3863.      DTSTART:19970902T090000-0400
  3864.      RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000-0400
  3865.  
  3866.      ==> (September 2, 1997 EDT)09:00,12:00,15:00
  3867.  
  3868.    Every 15 minutes for 6 occurrences:
  3869.  
  3870.      DTSTART:19970902T090000-0400
  3871.      RRULE:FREQ=MINUTELY;INTERVAL=15;COUNT=6
  3872.  
  3873.      ==> (September 2, 1997 EDT)09:00,09:15,09:30,09:45,10:00,10:15
  3874.  
  3875.    Every hour and a half for 4 occurrences:
  3876.  
  3877.      DTSTART:19970902T090000-0400
  3878.      RRULE:FREQ=MINUTELY;INTERVAL=90;COUNT=4
  3879.  
  3880.      ==> (September 2, 1997 EDT)09:00,10:30;12:00;13:30
  3881.  
  3882.    Every 20 minutes from 9AM to 4:40PM every day:
  3883.  
  3884.      DTSTART:19970902T090000-0400
  3885.      RRULE:FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40
  3886.      or
  3887.      RRULE:FREQ=MINUTELY;INTERVAL=20;BYHOUR=9,10,11,12,13,14,15,16
  3888.  
  3889.      ==> (September 2, 1997 EDT)9:00,9:20,9:40,10:00,10:20,
  3890.                                 ... 16:00,16:20,16:40
  3891.          (September 3 1997 EDT)9:00,9:20,9:40,10:00,10:20,
  3892.                                ...16:00,16:20,16:40
  3893.      ...
  3894.  
  3895.    An example where the days generated makes a difference because of
  3896.    WKST:
  3897.  
  3898.      DTSTART:19970805T090000-0400
  3899.      RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO
  3900.  
  3901.      ==> (1997 EDT)Aug 5,10,19,24
  3902.  
  3903.      changing only WKST from MO to SU, yields different reults...
  3904.  
  3905.      DTSTART:19970805T090000-0400
  3906.      RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU
  3907.      ==> (1997 EDT)August 5,17,19,31
  3908.  
  3909. 4.6.27  Related To
  3910.  
  3911.  
  3912.    This property is identified by the property name RELATED-TO. The
  3913.    property is used to represent relationships or references between one
  3914.    calendar component and another. The property MAY only be specified in
  3915.    the "VEVENT", "VTODO", "VJOURNAL" or "VFREEBUSY" calendar components.
  3916.    The property value consists of the persistent, globally unique
  3917.  
  3918.  
  3919.  
  3920. Dawson/Stenerson                   62                  Expires MAY 1998
  3921.  
  3922.  
  3923. Internet Draft       C&S Core Object Specification     October 22, 1997
  3924.  
  3925.  
  3926.    identifier of another calendar component. This value would be
  3927.    represented in a calendar component by the "UID" property. The
  3928.    property value always points to another calendar component that has a
  3929.    "parent" relationship to the referencing object.
  3930.  
  3931.    A linked relationship can be specified by a series of components that
  3932.    each, in turn, refer to their parent component. A group relationship
  3933.    can be specified by a number of components that all refer to one
  3934.    common parent component.
  3935.  
  3936.    Changes to a calendar component referenced by this property MAY
  3937.    impact the related calendar component. For example, if a group event
  3938.    changes its start or end date or time, then the related, dependent
  3939.    events will need to have their start and end dates changed in a
  3940.    corresponding way. This property is intended only to provide
  3941.    information on the relationship of calendar components. It is up to
  3942.    the target calendar system to maintain any property implications of
  3943.    this relationship.
  3944.  
  3945.    The property is defined by the following notation:
  3946.  
  3947.      related    = "RELATED-TO" [";" [ws] paramlist] ":" [ws] uid CRLF
  3948.  
  3949.    The following is an example of this property:
  3950.  
  3951.      RELATED-TO:<jsmith.part7.19960817T083000.xyzMail@host3.com>
  3952.  
  3953.      RELATED-TO:<19960401-080045-4000F192713-0052@host1.com>
  3954.  
  3955.    The data type for this property is UID.
  3956.  
  3957. 4.6.28  Repeat Count
  3958.  
  3959.  
  3960.    This property is identified by the property name REPEAT. This
  3961.    property defines the number of repetitions for an alarm.
  3962.  
  3963.    The property is defined by the following notation:
  3964.  
  3965.      repeatcnt  = "REPEAT" ":" [ws] integer CRLF
  3966.      ;Default is "1".
  3967.  
  3968.    The following is an example of this property:
  3969.  
  3970.      REPEAT:4
  3971.  
  3972.    The data type for the property is INTEGER.
  3973.  
  3974. 4.6.29  Request Status
  3975.  
  3976.  
  3977.    This property is identified by the property name REQUEST-STATUS. This
  3978.    property defines the status code returned for a scheduling request.
  3979.    This property is used to return status code information related to
  3980.  
  3981.  
  3982.  
  3983.  
  3984. Dawson/Stenerson                   63                  Expires MAY 1998
  3985.  
  3986.  
  3987. Internet Draft       C&S Core Object Specification     October 22, 1997
  3988.  
  3989.  
  3990.    the processing of an associated iCalendar object. The data type for
  3991.    this property is TEXT.
  3992.  
  3993.    The value consists of a short return status, a longer return status
  3994.    description, and optionally the offending data. The components of the
  3995.    value are separated by the SEMICOLON character (ASCII decimal 59).
  3996.  
  3997.    The short return status is a PERIOD character (ASCII decimal xx)
  3998.    separated set of integers. For example, "3.1.1". The successive
  3999.    levels of integers provide for a successive level of status code
  4000.    granularity.
  4001.  
  4002.    The property is defined by the following notation:
  4003.  
  4004.      Rstatus    = "REQUEST-STATUS" ":" [ws] statcode ";" [ws]
  4005.                          statdesc [";" [ws] extdata]
  4006.  
  4007.      Statcode   = 1*DIGIT *("." 1*DIGIT)
  4008.      ;Hierarchical, numeric return status code
  4009.  
  4010.      Statdesc   = *WORD
  4011.      ;Textual status description
  4012.  
  4013.      Extdata    = *WORD
  4014.      ;Textual exception data. For example, the offending property
  4015.      ;name and value or complete property line.
  4016.  
  4017.    The following are some possible examples of this property (Note: The
  4018.    BACKSLASH character escapement of separator characters in a property
  4019.    value):
  4020.  
  4021.      REQUEST-STATUS:2.0;Success
  4022.  
  4023.      REQUEST-STATUS:3.1;Invalid property value;DTSTART:96-Apr-01
  4024.  
  4025.      REQUEST-STATUS:2.8; Success\, repeating event ignored. Scheduled
  4026.       as a single event.;RRULE\:FREQ=WEEKLY\;INTERVAL=2
  4027.  
  4028.      REQUEST-STATUS:4.1;Event conflict. Date/time is busy.
  4029.  
  4030.      REQUEST-STATUS:3.7;Invalid calendar user;ATTENDEE\:
  4031.       jsmith@host.com
  4032.  
  4033.    The following are valid classes for the return status code.
  4034.    Individual iCalendar object methods will define specific return
  4035.    status codes for these classes.
  4036.  
  4037.      |==============+===============================================|
  4038.      | Short Return | Longer Return Status Description              |
  4039.      | Status Code  |                                               |
  4040.      |==============+===============================================|
  4041.      |    1.xx      | Preliminary success. This class of status     |
  4042.      |              | of status code indicates that the request has |
  4043.      |              | request has been initially processed but that |
  4044.  
  4045.  
  4046. Dawson/Stenerson                   64                  Expires MAY 1998
  4047.  
  4048.  
  4049. Internet Draft       C&S Core Object Specification     October 22, 1997
  4050.  
  4051.  
  4052.      |              | completion is pending.                        |
  4053.      |==============+===============================================|
  4054.      |    2.xx      | Successful. This class of status code         |
  4055.      |              | indicates that the request was completed      |
  4056.      |              | successfuly. However, the exact status code   |
  4057.      |              | MAY indicate that a fallback has been taken.  |
  4058.      |==============+===============================================|
  4059.      |    3.xx      | Client Error. This class of status code       |
  4060.      |              | indicates that the request was not successful.|
  4061.      |              | The error is the result of either a syntax or |
  4062.      |              | a semantic error in the client formatted      |
  4063.      |              | request. Request should not be retried until  |
  4064.      |              | the condition in the request is corrected.    |
  4065.      |==============+===============================================|
  4066.      |    4.xx      | Scheduling Error. This class of status code   |
  4067.      |              | indicates that the request was not successful.|
  4068.      |              | Some sort of error occurred within the        |
  4069.      |              | calendaring and scheduling service, not       |
  4070.      |              | directly related to the request itself.       |
  4071.      |==============+===============================================|
  4072.  
  4073. 4.6.30  Resources
  4074.  
  4075.  
  4076.    This property is identified by the property name RESOURCES. This
  4077.    property defines the equipment or resources needed for the event or
  4078.    to-do. The property value is an arbitrary text. The property MAY only
  4079.    be specified in the "VEVENT" or "VTODO" calendar component. More than
  4080.    one resource MAY be specified as a list of resources separated by the
  4081.    COMMA character (ASCII decimal 44).
  4082.  
  4083.    The property is defined by the following notation:
  4084.  
  4085.      resource   = "RESOURCES" [";" [ws] paramlist] ":" [ws]
  4086.                   resvalist CRLF
  4087.  
  4088.      resvalist  = resvalue / resvalue "," [ws] resvalist
  4089.  
  4090.      resvalue   = "CATERING" / "CHAIRS" / "COMPUTER PROJECTOR"
  4091.                 / "EASEL" / "OVERHEAD PROJECTOR" / "SPEAKER PHONE"
  4092.                 / "TABLE" / "TV" / "VCR" / "VIDEO PHONE" / "VEHICLE"
  4093.                 / word
  4094.  
  4095.    The following is an example of this property:
  4096.  
  4097.      RESOURCES:EASEL,PROJECTOR,VCR
  4098.  
  4099.    The data type for this property is TEXT.
  4100.  
  4101. 4.6.31  Sequence Number
  4102.  
  4103.  
  4104.    This property is identified by the property name SEQUENCE. This
  4105.    property defines the revision sequence of the calendar component used
  4106.    in a request. The property MAY only be specified in a "VEVENT",
  4107.  
  4108.  
  4109.  
  4110. Dawson/Stenerson                   65                  Expires MAY 1998
  4111.  
  4112.  
  4113. Internet Draft       C&S Core Object Specification     October 22, 1997
  4114.  
  4115.  
  4116.    "VTODO", "VJOURNAL" or "VFREEBUSY" calendar component. This property
  4117.    is needed to properly handle the receipt and processing of a sequence
  4118.    of calendar components that have been delivered out of order. Such is
  4119.    the case for store-and-forward based transports. The first request is
  4120.    created with a sequence number of "0" (ASCII decimal 48). It is
  4121.    incremented each time the ORGANIZER or OWNER issues a revision to the
  4122.    request. The sequence number MUST be monotonically incremented when
  4123.    one of the following properties in a calendar component is changed:
  4124.  
  4125.      ╖ "DTSTART"
  4126.      ╖ "DTEND"
  4127.      ╖ "DUE"
  4128.      ╖ "RDATE"
  4129.      ╖ "RRULE"
  4130.      ╖ "EXDATE"
  4131.      ╖ "EXRULE"
  4132.  
  4133.    The property is defined by the following notation:
  4134.  
  4135.      sequence   = "SEQUENCE" ":" [ws] integer CRLF
  4136.      ;Default is "0".
  4137.  
  4138.    The following is an example of this property:
  4139.  
  4140.      SEQUENCE:1
  4141.  
  4142.    The data type for this property is INTEGER.
  4143.  
  4144. 4.6.32  Status
  4145.  
  4146.  
  4147.    This property is identified by the property name STATUS. This
  4148.    property defines the orignator's view of the overall status for the
  4149.    calendar component. This property MAY only be specified in the
  4150.    "VEVENT", "VTODO", "VJOURNAL" calendar components. The property is
  4151.    used to specify the originator's view of the general consensus for
  4152.    the event or the to-do. In addition, when specified in a group
  4153.    scheduled to-do the property is used to specify the originator's view
  4154.    of the completion status for the to-do. The property MAY also specify
  4155.    whether the event or to-do has been cancelled.
  4156.  
  4157.    The property is defined by the following notation:
  4158.  
  4159.      status     = "STATUS" [";" [ws] paramlist] ":" [ws] statvalue CRLF
  4160.  
  4161.      statvalue  = "NEEDS-ACTION"        ;Indicates to-do needs action.
  4162.                 / "COMPLETED"           ;Indicates to-do completed.
  4163.                 / "IN-PROCESS"          ;Indicates to-do in process of
  4164.                                         ;being completed.
  4165.                 / "TENTATIVE"           ;Indicates event or to-do is
  4166.                                         ;tentative.
  4167.                 / "CONFIRMED"           ;Indicates event or to-do is
  4168.                                         ;definite.
  4169.  
  4170.  
  4171.  
  4172.  
  4173. Dawson/Stenerson                   66                  Expires MAY 1998
  4174.  
  4175.  
  4176. Internet Draft       C&S Core Object Specification     October 22, 1997
  4177.  
  4178.  
  4179.                 / "CANCELLED"           ;Indicates event or to-do was
  4180.                                         ;cancelled.
  4181.  
  4182.    The following is an example of this property:
  4183.  
  4184.      STATUS:TENTATIVE
  4185.  
  4186.    The data type for this property is TEXT.
  4187.  
  4188. 4.6.33  Summary
  4189.  
  4190.  
  4191.    This property is identified by the property name SUMMARY. This
  4192.    property defines a short summary or subject for the calendar
  4193.    component. The property MUST be specified in the "VEVENT", "VTODO"
  4194.    and "VJOURNAL" calendar components. In addition, it MAY appear in the
  4195.    "VALARM" calendar component.
  4196.  
  4197.    The property is defined by the following notation:
  4198.  
  4199.      summary    = "SUMMARY" [";" [ws] paramlist] ":" [ws] text CRLF
  4200.  
  4201.    The following is an example of this property:
  4202.  
  4203.      SUMMARY:Department Party
  4204.  
  4205.    The data type for this property is TEXT.
  4206.  
  4207. 4.6.34  Time Transparency
  4208.  
  4209.  
  4210.    This property is identified by the property name TRANSP. This
  4211.    property defines whether an event is transparent or not to busy time
  4212.    searches. This property MAY only be specified in a "VEVENT" calendar
  4213.    component.
  4214.  
  4215.    The property is specified by the following notation:
  4216.  
  4217.      transp     = "TRANSP" [";" [ws] paramlist] ":" [ws] transvalue CRLF
  4218.  
  4219.      transvalue = "OPAQUE"      ;Blocks or opaque on busy time searches.
  4220.                 / "TRANSPARENT" ;Transparent on busy time searches.
  4221.  
  4222.      ;Default value is OPAQUE
  4223.  
  4224.  
  4225.    The following is an example of this property for an event that is
  4226.    transparent or does not block on free/busy time searches:
  4227.  
  4228.      TRANSP:TRANSPARENT
  4229.  
  4230.    The following is an example of this property for an event that is
  4231.    opaque or blocks on free/busy time searches:
  4232.  
  4233.      TRANSP:OPAQUE
  4234.  
  4235.  
  4236.  
  4237. Dawson/Stenerson                   67                  Expires MAY 1998
  4238.  
  4239.  
  4240. Internet Draft       C&S Core Object Specification     October 22, 1997
  4241.  
  4242.  
  4243.    The data type for this property is TEXT.
  4244.  
  4245. 4.6.35  Time Zone Name
  4246.  
  4247.  
  4248.    This property is identified by the property name TZNAME. This
  4249.    property specifies the customary designation for a time zone
  4250.    description. This property MAY only be specified in the "VTIMEZONE"
  4251.    calendar component.
  4252.  
  4253.    This property is defined by the following notation:
  4254.  
  4255.      tzname     = "TZNAME" [";" [ws] paramlist] ":" [ws] text CRLF
  4256.  
  4257.    The following are examples of this property:
  4258.  
  4259.      TZNAME: EST
  4260.  
  4261.      TZNAME: PDT
  4262.  
  4263.    The data type for this property is TEXT.
  4264.  
  4265. 4.6.36  Time Zone Offset
  4266.  
  4267.  
  4268.    This property is identified by the property name TZOFFSET. This
  4269.    property specifies the offset from UTC for a time zone. This property
  4270.    MAY only be specified in a "VTIMEZONE" calendar component. A
  4271.    "VTIMEZONE" calendar component MUST include this property. The
  4272.    property value is a signed numeric indicating the number of hours and
  4273.    possibly minutes from UTC. Positive numbers represents time zones
  4274.    east, or ahead of UTC. Negative numbers represents time zones west
  4275.    of, or behind UTC.
  4276.  
  4277.    The property is defined by the following notation:
  4278.  
  4279.      tzoffset   = "TZOFFSET" ":" [ws] utc-offset CRLF
  4280.  
  4281.    The following are examples of this property:
  4282.  
  4283.      TZOFFSET:-0500
  4284.  
  4285.      TZOFFSET:+0530
  4286.  
  4287.    The data type for this property is UTC-OFFSET.
  4288.  
  4289. 4.6.37  Uniform Resource Locator
  4290.  
  4291.  
  4292.    This property is identified by the property name URL. This property
  4293.    defines a Uniform Resource Locator (URL) associated with the
  4294.    iCalendar object. This property MAY be specified in the "VEVENT",
  4295.    "VTODO", "VJOURNAL", "VFREEBUSY", and "VALARM" calendar components.
  4296.  
  4297.    The property is defined by the following notation:
  4298.  
  4299.  
  4300.  
  4301.  
  4302. Dawson/Stenerson                   68                  Expires MAY 1998
  4303.  
  4304.  
  4305. Internet Draft       C&S Core Object Specification     October 22, 1997
  4306.  
  4307.  
  4308.      url        = "URL" ":" [ws] url CRLF
  4309.  
  4310.    The following is an example of this property:
  4311.  
  4312.      URL:http://abc.com/pub/calendars/jsmith/mytime.or3
  4313.  
  4314.    The data type for this property is URL.
  4315.  
  4316. 4.6.38  Unique Identifier
  4317.  
  4318.  
  4319.    This property is identified by the property name UID. This property
  4320.    defines the persistent, globally unique identifier for the calendar
  4321.    component. The property MUST be specified in the "VEVENT", "VTODO"
  4322.    and "VJOURNAL" calendar components.
  4323.  
  4324.    The UID itself MUST be a globally unique identifier. The generator of
  4325.    the identifier MUST guarantee that the identifier is unique. There
  4326.    are several algorithms that can be used to accomplish this. The
  4327.    identifier is RECOMMENDED to be the identical syntax to the [RFC 822]
  4328.    addr-spec. A good method to assure uniqueness is to put the domain
  4329.    name or a domain literal IP address of the host on which the
  4330.    identifier was created on the right hand side of the "@", and on the
  4331.    left hand side, put a combination of the current calendar date and
  4332.    time of day (i.e., formatted in as a DATE-TIME value) along with some
  4333.    other currently unique (perhaps sequential) identifier available on
  4334.    the system (for example, a process id number). Using a date/time
  4335.    value on the left hand side and a domain name or domain literal on
  4336.    the right hand side makes it possible to guarantee uniqueness since
  4337.    no two hosts should be using the same domain name or IP address at
  4338.    the same time. Though other algorithms will work, it is RECOMMENDED
  4339.    that the right hand side contain some domain identifier (either of
  4340.    the host itself or otherwise) such that the generator of the message
  4341.    identifier can guarantee the uniqueness of the left hand side within
  4342.    the scope of that domain.
  4343.  
  4344.    This identifier is created by the calendar system that generates an
  4345.    iCalendar object. The identifier is represented as a text value. This
  4346.    is the method for correlating scheduling messages with the referenced
  4347.    event, to-do, or journal.
  4348.  
  4349.    The property is defined by the following notation:
  4350.  
  4351.      uid        = "UID" ":" [ws] text CRLF
  4352.  
  4353.    The following is an example of this property:
  4354.  
  4355.      UID:19960401T080045Z-4000F192713-0052@host1.com
  4356.  
  4357.    This property is an important method for group scheduling
  4358.    applications to match requests with later replies, modifications or
  4359.    deletion requests. Calendaring and scheduling applications MUST
  4360.    generate this property in "VEVENT", "VTODO" and "VJOURNAL" calendar
  4361.  
  4362.  
  4363.  
  4364.  
  4365. Dawson/Stenerson                   69                  Expires MAY 1998
  4366.  
  4367.  
  4368. Internet Draft       C&S Core Object Specification     October 22, 1997
  4369.  
  4370.  
  4371.    components to assure interoperability with other group scheduling
  4372.    applications.
  4373.  
  4374.    Implementations MUST be able to receive and persist values of at
  4375.    least 255 characters for this property.
  4376.  
  4377.    The data type for this property is TEXT.
  4378.  
  4379. 4.6.39  Non-standard Properties
  4380.  
  4381.  
  4382.    The MIME Calendaring and Scheduling Content Type provides a "standard
  4383.    mechanism for doing non-standard things". This extension support is
  4384.    provided for implementers to "push the envelope" on the existing
  4385.    version of the memo. Extension properties are specified by property
  4386.    and/or property parameter names that have the prefix text of "X-"
  4387.    (the two character sequence: LATIN CAPITAL LETTER X character
  4388.    followed by the HYPEN-MINUS character). It is RECOMMENDED that
  4389.    vendors concatenate onto this sentinel another short prefix text to
  4390.    identify the vendor. This will facilitate readability of the
  4391.    extensions and minimize possible collision of names between different
  4392.    vendors. User agents that support this content type are expected to
  4393.    be able to parse the extension properties and property parameters but
  4394.    MAY ignore them.
  4395.  
  4396.    The property is defined by the following notation:
  4397.  
  4398.      extension  = "X-" [vendorid] "-" word [";" [ws] paramlist] ":" [ws]
  4399.                   value
  4400.  
  4401.      vendorid   = 3*char        ;Vendor identification prefix text
  4402.  
  4403.    The following might be the ABC vendorÆs extension for an audio-clip
  4404.    form of subject property:
  4405.  
  4406.      X-ABC-MMSUBJ;TYPE=WAVE; VALUE=URL: http://load.noise.org/mysubj.wav
  4407.  
  4408.    At present, there is no registration authority for names of extension
  4409.    properties and property parameters. The data type for this property
  4410.    is TEXT. Optionally, the data type MAY be any of the other valid data
  4411.    types.
  4412.  
  4413. 5.      Recommended Practices
  4414.  
  4415.  
  4416.    These recommended practices should be followed in order to assure
  4417.    consistent handling of the following cases for an iCalendar object.
  4418.  
  4419.    1.      A calendar entry with a "DTSTART" property but no "DTEND" property
  4420.      - The event does not take up any time. It is intended to represent
  4421.      an event that is associated with a given calendar date and time of
  4422.      day, such as an anniversary. Since the event does not take up any
  4423.      time, it MUST NOT be used to record busy time no matter what the
  4424.      value for the "TRANSP" property.
  4425.  
  4426.  
  4427.  
  4428.  
  4429. Dawson/Stenerson                   70                  Expires MAY 1998
  4430.  
  4431.  
  4432. Internet Draft       C&S Core Object Specification     October 22, 1997
  4433.  
  4434.  
  4435.    2.      When the "DTSTART" and "DTEND", for "VEVENT", "VJOURNAL" and
  4436.      "VFREEBUSY" calendar components, and "DTSTART" and "DUE", for
  4437.      "VTODO" calendar components, have the same value data type (e.g.,
  4438.      DATE-TIME), they should specify values in the same time format
  4439.      (e.g., local time with UTC offset).
  4440.  
  4441.    3.      A combination of "RRULE" and "RDATE" properties that produces more
  4442.      than one instance for a given date/time - Only one recurrence can
  4443.      occur on a given date/time interval. Just one instance for the
  4444.      date/time is recorded.
  4445.  
  4446.    4.      A particular iCalendar object method that specifies "ATTENDEE"
  4447.      properties with the "MEMBER" property parameter, for which the
  4448.      recipient has multiple memberships - Recipient should reply to
  4449.      only the first "MEMBER" property parameter value that it can
  4450.      match.
  4451.  
  4452. 6.      Registration of Content Type Elements
  4453.  
  4454.  
  4455.    This section provide the process for registration of MIME Calendaring
  4456.    and Scheduling Content Type iCalendar object methods and new or
  4457.    modified properties.
  4458.  
  4459. 6.1     Registration of New and Modified iCalendar object Methods
  4460.  
  4461.  
  4462.    New MIME Calendaring and Scheduling Content Type iCalendar object
  4463.    methods are registered by the publication of an IETF Request for
  4464.    Comment (RFC). Changes to an iCalendar object method are registered
  4465.    by the publication of a revision of the RFC defining the method.
  4466.  
  4467. 6.2     Registration of New Properties
  4468.  
  4469.  
  4470.    This section defines procedures by which new properties or enumerated
  4471.    property values for the MIME Calendaring and Scheduling Content Type
  4472.    can be registered with the IANA. Note that non-IANA properties MAY be
  4473.    used by bilateral agreement, provided the associated properties names
  4474.    follow the "X-" convention.
  4475.  
  4476.    The procedures defined here are designed to allow public comment and
  4477.    review of new properties, while posing only a small impediment to the
  4478.    definition of new properties.
  4479.  
  4480.    Registration of a new property is accomplished by the following
  4481.    steps.
  4482.  
  4483. 6.2.1   Define the property
  4484.  
  4485.  
  4486.    A property is defined by completing the following template.
  4487.  
  4488.      To: ietf-calendar@imc.org
  4489.  
  4490.      Subject: Registration of text/calendar MIME property XXX
  4491.  
  4492.  
  4493.  
  4494. Dawson/Stenerson                   71                  Expires MAY 1998
  4495.  
  4496.  
  4497. Internet Draft       C&S Core Object Specification     October 22, 1997
  4498.  
  4499.  
  4500.      Property name:
  4501.  
  4502.      Property purpose:
  4503.  
  4504.      Property data type(s):
  4505.  
  4506.      Property encoding:
  4507.  
  4508.      Property special notes (optional):
  4509.  
  4510.      Intended usage: (one of COMMON, LIMITED USE or OBSOLETE)
  4511.  
  4512.    The meaning of each field in the template is as follows.
  4513.  
  4514.    Property name: The name of the property, as it will appear in the
  4515.    body of an text/calendar MIME Content-Type "property: value" line to
  4516.    the left of the colon ":".
  4517.  
  4518.    Property purpose: The purpose of the property (e.g., to indicate a
  4519.    delegate for the event or to-do, etc.). Give a short but clear
  4520.    description.
  4521.  
  4522.    Property data type(s): Any of the valid data types for the property
  4523.    value needs to be specified. The default data type also needs to be
  4524.    specified. If a new data type is specified, it needs to be declared
  4525.    in this section.
  4526.  
  4527.    Property encoding: The encodings permitted for the property value.
  4528.    This description MUST be precise and MUST NOT violate the general
  4529.    encoding rules defined in this memo.
  4530.  
  4531.    Property special notes: Any special notes about the property, how it
  4532.    is to be used, etc.
  4533.  
  4534. 6.2.2   Post the Property definition
  4535.  
  4536.  
  4537.    The property description MUST be posted to the new property
  4538.    discussion list, ietf-calendar@imc.org.
  4539.  
  4540. 6.2.3   Allow a comment period
  4541.  
  4542.  
  4543.    Discussion on the new property MUST be allowed to take place on the
  4544.    list for a minimum of two weeks. Consensus MUST be reached on the
  4545.    property before proceeding to the next step.
  4546.  
  4547. 6.2.4   Submit the property for approval
  4548.  
  4549.  
  4550.    Once the two-week comment period has elapsed, and the proposer is
  4551.    convinced consensus has been reached on the property, the
  4552.    registration application should be submitted to the Method Reviewer
  4553.    for approval. The Method Reviewer is appointed to the Application
  4554.    Area Directors and MAY either accept or reject the property
  4555.    registration. An accepted registration should be passed on by the
  4556.  
  4557.  
  4558.  
  4559. Dawson/Stenerson                   72                  Expires MAY 1998
  4560.  
  4561.  
  4562. Internet Draft       C&S Core Object Specification     October 22, 1997
  4563.  
  4564.  
  4565.    Method Reviewer to the IANA for inclusion in the official IANA method
  4566.    registry. The registration MAY be rejected for any of the following
  4567.    reasons. 1) Insufficient comment period; 2) Consensus not reached; 3)
  4568.    Technical deficiencies raised on the list or elsewhere have not been
  4569.    addressed. The Method Reviewer's decision to reject a property MAY be
  4570.    appealed by the proposer to the IESG, or the objections raised can be
  4571.    addressed by the proposer and the property resubmitted.
  4572.  
  4573. 6.3     Property Change Control
  4574.  
  4575.  
  4576.    Existing properties MAY be changed using the same process by which
  4577.    they were registered.
  4578.  
  4579.         1.           Define the change
  4580.  
  4581.         2.           Post the change
  4582.  
  4583.         3.           Allow a comment period
  4584.  
  4585.         4.           Submit the property for approval
  4586.  
  4587.    Note that the original author or any other interested party MAY
  4588.    propose a change to an existing property, but that such changes
  4589.    should only be proposed when there are serious omissions or errors in
  4590.    the published memo. The Method Reviewer MAY object to a change if it
  4591.    is not backwards compatible, but is not required to do so.
  4592.  
  4593.    Property definitions can never be deleted from the IANA registry, but
  4594.    properties which are no longer believed to be useful can be declared
  4595.    OBSOLETE by a change to their "intended use" field.
  4596.  
  4597. 7.      File extension
  4598.  
  4599.  
  4600.    The file extension of "vcs" is to be used to designate a file
  4601.    containing calendaring and scheduling information consistent with
  4602.    this MIME content type.
  4603.  
  4604. 8.      Macintosh File Type Code
  4605.  
  4606.  
  4607.    The file type code of "vcal" is to be used in Apple MacIntosh
  4608.    operating system environments to designate a file containing
  4609.    calendaring and scheduling information consistent with this MIME
  4610.    media type.
  4611.  
  4612. 9.      References
  4613.  
  4614.  
  4615.    The following document are referred to within this memo.
  4616.  
  4617.    [ICMS] "Internet Calendaring Model Specification", Internet-Draft,
  4618.    July 1997, ftp://ftp.ietf.org/internet-drafts/draft-ietf-calsch-mod-
  4619.    00.txt.
  4620.  
  4621.  
  4622.  
  4623.  
  4624. Dawson/Stenerson                   73                  Expires MAY 1998
  4625.  
  4626.  
  4627. Internet Draft       C&S Core Object Specification     October 22, 1997
  4628.  
  4629.  
  4630.    [IMIP] "iCalendar Message-based Interoperability Protocol (IMIP)",
  4631.    Internet Draft, October 1997, http://www.imc.org/draft-ietf-calsch-
  4632.    imip-02.txt.
  4633.  
  4634.    [ISO 8601] ISO 8601, "Data elements and interchange formats-                                                              -                                                               -
  4635.    Information interchange--Representation of dates and times",
  4636.    International Organization for Standardization, June, 1988. This
  4637.    standard is also addressed by the Internet Draft document
  4638.    ftp://ds.internic.net/internet-drafts/draft-newman-datetime-00.txt.
  4639.  
  4640.    [ISO 9070] ISO/IEC 9070, "Information Technology-                                                   -                                                    -SGML Support
  4641.    Facilities--Registration Procedures for Public Text Owner
  4642.    Identifiers", Second Edition, International Organization for
  4643.    Standardization, April, 1991.
  4644.  
  4645.    [ITIP] "iCalendar Transport-Independent Interoperability Protocol
  4646.    (iTIP) : Scheduling Events, Busy Time, To-dos and Journal Entries ",
  4647.    Internet-Draft, October 1997, http://www.imc.org/draft-ietf-calsch-
  4648.    itip-01.txt.
  4649.  
  4650.    [MIME DIR] Howes, T., Smith, M., "A MIME Content-Type for Directory
  4651.    Information", Internet-draft-ietf-asid-mime-direct-06.txt, July,
  4652.    1997.
  4653.  
  4654.    [RFC 822] Crocker, D., "Standard for the Format of ARPA Internet Text
  4655.    Messages", STD 11, RFC 822, August 1982.
  4656.  
  4657.    [RFC 1738] Berners-Lee, T., Masinter, L., McCahill, M., "Uniform
  4658.    Resource Locators (URL)", RFC 1738, December 1994.
  4659.  
  4660.    [RFC 1766] Alvestrand, H., "Tags for the Identification of
  4661.    Languages", March 1995.
  4662.  
  4663.    [RFC 1872] Levinson, E., "The MIME Multipart/Related Content-type,"
  4664.    RFC 1872, December 1995.
  4665.  
  4666.    [RFC1983] "Internet Users' Glossary", RFC 1983, August 1996.
  4667.  
  4668.    [RFC 2045] Freed, N., Borenstein, N., " Multipurpose Internet Mail
  4669.    Extensions (MIME) - Part One: Format of Internet Message Bodies", RFC
  4670.    2045, November 1996.
  4671.  
  4672.    [RFC 2046] Freed, N., Borenstein, N., " Multipurpose Internet Mail
  4673.    Extensions (MIME) - Part Two: Media Types", RFC 2046, November 1996.
  4674.  
  4675.    [RFC 2047] Moore, K., "Multipurpose Internet Mail Extensions (MIME) -
  4676.    Part Three: Message Header Extensions for Non-ASCII Text", RFC 2047,
  4677.    November 1996.
  4678.  
  4679.    [RFC 2048] Freed, N., J. Klensin, J. Postel, "Multipurpose Internet
  4680.    Mail Extensions (MIME) - Part Four: Registration Procedures", RFC
  4681.    2048, January 1997.
  4682.  
  4683.  
  4684.  
  4685.  
  4686. Dawson/Stenerson                   74                  Expires MAY 1998
  4687.  
  4688.  
  4689. Internet Draft       C&S Core Object Specification     October 22, 1997
  4690.  
  4691.  
  4692.    [RFC2119] "Key words for use in RFCs to Indicate Requirement Levels",
  4693.    RFC 2119, March 1997.
  4694.  
  4695.    [UTF-8] "UTF-8, a transformation format of Unicode and ISO
  4696.    10646",Internet-Draft, July,1996, ftp://ftp.ietf.org/internet-
  4697.    drafts/draft-yergeau-utf8-01.txt.
  4698.  
  4699.    [VCARD] Internet Mail Consortium, "vCard - The Electronic Business
  4700.    Card Version 2.1", http://www.versit.com/pdi/vcard-21.txt, September
  4701.    18, 1996.
  4702.  
  4703.    [VCAL] Internet Mail Consortium, "vCalendar - The Electronic
  4704.    Calendaring and Scheduling Exchange Format",
  4705.    http://www.imc.org/pdi/vcal-10.txt, September 18, 1996.
  4706.  
  4707.    [XAPIA] "XAPIA CSA, Calendaring and Scheduling Application
  4708.    Programming Interface (CSA) Version 1.0", X.400 API Association,
  4709.    November 15, 1994.
  4710.  
  4711. 10.     Acknowledgments
  4712.  
  4713.  
  4714.    A hearty thanks to the IETF Calendaring and Scheduling Working Group
  4715.    and also the following individuals who have participated in the
  4716.    drafting, review and discussion of this memo:
  4717.  
  4718.    Roland Alden, Harald T. Alvestrand, Eric Berman, Denis Bigorgne, John
  4719.    Binici, Bill Bliss, Philippe Boucher, Steve Carter, Andre
  4720.    Courtemanche, Dave Crocker, Alec Dun, John Evans, Ross Finlayson,
  4721.    Randell Flint, Ned Freed, Patrik Falstrom, Chuck Grandgent, Mark
  4722.    Handley, Steve Hanna, Paul B. Hill, Paul Hoffman, Ross Hopson, Mark
  4723.    Horton, Bruce Kahn, C. Harald Koch, Don Lavange, Theodore Lorek,
  4724.    Steve Mansour, Skip Montanaro, Keith Moore, Cecil Murray, Chris
  4725.    Newman, John Noerenberg, Ralph Patterson, Pete Resnick, Keith Rhodes,
  4726.    Robert Ripberger, John Rose, Andras Salamar, Ted Schuh, Vinod
  4727.    Seraphin, Derrick Shadel, Ken Shan, Andrew Shuman, Steve Silverberg,
  4728.    William P. Spencer, John Sun, Mark Towfiq, Robert Visnov, James L.
  4729.    Weiner, Mike Weston, William Wyatt.
  4730.  
  4731. 11.     Copyright
  4732.  
  4733.  
  4734.  
  4735.  
  4736. 12.     Author's Address
  4737.  
  4738.  
  4739.    The following address information is provided in a MIME-VCARD,
  4740.    Electronic Business Card, format.
  4741.  
  4742.    The authors of this draft are:
  4743.  
  4744.      BEGIN:VCARD
  4745.      FN:Frank Dawson
  4746.      ORG:Lotus Development Corporation
  4747.      ADR;WORK;POSTAL;PARCEL:;;6544 Battleford Drive;
  4748.  
  4749.  
  4750.  
  4751. Dawson/Stenerson                   75                  Expires MAY 1998
  4752.  
  4753.  
  4754. Internet Draft       C&S Core Object Specification     October 22, 1997
  4755.  
  4756.  
  4757.       Raleigh;NC;27613-3502;USA
  4758.      TEL;WORK;MSG:+1-919-676-9515
  4759.      TEL;WORK;FAX:+1-919-676-9564
  4760.      EMAIL;INTERNET:fdawson@earthlink.net
  4761.      URL:http://home.earthlink.net/~fdawson
  4762.      END:VCARD
  4763.  
  4764.  
  4765.  
  4766.      BEGIN:VCARD
  4767.      FN:Derik Stenerson
  4768.      ORG:Microsoft Corporation
  4769.      ADR;WORK;POSTAL;PARCEL:;;One Microsoft Way;
  4770.       Redmond;WA;98052-6399;USA
  4771.      TEL;WORK;MSG:+1-425-936-5522
  4772.      TEL;WORK;FAX:+1-425-936-7329
  4773.      EMAIL;INTERNET:deriks@Microsoft.com
  4774.      END:VCARD
  4775.  
  4776.    The iCalendar object is a result of the work of the Internet
  4777.    Engineering Task Force Calendaring and Scheduling Working Group. The
  4778.    chairman of that working group is:
  4779.  
  4780.      BEGIN:VCARD
  4781.      FN:Anik Ganguly
  4782.      ORG:OnTime, Inc.
  4783.      ADR;WORK;POSTAL;PARCEL:10 Floor;;21700 Northwestern Highway;
  4784.       Southfield;MI;48075;USA
  4785.      TEL;WORK;MSG:+1-248-559-5955
  4786.      TEL;WORK;FAX:+1-248-559-5034
  4787.      EMAIL;INTERNET:anik@ontime.com
  4788.      END:VCARD
  4789.  
  4790. 13.     iCalendar object Examples
  4791.  
  4792.  
  4793.    The following examples are provided as an informational source of
  4794.    illustrative iCalendar objects consistent with this content type.
  4795.  
  4796.    The following iCalendar object is specified as the content of a MIME
  4797.    message. The example demonstrates a possible meeting request between
  4798.    the originator and recipient of the message.
  4799.  
  4800.      TO:jsmith@host1.com
  4801.      FROM:jdoe@host1.com
  4802.      MIME-VERSION:1.0
  4803.      MESSAGE-ID:<id1@host1.com>
  4804.      CONTENT-TYPE:text/calendar;method=request
  4805.  
  4806.      BEGIN:VCALENDAR
  4807.      METHOD:REQUEST
  4808.      PRODID:-//xyz Corp//NONSGML PDA Calendar Verson 1.0//EN
  4809.      VERSION:2.0
  4810.      BEGIN:VEVENT
  4811.  
  4812.  
  4813.  
  4814. Dawson/Stenerson                   76                  Expires MAY 1998
  4815.  
  4816.  
  4817. Internet Draft       C&S Core Object Specification     October 22, 1997
  4818.  
  4819.  
  4820.      DTSTAMP:19960704T120000Z
  4821.      DTSTART:19960918T143000Z
  4822.      DTEND:19960920T220000Z
  4823.      CATEGORIES:CONFERENCE,PROJECT
  4824.      SUMMARY:Networld+Interop Conference
  4825.      DESCRIPTION:Networld+Interop Conference
  4826.        and Exhibit\nAtlanta World Congress Center\n
  4827.      Atlanta, Georgia
  4828.      END:VEVENT
  4829.      END:VCALENDAR
  4830.  
  4831.    The following example message issues a meeting request that does not
  4832.    require any reply. The message is sent as a singular "text/calendar"
  4833.    content type, body part.
  4834.  
  4835.      From: jsmith@host1.com
  4836.      To: ietf-calendar@imc.org
  4837.      Subject: First IETF-Calendar Working Group Meeting
  4838.      MIME-Version: 1.0
  4839.      Message-ID: <id2@host1.com>
  4840.      Content-Type: text/calendar;method=request
  4841.  
  4842.      BEGIN:VCALENDAR
  4843.      METHOD:REQUEST
  4844.      PRODID:-//RDU Software//NONSGML HandCal//EN
  4845.      VERSION:2.0
  4846.      BEGIN:VEVENT
  4847.      DTSTAMP:19961022T133000Z
  4848.      ATTENDEE;EXPECT=REQUEST:ietf-calendar@imc.org
  4849.      DESCRIPTION:First IETF-Calendaring and Scheduling Working Group
  4850.        Meeting
  4851.      CATEGORIES:MEETING
  4852.      CLASS:PUBLIC
  4853.      CREATED:19961022T083000
  4854.      SUMMARY:IETF Calendaring Working Group Meeting
  4855.      DTSTART:19961210T210000Z
  4856.      DTEND:19961210T220000Z
  4857.      LOCATION:San Jose, CA - Fairmont Hotel
  4858.      UID:guid-1.host1.com
  4859.      END:VEVENT
  4860.      END:VCALENDAR
  4861.  
  4862.  
  4863.    The following is an example of a MIME message with a single body part
  4864.    consisting of a text/calendar content type. The message specifies a
  4865.    meeting request between the originator and recipient of the message.
  4866.  
  4867.      TO:jsmith@host1.com
  4868.      FROM:jdoe@host1.com
  4869.      MIME-VERSION:1.0
  4870.      MESSAGE-ID:<id3@host1.com>
  4871.      CONTENT-TYPE:text/calendar;method=request
  4872.  
  4873.  
  4874.  
  4875.  
  4876.  
  4877. Dawson/Stenerson                   77                  Expires MAY 1998
  4878.  
  4879.  
  4880. Internet Draft       C&S Core Object Specification     October 22, 1997
  4881.  
  4882.  
  4883.      BEGIN:VCALENDAR
  4884.      METHOD:REQUEST
  4885.      VERSION:2.0
  4886.      PRODID:-//ABC Corporation//NONSGML My Product//EN
  4887.      BEGIN:VEVENT
  4888.      DTSTAMP:19970324T1200Z
  4889.      SEQUENCE:0
  4890.      UID:19970324T080045Z-4000F192713-0052@host1.com
  4891.      ATTENDEE;EXPECT=REQUEST:jsmith@host1.com
  4892.      DTSTART:19970324T123000Z
  4893.      DTEND:19970324T210000Z
  4894.      CATEGORIES:CONFERENCE,PROJECT
  4895.      CLASS:PUBLIC
  4896.      SUMMARY:Calendaring Interop Conference
  4897.      DESCRIPTION:Calendaring Interop Conference and Exhibit\n
  4898.       Atlanta, Georgia
  4899.      LOCATION:Atlanta World Congress Center
  4900.      ATTACH;VALUE=URL:file:///xyzCorp.com/conf/bkgrnd.ps
  4901.      END:VEVENT
  4902.      END:VCALENDAR
  4903.  
  4904.    Example of a reply to the above request, accepting the meeting.
  4905.  
  4906.      TO:jdoe@host1.com
  4907.      FROM:jsmith@host1.com
  4908.      MIME-VERSION:1.0
  4909.      MESSAGE-ID:<id4@host1.com>
  4910.      CONTENT-TYPE:text/calendar;method=reply
  4911.  
  4912.      BEGIN:VCALENDAR
  4913.      METHOD:REPLY
  4914.      VERSION:2.0
  4915.      PRODID:-//ABC Corporation//NONSGML My Product//EN
  4916.      BEGIN:VEVENT
  4917.      DTSTAMP:19970324T120000Z
  4918.      SEQUENCE:0
  4919.      UID:19970324T080045Z-4000F192713-0052@host1.com
  4920.      ATTENDEE;STATUS=ACCEPTED;EXPECT=REQUEST:jsmith@host1.com
  4921.      END:VEVENT
  4922.      END:VCALENDAR
  4923.  
  4924.    An example of a meeting cancelation:
  4925.  
  4926.      TO:jsmith@host1.com
  4927.      FROM:jdoe@host1.com
  4928.      MIME-VERSION:1.0
  4929.      MESSAGE-ID:<id5@host1.com>
  4930.      CONTENT-TYPE:text/calendar;method=cancel
  4931.  
  4932.      BEGIN:VCALENDAR
  4933.      METHOD:CANCEL
  4934.      VERSION:2.0
  4935.      PRODID:-//ABC Corporation//NONSGML My Product//EN
  4936.      BEGIN:VEVENT
  4937.  
  4938.  
  4939. Dawson/Stenerson                   78                  Expires MAY 1998
  4940.  
  4941.  
  4942. Internet Draft       C&S Core Object Specification     October 22, 1997
  4943.  
  4944.  
  4945.      DTSTAMP:19970324T120000Z
  4946.      UID:19970324T080045Z-4000F192713-0052@host1.com
  4947.      END:VEVENT
  4948.      END:VCALENDAR
  4949.  
  4950. 14.     Full Copyright Statement
  4951.  
  4952.  
  4953.    "Copyright (C) The Internet Society (date).  All Rights Reserved.
  4954.  
  4955.    This document and translations of it MAY be copied and furnished to
  4956.    others, and derivative works that comment on or otherwise explain it
  4957.    or assist in its implmentation MAY be prepared, copied, published and
  4958.    distributed, in whole or in part, without restriction of any kind,
  4959.    provided that the above copyright notice and this paragraph are
  4960.    included on all such copies and derivative works.  However, this
  4961.    document itself MAY not be modified in any way, such as by removing
  4962.    the copyright notice or references to the Internet Society or other
  4963.    Internet organizations, except as needed for the purpose of
  4964.    developing Internet standards in which case the procedures for
  4965.    copyrights defined in the Internet Standards process MUST be
  4966.    followed, or as required to translate it into languages other than
  4967.    English.
  4968.  
  4969.    The limited permissions granted above are perpetual and will not be
  4970.    revoked by the Internet Society or its successors or assigns.
  4971.  
  4972.    This document and the information contained herein is provided on an
  4973.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  4974.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  4975.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  4976.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  4977.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  4978.  
  4979.  
  4980.  
  4981.  
  4982.  
  4983.  
  4984.  
  4985.  
  4986.  
  4987.  
  4988.  
  4989.  
  4990.  
  4991.  
  4992.  
  4993.  
  4994.  
  4995.  
  4996.  
  4997.  
  4998.  
  4999.  
  5000.  
  5001.  
  5002. Dawson/Stenerson                   79                  Expires MAY 1998
  5003.