calendar-server: Read timezone from the calendar, not its timezone cache
The calendar's timezone cache holds only timezones already received or added to the calendar, thus when asking it for a timezone for "the first time", it returns NULL and a wrong timezone is used instead. The get_timezone() does not do any I/O when the timezone is already cached on the client side, thus it's fine to use it.
This could exhibit with non-recurring events, which use custom time zones, in which case the event is shown in a wrong time.