Add support for global and recurring calendar events

That's not quite right. Think of the recurrences as children of the master event with auto-incrementing IDs (`number`) starting at 1. The master event has no `number`. The first recurrence is `number` 1, second is `number` 2, etc. The `excluding` array on the master event contains `number`s identifying recurrences that should be skipped because they were deleted.