[CalendarServer-dev] Possible bug in vobject

Peter Mogensen apm at one.com
Tue Jan 27 07:19:51 PST 2009


Hi,

I think we're seeing a bug in python vobject which is exposed in 
Calendarserver as illegal iCalendar in reponse to REPORTs

To reproduce the problem:
* PUT and event in a timezone which is equal (at all times) to UTC.
* Query the event with a calendar-query REPORT.

The returned iCalendar for the resource will now reference the TZID, but 
the VCALENDAR component will not include the VTIMEZONE definition.

The problem seems to be located in vobject icalendar.py in the function 
tzinfo_eq() where it assumes that as long as the transitions are 
equivalent at all times (within the test range 2000-2020), then it's 
also the same timezone.

That's a problem since then the findTzids() function in
generateImplicitParameters() in class VCalendar2_0 will not remember 
that a timezone equal to UTC has been seen and they will then not be 
added as VTIMEZONE components to the final output.

This is a problem for timezones like:
Africa/Lome
Atlantic/St_Helena
Africa/Abidjan
Africa/Bamako
Africa/Banjul
Africa/Bissau
Africa/Conakry
Africa/Dakar
Africa/Freetown
Africa/Monrovia
Africa/Nouakchott
Africa/Ouagadougou
Africa/Sao_Tome
Africa/Timbuktu

... which have definitions essentially equal to UTC:

BEGIN:VTIMEZONE
TZID:Africa/Lome
BEGIN:STANDARD
DTSTART:19700101T000000
TZNAME:GMT
TZOFFSETFROM:+0000
TZOFFSETTO:+0000
END:STANDARD
END:VTIMEZONE

/Peter


More information about the calendarserver-dev mailing list