[dev] Allow syncronization of multiple calendars with SyncMl

Jan Schneider jan at horde.org
Tue Jan 31 13:42:03 UTC 2012


Zitat von Gonçalo Queirós <goncalo.queiros at portugalmail.net>:

> Citando Jan Schneider <jan at horde.org>:
>> Zitat von Gonçalo Queirós <goncalo.queiros at portugalmail.net>:
>>> Hi there dev.
>>>
>>>   Attached is a patch that changes the Kronolith API so its possible to
>>>   synchronize multiple calendars between Kronolith and Outlook, and
>>>   respect the calendar-event relation.
>>  This is already possible, technically, though I understand the
>> difference of your approach.
>>> I used the Funambol connector, so some code is only related with Funambol.
>>>   The code is not 100% perfect, since there are some minor issues (some
>>>   times you need to sync twice to actually sync), but i hope to fix that
>>>   next week.
>>>   I'm very interested in knowing if you guys think this can go to the code.
>>>
>>>   The major features are:
>>>   - Respect the event/calendar relation.
>>  Not necessary, because we already search for the events' UIDs in
>> all calendars.
>  From what i tested, if you have multiple calendars on Outlook, all those
> calendars events will be syncronized with Kronolith main calendar.

This is correct for client-to-server synchronization.

> The problem is that as soon as you edit one event on the Kronolith, and
> you sync, it will be moved from the original calendar on Outlook to the
> main calendar.

That's Outlook's (or the plugin's) fault then though.

> This is not desirable at all, since the user will end up with all is
> outlook events on the outlook main calendar.
> The patch respects the event/calendar relationship and doesn't move the
> event to the main outlook calendar if the only thing we did was edit it on
> Kronolith

But that doesn't work reliably either because there *is* no  
calendar-event-relation using UIDs. That's why using labels is fragile.

>>> - Automatically creates the calendars on Outlook/Kronolith when
>>>   synchronizing
>>  This is an interesting idea. Do you have any
>> numbers/ideas/experience how relieable the X-WR-CALNAME and
>> X-FUNAMBOL-FOLDER attributes are?
>>  The problem I have with that approach is, that those are calendar
>> *labels*. They can be changed, and they are not necessarily unique.
> No, i don't have numbers, i looked at what Funambol exported/imported and
> worked with that.
> Outlook doesn't allow repeated calendar names, but Kronolith does, so
> either we disallow it on Kronolith, or we have to find another way to fix
> this.

Disallowing won't work, because you can always get permissions on a  
shared calendar at a later point with a conflicting name. And of  
course we cannot require globally unique calendar names.

>>> - Move an event between two calendars on Kronolith, will also update the
>>>   info on Outlook (event move between calendars in Outlook is not possible)
>>  This already works, because moving an event adds a "delete" and an
>> "add" entry in the history storage.
> Yes, but since Horde is not exporting the event calendar, it wouldn't do
> nothing apparently, because the event only changed calendars.
> With the patch, the event will actually change to the correct calendar on
> Outlook
>>> - Rename the calendar on Outlook/Kronolith, will update the other side
>>>   calendar name
>>  How does that work, i.e. how do you know the original calendar?
> Funambol sends both calendar names, but since we load the event using its
> uid, we know the original calendar. Next, we just compare if the original
> and current calendar are different to check if we need to update the event
> calendar
> When the user changes the name of a calendar in Kronolith, we add a
> 'modify' entry for all the events on that calendar, which will make it
> sync all of them the next time.
>>> - All add/delete/edit are synchronized, no matter to what calendar the
>>>   event belongs to
>>  Already works.
> True, but with the problem already pointed out
>>> Possible drawbacks:
>>>   - Removing a calendar on Kronolith/Outlook will only erase all events
>>>   from that calendar on the other side, not the calendar itself
>>>   - I didn't tested with recursive events (although there's some code
>>>   specific to these kind of events), so i don't know yet if they are
>>>   synchronizing, no matter the calendar they belong to.
>>  Do you mean recurring events?
> Yes
>
> Also worth noting, that currently there's an issue with syncronization,
> that im trying to fix, and it might cause other issues with the patch i
> provided.
> I will provide another patch for that issue, since its actually a
> Kronolith bug
>
> Thanks


Jan.

-- 
Do you need professional PHP or Horde consulting?
http://horde.org/consulting/



More information about the dev mailing list