Easily schedule tasks with Calendar in OS X

CalendarIconXManaging documents and opening applications in OS X is relatively straightforward; however, there might be times when you would like to schedule specific files to open. These might be an application or two, or perhaps a document such as a PDF that you might access at a given time every day, or perhaps only use on Mondays or Fridays. Additionally, if you have scripted routines, including those made with Automator, then you might want your scripts to run at specific dates and times.

There are numerous ways to have tasks run automatically in OS X; however, an easy one that is right in front of every Mac user is the Calendar. As with most calendaring programs, Calendar supports alerts that can send an e-mail or otherwise notify you of an upcoming scheduled event; however, in addition Calendar’s alerts support opening of specified files when triggered:

Custom alert in OS X Calendar

Set the alert type to “Custom” and then set it to open the Pages application.

  1. Create a new event.
  2. Set an alarm for this event.
  3. Choose “Custom” in the Alert menu.
  4. Select “Open File” as the type of alert.
  5. Choose a desired file.
  6. Set a time frame for the alert to trigger, and save it.

The type of file you choose in the alert can be an application, document, or script that is saved as an application (such as those made in Automator or AppleScript).

You can now take advantage of Calendar’s event-handling options to update the schedule as you see fit, either by adjusting the repetition and times of the event, but also simply by dragging it from its current location to a new day or time that you prefer.

If you are having the event launch a script, then you can simply edit the script to further refine the conditions for what tasks are performed, and when, instead of having to access your scheduled routine to change them. For instance, if you have Pages launch at a specific time but wish to change it to Microsoft Word, then if a script is used, you can change the script to point to Microsoft Word instead of having to edit each of your scheduled events for Pages.

When using Calendar in this manner, you might wish to keep these triggers you create in a separate calendar. This will allow them to be hidden, if desired, but still run. To do this, create a new calendar on your Mac and call it “Automated Tasks” or something similar. Then be sure the alerts and events you create for scheduling applications are associated with this calendar, and then you can uncheck the calendar in your sidebar to hide it from view.

16 thoughts on “Easily schedule tasks with Calendar in OS X

  1. Chang

    I have 2 macs with same iCloud ID; one with Yosemite, and the other with Mountain Lion. Calendar schedules to run “Open File” event added on Yosemite do not run on ML, and vice versa. I wonder if there could be any work around to execute the calendar events simultaneously on each mac with different OSX versions.
    Thank you for any help you can provide.

      1. Chang

        Thank you, Eric. In my case, calendar events with Open file alert that created on a Mac just merely show up without alert, i.e. alert omitted on other Macs, if the OS X versions are Mavericks or later. These problems never occur between Mountain lions. It is very difficult to explain in English.
        Under the same condition that all macs have the same ‘filename.app’ in Documents folder, I can illustrate as follows;
        ML ML : works OK
        ML Mavericks or Yosemite : Does not work
        Mavericks or Yosemite Mavericks or Yosemite : Does not work.

        I hope you understand my words. Thanks.

        1. Eric

          Oh I understand. I’ve given up on the worthless calendar program and went with Lingon. http://sourceforge.net/projects/lingon/files/Lingon/2.1.1/

          I’ll see how this works. Looks promising.

          1. Topher Kessler Post author

            Lingon is a good starter interface for making launch agent scripts, which are a more “core” method for scheduling tasks. Using the Calendar is an easier approach that should work, but if done right, using LaunchAgents will overall be more robust.

          2. Chang

            Lingon looks great, and I googled for dealing with it. But I wonder if it fits my purpose.
            I made some simple applescript to trigger an app to launch, and put the script on every Macs. And (on OS X Mountain Lion) I put schedules to run the applescript via Calendar and same AppleID on any one of my Macs, and then every my Macs launched the specified app at the same scheduled time. Unfortunately after upgrading to Mavericks or Yosemite, the function I designed stop working.
            (Actually I have 5 Macs; 3 of them have Mountain Lion and the others have Yosemite installed.)

      2. Chang

        ML — ML : works OK
        ML — Mavericks or Yosemite : Does not work
        Mavericks or Yosemite — Mavericks or Yosemite : Does not work.

  2. Jeff Pence

    My open file alerts quit working today and I can not get them to stay. I create the alert then it disappears. Any other app that can handle this to open automator files? This has been buggy for the last year now it doesn’t work at all. os x 10.10.3

      1. Jeff Pence

        If you are going to use calendar to trigger Automator applications you must turn off iCloud settings. I had the same problem so I turned it off for that one computer. All good now. I just keep iCloud calendar sync on iphone and laptop.

          1. Jeff Pence

            I Know Eric I hate it. I fought with this issue for a couple years and finally gave up. Apple doesn’t care about it.

  3. hydrovacing

    I found with Calendar that trying to sent attachment with a event is “sometimes it works/sometimes it doesn’t”. I use it to send to jobs to operators and have used it extensively over the past 9 months. It’s an app that I really with Apple would really consider doing some major work on since this “sometimes it works/sometimes it doesn’t” scenario doesn’t seem to be working for endusers.

  4. Amu Diwan

    Is there a way to trigger the events from iCal when the Mac is in sleep mode or screen is locked?

Comments are closed.