gggard / AndroidCaldavSyncAdapater

Caldav synch adapter for Android
246 stars 88 forks source link

Fails to manage an exception in repeating event #141

Open LudovicRousseau opened 10 years ago

LudovicRousseau commented 10 years ago

I have a repeating event. Every Wednesday of each week. This week is an exception and the repeating even has been removed.

The removed event is not displayed by Apple Calendar or caldavzap (http://www.inf-it.com/open-source/clients/caldavzap/)

But the removed event is available on my Android calendar applications. And all the recurring occurences are NOT displayed. This the opposite of what it should be.

I will send the .ics file to Timo Berger

timoberger commented 10 years ago

Only the first VEVENT of a event file is being processed. All VEVENTs coming after that are ignored intentionally. Every VEVENT in a event file should have been created as single events within android. And they wouldn't be treated as a group of recurring events.

timoberger commented 10 years ago

i have to investigate this more.

LudovicRousseau commented 10 years ago

The repeating event has been created under Google calendar, then synched with Apple calendar, exported in .ics and imported in another Apple calendar. The event was not created and modified within Android.

I made another test. I create (using Apple calendar) an event recurring every week. Then I remove one event in the serie. After sync using AndroidCaldavSyncAdapater all the events are displayed, even the removed one.

Maybe some VEVENTs are ignored intentionally (as you wrote) but that is a bug.

timoberger commented 10 years ago
BEGIN:VCALENDAR
BEGIN:VEVENT
... (no rules defined)
END:VEVENT
BEGIN:VEVENT
... (RRULES defined)
END:VEVENT
BEGIN:VEVENT
... (other RRLUES defined)
END:VEVENT
END:VCALENDAR

this is the constellation in which only the first VEVENT is processed. a single VEVENT can have complex rules. e.g. RRULE (every day), RDATE (2013-11-20), EXRULE (every second day), EXDATE (2013-11-21). it is also possible to add rules with a second VEVENT within the same calendar entry (see example above). and this is where the problems start. the sync adapter would have to create an event on the device for every VEVENT in the file to reflect all rules.

LudovicRousseau commented 10 years ago

Note that davdroid https://github.com/rfc2822/davdroid has the same problem.

LudovicRousseau commented 10 years ago

Maybe it is a "known" bug on Android.

I found "android: EXDATE format when adding a calendar event" http://stackoverflow.com/questions/14522393/android-exdate-format-when-adding-a-calendar-event from https://github.com/rfc2822/davdroid/issues/82