/** * An Appointment adds a number of components to a generic ScheduledItem. The * StartTime and Duration indicate when the appointment starts and how long it * lasts. RecurringInfo defines if and how the appointment recurs more than * once. The Location is where it is held. The AppointmentSecurity indicates * who can see that the appointment is scheduled. Priority is how important * the appointment is. RemindInfo indicates if and how the user is reminded of * the appointment. Details are free form text describing any specific * appointment details. */ abstract class Appointment extends ScheduledItem { Time startTime; Duration duration; RecurringInfo recurringInfo; Location location; AppointmentSecurity security; AppointmentPriority priority; RemindInfo remind; Text details; } /** * Like an Appointment, a Meeting adds components to a generic ScheduledItem. * A Meeting differs from an Appointment as follows: (1) Security for an * appointment includes a private option that is not available for meetings. * (2) Meetings have Attendees and Minutes components, Appointments do not. */ abstract class Meeting extends ScheduledItem { Time startTime; Duration duration; RecurringInfo recurringInfo; Location location; MeetingSecurity meetingSecurity; AppointmentPriority priority; RemindInfo remindInfo; Attendees attendees; Text Details; Text Minutes; }