TZ=Europe/Vienna translated to TZ=Vienna and breaks times
Since few years I am using libsynthesis with syncevolution to sync from Xperia X (Sailfish OS). Before everything was working perfectly fine with the Nokia N9. With Xperia X I get the time of calendar event shifted by 1 or 2h.
It comes from the phone as
DTSTART;TZID=Europe/Vienna:20201027T210000
DTEND;TZID=Europe/Vienna:20201027T220000
in the log I get
- 18 : timestamp DTSTART [ 0, 0, 0] : 2020-10-27T21:00:00 (imported TZ: Vienna)
- 19 : timestamp DTEND [ 0, 0, 0] : 2020-10-27T22:00:00 (imported TZ: Vienna)
which results in
DTSTART;TZID=Vienna:20201027T210000
DTEND;TZID=Vienna:20201027T220000
sent to the PC.
It turned out the issue is in src/sysync/tz_table.h - there is no record Europe/Vienna. Replacing one of Berlin or Warsaw with Vienna solves the issue.
BTW the N9 was sending the events in UTC, while Xperia X is using the local time zone.
I am also not sure how to understand
--enable-libical use libical (if necessary, the one in libecal) to
improve time zone support, enabled by default if
necessary libs are found