Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Boot Scheduler

What is this?

This is a tool to power on and off Macs based on calendar dates.

Why does this exist?

The excellent pmset tool can be used to schedule a Mac to power on (or wake) based on the time of day, or day of the week. However, it has no recognition of calendar dates, such as December 25th.

We manage our Macs with Munki, and want all labs and podiums to be powered on every day - that way, they receive regular software updates. Sometimes, lab Macs will stay powered off for weeks or months at a time, and when they're turned on, they're missing stability or security updates.

How does it work?

Boot Scheduler is comprised of two packages - boot_scheduler contains the launchd item, and requires a reboot for installation. boot_scheduler_dates contains the list of dates, and can be installed without requiring a reboot.

In the postinstall script, the Mac is set to boot or wake at 4 AM every day. The LaunchDaemon, edu.sju.boot_scheduler.plist, triggers at 4 AM, and runs shuts down the Mac if it meets all of the following conditions:

  • The current time is between 4 AM and 5 AM.
  • The calendar date is a holiday, as defined in boot_scheduler_dates.txt.
  • No user is currently logged into the machine.

If any of these conditions are not met, the script exits without doing anything.

How do I use this?

You'll need The Luggage installed. Also, make sure you have my luggage.local file in place (or the relevant portions copied to your luggage.local file). We use Munki to deploy both packages, but it's not necessarily required.

Be sure to edit boot_scheduler_dates.txt to include your list of holidays!

To build both packages, cd into each directory and run make dmg, make pkg, or make munkiimport.


We've been using this since macOS 10.10, and I can confirm it works with macOS 10.13.

I wouldn't recommend this script for use with laptops. If you're using Munki, I'd recommend using a conditional to only deploy this to desktop Macs.



Power on or off lab Macs based on a schedule






No releases published


No packages published