Recurring events with timezone
Hendrik Helwich
h.helwich at tarent.de
Mon Oct 18 15:43:53 CEST 2010
Hi,
for our effort to connect evolution with the kolab groupware server we would
like to know if it is possible to add timezone data to the kolab format. We
just put the implementation of this issue on hold as long as possible to not
exceed the deadlines to the customer.
At 31.10.2010 we finally need to start the implementation of this timezone
issues and would be glad if a decision to add timezone data to the kolab
format or not could be made :-)
I think to be interoperable with other calendar formats (like the frequently
used iCalendar format) and to describe the common usecase that a recurring
event should happen in a concrete timezone, it would be great if the kolab
format would support other timezones then UTC.
I also found an informative pdf on the CalConnect Page which illustrates why
it is good to add timezone information to a calendar format:
http://www.calconnect.org/pubdocs/CD0602%20iCalendar%20Timezone%20Problems%20and%20Recommendations.pdf
I still hope i can convince you to add timezones to the kolab format :-)
Otherwise when we have to start the implementation of this issues in two weeks
we need to convert local times from evolution calendar data to kolab UTC
times and this will lead to different times displayed to users for the same
event/task in some scenarios as mentioned before. And i certainly would like
to avoid this problem if it is possible :-) I also think this would increase
the value of the kolab format.
Because we are in shortage of time i want to do a suggestion how timezone data
could be added to the kolab format. I tried to do it in a kolab style way and
tried to make it simple and readable. Also all used timezones should be
covered. For this reason i looked over all the iCalendar timezones of libical
at:
http://freeassociation.svn.sourceforge.net/viewvc/freeassociation/trunk/libical/zoneinfo/
They use only two different timezone types: Simple timezones which have only a
fixed offset to the UTC timezone and a little more complex timezones with two
different offsets due to the daylight saving time.
Here is an example of a simple type:
http://freeassociation.svn.sourceforge.net/viewvc/freeassociation/trunk/libical/zoneinfo/Africa/Johannesburg.ics
BEGIN:VCALENDAR
PRODID:-//citadel.org//NONSGML Citadel calendar//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/citadel.org/20070227_1/Africa/Johannesburg
X-LIC-LOCATION:Africa/Johannesburg
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0200
TZNAME:SAST
DTSTART:19700101T000000
END:STANDARD
END:VTIMEZONE
END:VCALENDAR
I encoded the important informations in XML:
<timezone>
<id>Africa/Johannesburg</id>
<standard-time name="SAST">
<offset>+0200</offset>
</standard-time>
</timezone>
Here is one example of the second more complex example with DST:
http://freeassociation.svn.sourceforge.net/viewvc/freeassociation/trunk/libical/zoneinfo/Europe/Berlin.ics
BEGIN:VCALENDAR
PRODID:-//citadel.org//NONSGML Citadel calendar//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/citadel.org/20070227_1/Europe/Berlin
X-LIC-LOCATION:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE
END:VCALENDAR
This could be encoded in Kolab-XML like this:
<timezone>
<id>Europe/Berlin</id>
<standard-time name="CET">
<offset>+0100</offset>
</standard-time>
<daylight-saving-time name="CEST">
<offset>+0200</offset>
<start-date>
<month>march</month>
<day count="-1">sunday</day>
</start-date>
<end-date>
<month>october</month>
<day count="-1">sunday</day>
</end-date>
</daylight-saving-time>
</timezone>
This example of the german timezone defines a standard offset of +1 hour and
an DST offset of +2 hours to the UTC timezone.
The DST offset starts on the last sunday in march (start-date is inclusive)
and ends the day before the last sunday in october (end-date is exclusive).
The strings in the start-date and the end-date elements of a kolab event could
be set without the trailing "Z" character to indicate that the defined
timezone should be used instead of UTC timezone.
I attached an XML Schema for the described timezone element for a better
understanding. This timezone element should be a top level element which is
optional. It would still be possible to define the kolab format with UTC
timezone like before.
kolab timezone elements could also easily be generated automatically by a
script from the given ics files of libical. This could be helpful if Kontact
wants to enable the user to add a timezone to an event/task sometimes.
What do you think?
Greetings,
Hendrik
--
tarent Gesellschaft für Softwareentwicklung und IT-Beratung mbH
Geschäftsführer: Boris Esser, Elmar Geese
HRB AG Bonn 5168 - USt-ID (VAT): DE122264941
Heilsbachstraße 24, 53123 Bonn, Telefon: +49 228 52675-0
Thiemannstraße 36 a, 12059 Berlin, Telefon: +49 30 5682943-30
Internet: http://www.tarent.de/ • Telefax: +49 228 52675-25
-------------- next part --------------
A non-text attachment was scrubbed...
Name: kolab-timezone.xsd
Type: application/xsd
Size: 1499 bytes
Desc: not available
URL: <http://lists.kolab.org/pipermail/format/attachments/20101018/8f204009/attachment.bin>
More information about the format
mailing list