I find it a bit weird to have, for instance,
`-calendarView:didSelectDate:` called when no date has actually been
selected.

How about adding a pair of `willDeselectDate:` / `didDeselectDate:`
delegate methods instead?