tech-invite   World Map     

IETF     RFCs     Groups     SIP     ABNFs    |    3GPP     Specs     Glossaries     Architecture     IMS     UICC    |    search     info

RFC 5545

 
 
 

Internet Calendaring and Scheduling Core Object Specification (iCalendar)

Part 6 of 7, p. 118 to 143
Prev RFC Part       Next RFC Part

 


prevText      Top      Up      ToC       Page 118 
3.8.5.  Recurrence Component Properties

   The following properties specify recurrence information in calendar
   components.

3.8.5.1.  Exception Date-Times

   Property Name:  EXDATE

   Purpose:  This property defines the list of DATE-TIME exceptions for
      recurring events, to-dos, journal entries, or time zone
      definitions.

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

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

Top      Up      ToC       Page 119 
   Conformance:  This property can be specified in recurring "VEVENT",
      "VTODO", and "VJOURNAL" calendar components as well as in the
      "STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE"
      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", and "EXDATE" properties
      contained within the recurring component.  The "DTSTART" property
      defines the first instance in the recurrence set.  The "DTSTART"
      property value SHOULD match the pattern of the recurrence rule, if
      specified.  The recurrence set generated with a "DTSTART" property
      value that doesn't match the pattern of the rule is undefined.
      The final recurrence set is generated by gathering all of the
      start DATE-TIME values generated by any of the specified "RRULE"
      and "RDATE" properties, and then excluding any start DATE-TIME
      values specified by "EXDATE" properties.  This implies that start
      DATE-TIME values specified by "EXDATE" properties take precedence
      over those specified by inclusion properties (i.e., "RDATE" and
      "RRULE").  When 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:  This property is defined by the following
      notation:

Top      Up      ToC       Page 120 
       exdate     = "EXDATE" exdtparam ":" exdtval *("," exdtval) CRLF

       exdtparam  = *(
                  ;
                  ; The following are OPTIONAL,
                  ; but MUST NOT occur more than once.
                  ;
                  (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
                  ;
                  (";" tzidparam) /
                  ;
                  ; The following is OPTIONAL,
                  ; and MAY occur more than once.
                  ;
                  (";" other-param)
                  ;
                  )

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

   Example:  The following is an example of this property:

       EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z

3.8.5.2.  Recurrence Date-Times

   Property Name:  RDATE

   Purpose:  This property defines the list of DATE-TIME values for
      recurring events, to-dos, journal entries, or time zone
      definitions.

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

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

   Conformance:  This property can be specified in recurring "VEVENT",
      "VTODO", and "VJOURNAL" calendar components as well as in the
      "STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE"
      calendar component.

   Description:  This property can appear along with the "RRULE"
      property to define an aggregate set of repeating occurrences.
      When they both appear in a recurring component, the recurrence

Top      Up      ToC       Page 121 
      instances 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", and "EXDATE" properties contained
      within the recurring component.  The "DTSTART" property defines
      the first instance in the recurrence set.  The "DTSTART" property
      value SHOULD match the pattern of the recurrence rule, if
      specified.  The recurrence set generated with a "DTSTART" property
      value that doesn't match the pattern of the rule is undefined.
      The final recurrence set is generated by gathering all of the
      start DATE-TIME values generated by any of the specified "RRULE"
      and "RDATE" properties, and then excluding any start DATE-TIME
      values specified by "EXDATE" properties.  This implies that start
      DATE-TIME values specified by "EXDATE" properties 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:  This 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.
                  ;
                  (";" other-param)
                  ;
                  )

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

Top      Up      ToC       Page 122 
   Example:  The following are examples of this property:

       RDATE:19970714T123000Z
       RDATE;TZID=America/New_York:19970714T083000

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

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

3.8.5.3.  Recurrence Rule

   Property Name:  RRULE

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

   Value Type:  RECUR

   Property Parameters:  IANA and non-standard property parameters can
      be specified on this property.

   Conformance:  This property can be specified in recurring "VEVENT",
      "VTODO", and "VJOURNAL" calendar components as well as in the
      "STANDARD" and "DAYLIGHT" sub-components of the "VTIMEZONE"
      calendar component, but it SHOULD NOT be specified more than once.
      The recurrence set generated with multiple "RRULE" properties is
      undefined.

   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", and "EXDATE" properties contained
      within the recurring component.  The "DTSTART" property defines
      the first instance in the recurrence set.  The "DTSTART" property
      value SHOULD be synchronized with the recurrence rule, if
      specified.  The recurrence set generated with a "DTSTART" property
      value not synchronized with the recurrence rule is undefined.  The
      final recurrence set is generated by gathering all of the start
      DATE-TIME values generated by any of the specified "RRULE" and
      "RDATE" properties, and then excluding any start DATE-TIME values
      specified by "EXDATE" properties.  This implies that start DATE-
      TIME values specified by "EXDATE" properties take precedence over
      those specified by inclusion properties (i.e., "RDATE" and
      "RRULE").  Where duplicate instances are generated by the "RRULE"

Top      Up      ToC       Page 123 
      and "RDATE" properties, only one recurrence is considered.
      Duplicate instances are ignored.

      The "DTSTART" property specified within the iCalendar object
      defines the first instance of the recurrence.  In most cases, a
      "DTSTART" property of DATE-TIME value type used with a recurrence
      rule, should be specified as a date with local time and time zone
      reference to make sure all the recurrence instances start at the
      same local time regardless of time zone changes.

      If the duration of the recurring component is specified with the
      "DTEND" or "DUE" property, then the same exact duration will apply
      to all the members of the generated recurrence set.  Else, if the
      duration of the recurring component is specified with the
      "DURATION" property, then the same nominal duration will apply to
      all the members of the generated recurrence set and the exact
      duration of each recurrence instance will depend on its specific
      start time.  For example, recurrence instances of a nominal
      duration of one day will have an exact duration of more or less
      than 24 hours on a day where a time zone shift occurs.  The
      duration of a specific recurrence may be modified in an exception
      component or simply by using an "RDATE" property of PERIOD value
      type.

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

       rrule      = "RRULE" rrulparam ":" recur CRLF

       rrulparam  = *(";" other-param)

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

      Daily for 10 occurrences:

       DTSTART;TZID=America/New_York:19970902T090000
       RRULE:FREQ=DAILY;COUNT=10

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

      Daily until December 24, 1997:

       DTSTART;TZID=America/New_York: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

Top      Up      ToC       Page 124 
      Every other day - forever:

       DTSTART;TZID=America/New_York:19970902T090000
       RRULE:FREQ=DAILY;INTERVAL=2

       ==> (1997 9:00 AM EDT) September 2,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;
                              December 1,3,...

      Every 10 days, 5 occurrences:

       DTSTART;TZID=America/New_York:19970902T090000
       RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5

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

      Every day in January, for 3 years:

       DTSTART;TZID=America/New_York:19980101T090000

       RRULE:FREQ=YEARLY;UNTIL=20000131T140000Z;
        BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA
       or
       RRULE:FREQ=DAILY;UNTIL=20000131T140000Z;BYMONTH=1

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

      Weekly for 10 occurrences:

       DTSTART;TZID=America/New_York: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

Top      Up      ToC       Page 125 
      Weekly until December 24, 1997:

       DTSTART;TZID=America/New_York: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=America/New_York: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 3, 17
           ...

      Weekly on Tuesday and Thursday for five weeks:

       DTSTART;TZID=America/New_York:19970902T090000
       RRULE:FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH

       or

       RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH

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

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

       DTSTART;TZID=America/New_York:19970901T090000
       RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;
        BYDAY=MO,WE,FR

       ==> (1997 9:00 AM EDT) September 1,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;

Top      Up      ToC       Page 126 
                              December 8,10,12,22

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

       DTSTART;TZID=America/New_York: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 first Friday for 10 occurrences:

       DTSTART;TZID=America/New_York:19970905T090000
       RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR

       ==> (1997 9:00 AM EDT) September 5;October 3
           (1997 9:00 AM EST) November 7;December 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 first Friday until December 24, 1997:

       DTSTART;TZID=America/New_York: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 first and last Sunday of the month for 10
      occurrences:

       DTSTART;TZID=America/New_York:19970907T090000
       RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU

       ==> (1997 9:00 AM EDT) September 7,28
           (1997 9:00 AM EST) November 2,30
           (1998 9:00 AM EST) January 4,25;March 1,29
           (1998 9:00 AM EDT) May 3,31

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

       DTSTART;TZID=America/New_York: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

Top      Up      ToC       Page 127 
      Monthly on the third-to-the-last day of the month, forever:

       DTSTART;TZID=America/New_York: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=America/New_York: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=America/New_York: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=America/New_York:19970910T090000
       RRULE:FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,
        13,14,15

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

      Every Tuesday, every other month:

       DTSTART;TZID=America/New_York: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
           ...

Top      Up      ToC       Page 128 
      Yearly in June and July for 10 occurrences:

       DTSTART;TZID=America/New_York: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=America/New_York: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 third year on the 1st, 100th, and 200th day for 10
      occurrences:

       DTSTART;TZID=America/New_York: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:

       DTSTART;TZID=America/New_York: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
           ...

Top      Up      ToC       Page 129 
      Monday of week number 20 (where the default start of the week is
      Monday), forever:

       DTSTART;TZID=America/New_York: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=America/New_York: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=America/New_York: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=America/New_York:19970902T090000
       EXDATE;TZID=America/New_York:19970902T090000
       RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13

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

Top      Up      ToC       Page 130 
      The first Saturday that follows the first Sunday of the month,
      forever:

       DTSTART;TZID=America/New_York: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 4 years, the first Tuesday after a Monday in November,
      forever (U.S. Presidential Election day):

       DTSTART;TZID=America/New_York: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 third instance into the month of one of Tuesday, Wednesday, or
      Thursday, for the next 3 months:

       DTSTART;TZID=America/New_York: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 second-to-last weekday of the month:

       DTSTART;TZID=America/New_York: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 131 
      Every 3 hours from 9:00 AM to 5:00 PM on a specific day:

       DTSTART;TZID=America/New_York: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=America/New_York: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=America/New_York: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=America/New_York: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=America/New_York:19970805T090000
       RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO

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

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

       DTSTART;TZID=America/New_York:19970805T090000
       RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU

       ==> (1997 EDT) August 5,17,19,31

Top      Up      ToC       Page 132 
      An example where an invalid date (i.e., February 30) is ignored.

       DTSTART;TZID=America/New_York:20070115T090000
       RRULE:FREQ=MONTHLY;BYMONTHDAY=15,30;COUNT=5

       ==> (2007 EST) January 15,30
           (2007 EST) February 15
           (2007 EDT) March 15,30

3.8.6.  Alarm Component Properties

   The following properties specify alarm information in calendar
   components.

3.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:  IANA and 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 with which it is associated.  This property specifies
      the type of action.  Applications MUST ignore alarms with x-name
      and iana-token values they don't recognize.

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

       action      = "ACTION" actionparam ":" actionvalue CRLF

       actionparam = *(";" other-param)


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

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

Top      Up      ToC       Page 133 
       ACTION:AUDIO

       ACTION:DISPLAY

3.8.6.2.  Repeat Count

   Property Name:  REPEAT

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

   Value Type:  INTEGER

   Property Parameters:  IANA and non-standard property parameters can
      be specified on this property.

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

   Description:  This property defines the number of times an alarm
      should be repeated after its initial trigger.  If the alarm
      triggers more than once, then this property MUST be specified
      along with the "DURATION" property.

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

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

       repparam   = *(";" other-param)

   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

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

Top      Up      ToC       Page 134 
   Property Parameters:  IANA, 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:  This property defines when an 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 with which the alarm is associated.
      The duration can be explicitly set 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 "DTSTART" 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 "DTSTART" and "DURATION " properties
      MUST be present in the associated "VTODO" calendar component.

      Alarms specified in an event or to-do that is defined in terms of
      a DATE value type will be triggered relative to 00:00:00 of the
      user's configured time zone on the specified date, or relative to
      00:00:00 UTC on the specified date if no configured time zone can
      be found for the user.  For example, if "DTSTART" is a DATE value

Top      Up      ToC       Page 135 
      set to 19980205 then the duration trigger will be relative to
      19980205T000000 America/New_York for a user configured with the
      America/New_York time zone.

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

       trigger    = "TRIGGER" (trigrel / trigabs) CRLF

       trigrel    = *(
                  ;
                  ; The following are OPTIONAL,
                  ; but MUST NOT occur more than once.
                  ;
                  (";" "VALUE" "=" "DURATION") /
                  (";" trigrelparam) /
                  ;
                  ; The following is OPTIONAL,
                  ; and MAY occur more than once.
                  ;
                  (";" other-param)
                  ;
                  ) ":"  dur-value

       trigabs    = *(
                  ;
                  ; The following is REQUIRED,
                  ; but MUST NOT occur more than once.
                  ;
                  (";" "VALUE" "=" "DATE-TIME") /
                  ;
                  ; The following is OPTIONAL,
                  ; and MAY occur more than once.
                  ;
                  (";" other-param)
                  ;
                  ) ":" date-time

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

       TRIGGER:-PT15M

      A trigger set five minutes after the end of an event or the due
      date of a to-do.

       TRIGGER;RELATED=END:PT5M

Top      Up      ToC       Page 136 
      A trigger set to an absolute DATE-TIME.

       TRIGGER;VALUE=DATE-TIME:19980101T050000Z

3.8.7.  Change Management Component Properties

   The following properties specify change management information in
   calendar components.

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

   Value Type:  DATE-TIME

   Property Parameters:  IANA and non-standard property parameters can
      be specified on this property.

   Conformance:  The property can be specified once in "VEVENT",
      "VTODO", or "VJOURNAL" calendar components.  The value MUST be
      specified as a date with UTC time.

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

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

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

       creaparam  = *(";" other-param)

   Example:  The following is an example of this property:

       CREATED:19960329T133000Z

Top      Up      ToC       Page 137 
3.8.7.2.  Date-Time Stamp

   Property Name:  DTSTAMP

   Purpose:  In the case of an iCalendar object that specifies a
      "METHOD" property, this property specifies the date and time that
      the instance of the iCalendar object was created.  In the case of
      an iCalendar object that doesn't specify a "METHOD" property, this
      property specifies the date and time that the information
      associated with the calendar component was last revised in the
      calendar store.

   Value Type:  DATE-TIME

   Property Parameters:  IANA and 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 [2447bis] that
      have inherent latency issues with the delivery of content.  This
      property will assist in the proper sequencing of messages
      containing iCalendar objects.

      In the case of an iCalendar object that specifies a "METHOD"
      property, this property differs from 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.

      In the case of an iCalendar object that doesn't specify a "METHOD"
      property, this property is equivalent to the "LAST-MODIFIED"
      property.

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

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

       stmparam   = *(";" other-param)

Top      Up      ToC       Page 138 
   Example:

       DTSTAMP:19971210T080000Z

3.8.7.3.  Last Modified

   Property Name:  LAST-MODIFIED

   Purpose:  This 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:  IANA and non-standard property parameters can
      be specified on this property.

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

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

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

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

       lstparam   = *(";" other-param)

   Example:  The following is an example of this property:

       LAST-MODIFIED:19960817T133000Z

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

   Value Type:  INTEGER

   Property Parameters:  IANA and non-standard property parameters can
      be specified on this property.

Top      Up      ToC       Page 139 
   Conformance:  The property can be specified in "VEVENT", "VTODO", or
      "VJOURNAL" calendar component.

   Description:  When a calendar component is created, its sequence
      number is 0.  It is monotonically incremented by the "Organizer's"
      CUA each time the "Organizer" makes a significant revision to the
      calendar component.

      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 to which the "Attendee" is referring.

      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.

      Recurrence instances of a recurring component MAY have different
      sequence numbers.

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

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

       seqparam   = *(";" other-param)

   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

3.8.8.  Miscellaneous Component Properties

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

Top      Up      ToC       Page 140 
3.8.8.1.  IANA Properties

   Property Name:  An IANA-registered property name

   Value Type:  The default value type is TEXT.  The value type can be
      set to any value type.

   Property Parameters:  Any parameter can be specified on this
      property.

   Description:  This specification allows other properties registered
      with IANA to be specified in any calendar components.  Compliant
      applications are expected to be able to parse these other IANA-
      registered properties but can ignore them.

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

       iana-prop = iana-token *(";" icalparameter) ":" value CRLF

   Example:  The following are examples of properties that might be
      registered to IANA:

       DRESSCODE:CASUAL

       NON-SMOKING;VALUE=BOOLEAN:TRUE

3.8.8.2.  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:  The default value type is TEXT.  The value type can be
      set to any value type.

   Property Parameters:  IANA, 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 specified by property and/or property parameter

Top      Up      ToC       Page 141 
      names that have the prefix text of "X-" (the two-character
      sequence: LATIN CAPITAL LETTER X character followed by the HYPHEN-
      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 value type for
      this property is TEXT.  Optionally, the value type can be any of
      the other valid value types.

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

       x-prop = x-name *(";" icalparameter) ":" value CRLF

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

       X-ABC-MMSUBJ;VALUE=URI;FMTTYPE=audio/basic:http://www.example.
        org/mysubj.au

3.8.8.3.  Request Status

   Property Name:  REQUEST-STATUS

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

   Value Type:  TEXT

   Property Parameters:  IANA, non-standard, and language property
      parameters can be specified on this property.

   Conformance:  The property can be specified in the "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
      value type for this property is TEXT.

Top      Up      ToC       Page 142 
      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.

      The short return status is a PERIOD character separated pair or
      3-tuple of integers.  For example, "3.1" or "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  | Longer Return Status Description                         |
   | Return |                                                          |
   | Status |                                                          |
   | Code   |                                                          |
   +--------+----------------------------------------------------------+
   | 1.xx   | Preliminary success.  This class of status code          |
   |        | indicates that the request has been initially processed  |
   |        | but that completion is pending.                          |
   |        |                                                          |
   | 2.xx   | Successful.  This class of status code indicates that    |
   |        | the request was completed successfully.  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.              |
   +--------+----------------------------------------------------------+

Top      Up      ToC       Page 143 
   Format Definition:  This 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.
                  ;
                  (";" languageparam) /
                  ;
                  ; The following is OPTIONAL,
                  ; and MAY occur more than once.
                  ;
                  (";" other-param)
                  ;
                  )

       statcode   = 1*DIGIT 1*2("." 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@example.com


Next RFC Part