Recurrence-Rule
Description
- A rule for describing the recurrence pattern of certain Calendar entries
(similar to an iCalendar RECUR value).
object).
Syntax
-
(a Recurrence-Rule with (<slot> (<value> ...))) |
(<Recurrence-Rule-instance> has (<slot> (<value> ...))) |
Slots
-
slot | card | value |
calendar-freq | 1 | (a UoM-Frequency) ;; FREQ |
calendar-until | 1 | (a Time-Instant) ;; UNTIL |
calendar-count | 1 | (a Integer) ;; COUNT |
calendar-interval | 1 | (a Integer) ;; INTERVAL |
calendar-bysecond | n | (a Integer) ;; BYSECOND |
calendar-byminute | n | (a Integer) ;; BYMINUTE |
calendar-byhour | n | (a Integer) ;; BYHOUR |
calendar-byday | n | (a WeekdayNum) ;; BYDAY |
calendar-bymonthday | n | (a Integer) ;; BYMONTHDAY |
calendar-byyearday | n | (a Integer) ;; BYYEARDAY |
calendar-byweekno | n | (a Integer) ;; BYWEEKNO |
calendar-bymonth | n | (a Integer) ;; BYMONTH |
calendar-bysetpos | n | (a Integer) ;; BYSETPOS |
calendar-wkst | 1 | (a Day-Constant) ;; WKST |
calendar-x-prop | n | (a CalendarXProp) |
+ slots inherited from Message |
Examples
-
Here are the iCalendar objects and KM/CLib representations for
various recurrence rules.
Daily for 10 occurrences:
DTSTART;TZID=US-Eastern:19970902T090000
RRULE:FREQ=DAILY;COUNT=10
==> (1997 9:00 AM EDT)September 2-11
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*daily))
(calendar-count (10))
)
))
)
|
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
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*daily))
(calendar-until ((a Time-Instant with
(time-year (1997))
(time-month (12))
(time-day (24))
)
))
)
))
)
|
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,...
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*daily))
(calendar-interval (2))
)
))
)
|
Every 10 days, 5 occurrences:
DTSTART;TZID=US-Eastern:19970902T090000
RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5
==> (1997 9:00 AM EDT)September 2,12,22;October 2,12
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*daily))
(calendar-interval (10))
(calendar-count (5))
)
))
)
|
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
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1998))
(time-month (1))
(time-day (1))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*yearly))
(calendar-until ((a Time-Instant with
(time-year (2000))
(time-month (1))
(time-day (31))
(time-hour (9))
)
))
(calendar-bymonth (1))
(calendar-byday ((a WeekdayNum with (calendar-weekday (*Sunday)))
(a WeekdayNum with (calendar-weekday (*Monday)))
(a WeekdayNum with (calendar-weekday (*Tuesday)))
(a WeekdayNum with (calendar-weekday (*Wednesday)))
(a WeekdayNum with (calendar-weekday (*Thursday)))
(a WeekdayNum with (calendar-weekday (*Friday)))
(a WeekdayNum with (calendar-weekday (*Saturday)))
))
)
))
)
or
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1998))
(time-month (1))
(time-day (1))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*daily))
(calendar-until ((a Time-Instant with
(time-year (2000))
(time-month (1))
(time-day (31))
(time-hour (9))
)
))
(calendar-bymonth (1))
)
))
)
|
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
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*weekly))
(calendar-count (10))
)
))
)
|
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
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*weekly))
(calendar-until ((a Time-Instant with
(time-year (1997))
(time-month (12))
(time-day (24))
)
))
)
))
)
|
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
...
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*weekly))
(calendar-interval (2))
(calendar-wkst (*Sunday))
)
))
)
|
Weekly on Tuesday and Thursday for 5 weeks:
DTSTART;TZID=US-Eastern: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
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*weekly))
(calendar-until ((a Time-Instant with
(time-year (1997))
(time-month (10))
(time-day (7))
)
))
(calendar-wkst (*Sunday))
(calendar-byday ((a WeekdayNum with (calendar-weekday (*Tuesday)))
(a WeekdayNum with (calendar-weekday (*Thursday)))
))
)
))
)
or
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*weekly))
(calendar-count (10))
(calendar-wkst (*Sunday))
(calendar-byday ((a WeekdayNum with (calendar-weekday (*Tuesday)))
(a WeekdayNum with (calendar-weekday (*Thursday)))
))
)
))
)
|
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
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*weekly))
(calendar-interval (2))
(calendar-until ((a Time-Instant with
(time-year (1997))
(time-month (12))
(time-day (24))
)
))
(calendar-wkst (*Sunday))
(calendar-byday ((a WeekdayNum with (calendar-weekday (*Monday)))
(a WeekdayNum with (calendar-weekday (*Wednesday)))
(a WeekdayNum with (calendar-weekday (*Friday)))
))
)
))
)
|
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
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*weekly))
(calendar-interval (2))
(calendar-count (8))
(calendar-wkst (*Sunday))
(calendar-byday ((a WeekdayNum with (calendar-weekday (*Tuesday)))
(a WeekdayNum with (calendar-weekday (*Thursday)))
))
)
))
)
|
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
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (5))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*monthly))
(calendar-count (10))
(calendar-byday ((a WeekdayNum with (calendar-ordwk (1))
(calendar-weekday (*Friday))
)
))
)
))
)
|
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
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (5))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*monthly))
(calendar-until ((a Time-Instant with
(time-year (1997))
(time-month (12))
(time-day (24))
)
))
(calendar-byday ((a WeekdayNum with (calendar-ordwk (1))
(calendar-weekday (*Friday))
)
))
)
))
)
|
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
(1998 9:00 AM EST)January 4,25;March 1,29
(1998 9:00 AM EDT)May 3,31
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (7))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*monthly))
(calendar-interval (2))
(calendar-count (10))
(calendar-byday ((a WeekdayNum with (calendar-ordwk (1))
(calendar-weekday (*Sunday))
)
(a WeekdayNum with (calendar-ordwk (-1))
(calendar-weekday (*Sunday))
)
))
)
))
)
|
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
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (22))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*monthly))
(calendar-count (6))
(calendar-byday ((a WeekdayNum with (calendar-ordwk (-2))
(calendar-weekday (*Monday))
)
))
)
))
)
|
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
...
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (28))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*monthly))
(calendar-bymonthday (-3))
)
))
)
|
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
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*monthly))
(calendar-count (10))
(calendar-bymonthday (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
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (30))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*monthly))
(calendar-count (10))
(calendar-bymonthday (1 -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
(1999 9:00 AM EST)March 10,11,12,13
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (10))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*monthly))
(calendar-interval (18))
(calendar-count (10))
(calendar-bymonthday (10 11 12 13 14 15))
)
))
)
|
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
...
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*monthly))
(calendar-interval (2))
(calendar-byday ((a WeekdayNum with (calendar-weekday (*Tuesday)))))
)
))
)
|
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
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (6))
(time-day (10))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*yearly))
(calendar-count (10))
(calendar-bymonth (6 7))
)
))
)
|
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
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (3))
(time-day (10))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*yearly))
(calendar-interval (2))
(calendar-count (10))
(calendar-bymonth (1 2 3))
)
))
)
|
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
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (1))
(time-day (1))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*yearly))
(calendar-interval (3))
(calendar-count (10))
(calendar-byyearday (1 100 200))
)
))
)
|
Every 20th Monday of the year, forever:
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
...
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (5))
(time-day (19))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*yearly))
(calendar-byday ((a WeekdayNum with (calendar-ordwk (20))
(calendar-weekday (*Monday))
)
))
)
))
)
|
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
...
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (5))
(time-day (12))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*yearly))
(calendar-byweekno (20))
(calendar-byday ((a WeekdayNum with (calendar-weekday (*Monday)))))
)
))
)
|
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
...
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (3))
(time-day (13))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*yearly))
(calendar-bymonth (3))
(calendar-byday ((a WeekdayNum with (calendar-weekday (*Thursday)))))
)
))
)
|
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
...
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (6))
(time-day (5))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*yearly))
(calendar-byday ((a WeekdayNum with (calendar-weekday (*Thursday)))))
(calendar-bymonth (6 7 8))
)
))
)
|
Every Friday the 13th, forever:
DTSTART;TZID=US-Eastern:19970902T090000
EXDATE;TZID=US-Eastern: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
...
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-exdate ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*monthly))
(calendar-byday ((a WeekdayNum with (calendar-weekday (*Friday)))))
(calendar-bymonthday (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...
...
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (13))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*monthly))
(calendar-byday ((a WeekdayNum with (calendar-weekday (*Saturday)))))
(calendar-bymonthday (7 8 9 10 11 12 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
...
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1996))
(time-month (11))
(time-day (5))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*yearly))
(calendar-interval (4))
(calendar-bymonth (11))
(calendar-byday ((a WeekdayNum with (calendar-weekday (*Tuesday)))))
(calendar-bymonthday (2 3 4 5 6 7 8))
)
))
)
|
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
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (4))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*monthly))
(calendar-count (3))
(calendar-byday ((a WeekdayNum with (calendar-weekday (*Tuesday)))
(a WeekdayNum with (calendar-weekday (*Wednesday)))
(a WeekdayNum with (calendar-weekday (*Thursday)))
))
(calendar-bysetpos (3))
)
))
)
|
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
...
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (29))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*monthly))
(calendar-byday ((a WeekdayNum with (calendar-weekday (*Monday)))
(a WeekdayNum with (calendar-weekday (*Tuesday)))
(a WeekdayNum with (calendar-weekday (*Wednesday)))
(a WeekdayNum with (calendar-weekday (*Thursday)))
(a WeekdayNum with (calendar-weekday (*Friday)))
))
(calendar-bysetpos (-2))
)
))
)
|
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
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*hourly))
(calendar-interval (3))
(calendar-until ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (17))
)
))
)
))
)
|
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
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*minutely))
(calendar-interval (15))
(calendar-count (6))
)
))
)
|
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
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*minutely))
(calendar-interval (90))
(calendar-count (4))
)
))
)
|
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
...
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*daily))
(calendar-byhour (9 10 11 12 13 14 15 16))
(calendar-byminute (0 20 40))
)
))
)
or
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (9))
(time-day (2))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*minutely))
(calendar-interval (20))
(calendar-byhour (9 10 11 12 13 14 15 16))
)
))
)
|
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
KM> (a Event-Entry with
(calendar-dtstart ((a Time-Instant with
(time-year (1997))
(time-month (8))
(time-day (5))
(time-hour (9))
(time-zone (*EST))
)
))
(calendar-rrule ((a Recurrence-Rule with
(calendar-freq (*weekly))
(calendar-interval (2))
(calendar-count (4))
(calendar-byday ((a WeekdayNum with (calendar-weekday (*Tuesday)))
(a WeekdayNum with (calendar-weekday (*Sunday)))
))
(calendar-wkst (*Monday)) ;; or (*Sunday) in the variant
)
))
)
|
|