I noticed that, when these synchronisation issues appear, the calendar(s) should be somehow broken in iCloud so I figured out the following steps to get rid of the existing calendar(s) in iCloud, restore the existing calendar(s)' data in new calendars in iCloud and as such fix the synchronisation issues. Not all steps might be required, but by performing them all, it worked for me.
My gear:
- Mac running OS 10.9.2.
- iPhone 3GS running iOS 6.1.6 (10B500)
- free iCloud account
By following this tutorial, all calendar data on your iPhone will be erased. Hence, there’s only one prerequisite: all calendar data to be preserved should be present in Calendar on your Mac.
1. Backup the calendar in ICS format.
On Mac:
- Open Calendar
- For each calendar (on the left-hand side): select it and click ‘File - Export - Export…’ to export the calendar to an ICS file. In contrast to the ‘Export Calendar Archive’ functionality, this approach removes all iCloud metadata from the calendar entries, which is exactly what we want.
2. Obtain a clean Calendar on iCloud that synchronises well from both your iPhone and your Mac.
On iPhone:
- close ‘Calendar’, go to ‘Settings - iCloud’ and make sure ‘Calendars’ and ‘Reminders’ are toggled off. When toggling off, you will be prompted with a question asking you to remove the data on your iPhone and you should choose to do so.
- open the ‘Calendar’ and verify that it’s now empty (i.e., there’s a single calendar without any entries); close ‘Calendar’
On Mac:
- go to ‘Apple - System Preferences - iCloud’ and deselect ‘Calendars’ and ‘Reminders’. You will be prompted with a message upon deselection and should choose to ‘Delete from Mac’; close ‘System Preferences’
- open the ‘Calendar’ and verify that it’s now empty (i.e., there are 3 calendars without any entries); delete all but the ‘Home’ calendar; close ‘Calendar’
- reboot
- open the ‘Calendar’ and verify that it’s still empty (i.e., there’s a single calendar without any entries); close ‘Calendar’
- go to ‘Apple - System Preferences - iCloud’ and select ‘Calendars’ and ‘Reminders’. You will be prompted with a message upon selection and should choose to ‘Merge’; close ‘System Preferences’
- open the ‘Calendar’; there should now be calendars under ‘iCloud’ (on the left-hand side); create a new calendar ‘New’ and remove all previously existing ones so you’re left with only the ‘New’ calendar; hit cmd+r (‘Updating..’ should shortly appear in the title bar)
- reopen ‘Calendar’ and hit cmd+r again (‘Updating..’ should shortly appear in the title bar)
On iPhone:
- go to ‘Settings - iCloud’ and toggle ‘Calendars’ and ‘Reminders’ on.
- go to ‘Settings - Mail, Contacts, Calendars’:
o set ‘Fetch New Data’ to ‘Push’ (Manually)
o set ‘Calendars - Sync’ to ‘All Events’
- open the ‘Calendar’; click ‘Calendars’: you should see a single iCloud calendar: ‘New’; click ‘Done’
- add a new entry (e.g., “Phone”)
On Mac:
- in ‘Calendar’, verify that you see the new entry appearing (e.g., “Phone”)
- add a new entry (e.g., “Mac”) and hit cmd+r (‘Updating..’ should shortly appear in the title bar)
On iPhone:
- in ‘Calendar’, verify that you see the new entry appearing (e.g., “Mac”) and remove it
On Mac:
- in ‘Calendar’, hit cmd+r and verify that you see the entry disappearing (e.g., “Mac”); remove the entry added through the iPhone (e.g., “Phone”); hit cmd+r; your calendar should be empty now
On iPhone:
- in ‘Calendar’, verify that you see the entry disappearing (e.g., “Phone”) and the calendar is empty again.
3. Restore your backup
On Mac:
- in ‘Calendar’, choose ‘File - Import - Import…’ to import every calendar that you backed up in part 1 as a new calendar. You will see “Updating…” appear in the title bar every time you do an import so make sure to wait until that indicator is gone before proceeding with the next file.
- if you don’t need the ‘New’ calendar anymore, delete it
- hit cmd+r
On iPhone:
- in ‘Calendar’, click ‘Calendars’ and hit the refresh button (left-bottom); you should now see all restored calendars appear; hit ‘done’
- you should now see all restored entries appear in your calendar
4. Verify the synchronisation of your Mac and iPhone to iCloud and vice versa
-> This can be done by adding entries and removing entries using both your Mac and iPhone (cfr. the final steps of part 2)
5. Enjoy your properly functioning Calendar(s) in iCloud on both your Mac and iPhone ;-).