OSID Specifications
calendaring package
Version 3.0.0
Release Candidate Preview
TitleCalendaring Open Service Interface Definitions

The Calendaring OSID manages events, commitments and calendars. The Calendaring OSID offers a rich set of event management services.


An Event is range of time associated with a Location and event sponsors. Events may be managed singularly, or be generated of of one of the typs of events listed below.

Offset Events

An OffSetEvent is an OsidRule for generating an Event off of another Event. An OffsetEvent may be offset by a fixed period of time, a weekday, or include an external Rule to determine the offset. Example OffsetEvents are "the first Tuesday after Labor Day" or "24 hours before a due date."

Superseding Events

A SupersedingEvent is an OsidRule for replacing another Event. Typically, SupersedingEvents are used for replacing a generated Event from a recurring event series. Events may be superseded by date or position in a recruring even seriest. Examples are "replace the event on 12/25 with an event scheduled for 12/26" or "replace the 10th event in a course schedule with an exam."

Recurring Events

A RecurringEvent generates a series of Events from a Schedule. A Schedule is a series of times and locations.

A RecurringEvent may include SupersedingEvents to replace specific events in the series with another Event which may, in turn, be another RecurringEvent. RecurringEvents may also have a set of blackout dates in which Event generation is suuppressed.


A Schedule describes a repeating time and Location. Schedules may be bounded by dates or by using a TimePeriod. A TimePeriod is a reusable date range and may include a set of exception Events to define a set of time ranges that any RecurringEvent mapped to the TimePeriod may not occur.

Schedules are composed of ScheduleSlots. ScheduleSlots are normalized weekly time slots. A ScheduleSlot may be composed of other ScheduleSlots.

To make a RecurringEvent for MWF 3pm in room 26-100 during the summer except July 4th:

  • A ScheduleSlot for MWF 3pm is created.
  • A Schedule is created using the ScheduleSlot for room 10-250 in the summer TimePeriod.
  • A RecurringEvent is created using the Schedule.
  • A blackout date for Independence Day is added to the RecurringEvent.


Commitments are OsidRelationships between Resources and Events. Commitments may include any data specific to the relationship.

Calendaring Catalogging

Events and Schedules are cataloged into Calendars. The Calendar is simply an OsidCatalog representing a collection of Events that may be federated using the OSID hierarchy pattern to create virtual calendars.

Calendaring Rules

The Calendaring OSID includes a rules package for managing the behavior of Commitments and Events. It also includes a Calendaring Cycle OSID for managing canonical events and time periods as well as a Calendaring Mason OSID for defining rules for building events and time periods. The Calendaring Batch OSID manages Events, Commitments, and TimePeriods in bulk.