This was done beacause I needed to show events spanning more than a day

I work with events read from a vCal file and I needed to show events spanning more than a day in a different look. So I modified _Event_ object to support  **:simple_calendar_range_date** method and to expose **event_start_date**  and **event_end_date** property.
If **:simple_calendar_range_date** method is found then I check if event spans over a date range (**event_start_date**..**event_end_date**) and then I sort events selected by start date.
(Warning: it may result that period with _same_ start date are **not** ordered by end date!)
if **:simple_calendar_range_date** method is not found, then, as before, **:simple_calendar_start_time** method is checked (single date events), else events is passed as is.