An Alarming Abundance of Alerts
Thanks to iCloud, my calendars sync wirelessly and instantly across all my devices — and can be edited anywhere. This is a fantastic capability, one that I have come to depend on. But one aspect of calendar syncing is, shall we say, alarming. And it’s not even specific to iCloud, but rather a function of the way Apple’s operating systems handle calendar alerts on each platform when calendars are synced from any source.
At 3:00 PM yesterday, I had a meeting scheduled across town, and in order to ensure that I remembered in plenty of time to get there, I had set an alert to go off an hour ahead of time. Precisely as requested, at 2:00 PM, my iMac beeped and flashed a reminder on its screen. So did my MacBook Pro. And my iPhone 4S, and my old iPhone 4 that I now use for testing. And my new iPad, and my iPad 2 that’s still in use. And my wife’s Mac, and her iPhone, and her iPad, since I shared my calendar with her. That’s right: Nine devices in our household beeped and displayed reminders for the very same event! (And because the devices’ clocks aren’t perfectly in sync — another inexplicable irritation — these beeps were spread out over a
period of about 30 seconds.) Yesterday was a slow day, too — just one meeting. Often this sort of thing happens numerous times a day.
And it’s not just the events on my personal calendar, my wife’s calendar, and our shared family calendar that prompt these alerts. Whenever Adam Engst has a TidBITS-related meeting or appointment for which he has (quite reasonably for him) set an alarm, all my devices remind me about that, too, because Adam has shared the TidBITS calendar with the whole staff via iCloud. Given the six-hour time difference between Adam and me, those alerts have sometimes occurred at very inconvenient times!
I grant that my situation is somewhat atypical. Owing to my profession, I accumulate Macs and iOS devices at a rather embarrassing rate. But I know lots of people with three or four Apple devices, all of which sync the same calendars via iCloud, Google Calendar, or Exchange servers. And a quick Web search revealed that many thousands of us multi-device users are getting pretty annoyed at all these redundant alerts, especially those that come from calendars shared by other people.
The Problem with Disabling Alerts — Now, hold it right there, because I know what you’re going to say. You’re going to say that I can just disable alerts for any given calendar, on any given Mac. Yep, I realize that. In iCal, I can select a calendar, choose Edit > Get Info, and select the Ignore Alerts checkbox. Or, in BusyCal, I can select a calendar, choose File > Get Info, and deselect the Alarms checkbox. Either way, that means I’ll never see alerts for that particular calendar on that particular Mac.
But that’s not what I want.
First of all, disabling alerts per calendar is a trick you can currently do only on a Mac, not on an iOS device. So at best, it would solve only part of the problem. And second, having per-calendar granularity is nice, but what I want even more is per-device granularity — a way to enable or disable alerts for all the calendars I care about on any particular device. The thing is, I usually do want to see and hear those alerts — at least those that come from my own calendars. I just don’t want to get them on all my devices. I want to get my alerts only on the device that’s nearest to me at any moment. Having to go around to many devices in many locations and dismiss alerts is not a productive use of my time.
On the other hand, sometimes the crucial decision of when to dismiss an alert is taken out of my hands! On my Mac, if I don’t dismiss an alert right away, it simply stays on the screen until I do, without interfering with anything else I’m doing. If I’m busy working on something, I might just leave the alert on the screen until I can deal with it, or I might click the Snooze button. That’s all fine. But I don’t get that option on my iOS devices. If I’m actively using a device, I can dismiss an alert or open it in Calendar, but I can’t snooze it. If the device is asleep, then I see the alert on the lock screen, but unlocking the device makes the alert disappear, so if I’m not able to deal with it immediately — for
example, if I get interrupted with a message or phone call — I have to remember to perform an additional step to see what it was.
Potential Paths to Less-Alarming Calendars — Some preliminary signs give me a ray of hope that Apple may at least be on the trail to a solution.
According to a report from 9to5 Mac, the latest developer preview of OS X 10.8 Mountain Lion has a system-wide “Do Not Disturb” switch that would presumably prevent all alerts — whether from your calendars or otherwise — from interrupting you on that Mac until you turn alerts back on. If that feature does turn out to be in the final version of Mountain Lion, I’d have to say it sounds like a small but meaningful step in the right direction. It would be an improvement over what we have today in that it affects all your calendars and can be toggled with just a couple of clicks.
However, the problem that feature appears to solve is, for me, the least important aspect of my gripe. For one thing, it may reduce unwanted alerts on my Macs, but I’ve heard no rumors of an analogous option forthcoming for iOS devices. Perhaps Apple is planning exactly that for iOS 6, and if so, that would certainly be a bigger step in the right direction.
But even having a “Do Not Disturb” switch on all my devices that’s as easy to access as, say, the Airplane Mode switch would still amount to little more than a tease. It would mean I have to flip that switch off, on all my devices except one — and then, when a different device becomes the one I want to pay attention to, remember to turn off “Do Not Disturb” on the first device manually and activate it on the other one. So, instead of having alerts everywhere that I can’t get rid of, I’d have to take on the burden of constantly reminding all my devices which one(s) I want to hear from! Yeah, that’s totally going to happen.
If Apple wanted to take a big step toward solving this problem, a wiser solution would be a switch that means “Show me alerts only on this device.” In other words, if I activate that setting on my iPhone, it automatically switches all my other devices into “Do Not Disturb” mode. The information that a certain device has become primary could be pushed to all my other devices the same way calendar updates are currently.
But even that, better though it may be, would require more manual effort than I want to put into maintaining my alarms, which is zero. What I really want is for that switch to figure out, on its own, when it should be on — with an option to override it manually, of course.
That may sound like magic, but I think it’s entirely plausible. All my Apple devices can already tell when they’re being used actively, because when they are, they don’t go to sleep. If one of my devices knows it’s in use, presto, that one becomes my primary device for alerts, and stays that way until another device senses that it is being used. If I’m not actively using a device, I might still have an iPhone in my pocket or an iPad in my backpack. Those devices have sensitive motion detectors, and could infer from the fact that they’re being bumped around a bit that I’m carrying them. That fact could trigger such a device to become primary. Perhaps Apple could get even fancier and look at things like where and when I
typically use various devices, and use that to make better guesses about which device should be primary at any given time. I’m not saying it would be trivial to figure this out, but it strikes me as being merely a software engineering challenge, not something that requires entirely new technology.
One Alert at a Time — Ultimately, I would like to see a system of cascading alerts. My devices make their best guess about which one is primary at the moment, and display any alerts on just that one device. If I dismiss an alert there, that’s the end of the story. If a few minutes go by without any action from me, the next-most-likely device displays the alert, and so on. But regardless of where I ultimately see that alert, explicitly dismissing it makes it disappear from all my screens.
In addition, I want to be able to snooze any alert on my iOS devices, regardless of whether the device happens to be asleep when the alert pops up. And finally, for bonus points, I’d like snoozes to follow me, too. In other words, if I snooze an alert for an hour, and during that hour switch from one device to another, I want the alert to reappear only on the newly primary device!
There are undoubtedly other possible solutions to the problem, and maybe Apple will come up with something far more elegant than what I’m imagining. But I hope something changes soon. Ironically, this constant beeping makes me less likely to set alarms at all, simply so I can avoid the excessive distraction. If alerts are to be useful — neither background noise nor an irritation to be avoided altogether — Apple needs to find a way to make them smarter.
Worse than that my MacbookPro has decided to continue to alert me of events from up to a month ago (roughly when I joined iCloud perhaps). Running Lion 7.3 up graded from 7.2 where it began happening.
Thank you for posting this. This is truly one of the biggest flaws in iOS.
I agree with all your points and suggestions. And can anyone explain to me why, if all my devices are being synced to the same Internet time server, their clocks (and hence alarms) aren't truly synced? I hate that time between when an iPhone alert fires and the related alert on my Mac fires (about 45 secs later).
I'm sure someone could explain that, but I can't. It's certainly irritating. And it's been like that for a long time. I could understand an offset of a couple of seconds, but these longer delays are maddening.
I think that the iPhone syncs its clock with your mobile phone service provider, while your Mac syncs with Apple's timeserver. I'm not sure that the mobile network carriers bother to sync to some universally-agreed-upon time server.
I've snagged an iPhone app that compares the iPhones' time to several NTP servers. The iPhone's time is usually around a second off either way from the NTP server time.. So its not that the time is off depending on who set it.
I like the idea of pushing snoozes out like iCal, but single-dismiss would be too much for many people. Lots of people share Apple IDs and some people would lose alerts because their partner dismissed alerts they weren't interested in.
FWIW, I turn off alerts on my 3 Macs, and leave it to my iPhone & iPad to alert me. I can only think of one time I wasn't near my iPhone or iPad and missed an alert -- when I was in front of a Mac and would have noticed it that way.
Ironically, this was less of a problem before the iPad, when the iPhone was *always* with me...
The way Apple designed Apple IDs and the products that use them strongly discourages sharing them between different people, and I think that except in very particular cases (such as sharing an ID just for purchases from the same account), that's asking for trouble.
I'm glad you found a system that works for you, but for me personally, I'd rather get alerts on my Mac if I'm in front of it—it's less hassle than pulling my iPhone out of my pocket.
Why aren't the clocks synchronized more precisely through iCloud as well? I also have noticed that my three synchronized Apple devices alert for each notification, but wondered why they don't do so simultaneously.
I sure wish I knew! Doesn't seem like it should be hard to do.
And I don't think it should even be necessary, since each device can already set its time from Apple's time server. So they should vary by no more than a second or two at most.
I wonder if it is more a matter of how frequently the OS/iCal runs a function to check and see if any alarms need to go off. If you run it once a minute from when the app opened/iOS device was started you can have a variance of upto 59 seconds on devices. So their time is exactly the same, they just check for an alarm every 60 seconds on a different 60 second cycle.
The multiple alerts bother me to no end as well - I'd certainly like to see Apple take Joe's suggestions since, as he says, all that's needed is some thoughtful engineering, not any seriously new technology.
Here's another thing that's wrong with Calendar alerts: Even if I mark a Reminder as having been COMPLETED, the alert that was set with it will still sound when it was scheduled to, even though the reminder is no longer valid. Can't they make scheduled alerts be cancelled when the reminder is cancelled?
off-topic I suppose, but others have commented so... I searched up time synching a few years ago... not so simple as agreeing with a time server. The time will continue to drift. Loosely, in unix, the local time is regularly nudged along, slowly, in the direction of the true time as provided by the time server. You have an 'ntpd' process running on your Mac which does this. Unix heads will lap up the launchd controlled /usr/libexec/ntpd-wrapper and the rest of us will use Squashed Softwares' free NTP Clock Sync (if you like lots of messages in your system log file). Definitive info here: http://www.ntp.org/ntpfaq
Its actually even worse than all that - if you set an email only alert (which I do for birthdays, having them emailed to me at 11:45pm the night before), then I get an email from my Mac, and email from my wife's laptop (when she next opens it), and all the iOS devices make alert noises even though it is an email-only alert. I had to change the time back to 8pm to avoid the stupid iOS devices all chirping just before midnight.
Finally! You bring up this topic!
I'm beginning to think that the "i" in iOS, iPad, iPhone, etc., stands for "me, myself, and I". Forget that sharing crap.
My wife and I want to share our calendars so we know what's happening, but I'm not interested in getting a reminder of her dentist appointment, nor is she of a meeting I'm having at work. Unfortunately, the only solution we've come up with is to disable alerts. Completely brain dead.
If I'm sharing my calendar, it's because I want someone to see it, but instead I force the other party to get interrupted by *MY* reminders. I don't want to share REMINDERS, I want to share the CALENDAR, dammit.
As for time sync, I think that on the phone, you're stuck with whatever time the carrier decides to provide. My iPhone is sometimes more than a minute off UTC. WTF!? The phone company (and any network provider) lives and dies by knowing the correct time. How else will they reconcile system logs (or bill me correctly)?
And why doesn't an email reminder contain the appointment's attachments, such as URL and notes????
What fun problems technology makes. Why didn't my stupid iPod realize on it's own that today was a holiday and I didn't want to get up at 5 in the morning?
Joe, you've managed to design a system that I don't think'd work. Here's a use case that'd break at least one of your proposals:
Your mac is on, but you're in the living room reading a book (not on your iPad, a dead paper variety), your iPhone is in your pocket, and your child is playing a game on your iPad in their bedroom. As far as usage is concerned, the iPad is the active system, so the alert should go there.
I wonder if you're solving the wrong problem. Is the issue that all of the alarms go off, or is the issue that you have to silence them each manually?
I'd like to suggest that Apple build upon the model that they've put in with iMessages. (I only have an iPhone and a MacBook, so my understanding is limited to that use case.) If I'm chatting with someone using the MacBook, my phone notifies me that I have a new message, but once I respond to the message on my Mac it clears that message from the notification screens. What I think should happen is any snooze, or action to turn off an alarm should be pushed to all other devices, this way you'd only have to address the alarm once.
(Albeit, I do find it a bit annoying that my phone keeps notifying me of iMessages when I'm actively chatting on the computer. Perhaps having a primary notification which goes to the location that you've most recently corresponded on, then a secondary device gets the notification in say 30 seconds if you haven't responded or in some way acknowledged it on the primary device.)
I guess my first comment is that Apple's assumption, and mine, is that iOS devices are for a single person. If my kid were old enough to be playing with an iPad on his own, it wouldn't have my calendars and other personal data on it at all—too risky!
Next, I actually am bothered more by the alarms going off than having to dismiss them. Imagine the doorbell ringing all day! And imagine it continuing to ring 30 seconds after you've answered the door. That's our house.
Still, what you're describing is actually pretty close to what I want. I want all my devices to know what actions I did or didn't take on the others! And yes, further refinement of Messages along the same lines would be great!
Whilst I completely agree with your analysis of the problem, and of snoozes and dismissals needing to be propagated across different devices, I really don't like the "cascade" part of your proposed solution, because it will no longer be possible to set a reminder for a specific time; you'll instead be setting it for a time window. And using the same nine-devices example, and the most conservative value for "a few minutes"--3--the time window is 24 minutes wide! Having to set reminders for 24 minutes prior to when I actually want to be reminded, just in case, I would find even more irritating than the status quo.
"Thanks to iCloud, my calendars sync wirelessly and instantly across all my devices — and can be edited anywhere. This is a fantastic capability, one that I have come to depend on."
This is what MobileMe does for me too and has done for several years. Am I missing something here, apart from the fact that MobileMe will soon be put to sleep.
You're not missing anything. The article isn't about iCloud, that was just the example I used. It's about the way Macs and iOS devices treat all synced calendars independently for the purpose of alerts.
I actually find that multiple alerts on different systems are an useful feature. There have been times when I hurriedly set up a reminder on my iPhone using Siri and it popped up on my iMac when I didn’t have my phone with me.
In the scenario you describe, I'd want to see the alert only on my iMac, and not also on my iPhone when I next have it with me! That's kind of my point. Yes, I want to be alerted on whatever device I happen to be using—but not on any other devices.
Quite some time ago I posted this issue on the Apple discussion forum. I thought I might be doing something wrong and wanted to know how I could share a calendar with someone without seeing/hearing their alerts. Since that original post, there have been thousands of views of this issue since I posted it. Really??? Can this be that hard to fix? No matter what you choose when you accept a shared calendar, you get the annoying reminders whether you want them or not. I can see how the time zone difference between a user's location and the calendar owner's location, especially if it's overseas, could be a terrific hassle. I expect so much more from Apple. I hope your article will help get this resolved with Apple. I've posted this issue many times at Apple's feedback site. Let's get this fixed!!!!!!!!!
There has been a long-standing Apple Discussion on this topic:
https://discussions.apple.com/message/17284424#17284424
It is driving people crazy.
What a great article, taking us all forward on our thinking on the subject.
Because I did not want to receive the alerts of my wife and because she did not want to receive mine, I have set up my wife's calendar and my calendar both on each of our Macs and have then disabled alerts for her on mine and for mine on hers.
Then on our iPhones we just see our own calendars - we can always invite each other before promising others that we are available at a certain time.
Of course this system only works if you are sharing with someone who can be trusted with the password accessible in your keychain...
When shared calendars on iOS can have their alerts disabled I will be switching back to calendar sharing lickety split.
I have a preference for aanother solution. It would be nice to be able to acknowledge the alert on the device I am currently using and have Apple push that acknowledgement to all other devices - canceling any that may not have posted due to time differences.
Offering the option to acknowledge on this device only or all other devices or all devices would satisfy your desire to leave some alerts open on the desktop but not on your iPhone.