AppleScripts are great tools for increasing your daily productivity. They’re even better when they can be set to run unattended, at night, on weekends, or during downtime. In Lion, iCal included a handy option for attaching a script to a calendar event. Just create an event, add a Run Script alarm, point it to the desired script and you’re good to go. Things changed in Mountain Lion, though. Presumably for security reasons, the Run Script alarm option was removed from the Calendar app. Despite its removal, however, there are still some ways you can trigger scripts from Calendar events.
iCal event alarm choices in OS X 10.7 Lion
Calendar event alarm choices in OS X 10.8 Mountain Lion
Use Automator to Trigger Your AppleScript
Although Apple removed the Run Script alarm option in the Calendar app, Automator’s ability to save Calendar Alarm workflows wasn’t removed. And, since Automator workflows can trigger AppleScripts, they offer a quick and easy workaround for scheduling scripts. Start by launching Automator and creating a new Calendar Alarm workflow.
To schedule an Automator workflow, choose the Calendar Alarm template.
To Trigger an AppleScript App
If your script is an app, you just need to set the workflow to launch it. Add the Launch Application action to the workflow. From the application popup menu, choose Other… and navigate to your saved AppleScript app.
The Launch Application action can be used to launch an AppleScript app.
To Trigger AppleScript Code
If you’d rather not create an app (an app + your Automator workflow means more files to manage), you can embed compiled AppleScript code right within your workflow. Find the Run AppleScript action and drag it to the workflow. Then, insert the desired script code into the action.
The Run AppleScript action can be set to run code embedded in your Automator workflow.
To Schedule the Script
Once you’ve got your workflow configured, go ahead and save it. Automator automatically adds it to an Automator calendar (which is created if it doesn’t exist yet) in the Calendars app. An Open File alarm is added to the event and set to run the workflow. Now, adjust the start date of the event as needed, put it on a repeating schedule, etc.
Open File alarms are used to trigger Automator Calendar Alarm workflows.
Use AppleScript to Create a Scheduled Event
If you create an event in the Calendars app and add an Open File alarm, you should find that you’re unable to select a saved AppleScript app. You can select a compiled AppleScript file, but this is essentially useless because when the event triggers, the Open File alarm simply causes the compiled script to open in AppleScript editor. Not what you need. What you really need is to open a saved script app. AppleScript to the rescue. To work around the limitation, just run the following script. It asks you to select a saved AppleScript app. It then creates an event at the current date and time on an AppleScripts calendar, which it creates if it doesn’t exist already. The script then adds an Open File alarm to the newly created event and sets it to open your selected script app. Yep, that’s right. Although you can’t manually set an event to open a saved AppleScript app, you can script the process.
NOTE: You can download the complete script below here.
So, there you go. A number of workarounds for triggering scripts from Calendar events in Mountain Lion. So, schedule away! Happy Scripting!
Triggering AppleScripts from Calendar Alerts in Mountain Lion originally appeared on TUAW – The Unofficial Apple Weblog on Mon, 18 Mar 2013 14:00:00 EST. Please see our terms for use of feeds.