By (author unknown), MacOSXHints.com – July 31, 2012 at 10:30AM
OS X uses a framework called launchd for “starting, stopping and managing daemons, applications, processes, and scripts.” (Quote from Wikipedia.) You can use launchd to schedule any task you want to run at specific times or intervals.
Nathan Grigg has posted a simple, clear tutorial, Schedule jobs using launchd which gives an introduction into how this process works, and how you can use it to schedule repeated tasks on your Mac. You’ll have to edit plist files, and you may want to install some third-party tools, but this can be useful if you want to set up your own tasks. You could use cron, but, as Grigg says, “Unlike cron, launchd does not assume that your computer is always running. So if your computer happens to be sleeping at the time a job is scheduled, it will run the job when it wakes up.”