Skip to content

Workflow Schedule Behavior

Kevin edited this page Jun 24, 2026 · 4 revisions

The default super workflow behavior is to always remain "active" until the workflow target is accomplished as soon as possible. However, when super first selects a target, it might not be appropriate to start the workflow. Also, many environments prefer to schedule "maintenance windows" for workflows that need to interrupt the user. As such, super can be configured to delay the start of a workflow or to only run workflows during specific weekdays and times.

Schedule Workflow Active

Only allow the super workflow to be active at specific weekdays and times.

Command option example:
--schedule-workflow-active=TUE:13:00-17:00,WED:13:00-17:00,THU:13:00-17:00

Command option disable example:
--schedule-workflow-active=X

Configuration Profile Example:
<key>ScheduleWorkflowActive</key>
<string>TUE:13:00-17:00,WED:13:00-17:00,THU:13:00-17:00</string>

Each schedule workflow active time frame must be specified using the following format DAY:hh:mm-hh:mm where weekdays are defined as MON|TUE|WED|THU|FRI|SAT|SUN and times are in 24-hour format. Multiple time frames are separated by a comma with no spaces.

For example, if you want super to only be active on the afternoons during the middle of the work week, then you would specify --schedule-workflow-active=TUE:13:00-17:00,WED:13:00-17:00,THU:13:00-17:00. Also, you can specify multiple time frames for any weekday. For example, if you want super to only be active during non-business hours on Monday, then for that weekday, you would specify multiple time frames around your normal work hours like so, MON:00:00-09:00,MON:17:00-23:59.

Enabling this option directly affects other super workflow timing features and options, including any other days deadlines, date deadlines, workflow schedule options, or scheduled installations. In most cases, super can automatically adjust workflow timings to fit within the scheduled active time frames. These automatic adjustments always show as warnings in the super.log.

Setup Assistant Deferral

If super is installed during new system provisioning, then it automatically defers the start of any workflow until later. Specifically, super looks for the macOS Setup Assistant "done file". If that file is not present on the system, then the super workflow will automatically defer based on the --deferral-timer-default option or the default of 60 minutes.

In other words, it's safe to install super during macOS onboarding (including Automatic Device Enrollment workflows) so that it's ready for use on new systems as soon as possible.

Schedule Deferred Start File

Automatically defer the super workflow until the specified file is not found.

Command option example:
--schedule-deferred-start-file=/local/path

Command option disable example:
--schedule-deferred-start-file=X

Configuration Profile Example:
<key>ScheduleDeferredStartFile</key>
<string>/local/path</string>

This option allows for super to be safely installed during extended macOS onboarding workflows (like Jamf Setup Manager, Setup-Your-Mac, or Octory). In this case, the super workflow will automatically defer based on the --deferral-timer-default option or the default of 60 minutes.

Workflow Zero Date

All super workflows also have a zero date (and time) defined at the beginning of a super workflow. All day-based super options rely on the zero date as the "starting" time of the workflow. For example, if you have a days deadline option set for "2 days", the deadline would be active 2 days after zero day.

The default super behavior automatically sets the workflow zero date to the date (and time) when the workflow target is initially selected or a new Apple software update/upgrade becomes available.

Schedule Deferred Start Days

Automatically defer the super workflow the specified number of days has passed since the workflow zero date.

Command option example:
--schedule-deferred-start-days=14

Command option disable example:
--schedule-deferred-start-days=X

Configuration Profile Example:
<key>ScheduleDeferredStartDays</key>
<string>14</string>

Similar to the built-in system managed software update deferrals mechanism, this option prevents the super workflow from starting (or interrupting the user) until after the deferred start number of days has passed.

Schedule Zero Date macOS Release

Set the workflow zero date to the release day of the target macOS update or upgrade.

Command option example:
--schedule-zero-date-release

Command option disable example:
--schedule-zero-date-release-off

Configuration Profile Example:
<key>ScheduleZeroDateRelease</key>
<true/>

This option relies on the Mac Admins Open Source SOFA macOS data feed. Specifically, if the workflow target is a macOS update or upgrade, then super downloads https://sofafeed.macadmins.io/v1/macos_data_feed.json to determine the specific macOS version release date. This date is used to set the workflow zero date.

When this option is enabled, if the super workflow target is not a macOS update or upgrade, then the default automatic workflow zero date is used. Similarly, if the SOFA data feed can't be reached or the target macOS version isn't found, then the default automatic workflow zero date is used.

Schedule Zero Date Custom SOFA URL

Use a specific (presumably internal) custom SOFA URL for the macOS releases data feed.

Command option example:
--schedule-zero-date-sofa-custom-url=https://sofa.example.com/v1/macos_data_feed.json

Command option disable example:
--schedule-zero-date-sofa-custom-url=X

Configuration Profile Example:
<key>ScheduleZeroDateSOFACustomURL</key>
<string>https://sofa.example.com/v1/macos_data_feed.json</string>

This option requires that you have also specified the --schedule-zero-date-release option. Similarly, if the custom SOFA data feed can't be reached or the target macOS version isn't found, then the default automatic workflow zero date is used.

Schedule Zero Date Manual Override

Set a specific workflow zero date and time.

Command option example:
--schedule-zero-date-manual=2024-10-02:10:15

Command option disable example:
--schedule-zero-date-manual=X

Configuration Profile Example:
<key>ScheduleZeroDateManual</key>
<string>2024-10-02:10:15</string>

At a minimum, you must always specify "YYYY-MM-DD". Hours are represented by a 24-hour clock, and any non-specified hours or minutes are rounded to "00".

This option is largely used for testing days-based workflows, but it can also be used in production to set potentially more consistent day zero behavior.

Clone this wiki locally