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-01.txt < prev    next >
Text File  |  1997-03-26  |  165KB  |  4,527 lines

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