Publishers of technology books, eBooks, and videos for creative people

Home > Blogs > Mac Productivity: Scheduling AppleScripts

Mac Productivity: Scheduling AppleScripts

By  Jul 30, 2012

Topics: Apple, Operating Systems, Productivity

If you're an Automator user, you probably know how to create iCal Alarm workflows, which can be set to run at scheduled times, allowing processing to occur during downtime.  If you're not familiar with Automator or iCal Alarm workflows, check out some of my other tips to get acquainted...

Using Automator: Scheduling Workflows

Mac Automation Made Simple: Scheduling Automator Workflows (video)

What about AppleScripts?  Can't they be run on a schedule too?  You bet.  There are actually a couple of primary ways this can be done.

1. Stay Opened Scripts

When you write a script in AppleScript Editor (found in /Applications/Utilities), you can save it as a stay opened application.  This means that, once launched, the script remains running, and it doesn't quit automatically after processing is finished.


Saving an AppleScript as a stay opened script in AppleScript Editor

A stay opened script operates in cycles.  Every so often, your script runs.  Then, it waits for the next cycle, and your script runs again.  To implement this functionality, you simply add an idle handler to your script as follows...

-- The idle handler runs once per cycle

on idle

-- Insert your main AppleScript code here, such as:

display dialog "Hey there!"

-- At the end of the idle handler, return the number of seconds to delay between cycles

return 10

end idle


An idle handler in a stay opened AppleScript

Copy the example above into a new AppleScript Editor document, save it as a stay opened script, and launch it.  Every 10 seconds, a dialog is displayed until you manually quit the script (Command+Q).  Just insert your own script code in the middle, and you're all set with a script that runs on a repeating schedule.

2. iCal Alarm Scripts

iCal can launch applications and open files.  Since you can save a script as an application, this means you can tell iCal to open it.  It's easy.  First, save your script as an application.  Next, create an iCal alarm and set it to run at the desired time and on a schedule if you wish.  Last, add an Open File alarm and point it to your script application.  At the scheduled time, the script launches and runs.


Scheduling an iCal even to open an AppleScript application

For more on AppleScript and Automator, check out my book  Automator for Mac OS X: Visual QuickStart Guide, as well as my video podcast series Mac Automation Made Simple.