/** * A calendar is composed of zero or more scheduled items. */ abstract class Calendar { Collection items; } /** * A ScheduledItem is the generic definition for the types of items stored in a * calendar. A ScheduledItem has a title, start date, and end date. * Extensions of ScheduledItem are Appointments, Meetings, Events, and Tasks. */ abstract class ScheduledItem { components: Title and StartDate and EndDate; }