iCloud and calendar alarms

When I’ve complained about iCloud in the past, it was because iCloud—or one of the apps that sync via iCloud—had failed to do what it was supposed to. In one case, I ended up with duplicate calendar entries; in another, some Address Book contacts refused to appear on my iPhone. Today I’m going to complain about iCloud working exactly as Apple intends. More perversely, I’m going to complain about a behavior that I think is correct.

Update 5/4/12
The behavior described in this post was due to a couple of choices in the Settings for Mail, Contacts, and Calendars. Joe Saponare’s comment explains the problem well.

I’m still not sure whether I made the choice to have iCloud sync manually (and have forgotten about it) or whether that was the default when I updated to iOS 5. I’ve changed my setting from Manual to Push and will be monitoring battery life to see if there’s a notable reduction.

Try this two-part experiment: First, make a calendar entry on your Mac1 for later today. Now pull out your iPhone and open the Calendar app.2 Move to today’s date if you’re not already there. The event you just added won’t be there at first, but soon you’ll see the little gear icon spinning at the top and a few seconds later the new event will appear. Great.

Calendar syncing

Now for the second part. Make a new calendar entry on your Mac for five minutes from now and give it an alarm to sound at the time of the event (0 minutes before). Now go to your iPhone3 and check your Twitter feed, play a round of SpellTower—do anything but open the Calendar app. Does the alarm sound when the five minutes have passed? No.

This is because calendar events are synced only when the Calendar app is open. There’s no automatic syncing every so many minutes. This is a deliberate choice by Apple and is, I’m sure, intended to save battery life. Changes to your calendar are relatively infrequent, and turning on the antennas periodically to look for new entries that are almost never there doesn’t make a lot of sense. Almost every time you want to know about a new entry, you’ll have the Calendar app open, and since that’s when the syncing happens, everything works out just fine.

Except when the new event has an alarm, and you don’t open Calendar sometime before the alarm is set to sound. For that one particular case, Apple’s decision on when to sync will fail you; you won’t get an alarm that you were supposed to.

I first noticed this—bug? anomaly? I don’t know what to call it—on Monday morning when I arrived at work and saw an iCal alert window on my screen for an Iridium flare that’d happened Sunday night. Why didn’t I get an alarm on my phone? I wondered. I pulled out the phone, launched the Calendar app, and moved to Sunday. No Iridium flare event. But then the syncing gear spun, the Iridium flare event popped into place, and light dawned. The script that puts the dates and times for a week’s worth of Iridium flare events into my calendar runs every Sunday morning. I hadn’t opened the Calendar app on my phone that Sunday, so there was no syncing and therefore no alarm Sunday night.

Luckily, this wasn’t an important alarm, and now that I know how syncing works, I’ll be sure to open the Calendar app on my phone every time I add an alarmed event on my computer.

Am I angry at Apple for choosing battery life over periodic syncing? No, I think it made the right choice, but it’s a choice that can bite you if you don’t know about it. I’ve seen plenty of complaints about iCloud over the past several months, but never about this particular behavior. If you didn’t know about it either, now you do.

  1. It doesn’t matter which calendar app you use, as long as it works with the iCal database and you’re connected to the internet for syncing with iCloud. 

  2. Again, it doesn’t matter which calendar app you use as long as it uses the built-in Calendar’s data. 

  3. I assume things work the same way on an iPad, but I don’t have an iPad and can’t test it.