gggard / AndroidCaldavSyncAdapater

Caldav synch adapter for Android
246 stars 88 forks source link

support multiple VEVENT in one ICS #214

Open wrosenauer opened 10 years ago

wrosenauer commented 10 years ago

I'm testing the sync adapter with Open-Xchange server. Pretty often I get ICS files with multiple VEVENTs and those are ignored according to the log. I guess that's also the reason why it seems that appointment series exceptions seems to be missing most of the time.

Hawk777 commented 10 years ago

According to RFC 4791 section 4.1:

Calendar components with the same UID property value, in a given calendar collection, MUST be contained in the same calendar object resource.

Meanwhile, RFC 2445 says the proper way to modify one instance of a recurring event is to create a new VEVENT with the same UID as the recurring event and a RECURRENCE-ID field. So, putting this together, a recurring event with a modified instance not only can, but indeed must, have multiple VEVENTs in a single object (ICS file). I see this happening with Radicale.

The push side of things, from phone to server, is even messier: when I modify one instance of a recurring event on the phone and then refresh, it creates a brand new event with fresh UID on the server for that instance… but does absolutely nothing with the original event! IMO what it should do is create a new event with the same UID and a RECURRENCE-ID and push the two events into a single object.