Add support for global and recurring calendar events

I'd go longer, to make it clearer what to expect:


> If the calendar event is an all day affair, the `starts_at` and `ends_at` values will be a date.  For timed events, the `starts_at` and `ends_at` values will be times, with timezones.