Tech-invite3GPPspaceIETFspace
96959493929190898887868584838281807978777675747372717069686766656463626160595857565554535251504948474645444342414039383736353433323130292827262524232221201918171615141312111009080706050403020100
in Index   Prev   Next

RFC 5545

Internet Calendaring and Scheduling Core Object Specification (iCalendar)

Pages: 168
Proposed Standard
Errata
Obsoletes:  2445
Updated by:  55466868752979537986907390749253
Part 6 of 7 – Pages 118 to 143
First   Prev   Next

Top   ToC   RFC5545 - Page 118   prevText

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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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   ToC   RFC5545 - 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 page on part 7)

Next Section