I’m testing the import of calendar entries using an .ics file that users will receive via email.
The .ics will have multiple VEVENTS for which each will have a unique SEQUENCE and UID value. The date/timestamp for each event will be unique too.
Adding multiples entries appears to work okay but updating entries is more problematic.
When I import a .ics that refers to a specific SEQUENCE AND UID, (ie to update the subject or text) other entries for that calendar date are being deleted.
How can I prevent this from happening and ensure that any update is applied to the intended entry?
Thanks!
Subject: Understanding and getting around your problem
When we import an ics file, we treat it like an all inclusive calendar. For example, if you imported a baseball team’s schedule in a single ics file, then we link all the entries created during that import together. If one game is then canceled and another game is moved to a new time and the user imports that file again, we will recognize that it as an update the same calendar and replace the entire previously imported calendar with this new calendar. We must use this rip and replace model as there would otherwise be no way to determine that the game which was canceled should be removed (there is no longer a refrence to it in the calendar).
It sounds to me like your implementation does not follow this logic, but instead sends out periodic ics files that contain only information that has changed - is this correct? Our current logic would then assume that any entries that are not present have been removed from the calendar and would then be deleted. If this is a common usage, we could consider providing a mechanism that better fits it, but I would want to be sure that I understand your usecase properly.
Ways that you could avoid this:
-
With the 8.5 or greater client ONLY: Use calendar federation rather than inmporting - that is, publish a master ics file to a common location and when you open that ics file, select the ‘Add this calendar to your Show Calendars list’ rather than the import option.
-
With the 8.5 or greater clients: Rather than including the updates in the ics file, put each update as a separate ics file with METHOD:REQUEST instead of METHOD:PUBLISH. This will cause an update notice to open for that particular meeting.
-
Send out the complete calendar each time you send an update, including events that have not changed.
Thanks!
Nate