On Mon, 2010-09-27 at 15:54 +0200, Hendrik Helwich wrote:
> while working on a plugin [1] to connect eds  to a kolab server, i need to 
> convert evolution contacts, events, tasks and notes to a kolab email (and 
> back).
> Right now the idea is to use the class EContact for evolution contacts and 
> ECalComponent for evolution events, tasks and notes.
> I now noticed, that an event in an evolution iCalendar file contains a 
> VTIMEZONE and a VEVENT block, and the VEVENT block depends to a timezone 
> which is defined in the VTIMEZONE block.
> The ECalComponent seems to hold only one block of an iCalendar object and it 
> is therefore not possible to get all the informations of an evolution event  
> from one ECalComponent.

        Hi,
I think it was mentioned earlier, the ECalComponent is a wrapper for the
icalcomponent. Evolution's UI is using ECalComponent, but, say as
CalDAV, you can operate with icalcomponent internally, when there is a
need for a VCALENDAR component used in the kolab email.

With respect of VTIMEZONE, the ECalComponent has times/dates stored as
ECalComponentDateTime structure, which has 'tzid' member (it's a const
gchar *), and when the UI or a util function needs the VTIMEZONE, then
it asks ECal through e_cal_get_timezone, which calls, through DBus these
days, ECalBackend's e_cal_backend_get_timezone function.

Note also that there is a default timezone for the ECalBackend, and that
timezones can be also added to the backend from outside, not only from
the server. It's used when copying events between backends, for example.

Most ECalBackend-s are using ECalBackendStore, which has a facility to
store both components and timezones.
        Hope that helps,
        Milan

_______________________________________________
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers

Reply via email to