I recently wrote an Automator workflow that asks me if I want to check the arrival of the next bus and opens the local transit system’s bus stop arrival web page that shows the live time the next bus is expected to arrive at the stop I saved in the workflow. I then created a recurring calendar event in the Calendar app that opens the Automator application I’d saved. (I could have created a cron job, but I like the ability to easily adjust the alert time if I need to leave work early.)
The alert is a custom alert, which I selected to occur “at the event time” and “Open file…”, for which I selected my bus Automator app. I quickly noticed that at some point in the week, the alerts on all my recurring events change to a default of a simple notification with a sound occurring the day before. The first time I missed the bus, I discovered the problem and edited the event to fix it. But it kept happening, and happening.
TL;DR: The procedure is at the bottom of this article.
Initially, I submitted a bug report to Apple. It is a bug, despite what I’m about to say. The Calendar app should not let you set an alert that will get quietly reverted to a default alert at some point, but it’s mainly a design bug. The user shouldn’t have to know that the options they’re selecting are invalid, especially since it works a few days in a row before getting reverted. Invalid options should not be presented as an option. And if there is a way to create such an alert in another context, the user should be prompted to switch to that context.
The problem here is that the alert was created in an event on an iCloud calendar. Initially, I thought I was being clever by saving the app in my Dropbox account so that other devices would be able to run the app, but it turned out that that idea was short-sighted. An Automator app can’t run on an iOS device. But I just thought it would just give the notification (since I couldn’t disable the separate notification in the event anyway) and would just quietly not run the app. However, I’m guessing that it’s one of my iOS devices that is balking at the alert and switching it to the default alert, because it considers the alert corrupt. And that makes sense. So here’s how to create the alert in a way that will stick…
Instead of creating the alert on an iCloud calendar, the event needs to be created on a calendar that is “On My Mac”. After all, the app we’re running only makes sense on one device, because that’s where it lives. If you want the alert to trigger on multiple devices, you’d have to create that event/alert on each device locally.
However, creating an event on a calendar that is “On My Mac” isn’t an option that is enabled by default, nor is there a preference setting to simply enable “On My Mac” calendar creation. But there’s a way to do it that is indirect. You have to go to Calendar’s preferences and select “Show Birthdays calendar” under the “General” tab. Then you can right-click beneath the Birthdays calendar and create a calendar that shows up in a new section at the top of the calendars pane on the left entitled “On My Mac”.
Events with custom “Open file” alerts created in that calendar should stick. I named that calendar with the name of my computer. So in short, the process to create these alerts is:
- Open Calendar.app’s preferences
- Click the General tab
- Check the “Show Birthdays calendar” checkbox (if it’s not already checked)
- Close the preferences window
- Right-click the space below the Birthdays calendar which shows up under the heading “Other” and select “New Calendar”
- A new section entitled “On My Mac” will appear at the top of the calendars pane with your new “Untitled” calendar. Enter a name and hit return.
- Create, copy, or reassign your recurring event to this new local calendar
- Set the alert for your event as you please (i.e. a custom “Open file” alert)