Dynamic Calendar

Dynamic calendar is now implemented.

Known problems: calendar does not reflect ending times correctly.  60
minutes may cause problems.  Decide how to split this.