Ticket modified by Simo Kivimäki at 2010/03/15 20:01
Tracking System: Bugs
Category: SyncML
Version: Version 1.6.003
Status: Open
Resolution: None
Completed: 0%
Priority: 5 - medium
Created By: Simo Kivimäki
Assigned to: Jörg Lehrke
Summary: #1778 - Date exceptions in repeating event do not synchronize
When synchronizing a repeating calendar entry with exceptions dates, these exceptions are not synchronized from egw to a mobile phone.
iCalendar 2.0 export from the egw calendar is correct and includes line:
EXDATE;VALUE=DATE:20081110,20081117
But when SyncML sync is done, vCalendar 1.0 entry contained in /tmp/sync directory does not include any exceptions.
vCalendar 1.0 specification (http://www.imc.org/pdi/pdiproddev.html) shows an example for exception dates:
EXDATE:19960402T010000Z;19960403T010000Z;19960404T010000Z
Comment by Simo Kivimäki at 2010/03/15 20:01:
Thank you. I made similar change to my stable 1.6.003 installation, so now the private events works nicely.
But did your bug fixes address the problem with duplication? (sorry about this not being in scope of the original bug)
- Add an event to the phone
- Sync
- Modify the event using phone
- Sync
- There is both the old and modified version of the event in both calendars.
- Sync
- There is both the old and modified in egw, and in the phone modified twice and old once.
Secondly the priority is high for events synced from the phone to egw. Even though there is no priority setting in the phone calendar.
Comment by Jörg Lehrke at 2010/03/15 17:34:
Thanks for your help. I put the “N97 mini” in the SVN versions and adjust the CLASS export to PRIVATE. If you update to one of the new versions (branch 1.6 or trunk) tomorrow it should work.
Comment by Simo Kivimäki at 2010/03/15 12:55:
I could not find setSupportedFields() from the log, but anyway:
[15-Mar-2010 11:43:15] Unknown Nokia phone ‘N97 mini’, assuming E61
You are right, this uses the minimal set of supported fields. Maybe (almost) all S60 devices should use the S60 settings by default? When I added ‘n97 mini’ to the switch-case, the exception did sync correctly!
I tried to sync private event from egw to the phone. It did appear to the phone but it had "synchronize never" setting on. And when syncing private event from phone to egw, the event appeared as public (when used minimal settings). After using the S60 settings, it appeared correctly as private.
But (sigh), when I modified this private event from phone and synced again, the event duplicated both in the egw and phone calendar. Both old and new version appeared in the calendars. If you need, I can provide logs of this event chain.
Here is some data from the log. Summary tells to which calendar the entry is added.
SUMMARY:private egw
CLASS:CONFIDENTIAL
SUMMARY:Public n97 mini
CLASS:PUBLIC
SUMMARY:Private n97 mini
CLASS:PRIVATE
Comment by Jörg Lehrke at 2010/03/15 11:11:
The reason for this behavior is the settings for your device. Can you please check the setSupportedFields() output in your log and provide me with the device identifier.
EGw does skip the EXDATE e.g. for unknown Nokia and Siemens devices.
The supported fields are hard coded in EGw. If you know about the feaures of your device, I would appreciate the information.
If you use a newer Nokia phone, I would be interested in a vCalendar entry with private flag, too. I heard that the current CLASS:PRIVATE used by EGw does mean not to sync this entry at all for Nokia devices.
Comment by Simo Kivimäki at 2010/03/15 10:53:
Here is what I get to the debug log:
BEGIN:VCALENDAR
VERSION:1.0
PRODID:-//eGroupWare//NONSGML eGroupWare Calendar 1.6.003//FI
METHOD:PUBLISH
BEGIN:VEVENT
CLASS:PUBLIC
SUMMARY:repeating with exception
DESCRIPTION:
LOCATION:
DTSTART:20100301T120000
DTEND:20100301T130000
RRULE:W1 MO #0
X-EPOCAGENDAENTRYTYPE:APPOINTMENT
CREATED:20100315T093716Z
LAST-MODIFIED:20100315T094252Z
DTSTAMP:20100315T094315Z
END:VEVENT
END:VCALENDAR
And here is the calendar entry as iCalendar export:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//eGroupWare//NONSGML eGroupWare Calendar 1.6.003//FI
METHOD:PUBLISH
BEGIN:VTIMEZONE
TZID:Europe/Helsinki
BEGIN:DAYLIGHT
DTSTART:20100328T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
TZNAME:EEST
TZOFFSETFROM:+0200
TZOFFSETTO:+0300
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20101031T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
TZNAME:EET
TZOFFSETFROM:+0300
TZOFFSETTO:+0200
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CLASS:PUBLIC
SUMMARY:repeating with exception
DTSTART;TZID=Europe/Helsinki:20100301T120000
DTEND;TZID=Europe/Helsinki:20100301T130000
ATTENDEE;CN="Simo
Kivimäki";ROLE=CHAIR;PARTSTAT=ACCEPTED;CUTYPE=INDIVIDUAL;RSVP=FALSE;X-EGRO
UPWARE-UID=15:MAILTO:simo.kivimaki@dicode.fi
ORGANIZER;CN="Simo
Kivimäki";X-EGROUPWARE-UID=15:MAILTO:simo.kivimaki@dicode.fi
RRULE:FREQ=WEEKLY;BYDAY=MO
EXDATE;TZID=Europe/Helsinki;VALUE=DATE-TIME:20100315T120000
PRIORITY:5
TRANSP:OPAQUE
UID:calendar-4364-fc035754e79a095f5db0c8168a29b87d
SEQUENCE:2
STATUS:CONFIRMED
CREATED:20100315T093716Z
LAST-MODIFIED:20100315T094252Z
DTSTAMP:20100315T094434Z
END:VEVENT
END:VCALENDAR
Comment by Jörg Lehrke at 2010/03/13 23:33:
1.6.003 is definitively working properly regarding calendar exceptions with both vCalendar 1.0 and 2.0. You can enable logging in
phpgwapi/inc/horde/config/conf.php ($conf[‘log’][‘enabled’] = true;)
and check the content.
Comment by Simo Kivimäki at 2010/03/13 22:00:
Not fixed in 1.6.003. Tested by deleting one instance of repeating entry.
Comment by Gertjan van Oosten at 2010/01/19 14:16:
With 1.6.002 (svn r28982) execptions still don’t work completely. If I have a repeating appointment (say, every Monday) for the whole of this year but I make an exception such that one of them is on a Tuesday, then after syncing (to Funambol on my mobile) I get a repeating appointment every Monday and an additional appointment on said Tuesday. In other words: the Monday that does not have an appointment shows up in my mobile calendar as still having an appointment.
Regards,
Gertjan
Comment by Jörg Lehrke at 2009/06/09 23:53:
eGW does handle recurrence exceptions in two different ways. If the exception is caused by a new time slot a true exception is generated. Theses exceptions should work. For inhomogeneous participant stati the internal handling is different and not supported by eGW.
If you use my SyncML-extensions patch (http://k.noc.de) for 1.6.001, it should work, though.
My changes will be merged with the SVN trunk in the future.
Comment by Ralf Becker at 1970/01/01 01:33:
Assigning SyncML bugs to our new SyncML maintainers Jörg Lehrke and Philip Herbert
Linked entries:
http://www.egroupware.org/egroupware/index.php?menuaction=tracker.tracker_ui.edit&tr_id=1778&no_popup=1