Calo Ontology

Calendars

Description
A Calendar is a collection of information about the scheduling of events relevant to a particular calendar user (a Person, Organization, Room, Device, etc.). The representation for calendars and calendar entries is modeled after the iCalendar standard. We do not implement a reasoner over Calendar objects.

References
  • the iCalendar standard from the IETF
  • Classes

    Calendar

    Description

    A kind of document consisting of many Calendar-Entry objects (similar to an iCalendar VCALENDAR object).

    Syntax

    (a Calendar with (<slot> (<value> ...)))
    (<Calendar-instance> has (<slot> (<value> ...)))

    Slots

    slotcardvalue
    has-part
    n
    (a Calendar-Entry)
    calendar-user
    1
    (a Entity)
    hasStartDate
    1
    (a Time-Instant)
    hasEndDate
    1
    (a Time-Instant)
    + slots inherited from Document

    Examples

    (a Calendar with
       (has-part ((a Todo-Entry) (a Event-Entry)))
       (calendar-user (*Franklin))
    )

    Calendar-Entry

    Description

    A kind of document consisting of message fields representing the properties of Calendar objects. This class is usually avoided in favor of its more specific subclasses (which correspond to the iCalendar "components").

    Syntax

    (a Calendar-Entry with (<slot> (<value> ...)))
    (<Calendar-Entry-instance> has (<slot> (<value> ...)))

    Slots

    slotcardvalue
    calendar-attendee
    n
    (a CalendarAttendee)
    calendar-comment
    1
    (a String)
    calendar-contact
    1
    (a ContactDataStructure)
    calendar-organizer
    1
    (a CalendarOrganizer)
    calendar-url
    1
    (a String)               ;; uri
    calendar-uid
    1
    (a String)               ;; UID (an RFC822 address spec)
    calendar-dtstamp
    1
    (a Time-Instant)         ;; calendar entry creation
    calendar-x-prop
    n
    (a CalendarXProp)
    + slots inherited from Form-Document

    Examples

    See the Calendar-Entry subclasses: Event-Entry, Free-Busy-Entry, Journal-Entry, Todo-Entry

    Event-Entry

    Description

    A kind of Calendar-Entry describing the properties of an Event recorded in a Calendar (similar to an iCalendar VEVENT object).

    Syntax

    (a Event-Entry with (<slot> (<value> ...)))
    (<Event-Entry-instance> has (<slot> (<value> ...)))

    Slots

    slotcardvalue
    calendar-referent
    1
    (a Event)
    calendar-attach
    n
    (a Information)
    calendar-categories
    n
    (a Thing)
    calendar-class
    1
    (a String)          ;; {"PUBLIC" | "PRIVATE" | "CONFIDENTIAL"}
    calendar-description
    1
    (a String)
    calendar-status
    1
    (a Status-Value)
    calendar-summary
    1
    (a String)
    calendar-recurrence-id
    1
    (a Time-Instant)    ;; the time of this particular event instance within a sequence of recurring events
    calendar-related-to
    n
    (a String)          ;; RELATED-TO
    calendar-exdate
    n
    (a Time-Instant)    ;; EXDATE
    calendar-exrule
    n
    (a Recurrence-Rule) ;; EXRULE
    calendar-rdate
    n
    (a Time-Instant)    ;; RDATE
    calendar-rrule
    n
    (a Recurrence-Rule) ;; RRULE
    calendar-created
    1
    (a Time-Instant)    ;; calendar information creation
    calendar-last-modified
    1
    (a Time-Instant)
    calendar-sequence
    1
    (a Number)          ;; revision number
    calendar-dtstart
    1
    (a Time-Instant)    ;; event start
    calendar-earliest-start
    1
    (a Time-Instant)    ;; earliest event start
    calendar-latest-start
    1
    (a Time-Instant)    ;; latest event start
    calendar-earliest-finish
    1
    (a Time-Instant)    ;; earliest event finish
    calendar-latest-finish
    1
    (a Time-Instant)    ;; latest event finish
    calendar-duration
    1
    (a Duration-Value)  ;; event duration
    calendar-location
    1
    (a Spatial-Entity)  ;; any Tangible-Entity or Place
    calendar-priority
    1
    (a Number)          ;; 1 = highest, 9 = lowest, 0 = undefined
    calendar-resources
    n
    (a Entity)          ;; any entities needed for use in the event
    calendar-dtend
    1
    (a Time-Instant)    ;; event end
    calendar-transp
    1
    (a String)          ;; {"OPAQUE" | "TRANSPARENT"}
    hasStartDate
    1
    (a Time-Instant)
    hasEndDate
    1
    (a Time-Instant)
    + slots inherited from Calendar-Entry

    Examples

    For the iCalendar VEVENT object:
    BEGIN:VEVENT DTSTAMP:19960704T120000Z
    UID:uid1@host.com ORGANIZER:MAILTO:jsmith@host.com
    DTSTART:19960918T143000Z DTEND:19960920T220000Z STATUS:CONFIRMED
    CATEGORIES:CONFERENCE SUMMARY:Networld+Interop Conference
    DESCRIPTION:Networld+Interop Conference
      and Exhibit\nAtlanta World Congress Center\n
     Atlanta, Georgia END:VEVENT

    here is the equivalent KM/CLib representation:
    (*JSmith has (instance-of (Person)))
    (a Event-Entry with
       (calendar-dtstamp ((a Time-Instant with
                             (time-value ((:pair 1996 *year)
                                          (:pair 7 *month)
                                          (:pair 4 *day)
                                          (:pair 12 *hour)
                                          *UTC
                             ))
       )))
       (calendar-uid ("uid1@host.com"))
       (calendar-organizer ((a CalendarOrganizer with
                               (played-by (*JSmith))
                               (hasContactInformation (
                                  (a EMailAddress with
                                     (hasAddressString ("MAILTO:jsmith@host.com")))))
       )))
       (calendar-dtstart ((a Time-Instant with
                             (time-value ((:pair 1996 *year)
                                          (:pair 9 *month)
                                          (:pair 18 *day)
                                          (:pair 14 *hour)
                                          (:pair 30 *minute)
                                          *UTC
                             ))
       )))
       (calendar-dtend   ((a Time-Instant with
                             (time-value ((:pair 1996 *year)
                                          (:pair 9 *month)
                                          (:pair 20 *day)
                                          (:pair 22 *hour)
                                          (:pair 0 *minute)
                                          *UTC
                             ))
       )))
       (calendar-status ((a Status-Value with
                            (value (*CalendarStatus_confirmed))
       )))
       (calendar-categories ((a Conference)))
       (calendar-summary ("Networld+Interop Conference"))
       (calendar-description ("Networld+Interop Conference and Exhibit
    Atlanta World Congress Center
    Atlanta, Georgia"))
    )
     
    Here is the iCalendar object for a meeting event. The example includes a VTIMEZONE object to define Eastern Standard and Daylight timezones. The CLib assumes temporal reasoners are familiar with the various timezones and therefore stores only a timezone ID.
    BEGIN:VTIMEZONE
    TZID:US-Eastern
    BEGIN:STANDARD
    DTSTART:19981025T020000
    RDATE:19981025T020000
    TZOFFSETFROM:-0400
    TZOFFSETTO:-0500
    TZNAME:EST
    END:STANDARD
    BEGIN:DAYLIGHT
    DTSTART:19990404T020000
    RDATE:19990404T020000
    TZOFFSETFROM:-0500
    TZOFFSETTO:-0400
    TZNAME:EDT
    END:DAYLIGHT
    END:VTIMEZONE
    BEGIN:VEVENT
    DTSTAMP:19980309T231000Z
    UID:guid-1.host1.com
    ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@host.com
    ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP:
     MAILTO:employee-A@host.com
    DESCRIPTION:Project XYZ Review Meeting
    CATEGORIES:MEETING
    CLASS:PUBLIC
    CREATED:19980309T130000Z
    SUMMARY:XYZ Project Review
    DTSTART;TZID=US-Eastern:19980312T083000
    DTEND;TZID=US-Eastern:19980312T093000
    LOCATION:1CP Conference Room 4350
    END:VEVENT

    And the KM/CLib equivalent:
    (*CR4350 has (instance-of (Room))
                 (called ("1CP Conference Room 4350"))
    )
    (a Event-Entry with
       (calendar-dtstamp ((a Time-Instant with
                             (time-value ((:pair 1998 *year)
                                          (:pair 3 *month)
                                          (:pair 9 *day)
                                          (:pair 23 *hour)
                                          (:pair 10 *minute)
                                          *UTC
                             ))
       )))
       (calendar-uid ("guid-1.host1.com"))
       (calendar-organizer ((a CalendarOrganizer with
                               (played-by ((a Person with
                                              (hasNickname ("MrBig"))
                                              (hasContactInformation (
                                                 (a EMailAddress with
                                                    (hasAddressString ("MAILTO:mrbig@host.com")))))
                                              (plays ((a Event-Chair)))
                               )))
       )))
       (calendar-attendee ((a CalendarAttendee with
                              (played-by ((a Group called "Employee-A" with
                                             (hasContactInformation (
                                                (a EMailAddress with
                                                   (hasAddressString ("MAILTO:employee-A@host.com")))))
                                             (plays ((a Required-Participant)))
                                             (hasRSVP (t))
                              )))
       )))
       (calendar-description ("Project XYZ Review Meeting"))
    
       (calendar-categories ((a Meeting)))
       (calendar-class ("PUBLIC"))
       (calendar-created ((a Time-Instant with
                             (time-value ((:pair 1998 *year)
                                          (:pair 3 *month)
                                          (:pair 9 *day)
                                          (:pair 13 *hour)
                                          *UTC
                             ))
       )))
       (calendar-summary ("XYZ Project Review"))
    
       (calendar-dtstart ((a Time-Instant with
                             (time-value ((:pair 1998 *year)
                                          (:pair 3 *month)
                                          (:pair 12 *day)
                                          (:pair 8 *hour)
                                          (:pair 30 *minute)
                                          *EST
                             ))
       )))
       (calendar-dtend   ((a Time-Instant with
                             (time-value ((:pair 1998 *year)
                                          (:pair 3 *month)
                                          (:pair 12 *day)
                                          (:pair 9 *hour)
                                          (:pair 30 *minute)
                                          *EST
                             ))
       )))
       (calendar-location (*CR4350))
    )

    Free-Busy-Entry

    Description

    A kind of Calendar-Entry describing the properties of a Free-Busy slot recorded in a Calendar (similar to an iCalendar VFREEBUSY object).

    Syntax

    (a Free-Busy-Entry with (<slot> (<value> ...)))
    (<Free-Busy-Entry-instance> has (<slot> (<value> ...)))

    Slots

    slotcardvalue
    calendar-referent
    1
    (a Time-Interval)
    calendar-dtstart
    1
    (a Time-Instant)         ;; free/busy start
    calendar-earliest-start
    1
    (a Time-Instant)         ;; earliest free/busy start
    calendar-latest-start
    1
    (a Time-Instant)         ;; latest free/busy start
    calendar-earliest-finish
    1
    (a Time-Instant)         ;; earliest free/busy finish
    calendar-latest-finish
    1
    (a Time-Instant)         ;; latest free/busy finish
    calendar-duration
    1
    (a Duration-Value)       ;; free/busy duration
    calendar-dtend
    1
    (a Time-Instant)         ;; free/busy end
    calendar-freebusy
    n
    (a Free-Busy-Period)     ;; free/busy periods (can specify time-begins, time-ends and status
    hasStartDate
    1
    (a Time-Instant)
    hasEndDate
    1
    (a Time-Instant)
    + slots inherited from Calendar-Entry

    Examples

    For the iCalendar VFREEBUSY object:
    BEGIN:VFREEBUSY
    ORGANIZER:MAILTO:jsmith@host.com
    DTSTART:19980313T141711Z
    DTEND:19980410T141711Z
    FREEBUSY:19980314T233000Z/19980315T003000Z
    FREEBUSY:19980316T153000Z/19980316T163000Z
    FREEBUSY:19980318T030000Z/19980318T040000Z
    URL:http://www.host.com/calendar/busytime/jsmith.ifb
    END:VFREEBUSY

    here is the KM/CLib version:
    (a Free-Busy-Entry with
       (calendar-organizer ((a CalendarOrganizer with
                               (played-by (*JSmith))
                               (hasContactInformation (
                                  (a EMailAddress with
                                     (hasAddressString ("MAILTO:jsmith@host.com")))))
       )))
       (calendar-dtstart ((a Time-Instant with
                             (time-value ((:pair 1998 *year)
                                          (:pair 3 *month)
                                          (:pair 13 *day)
                                          (:pair 14 *hour)
                                          (:pair 17 *minute)
                                          (:pair 11 *second)
                                          *UTC
                             ))
       )))
       (calendar-dtend   ((a Time-Instant with
                             (time-value ((:pair 1998 *year)
                                          (:pair 4 *month)
                                          (:pair 10 *day)
                                          (:pair 14 *hour)
                                          (:pair 17 *minute)
                                          (:pair 11 *second)
                                          *UTC
                             ))
       )))
       (calendar-freebusy ((a Free-Busy-Period with
                              (time-begins ((a Time-Instant with  
                                               (time-value ((:pair 1998 *year)
                                                            (:pair 3 *month)
                                                            (:pair 14 *day)
                                                            (:pair 23 *hour)
                                                            (:pair 30 *minute)
                                                            *UTC
                                              ))
                              )))
                              (time-ends   ((a Time-Instant with
                                               (time-value ((:pair 1998 *year)
                                                            (:pair 3 *month)
                                                            (:pair 15 *day)
                                                            (:pair 0 *hour)
                                                            (:pair 30 *minute)
                                                            *UTC
                                              ))
                              )))
                              (status ((a Status-Value with
                                          (value (*CalendarStatus_fb_busy))
                              )))
       )))
       (calendar-freebusy ((a Free-Busy-Period with
                              (time-begins ((a Time-Instant with
                                               (time-value ((:pair 1998 *year)
                                                            (:pair 3 *month)
                                                            (:pair 16 *day)
                                                            (:pair 15 *hour)
                                                            (:pair 30 *minute)
                                                            *UTC
                                               ))
                              )))
                              (time-ends   ((a Time-Instant with
                                               (time-value ((:pair 1998 *year)
                                                            (:pair 3 *month)
                                                            (:pair 16 *day)
                                                            (:pair 16 *hour)
                                                            (:pair 30 *minute)
                                                            *UTC
                                               ))
                              )))
                              (status ((a Status-Value with
                                          (value (*CalendarStatus_fb_busy))
                              )))
       )))
       (calendar-freebusy ((a Free-Busy-Period with
                              (time-begins ((a Time-Instant with
                                               (time-value ((:pair 1998 *year)
                                                            (:pair 3 *month)
                                                            (:pair 18 *day)
                                                            (:pair 3 *hour)
                                                            *UTC
                                               ))
                              )))
                              (time-ends   ((a Time-Instant with
                                               (time-value ((:pair 1998 *year)
                                                            (:pair 3 *month)
                                                            (:pair 18 *day)
                                                            (:pair 4 *hour)
                                                             *UTC
                                               ))
                              )))
                              (status ((a Status-Value with
                                          (value (*CalendarStatus_fb_busy))
                              )))
       )))
    )

    Journal-Entry

    Description

    A kind of Calendar-Entry describing the properties of a Journal Entry recorded in a Calendar (similar to an iCalendar VJOURNAL object).

    Syntax

    (a Journal-Entry with (<slot> (<value> ...)))
    (<Journal-Entry-instance> has (<slot> (<value> ...)))

    Slots

    slotcardvalue
    calendar-referent
    1
    (a Document)
    calendar-attach
    n
    (a Information)
    calendar-categories
    n
    (a Thing)
    calendar-class
    1
    (a String)          ;; {"PUBLIC" | "PRIVATE" | "CONFIDENTIAL"}
    calendar-description
    1
    (a String)
    calendar-status
    1
    (a Status-Value)
    calendar-summary
    1
    (a String)
    calendar-recurrence-id
    1
    (a Time-Instant)    ;; the time of this particular journal instance within a sequence of recurring journal events
    calendar-related-to
    n
    (a String)          ;; RELATED-TO
    calendar-exdate
    n
    (a Time-Instant)    ;; EXDATE
    calendar-exrule
    n
    (a Recurrence-Rule) ;; EXRULE
    calendar-rdate
    n
    (a Time-Instant)    ;; RDATE
    calendar-rrule
    n
    (a Recurrence-Rule) ;; RRULE
    calendar-created
    1
    (a Time-Instant)    ;; calendar information creation
    calendar-last-modified
    1
    (a Time-Instant)
    calendar-sequence
    1
    (a Number)          ;; revision number
    + slots inherited from Calendar-Entry

    Examples

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

    here is the KM/CLib version:
    (a Journal-Entry with
       (calendar-dtstamp ((a Time-Instant with
                             (time-value ((:pair 1997 *year)
                                          (:pair 3 *month)
                                          (:pair 24 *day)
                                          (:pair 12 *hour)
                                          *UTC
                             ))
       )))
       (calendar-uid ("udi5@host1.com"))
       (calendar-organizer ((a CalendarOrganizer with
                               (played-by (*JSmith))
                               (hasContactInformation (
                                  (a EMailAddress with
                                     (hasAddressString ("MAILTO:jsmith@host.com")))))
       )))
       (calendar-status ((a Status-Value with
                            (value (*CalendarStatus_draft))
       )))
       (calendar-class ("PUBLIC"))
       (calendar-category ((a Document called "Project Report")
                           (a Thing called "XYZ")
                           (a Meeting called "Weekly Meeting")
       ))
       (calendar-description ("Project xyz Review Meeting Minutes
    Agenda
    1. Review of project version 1.0 requirements.
    2. Definition of project processes.
    3. Review of project schedule.
    Participants: John Smith, Jane Doe, Jim Dandy
    -It was decided that the requirements need to be signed off by product marketing.
    -Project processes were accepted.
    -Project schedule needs to account for scheduled holidays and employee vacation time. Check with HR for specific dates.
    -New schedule will be distributed by Friday.
    Next weeks meeting is cancelled. No meeting until 3/23."))
    )

    Todo-Entry

    Description

    A kind of Calendar-Entry describing the properties of a Todo recorded in a Calendar (similar to an iCalendar VTODO object).

    Syntax

    (a Todo-Entry with (<slot> (<value> ...)))
    (<Todo-Entry-instance> has (<slot> (<value> ...)))

    Slots

    slotcardvalue
    calendar-referent
    1
    (a Event)
    calendar-attach
    n
    (a Information)
    calendar-categories
    n
    (a Thing)
    calendar-class
    1
    (a String)          ;; {"PUBLIC" | "PRIVATE" | "CONFIDENTIAL"}
    calendar-description
    1
    (a String)
    calendar-status
    1
    (a Status-Value)
    calendar-summary
    1
    (a String)
    calendar-recurrence-id
    1
    (a Time-Instant)    ;; the time of this particular event instance within a sequence of recurring events
    calendar-related-to
    n
    (a String)          ;; RELATED-TO
    calendar-exdate
    n
    (a Time-Instant)    ;; EXDATE
    calendar-exrule
    n
    (a Recurrence-Rule) ;; EXRULE
    calendar-rdate
    n
    (a Time-Instant)    ;; RDATE
    calendar-rrule
    n
    (a Recurrence-Rule) ;; RRULE
    calendar-created
    1
    (a Time-Instant)    ;; calendar information creation
    calendar-last-modified
    1
    (a Time-Instant)
    calendar-sequence
    1
    (a Number)          ;; revision number
    calendar-dtstart
    1
    (a Time-Instant)    ;; event start
    calendar-earliest-start
    1
    (a Time-Instant)    ;; earliest event start
    calendar-latest-start
    1
    (a Time-Instant)    ;; latest event start
    calendar-earliest-finish
    1
    (a Time-Instant)    ;; earliest event finish
    calendar-latest-finish
    1
    (a Time-Instant)    ;; latest event finish
    calendar-duration
    1
    (a Duration-Value)  ;; event duration
    calendar-location
    1
    (a Spatial-Entity)  ;; any Tangible-Entity or Place
    calendar-priority
    1
    (a Number)          ;; 1 = highest, 9 = lowest, 0 = undefined
    calendar-resources
    n
    (a Entity)          ;; any entities needed for use in the event
    calendar-percent-complete
    n
    (a Number)
    calendar-completed
    n
    (a Time-Instant)
    calendar-due
    n
    (a Time-Instant)
    hasStartDate
    1
    (a Time-Instant)
    hasEndDate
    1
    (a Time-Instant)
    + slots inherited from Calendar-Entry

    Examples

    Here is the iCalendar object for a Todo item. Note that embedded in the object there is a VALARM object. The CLib representation for calendars does not support VALARM objects.
    BEGIN:VTODO
    DTSTAMP:19980130T134500Z
    SEQUENCE:2
    UID:uid4@host1.com
    ORGANIZER:MAILTO:unclesam@us.gov
    ATTENDEE;PARTSTAT=ACCEPTED:MAILTO:jqpublic@host.com
    DUE:19980415T235959
    STATUS:NEEDS-ACTION
    SUMMARY:Submit Income Taxes
    BEGIN:VALARM
    ACTION:AUDIO
    TRIGGER:19980403T120000
    ATTACH;FMTTYPE=audio/basic:http://host.com/pub/audio-
     files/ssbanner.aud
    REPEAT:4
    DURATION:PT1H   
    END:VALARM
    END:VTODO

    here is the KM/CLib representation:
    (a Todo-Entry with
       (calendar-dtstamp ((a Time-Instant with
                             (time-value ((:pair 1998 *year)
                                          (:pair 1 *month)
                                          (:pair 30 *day)
                                          (:pair 13 *hour)
                                          (:pair 45 *minute)
                                          *UTC
                             ))
       )))
       (calendar-sequence (2))
       (calendar-uid ("uid4@host1.com"))
       (calendar-organizer ((a CalendarOrganizer with
                               (played-by ((a Person called "UncleSam" with
                                              (hasContactInformation (
                                                 (a EMailAddress with
                                                    (hasAddressString ("MAILTO:unclesam@us.gov")))))
                               )))
       )))
       (calendar-attendee ((a CalendarAttendee with
                              (played-by ((a Person called "JohnQPublic" with
                                             (hasContactInformation (
                                                (a EMailAddress with
                                                   (hasAddressString ("MAILTO:jqpublic@host.com")))))
                              )))
                              (status ((a Status-Value with
                                          (value (*CalendarStatus_accepted))
                              )))
       )))
       (calendar-due ((a Time-Instant with
                         (time-value ((:pair 1998 *year)
                                      (:pair 4 *month)
                                      (:pair 3 *day)
                                      (:pair 12 *hour)
                         ))
       )))
       (calendar-status ((a Status-Value with
                            (value (*CalendarStatus_needs_action))
       )))
       (calendar-summary ("Submit Income Taxes"))
    )

    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

    slotcardvalue
    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
                                 )
                ))
             )
    

    WeekdayNum

    Description

    Within a Recurrence-Rule, a structure consisting of an integer and a weekday identifier. An integer n indicates the nth occurrence of the specific day within the month or year (depending on the calendar-freq slot).

    Syntax

    (a WeekdayNum with (<slot> (<value> ...)))
    (<WeekdayNum-instance> has (<slot> (<value> ...)))

    Slots

    slotcardvalue
    calendar-ordwk
    1
    (a Integer)
    calendar-weekday
    1
    (a Day-Constant)
    + slots inherited from Message

    Examples

    The second Thursday of the month:
    
      KM> (a Recurrence-Rule with
             (calendar-freq (*monthly))
             (calendar-byday ((a WeekdayNum with (calendar-ordwk (2))
                                                 (calendar-weekday (*Thursday))
                              )
             ))
          )
    
    The last Monday of the year:
    
      KM> (a Recurrence-Rule with
             (calendar-freq (*yearly))
             (calendar-byday ((a WeekdayNum with (calendar-ordwk (-1))
                                                 (calendar-weekday (*Monday))
                              )
             ))
          )
    

    Return to Calo Ontologies Page