tech-invite   World Map
3GPP     Specs     Glossaries     UICC       IETF     RFCs     Groups     SIP     ABNFs       T+       Search     Home

RFC 2445

 
 
 

Internet Calendaring and Scheduling Core Object Specification (iCalendar)

Part 4 of 4, p. 112 to 148
Prev RFC Part

 


prevText      Top      Up      ToC       Page 112 
4.8.5 Recurrence Component Properties

   The following properties specify recurrence information in calendar
   components.

4.8.5.1 Exception Date/Times

   Property Name: EXDATE

Top      Up      ToC       Page 113 
   Purpose: This property defines the list of date/time exceptions for a
   recurring calendar component.

   Value Type: The default value type for this property is DATE-TIME.
   The value type can be set to DATE.

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

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

   Description: The exception dates, if specified, are used in computing
   the recurrence set. The recurrence set is the complete set of
   recurrence instances for a calendar component. The recurrence set is
   generated by considering the initial "DTSTART" property along with
   the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained
   within the iCalendar object. The "DTSTART" property defines the first
   instance in the recurrence set. Multiple instances of the "RRULE" and
   "EXRULE" properties can also be specified to define more
   sophisticated recurrence sets. The final recurrence set is generated
   by gathering all of the start date-times generated by any of the
   specified "RRULE" and "RDATE" properties, and then excluding any
   start date and times which fall within the union of start date and
   times generated by any specified "EXRULE" and "EXDATE" properties.
   This implies that start date and times within exclusion related
   properties (i.e., "EXDATE" and "EXRULE") take precedence over those
   specified by inclusion properties (i.e., "RDATE" and "RRULE"). Where
   duplicate instances are generated by the "RRULE" and "RDATE"
   properties, only one recurrence is considered. Duplicate instances
   are ignored.

   The "EXDATE" property can be used to exclude the value specified in
   "DTSTART". However, in such cases the original "DTSTART" date MUST
   still be maintained by the calendaring and scheduling system because
   the original "DTSTART" value has inherent usage dependencies by other
   properties such as the "RECURRENCE-ID".

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

     exdate     = "EXDATE" exdtparam ":" exdtval *("," exdtval) CRLF

     exdtparam  = *(

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

                (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /

Top      Up      ToC       Page 114 
                (";" tzidparam) /

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

                (";" xparam)

                )

     exdtval    = date-time / date
     ;Value MUST match value type

   Example: The following is an example of this property:

     EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z

4.8.5.2 Exception Rule

   Property Name: EXRULE

   Purpose: This property defines a rule or repeating pattern for an
   exception to a recurrence set.

   Value Type: RECUR

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

   Conformance: This property can be specified in "VEVENT", "VTODO" or
   "VJOURNAL" calendar components.

   Description: The exception rule, if specified, is used in computing
   the recurrence set. The recurrence set is the complete set of
   recurrence instances for a calendar component. The recurrence set is
   generated by considering the initial "DTSTART" property along with
   the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained
   within the iCalendar object. The "DTSTART" defines the first instance
   in the recurrence set. Multiple instances of the "RRULE" and "EXRULE"
   properties can also be specified to define more sophisticated
   recurrence sets. The final recurrence set is generated by gathering
   all of the start date-times generated by any of the specified "RRULE"
   and "RDATE" properties, and excluding any start date and times which
   fall within the union of start date and times generated by any
   specified "EXRULE" and "EXDATE" properties. This implies that start
   date and times within exclusion related properties (i.e., "EXDATE"
   and "EXRULE") take precedence over those specified by inclusion

Top      Up      ToC       Page 115 
   properties (i.e., "RDATE" and "RRULE"). Where duplicate instances are
   generated by the "RRULE" and "RDATE" properties, only one recurrence
   is considered. Duplicate instances are ignored.

   The "EXRULE" property can be used to exclude the value specified in
   "DTSTART". However, in such cases the original "DTSTART" date MUST
   still be maintained by the calendaring and scheduling system because
   the original "DTSTART" value has inherent usage dependencies by other
   properties such as the "RECURRENCE-ID".

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

     exrule     = "EXRULE" exrparam ":" recur CRLF

     exrparam   = *(";" xparam)

   Example: The following are examples of this property. Except every
   other week, on Tuesday and Thursday for 4 occurrences:

     EXRULE:FREQ=WEEKLY;COUNT=4;INTERVAL=2;BYDAY=TU,TH

   Except daily for 10 occurrences:

     EXRULE:FREQ=DAILY;COUNT=10

   Except yearly in June and July for 8 occurrences:

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

4.8.5.3 Recurrence Date/Times

   Property Name: RDATE

   Purpose: This property defines the list of date/times for a
   recurrence set.

   Value Type: The default value type for this property is DATE-TIME.
   The value type can be set to DATE or PERIOD.

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

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

Top      Up      ToC       Page 116 
   Description: This property can appear along with the "RRULE" property
   to define an aggregate set of repeating occurrences. When they both
   appear in an iCalendar object, the recurring events are defined by
   the union of occurrences defined by both the "RDATE" and "RRULE".

   The recurrence dates, if specified, are used in computing the
   recurrence set. The recurrence set is the complete set of recurrence
   instances for a calendar component. The recurrence set is generated
   by considering the initial "DTSTART" property along with the "RRULE",
   "RDATE", "EXDATE" and "EXRULE" properties contained within the
   iCalendar object. The "DTSTART" property defines the first instance
   in the recurrence set. Multiple instances of the "RRULE" and "EXRULE"
   properties can also be specified to define more sophisticated
   recurrence sets. The final recurrence set is generated by gathering
   all of the start date/times generated by any of the specified "RRULE"
   and "RDATE" properties, and excluding any start date/times which fall
   within the union of start date/times generated by any specified
   "EXRULE" and "EXDATE" properties. This implies that start date/times
   within exclusion related properties (i.e., "EXDATE" and "EXRULE")
   take precedence over those specified by inclusion properties (i.e.,
   "RDATE" and "RRULE"). Where duplicate instances are generated by the
   "RRULE" and "RDATE" properties, only one recurrence is considered.
   Duplicate instances are ignored.

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

     rdate      = "RDATE" rdtparam ":" rdtval *("," rdtval) CRLF

     rdtparam   = *(

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

                (";" "VALUE" "=" ("DATE-TIME" / "DATE" / "PERIOD")) /
                (";" tzidparam) /

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

                (";" xparam)

                )

     rdtval     = date-time / date / period
     ;Value MUST match value type

   Example: The following are examples of this property:

Top      Up      ToC       Page 117 
     RDATE:19970714T123000Z

     RDATE;TZID=US-EASTERN:19970714T083000

     RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z,
      19960404T010000Z/PT3H

     RDATE;VALUE=DATE:19970101,19970120,19970217,19970421
      19970526,19970704,19970901,19971014,19971128,19971129,19971225

4.8.5.4 Recurrence Rule

   Property Name: RRULE

   Purpose: This property defines a rule or repeating pattern for
   recurring events, to-dos, or time zone definitions.

   Value Type: RECUR

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

   Conformance: This property can be specified one or more times in
   recurring "VEVENT", "VTODO" and "VJOURNAL" calendar components. It
   can also be specified once in each STANDARD or DAYLIGHT sub-component
   of the "VTIMEZONE" calendar component.

   Description: The recurrence rule, if specified, is used in computing
   the recurrence set. The recurrence set is the complete set of
   recurrence instances for a calendar component. The recurrence set is
   generated by considering the initial "DTSTART" property along with
   the "RRULE", "RDATE", "EXDATE" and "EXRULE" properties contained
   within the iCalendar object. The "DTSTART" property defines the first
   instance in the recurrence set. Multiple instances of the "RRULE" and
   "EXRULE" properties can also be specified to define more
   sophisticated recurrence sets. The final recurrence set is generated
   by gathering all of the start date/times generated by any of the
   specified "RRULE" and "RDATE" properties, and excluding any start
   date/times which fall within the union of start date/times generated
   by any specified "EXRULE" and "EXDATE" properties. This implies that
   start date/times within exclusion related properties (i.e., "EXDATE"
   and "EXRULE") take precedence over those specified by inclusion
   properties (i.e., "RDATE" and "RRULE"). Where duplicate instances are
   generated by the "RRULE" and "RDATE" properties, only one recurrence
   is considered. Duplicate instances are ignored.

Top      Up      ToC       Page 118 
   The "DTSTART" and "DTEND" property pair or "DTSTART" and "DURATION"
   property pair, specified within the iCalendar object defines the
   first instance of the recurrence. When used with a recurrence rule,
   the "DTSTART" and "DTEND" properties MUST be specified in local time
   and the appropriate set of "VTIMEZONE" calendar components MUST be
   included. For detail on the usage of the "VTIMEZONE" calendar
   component, see the "VTIMEZONE" calendar component definition.

   Any duration associated with the iCalendar object applies to all
   members of the generated recurrence set. Any modified duration for
   specific recurrences MUST be explicitly specified using the "RDATE"
   property.

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

     rrule      = "RRULE" rrulparam ":" recur CRLF

     rrulparam  = *(";" xparam)

   Example: All examples assume the Eastern United States time zone.

   Daily for 10 occurrences:

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=DAILY;COUNT=10

     ==> (1997 9:00 AM EDT)September 2-11

   Daily until December 24, 1997:

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=DAILY;UNTIL=19971224T000000Z

     ==> (1997 9:00 AM EDT)September 2-30;October 1-25
         (1997 9:00 AM EST)October 26-31;November 1-30;December 1-23

   Every other day - forever:

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=DAILY;INTERVAL=2
     ==> (1997 9:00 AM EDT)September2,4,6,8...24,26,28,30;
          October 2,4,6...20,22,24
         (1997 9:00 AM EST)October 26,28,30;November 1,3,5,7...25,27,29;
          Dec 1,3,...

   Every 10 days, 5 occurrences:

Top      Up      ToC       Page 119 
     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5

     ==> (1997 9:00 AM EDT)September 2,12,22;October 2,12

   Everyday in January, for 3 years:

     DTSTART;TZID=US-Eastern:19980101T090000
     RRULE:FREQ=YEARLY;UNTIL=20000131T090000Z;
      BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA
     or
     RRULE:FREQ=DAILY;UNTIL=20000131T090000Z;BYMONTH=1

     ==> (1998 9:00 AM EDT)January 1-31
         (1999 9:00 AM EDT)January 1-31
         (2000 9:00 AM EDT)January 1-31

   Weekly for 10 occurrences

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=WEEKLY;COUNT=10

     ==> (1997 9:00 AM EDT)September 2,9,16,23,30;October 7,14,21
         (1997 9:00 AM EST)October 28;November 4

   Weekly until December 24, 1997

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=WEEKLY;UNTIL=19971224T000000Z

     ==> (1997 9:00 AM EDT)September 2,9,16,23,30;October 7,14,21
         (1997 9:00 AM EST)October 28;November 4,11,18,25;
                           December 2,9,16,23
   Every other week - forever:

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=SU

     ==> (1997 9:00 AM EDT)September 2,16,30;October 14
         (1997 9:00 AM EST)October 28;November 11,25;December 9,23
         (1998 9:00 AM EST)January 6,20;February
     ...

   Weekly on Tuesday and Thursday for 5 weeks:

    DTSTART;TZID=US-Eastern:19970902T090000
    RRULE:FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH
    or

Top      Up      ToC       Page 120 
    RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH

    ==> (1997 9:00 AM EDT)September 2,4,9,11,16,18,23,25,30;October 2

   Every other week on Monday, Wednesday and Friday until December 24,
   1997, but starting on Tuesday, September 2, 1997:

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;
      BYDAY=MO,WE,FR
     ==> (1997 9:00 AM EDT)September 2,3,5,15,17,19,29;October
     1,3,13,15,17
         (1997 9:00 AM EST)October 27,29,31;November 10,12,14,24,26,28;
                           December 8,10,12,22

   Every other week on Tuesday and Thursday, for 8 occurrences:

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH

     ==> (1997 9:00 AM EDT)September 2,4,16,18,30;October 2,14,16

   Monthly on the 1st Friday for ten occurrences:

     DTSTART;TZID=US-Eastern:19970905T090000
     RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR

     ==> (1997 9:00 AM EDT)September 5;October 3
         (1997 9:00 AM EST)November 7;Dec 5
         (1998 9:00 AM EST)January 2;February 6;March 6;April 3
         (1998 9:00 AM EDT)May 1;June 5

   Monthly on the 1st Friday until December 24, 1997:

     DTSTART;TZID=US-Eastern:19970905T090000
     RRULE:FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR

     ==> (1997 9:00 AM EDT)September 5;October 3
         (1997 9:00 AM EST)November 7;December 5

   Every other month on the 1st and last Sunday of the month for 10
   occurrences:

     DTSTART;TZID=US-Eastern:19970907T090000
     RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU

     ==> (1997 9:00 AM EDT)September 7,28
         (1997 9:00 AM EST)November 2,30

Top      Up      ToC       Page 121 
         (1998 9:00 AM EST)January 4,25;March 1,29
         (1998 9:00 AM EDT)May 3,31

   Monthly on the second to last Monday of the month for 6 months:

     DTSTART;TZID=US-Eastern:19970922T090000
     RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO

     ==> (1997 9:00 AM EDT)September 22;October 20
         (1997 9:00 AM EST)November 17;December 22
         (1998 9:00 AM EST)January 19;February 16

   Monthly on the third to the last day of the month, forever:

     DTSTART;TZID=US-Eastern:19970928T090000
     RRULE:FREQ=MONTHLY;BYMONTHDAY=-3

     ==> (1997 9:00 AM EDT)September 28
         (1997 9:00 AM EST)October 29;November 28;December 29
         (1998 9:00 AM EST)January 29;February 26
     ...

   Monthly on the 2nd and 15th of the month for 10 occurrences:

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15

     ==> (1997 9:00 AM EDT)September 2,15;October 2,15
         (1997 9:00 AM EST)November 2,15;December 2,15
         (1998 9:00 AM EST)January 2,15

   Monthly on the first and last day of the month for 10 occurrences:

     DTSTART;TZID=US-Eastern:19970930T090000
     RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1

     ==> (1997 9:00 AM EDT)September 30;October 1
         (1997 9:00 AM EST)October 31;November 1,30;December 1,31
         (1998 9:00 AM EST)January 1,31;February 1

   Every 18 months on the 10th thru 15th of the month for 10
   occurrences:

     DTSTART;TZID=US-Eastern:19970910T090000
     RRULE:FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,13,14,
      15

     ==> (1997 9:00 AM EDT)September 10,11,12,13,14,15

Top      Up      ToC       Page 122 
         (1999 9:00 AM EST)March 10,11,12,13

   Every Tuesday, every other month:

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU

     ==> (1997 9:00 AM EDT)September 2,9,16,23,30
         (1997 9:00 AM EST)November 4,11,18,25
         (1998 9:00 AM EST)January 6,13,20,27;March 3,10,17,24,31
     ...

   Yearly in June and July for 10 occurrences:

     DTSTART;TZID=US-Eastern:19970610T090000
     RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7
     ==> (1997 9:00 AM EDT)June 10;July 10
         (1998 9:00 AM EDT)June 10;July 10
         (1999 9:00 AM EDT)June 10;July 10
         (2000 9:00 AM EDT)June 10;July 10
         (2001 9:00 AM EDT)June 10;July 10
     Note: Since none of the BYDAY, BYMONTHDAY or BYYEARDAY components
     are specified, the day is gotten from DTSTART

   Every other year on January, February, and March for 10 occurrences:

     DTSTART;TZID=US-Eastern:19970310T090000
     RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3

     ==> (1997 9:00 AM EST)March 10
         (1999 9:00 AM EST)January 10;February 10;March 10
         (2001 9:00 AM EST)January 10;February 10;March 10
         (2003 9:00 AM EST)January 10;February 10;March 10

   Every 3rd year on the 1st, 100th and 200th day for 10 occurrences:

     DTSTART;TZID=US-Eastern:19970101T090000
     RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200

     ==> (1997 9:00 AM EST)January 1
         (1997 9:00 AM EDT)April 10;July 19
         (2000 9:00 AM EST)January 1
         (2000 9:00 AM EDT)April 9;July 18
         (2003 9:00 AM EST)January 1
         (2003 9:00 AM EDT)April 10;July 19
         (2006 9:00 AM EST)January 1

   Every 20th Monday of the year, forever:

Top      Up      ToC       Page 123 
     DTSTART;TZID=US-Eastern:19970519T090000
     RRULE:FREQ=YEARLY;BYDAY=20MO

     ==> (1997 9:00 AM EDT)May 19
         (1998 9:00 AM EDT)May 18
         (1999 9:00 AM EDT)May 17
     ...

   Monday of week number 20 (where the default start of the week is
   Monday), forever:

     DTSTART;TZID=US-Eastern:19970512T090000
     RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO

     ==> (1997 9:00 AM EDT)May 12
         (1998 9:00 AM EDT)May 11
         (1999 9:00 AM EDT)May 17
     ...

   Every Thursday in March, forever:

     DTSTART;TZID=US-Eastern:19970313T090000
     RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH

     ==> (1997 9:00 AM EST)March 13,20,27
         (1998 9:00 AM EST)March 5,12,19,26
         (1999 9:00 AM EST)March 4,11,18,25
     ...

   Every Thursday, but only during June, July, and August, forever:

     DTSTART;TZID=US-Eastern:19970605T090000
     RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8

     ==> (1997 9:00 AM EDT)June 5,12,19,26;July 3,10,17,24,31;
                       August 7,14,21,28
         (1998 9:00 AM EDT)June 4,11,18,25;July 2,9,16,23,30;
                       August 6,13,20,27
         (1999 9:00 AM EDT)June 3,10,17,24;July 1,8,15,22,29;
                       August 5,12,19,26
     ...

   Every Friday the 13th, forever:

     DTSTART;TZID=US-Eastern:19970902T090000
     EXDATE;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13

Top      Up      ToC       Page 124 
     ==> (1998 9:00 AM EST)February 13;March 13;November 13
         (1999 9:00 AM EDT)August 13
         (2000 9:00 AM EDT)October 13
     ...

   The first Saturday that follows the first Sunday of the month,
    forever:

     DTSTART;TZID=US-Eastern:19970913T090000
     RRULE:FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13

     ==> (1997 9:00 AM EDT)September 13;October 11
         (1997 9:00 AM EST)November 8;December 13
         (1998 9:00 AM EST)January 10;February 7;March 7
         (1998 9:00 AM EDT)April 11;May 9;June 13...
     ...

   Every four years, the first Tuesday after a Monday in November,
   forever (U.S. Presidential Election day):

     DTSTART;TZID=US-Eastern:19961105T090000
     RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,
      5,6,7,8

     ==> (1996 9:00 AM EST)November 5
         (2000 9:00 AM EST)November 7
         (2004 9:00 AM EST)November 2
     ...

   The 3rd instance into the month of one of Tuesday, Wednesday or
   Thursday, for the next 3 months:

     DTSTART;TZID=US-Eastern:19970904T090000
     RRULE:FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3

     ==> (1997 9:00 AM EDT)September 4;October 7
         (1997 9:00 AM EST)November 6

   The 2nd to last weekday of the month:

     DTSTART;TZID=US-Eastern:19970929T090000
     RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2

     ==> (1997 9:00 AM EDT)September 29
         (1997 9:00 AM EST)October 30;November 27;December 30
         (1998 9:00 AM EST)January 29;February 26;March 30
     ...

Top      Up      ToC       Page 125 
   Every 3 hours from 9:00 AM to 5:00 PM on a specific day:

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z

     ==> (September 2, 1997 EDT)09:00,12:00,15:00

   Every 15 minutes for 6 occurrences:

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=MINUTELY;INTERVAL=15;COUNT=6

     ==> (September 2, 1997 EDT)09:00,09:15,09:30,09:45,10:00,10:15

   Every hour and a half for 4 occurrences:

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=MINUTELY;INTERVAL=90;COUNT=4

     ==> (September 2, 1997 EDT)09:00,10:30;12:00;13:30

   Every 20 minutes from 9:00 AM to 4:40 PM every day:

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40
     or
     RRULE:FREQ=MINUTELY;INTERVAL=20;BYHOUR=9,10,11,12,13,14,15,16

     ==> (September 2, 1997 EDT)9:00,9:20,9:40,10:00,10:20,
                                ... 16:00,16:20,16:40
         (September 3, 1997 EDT)9:00,9:20,9:40,10:00,10:20,
                               ...16:00,16:20,16:40
     ...

   An example where the days generated makes a difference because of
   WKST:

     DTSTART;TZID=US-Eastern:19970805T090000
     RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO

     ==> (1997 EDT)Aug 5,10,19,24

     changing only WKST from MO to SU, yields different results...

     DTSTART;TZID=US-Eastern:19970805T090000
     RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU
     ==> (1997 EDT)August 5,17,19,31

Top      Up      ToC       Page 126 
4.8.6 Alarm Component Properties

   The following properties specify alarm information in calendar
   components.

4.8.6.1 Action

   Property Name: ACTION

   Purpose: This property defines the action to be invoked when an alarm
   is triggered.

   Value Type: TEXT

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

   Conformance: This property MUST be specified once in a "VALARM"
   calendar component.

   Description: Each "VALARM" calendar component has a particular type
   of action associated with it. This property specifies the type of
   action

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

     action     = "ACTION" actionparam ":" actionvalue CRLF

     actionparam        = *(";" xparam)

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

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

     ACTION:AUDIO

     ACTION:DISPLAY

     ACTION:PROCEDURE

4.8.6.2 Repeat Count

   Property Name: REPEAT

   Purpose: This property defines the number of time the alarm should be
   repeated, after the initial trigger.

Top      Up      ToC       Page 127 
   Value Type: INTEGER

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

   Conformance: This property can be specified in a "VALARM" calendar
   component.

   Description: If the alarm triggers more than once, then this property
   MUST be specified along with the "DURATION" property.

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

     repeatcnt  = "REPEAT" repparam ":" integer CRLF
     ;Default is "0", zero.

     repparam   = *(";" xparam)

   Example: The following is an example of this property for an alarm
   that repeats 4 additional times with a 5 minute delay after the
   initial triggering of the alarm:

     REPEAT:4
     DURATION:PT5M

4.8.6.3 Trigger

   Property Name: TRIGGER

   Purpose: This property specifies when an alarm will trigger.

   Value Type: The default value type is DURATION. The value type can be
   set to a DATE-TIME value type, in which case the value MUST specify a
   UTC formatted DATE-TIME value.

   Property Parameters: Non-standard, value data type, time zone
   identifier or trigger relationship property parameters can be
   specified on this property. The trigger relationship property
   parameter MUST only be specified when the value type is DURATION.

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

   Description: Within the "VALARM" calendar component, this property
   defines when the alarm will trigger. The default value type is
   DURATION, specifying a relative time for the trigger of the alarm.
   The default duration is relative to the start of an event or to-do
   that the alarm is associated with. The duration can be explicitly set

Top      Up      ToC       Page 128 
   to trigger from either the end or the start of the associated event
   or to-do with the "RELATED" parameter. A value of START will set the
   alarm to trigger off the start of the associated event or to-do. A
   value of END will set the alarm to trigger off the end of the
   associated event or to-do.

   Either a positive or negative duration may be specified for the
   "TRIGGER" property. An alarm with a positive duration is triggered
   after the associated start or end of the event or to-do. An alarm
   with a negative duration is triggered before the associated start or
   end of the event or to-do.

   The "RELATED" property parameter is not valid if the value type of
   the property is set to DATE-TIME (i.e., for an absolute date and time
   alarm trigger). If a value type of DATE-TIME is specified, then the
   property value MUST be specified in the UTC time format. If an
   absolute trigger is specified on an alarm for a recurring event or
   to-do, then the alarm will only trigger for the specified absolute
   date/time, along with any specified repeating instances.

   If the trigger is set relative to START, then the "DTSTART" property
   MUST be present in the associated "VEVENT" or "VTODO" calendar
   component. If an alarm is specified for an event with the trigger set
   relative to the END, then the "DTEND" property or the "DSTART" and
   "DURATION' properties MUST be present in the associated "VEVENT"
   calendar component. If the alarm is specified for a to-do with a
   trigger set relative to the END, then either the "DUE" property or
   the "DSTART" and "DURATION' properties MUST be present in the
   associated "VTODO" calendar component.

   Alarms specified in an event or to-do which is defined in terms of a
   DATE value type will be triggered relative to 00:00:00 UTC on the
   specified date. For example, if "DTSTART:19980205, then the duration
   trigger will be relative to19980205T000000Z.

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

     trigger    = "TRIGGER" (trigrel / trigabs)

     trigrel    = *(

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

                  (";" "VALUE" "=" "DURATION") /
                  (";" trigrelparam) /

                ; the following is optional,

Top      Up      ToC       Page 129 
                ; and MAY occur more than once

                  (";" xparam)
                  ) ":"  dur-value

     trigabs    = 1*(

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

                  (";" "VALUE" "=" "DATE-TIME") /

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

                  (";" xparam)

                  ) ":" date-time

   Example: A trigger set 15 minutes prior to the start of the event or
   to-do.

     TRIGGER:-P15M

   A trigger set 5 minutes after the end of the event or to-do.

     TRIGGER;RELATED=END:P5M

   A trigger set to an absolute date/time.

     TRIGGER;VALUE=DATE-TIME:19980101T050000Z

4.8.7 Change Management Component Properties

   The following properties specify change management information in
   calendar components.

4.8.7.1 Date/Time Created

   Property Name: CREATED

   Purpose: This property specifies the date and time that the calendar
   information was created by the calendar user agent in the calendar
   store.

        Note: This is analogous to the creation date and time for a file
        in the file system.

Top      Up      ToC       Page 130 
   Value Type: DATE-TIME

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

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

   Description: The date and time is a UTC value.

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

     created    = "CREATED" creaparam ":" date-time CRLF

     creaparam  = *(";" xparam)

   Example: The following is an example of this property:

     CREATED:19960329T133000Z

4.8.7.2 Date/Time Stamp

   Property Name: DTSTAMP

   Purpose: The property indicates the date/time that the instance of
   the iCalendar object was created.

   Value Type: DATE-TIME

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

   Conformance: This property MUST be included in the "VEVENT", "VTODO",
   "VJOURNAL" or "VFREEBUSY" calendar components.

   Description: The value MUST be specified in the UTC time format.

   This property is also useful to protocols such as [IMIP] that have
   inherent latency issues with the delivery of content. This property
   will assist in the proper sequencing of messages containing iCalendar
   objects.

   This property is different than the "CREATED" and "LAST-MODIFIED"
   properties. These two properties are used to specify when the
   particular calendar data in the calendar store was created and last
   modified. This is different than when the iCalendar object
   representation of the calendar service information was created or
   last modified.

Top      Up      ToC       Page 131 
   Format Definition: The property is defined by the following notation:

     dtstamp    = "DTSTAMP" stmparam ":" date-time CRLF

     stmparam   = *(";" xparam)

   Example:

     DTSTAMP:19971210T080000Z

4.8.7.3 Last Modified

   Property Name: LAST-MODIFIED

   Purpose: The property specifies the date and time that the
   information associated with the calendar component was last revised
   in the calendar store.

        Note: This is analogous to the modification date and time for a
        file in the file system.

   Value Type: DATE-TIME

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

   Conformance: This property can be specified in the "EVENT", "VTODO",
   "VJOURNAL" or "VTIMEZONE" calendar components.

   Description: The property value MUST be specified in the UTC time
   format.

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

     last-mod   = "LAST-MODIFIED" lstparam ":" date-time CRLF

     lstparam   = *(";" xparam)

   Example: The following is are examples of this property:

     LAST-MODIFIED:19960817T133000Z

4.8.7.4 Sequence Number

   Property Name: SEQUENCE

   Purpose: This property defines the revision sequence number of the
   calendar component within a sequence of revisions.

Top      Up      ToC       Page 132 
   Value Type: integer

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

   Conformance: The property can be specified in "VEVENT", "VTODO" or
   "VJOURNAL" calendar component.

   Description: When a calendar component is created, its sequence
   number is zero (US-ASCII decimal 48). It is monotonically incremented
   by the "Organizer's" CUA each time the "Organizer" makes a
   significant revision to the calendar component. When the "Organizer"
   makes changes to one of the following properties, the sequence number
   MUST be incremented:

     .  "DTSTART"

     .  "DTEND"

     .  "DUE"

     .  "RDATE"

     .  "RRULE"

     .  "EXDATE"

     .  "EXRULE"

     .  "STATUS"

   In addition, changes made by the "Organizer" to other properties can
   also force the sequence number to be incremented. The "Organizer" CUA
   MUST increment the sequence number when ever it makes changes to
   properties in the calendar component that the "Organizer" deems will
   jeopardize the validity of the participation status of the
   "Attendees". For example, changing the location of a meeting from one
   locale to another distant locale could effectively impact the
   participation status of the "Attendees".

   The "Organizer" includes this property in an iCalendar object that it
   sends to an "Attendee" to specify the current version of the calendar
   component.

   The "Attendee" includes this property in an iCalendar object that it
   sends to the "Organizer" to specify the version of the calendar
   component that the "Attendee" is referring to.

Top      Up      ToC       Page 133 
   A change to the sequence number is not the mechanism that an
   "Organizer" uses to request a response from the "Attendees". The
   "RSVP" parameter on the "ATTENDEE" property is used by the
   "Organizer" to indicate that a response from the "Attendees" is
   requested.

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

     seq = "SEQUENCE" seqparam ":" integer CRLF
     ; Default is "0"

     seqparam   = *(";" xparam)

   Example: The following is an example of this property for a calendar
   component that was just created by the "Organizer".

     SEQUENCE:0

   The following is an example of this property for a calendar component
   that has been revised two different times by the "Organizer".

     SEQUENCE:2

4.8.8 Miscellaneous Component Properties

   The following properties specify information about a number of
   miscellaneous features of calendar components.

4.8.8.1 Non-standard Properties

   Property Name: Any property name with a "X-" prefix

   Purpose: This class of property provides a framework for defining
   non-standard properties.

   Value Type: TEXT

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

   Conformance: This property can be specified in any calendar
   component.

   Description: The MIME Calendaring and Scheduling Content Type
   provides a "standard mechanism for doing non-standard things". This
   extension support is provided for implementers to "push the envelope"
   on the existing version of the memo. Extension properties are

Top      Up      ToC       Page 134 
   specified by property and/or property parameter names that have the
   prefix text of "X-" (the two character sequence: LATIN CAPITAL LETTER
   X character followed by the HYPEN-MINUS character). It is recommended
   that vendors concatenate onto this sentinel another short prefix text
   to identify the vendor. This will facilitate readability of the
   extensions and minimize possible collision of names between different
   vendors. User agents that support this content type are expected to
   be able to parse the extension properties and property parameters but
   can ignore them.

   At present, there is no registration authority for names of extension
   properties and property parameters. The data type for this property
   is TEXT. Optionally, the data type can be any of the other valid data
   types.

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

     x-prop     = x-name *(";" xparam) [";" languageparam] ":" text CRLF
        ; Lines longer than 75 octets should be folded

   Example: The following might be the ABC vendor's extension for an
   audio-clip form of subject property:

     X-ABC-MMSUBJ;X-ABC-MMSUBJTYPE=wave:http://load.noise.org/mysubj.wav

4.8.8.2 Request Status

   Property Name: REQUEST-STATUS

   Purpose: This property defines the status code returned for a
   scheduling request.

   Value Type: TEXT

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

   Conformance: The property can be specified in "VEVENT", "VTODO",
   "VJOURNAL" or "VFREEBUSY" calendar component.

   Description: This property is used to return status code information
   related to the processing of an associated iCalendar object. The data
   type for this property is TEXT.

   The value consists of a short return status component, a longer
   return status description component, and optionally a status-specific
   data component. The components of the value are separated by the
   SEMICOLON character (US-ASCII decimal 59).

Top      Up      ToC       Page 135 
   The short return status is a PERIOD character (US-ASCII decimal 46)
   separated 3-tuple of integers. For example, "3.1.1". The successive
   levels of integers provide for a successive level of status code
   granularity.

   The following are initial classes for the return status code.
   Individual iCalendar object methods will define specific return
   status codes for these classes. In addition, other classes for the
   return status code may be defined using the registration process
   defined later in this memo.

     |==============+===============================================|
     | Short Return | Longer Return Status Description              |
     | Status Code  |                                               |
     |==============+===============================================|
     |    1.xx      | Preliminary success. This class of status     |
     |              | of status code indicates that the request has |
     |              | request has been initially processed but that |
     |              | completion is pending.                        |
     |==============+===============================================|
     |    2.xx      | Successful. This class of status code         |
     |              | indicates that the request was completed      |
     |              | successfuly. However, the exact status code   |
     |              | can indicate that a fallback has been taken.  |
     |==============+===============================================|
     |    3.xx      | Client Error. This class of status code       |
     |              | indicates that the request was not successful.|
     |              | The error is the result of either a syntax or |
     |              | a semantic error in the client formatted      |
     |              | request. Request should not be retried until  |
     |              | the condition in the request is corrected.    |
     |==============+===============================================|
     |    4.xx      | Scheduling Error. This class of status code   |
     |              | indicates that the request was not successful.|
     |              | Some sort of error occurred within the        |
     |              | calendaring and scheduling service, not       |
     |              | directly related to the request itself.       |
     |==============+===============================================|

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

     rstatus    = "REQUEST-STATUS" rstatparam ":"
                  statcode ";" statdesc [";" extdata]

     rstatparam = *(

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

Top      Up      ToC       Page 136 
                (";" languageparm) /

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

                (";" xparam)

                )

     statcode   = 1*DIGIT *("." 1*DIGIT)
     ;Hierarchical, numeric return status code

     statdesc   = text
     ;Textual status description

     extdata    = text
     ;Textual exception data. For example, the offending property
     ;name and value or complete property line.

   Example: The following are some possible examples of this property.
   The COMMA and SEMICOLON separator characters in the property value
   are BACKSLASH character escaped because they appear in a  text value.

     REQUEST-STATUS:2.0;Success

     REQUEST-STATUS:3.1;Invalid property value;DTSTART:96-Apr-01

     REQUEST-STATUS:2.8; Success\, repeating event ignored. Scheduled
      as a single event.;RRULE:FREQ=WEEKLY\;INTERVAL=2

     REQUEST-STATUS:4.1;Event conflict. Date/time is busy.

     REQUEST-STATUS:3.7;Invalid calendar user;ATTENDEE:
      MAILTO:jsmith@host.com

5 iCalendar Object Examples

   The following examples are provided as an informational source of
   illustrative iCalendar objects consistent with this content type.

   The following example specifies a three-day conference that begins at
   8:00 AM EDT, September 18, 1996 and end at 6:00 PM EDT, September 20,
   1996.

     BEGIN:VCALENDAR PRODID:-//xyz Corp//NONSGML PDA Calendar Verson
     1.0//EN VERSION:2.0 BEGIN:VEVENT DTSTAMP:19960704T120000Z
     UID:uid1@host.com ORGANIZER:MAILTO:jsmith@host.com
     DTSTART:19960918T143000Z DTEND:19960920T220000Z STATUS:CONFIRMED

Top      Up      ToC       Page 137 
     CATEGORIES:CONFERENCE SUMMARY:Networld+Interop Conference
     DESCRIPTION:Networld+Interop Conference
       and Exhibit\nAtlanta World Congress Center\n
      Atlanta, Georgia END:VEVENT END:VCALENDAR

   The following example specifies a group scheduled meeting that begin
   at 8:30 AM EST on March 12, 1998 and end at 9:30 AM EST on March 12,
   1998. The "Organizer" has scheduled the meeting with one or more
   calendar users in a group. A time zone specification for Eastern
   United States has been specified.

     BEGIN:VCALENDAR
     PRODID:-//RDU Software//NONSGML HandCal//EN
     VERSION:2.0
     BEGIN:VTIMEZONE
     TZID:US-Eastern
     BEGIN:STANDARD
     DTSTART:19981025T020000
     RDATE:19981025T020000
     TZOFFSETFROM:-0400
     TZOFFSETTO:-0500
     TZNAME:EST
     END:STANDARD
     BEGIN:DAYLIGHT
     DTSTART:19990404T020000
     RDATE:19990404T020000
     TZOFFSETFROM:-0500
     TZOFFSETTO:-0400
     TZNAME:EDT
     END:DAYLIGHT
     END:VTIMEZONE
     BEGIN:VEVENT
     DTSTAMP:19980309T231000Z
     UID:guid-1.host1.com
     ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@host.com
     ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP:
      MAILTO:employee-A@host.com
     DESCRIPTION:Project XYZ Review Meeting
     CATEGORIES:MEETING
     CLASS:PUBLIC
     CREATED:19980309T130000Z
     SUMMARY:XYZ Project Review
     DTSTART;TZID=US-Eastern:19980312T083000
     DTEND;TZID=US-Eastern:19980312T093000
     LOCATION:1CP Conference Room 4350
     END:VEVENT
     END:VCALENDAR

Top      Up      ToC       Page 138 
   The following is an example of an iCalendar object passed in a MIME
   message with a single body part consisting of a "text/calendar"
   Content Type.

     TO:jsmith@host1.com
     FROM:jdoe@host1.com
     MIME-VERSION:1.0
     MESSAGE-ID:<id3@host1.com>
     CONTENT-TYPE:text/calendar

     BEGIN:VCALENDAR
     METHOD:xyz
     VERSION:2.0
     PRODID:-//ABC Corporation//NONSGML My Product//EN
     BEGIN:VEVENT
     DTSTAMP:19970324T1200Z
     SEQUENCE:0
     UID:uid3@host1.com
     ORGANIZER:MAILTO:jdoe@host1.com
     ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host1.com
     DTSTART:19970324T123000Z
     DTEND:19970324T210000Z
     CATEGORIES:MEETING,PROJECT
     CLASS:PUBLIC
     SUMMARY:Calendaring Interoperability Planning Meeting
     DESCRIPTION:Discuss how we can test c&s interoperability\n
      using iCalendar and other IETF standards.
     LOCATION:LDB Lobby
     ATTACH;FMTTYPE=application/postscript:ftp://xyzCorp.com/pub/
      conf/bkgrnd.ps
     END:VEVENT
     END:VCALENDAR

   The following is an example of a to-do due on April 15, 1998. An
   audio alarm has been specified to remind the calendar user at noon,
   the day before the to-do is expected to be completed and repeat
   hourly, four additional times. The to-do definition has been modified
   twice since it was initially created.

     BEGIN:VCALENDAR
     VERSION:2.0
     PRODID:-//ABC Corporation//NONSGML My Product//EN
     BEGIN:VTODO
     DTSTAMP:19980130T134500Z
     SEQUENCE:2
     UID:uid4@host1.com
     ORGANIZER:MAILTO:unclesam@us.gov
     ATTENDEE;PARTSTAT=ACCEPTED:MAILTO:jqpublic@host.com

Top      Up      ToC       Page 139 
     DUE:19980415T235959
     STATUS:NEEDS-ACTION
     SUMMARY:Submit Income Taxes
     BEGIN:VALARM
     ACTION:AUDIO
     TRIGGER:19980403T120000
     ATTACH;FMTTYPE=audio/basic:http://host.com/pub/audio-
      files/ssbanner.aud
     REPEAT:4
     DURATION:PT1H
     END:VALARM
     END:VTODO
     END:VCALENDAR

   The following is an example of a journal entry.

     BEGIN:VCALENDAR
     VERSION:2.0
     PRODID:-//ABC Corporation//NONSGML My Product//EN
     BEGIN:VJOURNAL
     DTSTAMP:19970324T120000Z
     UID:uid5@host1.com
     ORGANIZER:MAILTO:jsmith@host.com
     STATUS:DRAFT
     CLASS:PUBLIC
     CATEGORY:Project Report, XYZ, Weekly Meeting
     DESCRIPTION:Project xyz Review Meeting Minutes\n
      Agenda\n1. Review of project version 1.0 requirements.\n2.
     Definition
      of project processes.\n3. Review of project schedule.\n
      Participants: John Smith, Jane Doe, Jim Dandy\n-It was
       decided that the requirements need to be signed off by
       product marketing.\n-Project processes were accepted.\n
      -Project schedule needs to account for scheduled holidays
       and employee vacation time. Check with HR for specific
       dates.\n-New schedule will be distributed by Friday.\n-
      Next weeks meeting is cancelled. No meeting until 3/23.
     END:VJOURNAL
     END:VCALENDAR

   The following is an example of published busy time information. The
   iCalendar object might be placed in the network resource
   www.host.com/calendar/busytime/jsmith.ifb.

     BEGIN:VCALENDAR
     VERSION:2.0
     PRODID:-//RDU Software//NONSGML HandCal//EN
     BEGIN:VFREEBUSY

Top      Up      ToC       Page 140 
     ORGANIZER:MAILTO:jsmith@host.com
     DTSTART:19980313T141711Z
     DTEND:19980410T141711Z
     FREEBUSY:19980314T233000Z/19980315T003000Z
     FREEBUSY:19980316T153000Z/19980316T163000Z
     FREEBUSY:19980318T030000Z/19980318T040000Z
     URL:http://www.host.com/calendar/busytime/jsmith.ifb
     END:VFREEBUSY
     END:VCALENDAR

6 Recommended Practices

   These recommended practices should be followed in order to assure
   consistent handling of the following cases for an iCalendar object.

   1.  Content lines longer than 75 octets SHOULD be folded.

   2.  A calendar entry with a "DTSTART" property but no "DTEND"
       property does not take up any time. It is intended to represent
       an event that is associated with a given calendar date and time
       of day, such as an anniversary. Since the event does not take up
       any time, it MUST NOT be used to record busy time no matter what
       the value for the "TRANSP" property.

   3.  When the "DTSTART" and "DTEND", for "VEVENT", "VJOURNAL" and
       "VFREEBUSY" calendar components, and "DTSTART" and "DUE", for
       "VTODO" calendar components, have the same value data type (e.g.,
       DATE-TIME), they SHOULD specify values in the same time format
       (e.g., UTC time format).

   4.  When the combination of the "RRULE" and "RDATE" properties on an
       iCalendar object produces multiple instances having the same
       start date/time, they should be collapsed to, and considered as,
       a single instance.

   5.  When a calendar user receives multiple requests for the same
       calendar component (e.g., REQUEST for a "VEVENT" calendar
       component) as a result of being on multiple mailing lists
       specified by "ATTENDEE" properties in the request, they SHOULD
       respond to only one of the requests. The calendar user SHOULD
       also specify (using the "MEMBER" parameter of the "ATTENDEE"
       property) which mailing list they are a member of.

   6.  An implementation can truncate a "SUMMARY" property value to 255
       characters.

Top      Up      ToC       Page 141 
   7.  If seconds of the minute are not supported by an implementation,
       then a value of "00" SHOULD be specified for the seconds
       component in a time value.

   8.  If the value type parameter (VALUE=) contains an unknown value
       type, it SHOULD be treated as TEXT.

   9.  TZURL values SHOULD NOT be specified as a FILE URI type. This URI
       form can be useful within an organization, but is problematic in
       the Internet.

   10.  Some possible English values for CATEGORIES property include
        "ANNIVERSARY", "APPOINTMENT", "BUSINESS", "EDUCATION",
        "HOLIDAY", "MEETING", "MISCELLANEOUS", "NON-WORKING HOURS", "NOT
        IN OFFICE", "PERSONAL", "PHONE CALL", "SICK DAY", "SPECIAL
        OCCASION", "TRAVEL", "VACATION". Categories can be specified in
        any registered language.

   11.  Some possible English values for RESOURCES property include
        "CATERING", "CHAIRS", "COMPUTER PROJECTOR", "EASEL", "OVERHEAD
        PROJECTOR", "SPEAKER PHONE", "TABLE", "TV", "VCR", "VIDEO
        PHONE", "VEHICLE". Resources can be specified in any registered
        language.

7 Registration of Content Type Elements

   This section provides the process for registration of MIME
   Calendaring and Scheduling Content Type iCalendar object methods and
   new or modified properties.

7.1 Registration of New and Modified iCalendar Object Methods

   New MIME Calendaring and Scheduling Content Type iCalendar object
   methods are registered by the publication of an IETF Request for
   Comments (RFC). Changes to an iCalendar object method are registered
   by the publication of a revision of the RFC defining the method.

7.2 Registration of New Properties

   This section defines procedures by which new properties or enumerated
   property values for the MIME Calendaring and Scheduling Content Type
   can be registered with the IANA. Non-IANA properties can be used by
   bilateral agreement, provided the associated properties names follow
   the "X-" convention.

   The procedures defined here are designed to allow public comment and
   review of new properties, while posing only a small impediment to the
   definition of new properties.

Top      Up      ToC       Page 142 
   Registration of a new property is accomplished by the following
   steps.

7.2.1 Define the property

   A property is defined by completing the following template.

     To: ietf-calendar@imc.org

     Subject: Registration of text/calendar MIME property XXX

     Property name:

     Property purpose:

     Property value type(s):

     Property parameter (s):

     Conformance:

     Description:

     Format definition:

     Examples:

   The meaning of each field in the template is as follows.

   Property name: The name of the property, as it will appear in the
   body of an text/calendar MIME Content-Type "property: value" line to
   the left of the colon ":".

   Property purpose: The purpose of the property (e.g., to indicate a
   delegate for the event or to-do, etc.). Give a short but clear
   description.

   Property value type (s): Any of the valid value types for the
   property value needs to be specified. The default value type also
   needs to be specified. If a new value type is specified, it needs to
   be declared in this section.

   Property parameter (s): Any of the valid property parameters for the
   property needs to be specified.

   Conformance: The calendar components that the property can appear in
   needs to be specified.

Top      Up      ToC       Page 143 
   Description: Any special notes about the property, how it is to be
   used, etc.

   Format definition: The ABNF for the property definition needs to be
   specified.

   Examples: One or more examples of instances of the property needs to
   be specified.

7.2.2 Post the Property definition

   The property description MUST be posted to the new property
   discussion list, ietf-calendar@imc.org.

7.2.3   Allow a comment period

   Discussion on the new property MUST be allowed to take place on the
   list for a minimum of two weeks. Consensus MUST be reached on the
   property before proceeding to the next step.

7.2.4 Submit the property for approval

   Once the two-week comment period has elapsed, and the proposer is
   convinced consensus has been reached on the property, the
   registration application should be submitted to the Method Reviewer
   for approval. The Method Reviewer is appointed to the Application
   Area Directors and can either accept or reject the property
   registration. An accepted registration should be passed on by the
   Method Reviewer to the IANA for inclusion in the official IANA method
   registry. The registration can be rejected for any of the following
   reasons. 1) Insufficient comment period; 2) Consensus not reached; 3)
   Technical deficiencies raised on the list or elsewhere have not been
   addressed. The Method Reviewer's decision to reject a property can be
   appealed by the proposer to the IESG, or the objections raised can be
   addressed by the proposer and the property resubmitted.

7.3 Property Change Control

   Existing properties can be changed using the same process by which
   they were registered.

        1.           Define the change

        2.           Post the change

        3.           Allow a comment period

        4.           Submit the property for approval

Top      Up      ToC       Page 144 
   Note that the original author or any other interested party can
   propose a change to an existing property, but that such changes
   should only be proposed when there are serious omissions or errors in
   the published memo. The Method Reviewer can object to a change if it
   is not backward compatible, but is not required to do so.

   Property definitions can never be deleted from the IANA registry, but
   properties which are no longer believed to be useful can be declared
   OBSOLETE by a change to their "intended use" field.

8 References

   [IMIP]     Dawson, F., Mansour, S. and S. Silverberg, "iCalendar
              Message-based Interoperability Protocol (IMIP)", RFC 2447,
              November 1998.

   [ITIP]     Silverberg, S., Mansour, S., Dawson, F. and R. Hopson,
              "iCalendar Transport-Independent Interoperability Protocol
              (iTIP) : Scheduling Events, Busy Time, To-dos and Journal
              Entries", RFC 2446, November 1998.

   [ISO 8601] ISO 8601, "Data elements and interchange formats-
              Information interchange--Representation of dates and
              times", International Organization for Standardization,
              June, 1988.

   [ISO 9070] ISO/IEC 9070, "Information Technology_SGML Support
              Facilities--Registration Procedures for Public Text Owner
              Identifiers", Second Edition, International Organization
              for Standardization, April 1991.

   [RFC 822]  Crocker, D., "Standard for the Format of ARPA Internet
              Text Messages", STD 11, RFC 822, August 1982.

   [RFC 1738] Berners-Lee, T., Masinter, L. and M. McCahill, "Uniform
              Resource Locators (URL)", RFC 1738, December 1994.

   [RFC 1766] Alvestrand, H., "Tags for the Identification of
              Languages", RFC 1766, March 1995.

   [RFC 2045] Freed, N. and N. Borenstein, " Multipurpose Internet Mail
              Extensions (MIME) - Part One: Format of Internet Message
              Bodies", RFC 2045, November 1996.

   [RFC 2046] Freed, N. and N. Borenstein, " Multipurpose Internet Mail
              Extensions (MIME) - Part Two: Media Types", RFC 2046,
              November 1996.

Top      Up      ToC       Page 145 
   [RFC 2048] Freed, N., Klensin, J. and J. Postel, "Multipurpose
              Internet Mail Extensions (MIME) - Part Four: Registration
              Procedures", RFC 2048, January 1997.

   [RFC 2119] Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC 2234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
              Specifications: ABNF", RFC 2234, November 1997.

   [RFC 2279] Yergeau, F., "UTF-8, a transformation format of ISO
              10646", RFC 2279, January 1998.

   [RFC 2425] Howes, T., Smith, M. and F. Dawson, "A MIME Content-Type
              for Directory Information", RFC 2425, September 1998.

   [RFC 2426] Dawson, F. and T. Howes, "vCard MIME Directory Profile",
              RFC 2426, September 1998.

   [TZ]       Olson, A.D., et al, Time zone code and data,
              ftp://elsie.nci.nih.gov/pub/, updated periodically.

   [VCAL]     Internet Mail Consortium, "vCalendar - The Electronic
              Calendaring and Scheduling Exchange Format",
              http://www.imc.org/pdi/vcal-10.txt, September 18, 1996.

9 Acknowledgments

   A hearty thanks to the IETF Calendaring and Scheduling Working Group
   and also the following individuals who have participated in the
   drafting, review and discussion of this memo:

   Roland Alden, Harald T. Alvestrand, Eric Berman, Denis Bigorgne, John
   Binici, Bill Bliss, Philippe Boucher, Steve Carter, Andre
   Courtemanche, Dave Crocker, David Curley, Alec Dun, John Evans, Ross
   Finlayson, Randell Flint, Ned Freed, Patrik Faltstrom, Chuck
   Grandgent, Mark Handley, Steve Hanna, Paul B. Hill, Paul Hoffman,
   Ross Hopson, Mark Horton, Daryl Huff, Bruce Kahn, C. Harald Koch,
   Ryan Jansen, Don Lavange, Antoine Leca, Theodore Lorek, Steve
   Mansour, Skip Montanaro, Keith Moore, Cecil Murray, Chris Newman,
   John Noerenberg, Ralph Patterson, Pete Resnick, Keith Rhodes, Robert
   Ripberger, John Rose, Doug Royer, Andras Salamar, Ted Schuh, Vinod
   Seraphin, Derrick Shadel, Ken Shan, Andrew Shuman, Steve Silverberg,
   William P. Spencer, John Sun, Mark Towfiq, Yvonne Tso, Robert Visnov,
   James L. Weiner, Mike Weston, William Wyatt.

Top      Up      ToC       Page 146 
10 Authors' and Chairs' Addresses

   The following address information is provided in a MIME-VCARD,
   Electronic Business Card, format.

   The authors of this memo are:

   BEGIN:VCARD
   VERSION:3.0
   N:Dawson;Frank
   FN:Frank Dawson
   ORG:Lotus Development Corporation
   ADR;TYPE=WORK,POSTAL,PARCEL:;;6544 Battleford Drive;
    Raleigh;NC;27613-3502;USA
   TEL;TYPE=WORK,MSG:+1-919-676-9515
   TEL;TYPE=WORK,FAX:+1-919-676-9564
   EMAIL;TYPE=PREF,INTERNET:Frank_Dawson@Lotus.com
   EMAIL;TYPE=INTERNET:fdawson@earthlink.net
   URL:http://home.earthlink.net/~fdawson
   END:VCARD

   BEGIN:VCARD
   VERSION:3.0
   N:Stenerson;Derik
   FN:Derik Stenerson
   ORG:Microsoft Corporation
   ADR;TYPE=WORK,POSTAL,PARCEL:;;One Microsoft Way;
    Redmond;WA;98052-6399;USA
   TEL;TYPE=WORK,MSG:+1-425-936-5522
   TEL;TYPE=WORK,FAX:+1-425-936-7329
   EMAIL;TYPE=INTERNET:deriks@Microsoft.com
   END:VCARD

   The iCalendar object is a result of the work of the Internet
   Engineering Task Force Calendaring and Scheduling Working Group. The
   chairmen of that working group are:

   BEGIN:VCARD
   VERSION:3.0
   N:Ganguly;Anik
   FN:Anik Ganguly
   ORG: Open Text Inc.
   ADR;TYPE=WORK,POSTAL,PARCEL:;Suite 101;38777 West Six Mile Road;
    Livonia;MI;48152;USA
   TEL;TYPE=WORK,MSG:+1-734-542-5955
   EMAIL;TYPE=INTERNET:ganguly@acm.org
   END:VCARD

Top      Up      ToC       Page 147 
   The co-chairman of that working group is:

   BEGIN:VCARD
   VERSION:3.0
   N:Moskowitz;Robert
   FN:Robert Moskowitz
   EMAIL;TYPE=INTERNET:rgm-ietf@htt-consult.com
   END:VCARD

Top      Up      ToC       Page 148 
11.  Full Copyright Statement

   Copyright (C) The Internet Society (1998).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.