The suggestion is based on a review of current state implementation extensions.
These implementations are currently adding EventDuration back onto CalendarDate as an extension. There is an issue here described in DATASTD-1238 around the use case of different time lengths for the same CalendarEvent. And adding EventDuration to the key seems too volatile. Instead, the direction has been to encourage BellSchedules to collect information around time and keep Calendars for information around days.
With this direction in mind, we could add an aggregate element TotalInstructionalTime per day, in minutes, on to BellSchedule and make the ClassPeriod collection optional. This would allow a simpler BellSchedule model to collect the data.