I admit it: I’m an AppleScript junkie. I’ve been wary of macro programs and similar automation products since I got my first Macintosh. The more I learned about Mac programming, the more I realized how many low-level patches macro programs had to use, and the more they scared me. Often, I had no choice but to use those products, and inevitably I’d pay a price: either my system became unacceptably unstable, or the programs would be incompatible with other necessary software or new versions of the system. So I’d abandon my work and start over with a different product… and eventually I abandoned macro programs altogether.
AppleScript seemed to be an answer – a scripting language built around exchanging events and data via facilities built directly into the operating system. Although scriptable applications were rare when AppleScript was introduced in 1993 – and the technology was almost ignored by Apple for several years – today most major applications and utilities are scriptable (at least to some extent), and good scriptability is seen as a worthwhile and necessary feature of many products.
One of AppleScript’s shortcomings, however, is the absence of a built-in scheduler. You can’t tell your Mac to run a script in the wee hours of every morning, every ten minutes, or on the second Tuesday of every month without using a third-party add-on. Chris Johnson’s Unix-derived (and thus cryptic) Cron fills the need for some people, and Mark Alldritt’s Scheduler control panel has been available for some time. I used Scheduler for years, and though it was quite stable, it made managing more than a few scheduled events arduous. Also, Scheduler just opens applications or documents – which can include stand-alone script applications – but can’t run scripts directly, which made for some awkward moments when an event triggered while I was using my Mac. Further, if I wanted to run a scheduled script manually, I had to use yet another utility, or hunt the thing down in the Finder and launch it myself. Nonetheless, Scheduler offers unique capabilities, such as the capability to open items when waking from sleep, or when a PowerBook’s power adapter is plugged in or removed.
Say iDo — I may have found my scheduling solution in Sophisticated Circuits’ iDo Script Scheduler, which I first mentioned back in TidBITS-481. A Lite version is available on recent Mac OS CD-ROMs, and also as a free download from Apple’s AppleScript site as well as Sophisticated Circuit’s Web site.
Basically, iDo Script Scheduler is an extension and control panel combination evolved from the software Sophisticated Circuits developed for their PowerKey line of intelligent power strips. The PowerKey Pro software has a scheduling interface for opening documents, mounting disks, running scripts, plus starting up and shutting down machines. iDo Script Scheduler divorces the scheduling interface from the PowerKey hardware and focuses on providing the Mac OS’s missing script-scheduling capability. iDo Script Scheduler runs only scripts or runs script applications – it can’t open applications or documents on its own, but (of course) it can run a script which in turn opens applications or documents.
There are two versions of iDo Script Scheduler. The free Lite version enables you to schedule up to three events – enough to get a taste, and maybe even sufficient for some users or for dedicated Macs. iDo Script Scheduler Lite offers a solid scheduling interface enabling users to set up:
one-shot scripts which trigger at a specific date and time;
repeating scripts which run after a specified time interval has passed (expressed in minutes, hours, days, or weeks);
scripts which run at a particular time on specific days of the week (such as every weekday, every Sunday, or every Tuesday and Thursday);
scripts which run once a month – you can specify a particular day (4th day of each month), a particular weekday (3rd Friday of every month), or on the same day from the end of the month (for instance, entering "-1" as the day of the month will trigger the script on April 30th this month, but May 31st next month).
You can upgrade the Lite version to iDo Script Scheduler Enhanced for $25. In addition to supporting an unlimited number of scheduled events, the Enhanced version also enables:
hot key triggers which run a script when you press a specific key combination;
idle-time triggers which run a script after the system has been idle for a specific period of time.
I was skeptical these last two triggers would be useful for me. I run many applications, so it’s tough to find hot-key combinations which don’t conflict with existing shortcuts, and I usually don’t want anything mucking with my machine if I’m not using it – not even a script I wrote myself. But I’ve gradually warmed up to them and found some useful tricks – for instance, a script which emulates the Application menu’s Hide Others command, but won’t hide a handful of other applications I don’t want hidden if they’re running in the background, like Stickies or a monitoring program. I only have one idle script – it warns me when my email partition is short on free space – and so far haven’t had any problems.
And iWant… iDo Script Scheduler has room for enhancements. I’d like to be able to sort events listed in the control panel by name, next trigger, and type – right now scheduled events are listed chronologically with hot keys and idle scripts at the bottom. The mostly elegant scheduling interface has a few oddities – for instance, it will happily let you schedule a script for the eighth Friday of each month. Globally accessible hot keys are fine, but I’d also like to create hot keys which are specific to particular applications, or available to all except particular applications. The iDo Script Scheduler extension (really a background application) is itself scriptable, but I’d like to be able to create new events on the fly via a script, rather than merely be able to trigger, enable, or disable existing events. I hope some of these issues are addressed in future releases.
In the meantime, iDo Script Scheduler may already be very useful to you – it is to me. The Lite version is free (and may already be on your Mac OS CD-ROM), the Enhanced version is $25. iDo Script Scheduler works with Mac OS 8.0 or higher, but takes advantage of Mac OS 9’s Multiple Users feature (so different users can have different schedules), and uses the Mac OS’s built-in HTML-based help introduced in Mac OS 8.5. If you already use AppleScript, iDo Script Scheduler is well worth a look.