obj RemindInfoX = OnScreen or BeepOnly or Email and RemindTimeValue and AppointmentReminderUnits; object RemindInfo components: OnScreen or BeepOnly or Email; description: (* RemindInfo defines one of three ways that the user is alerted when a scheduled event is to occur. OnScreen means the user is reminded with a pop-up alert on her computer screen. BeepOnly means the user reminded with a simple audible tone on the computer. Email means the user is sent an electronic mail message reminder. *); end RemindInfo; object OnScreen; object BeepOnly; object Email; object AppointmentRemindInfo extends RemindInfo components: RemindTimeValue and AppointmentReminderUnits; description: (* AppointmentRemindInfo specializes RemindInfo by adding information for how soon before a scheduled item the reminder is to be sent. For appointments, the time units are minutes, hours, or days (cf. TaskRemindInfo). *); end RemindInfo; object RemindTimeValue = integer description: (* The amount of time before an item to send a reminder. The unit of this value is minutes, hours, or days, as specified in the AppointmentReminderUnits component of RemindInfo. *); end RemindTimeValue; object AppointmentReminderUnits components: MinutesBefore or HoursBefore or DaysBefore; description: (* Appointment reminders can come minutes, hours, or days before an appointment. Each of these units can be fractional, for maximum flexibility. *); end AppointmentReminderUnits; object MinutesBefore = real; object HoursBefore = real; object DaysBefore = real;