Added model logic for managing alarms and when an alarm will ring (plus
some weekday logic that was required).