I ran a full test without problems after applying the following change. See "ecal" branch. commit b44b45b74207c2710415fd9d040427bdcefb67d4 Author: Patrick Ohly <firstname.lastname@example.org> Date: Mon Jul 21 01:07:42 2014 -0700 EDS calendar: cache by TZID The display name is not necessarily a unique identifier for the content of a time zone. For example, the 1990 version of CET/CEST might be different from the 2014 version. Therefore the display name should not be used as identifier. The TZID is not necessarily better, but at least the code in e-cal-check-timezones.c tries to verify content equality before reusing an existing timezone. It also has code which matches time zones based on their Olson name embedded in the TZID. If that code does not work well enough (for example, see FDO #81590), then it should be enhanced. The problem with icaltimezone_get_display_name() also was that it's not currently covered by src/syncevo/eds_abi_wrapper.h, which causes compile errors when building binaries for syncevolution.org. This could be fixed, of course.