MacOS iCal and Reminders
tl;dr: If your birthday-calendar appointments don’t show up on your MacOS iCal, try turning it off and on again (rebooting the machine). That’s what eventually worked for me. For the full story and more tips, read on.
A little while back, I enabled iCloud synchronization for my contacts. That didn’t go so smoothly on the first try: the MacOS desktop that had most of the information was actually erased because Apple doesn’t seem to understand what “sync” means.
Using a backup, I was able to save my contacts and get my three devices on the same page. It’s quite nice that the contact changes are automatically disseminated to three devices at once. I used to have syncing for the desktop and the phone, but my other laptop was not privy.
All in all, despite the initial stumble, it seemed to be working fine.
Somewhat encouraged, but with misgivings, I thought maybe I could synchronize my calendar in the same way. I’ve started using the calendar more, but don’t sync to my phone often enough. The cloud could be quite useful here, too.
Fingers crossed, I enabled iCloud synchronization from my desktop (where my calendars are).
I turned on iCloud calendar-sync on the phone, but didn’t see any immediate difference since the calendars were already synced. I didn’t see anything happening—of course, it’s Apple, so progress bars or circles are superfluous and disturbing—so I went off and did something else.
A bit later, I wanted to check my task list, which I keep in Reminders.
All of my lists and reminders are gone.
I mean, obviously.
Reminders and iCal are conjoined twins
I hadn’t enabled Reminders in iCloud. Why did it wipe those out?
Reminders and Calendar are basically inseparable. Apple lists them as separate sync targets in the iCloud settings, but I don’t believe that it’s actually possible to sync one without the other. The data is all mixed up in the same folder in your Application Support area.
I opened iCal. All of my calendars were gone, too.
After my recent experience with Contacts, this no longer came as a surprise to me, so I spent a bit less time throwing things around my office and swearing at the top of my lungs about the utter incompetence of a company absolutely suffused with the best engineers money can buy that can’t even get a simple synchronization right.
It wasn’t even a synchronization—it was a merge of a list with an empty list. And their brilliant sync-process ended up with an empty list without asking a single question.
What the actual fuck.
Basically, the same bullshit that happened with Contacts.
It’s made worse by the fact that Apple is so confident of the flawlessness of their software that they provide no logging, no monitoring, no introspection and no UI or help to address problems.
It’s just broken or not working or sporadically working or your data is just gone and there are no switches or toggles to adjust.
The Long, Scary Road to iCal Syncing
First I turned off iCloud sync for iCal.
Then, I turned immediately to the same solution as with contacts: restore from backup.
Easier said than done; the iCal backup is harder to find than Contacts.
Also, restoring the “Calendars” folder doesn’t work. My calendar and reminders were still empty.
I can see all of the individual files with the correct data, but neither iCal nor Reminders reads it or shows it to me.
I logged in to iCloud and saw all of my calendars, as expected. What’s going on? It looks like iCloud uploaded my data, then deleted it from the source, put on its hat and went home for the weekend, patting itself on the back for a job well-done.
This can’t be the state of engineering for such basic software, can it?
Oh, but it is.
On a hunch, I restored the version that iCloud has left me and enabled iCloud synchronization not only for calendars but also for Reminders. In seconds, my calendar and reminders were, once again, populated.
iCloud and Mac had managed to paste together a mish-mash of long-forgotten calendars and reminders lists, complete with duplicate appointments and reminders.
Also, the birthday calendar was enabled, but none of its appointments were visible.
Turning it off and on again did nothing.
Putting it all back together
I enabled the birthday calendar in iCloud. It informed me that it could take up to an hour to calculate the birthdays—from my 150 contacts. Fine. That sounds reasonable.
The birthdays finally showed up in iCloud, but still not on my Mac. The iPhone showed them just fine, along with the plethora of calendars that iCloud had put together for me.
I deleted some of these calendars and reminders and could see them dropping out of iCloud. I changed the colors of some of the standard auto-generated calendars to de-emphasize them. At this point, I was too terrified to delete any of Apple’s calendars for fear that their algorithms would punish me. At each step, I was reassured to see iCloud updating more-or-less in real-time.
I checked my calendar on my phone and saw that it hadn’t synced yet—there were still all of these other calendars displayed. After a minute or two, they still hadn’t updated on my phone. The phone had even more auto-generated calendars than the desktop.
I turned with dread to my desktop to see that, once again, Apple had applied its inexorable and inscrutable “merging” logic to revert all of my previous changes and more-or-less use only the versions it had found on the phone.
It was incredible, but it looked like Apple’s merge policy was to apply a sane policy for two sources that had been introduced but, for a new source seemed to just let the stranger barge its way in and overwrite everything that had existed before.
I know that that can’t be the way that it works, but that has been the sum-total of my experience so far.
Oh my God are we synced yet?
I changed some colors back and could see that both iCloud and the phone were now updating, exactly as expected according to the logic I’ve outlined above.
I still didn’t have birthdays on the desktop, though.
In a final, desperate move—but without much hope—I rebooted the desktop. It’s so quick these days: rebooting, logging in and having MacOS restart everything takes only a handful of seconds.
Aaaannnnddd….the birthday calendar is working again.
Incredible. And pathetic.
Also, I have all of my old calendars back. Again. With original colors. Again.
On top of that, now I’ve got two copies of the “US Holidays” and “Swiss Holidays” calendar: one set in the “iCloud” area and one in the “Other” area. I check iCloud: it doesn’t have these two calendars. MacOS swears that those calendars are in iCloud and iCloud tells MacOS to “go home, you’re drunk”. My phone agrees with the desktop. Fun times.
Seriously, this is the last step
So, which of the duplicated calendars should I delete? The ones in “Other”? If I delete those, will iCloud at some point sync and remove the copies from my desktop and iPhone, leaving me with no holiday calendars? Who knows?
One more time, with feeling. Delete local calendars, leave Apple auto-generated calendars alone, unsubscribe “Other” calendars. What to do with the local “Trips” calendar? I exported it, then imported it to a new calendar, which automatically created the new calendar in iCloud. Delete the original from “On My Mac” and Bob’s your uncle.
Finally, everything seems to be in-sync and all calendars and reminders are working on all devices.
Later that morning, I was alerted to an appointment in the afternoon. I’d attached the contact/address, so the alert showed me the map.
Nice integration. Let’s use it.
Maps opens and shows me the location. I get directions. Hey! They have public transit for Switzerland now! I don’t have to use Google Maps for this stuff anymore? Cooool.
I’d looked it up on the desktop—let’s share it to the phone, shall we? There’s a little “share” button everywhere in MacOS. There’s even an entry that lets you “share with iPhone”.
Share with Messages. Send to me and my wife.
A message pops up with a map that I’d looked up 2 weeks ago. On both phones.
I tried again, to no avail. At best, I’d get a message with the address of a restaurant we’d eaten at 2 weeks ago.
Fine. I looked up the address on my phone and got it that way. It didn’t take long. That’s not the issue. The issue is a company with so much talent, data and software getting so close to useful integration and then dropping the ball on the one-yard line.
Who the fuck is writing this amateurish and terrible software? It’s an absolute scandal that this is the state of such essential and simple software components in 2019.
The integration is so promising and then stumbles on the simplest of cracks in the road.