Browse the docs

Run a macro later

Parks a run of another macro until a time, or until a condition becomes true, and returns at once; it survives restarts.

Run macro later at at

Details #

Creates a pending run and carries on. The engine starts the macro with the inputs you gave at at, or as soon as when has been true for hold seconds, whichever happens first. If neither has happened by expires, the run is dropped and logged as expired.

Pending runs are kept on disk, so they survive a restart. They show in Activity under Waiting, with Cancel and Run now, and in switchboard pending.

If when is already true, the macro starts after the hold.

The step leaves pendingId, and the id also goes into into if you name one.

Parameters #

ParameterTypeRequiredValuesWhat it does
macrotextYesRequired. The macro's name or id.
atany valueA date (2026-11-02T09:00:00), a time of day (21:30, the next one), or a wait (2h).
expiresany valueHow long the run may wait: 30m, 1d, or seconds. Without it the run waits until it can start or you cancel it.
holdnumberSeconds the condition must hold before the run starts. Default 2.
inputsrecordAn object of inputs for the run.
intotextA variable that receives the pending id.
whenconditionA condition, written as in Only if.

Every step also accepts label, onFailure, timeout and dryRunSafe.

Examples #

Run Back up when I am on power, but not later than tomorrow
When
  1. Press ⌃⌥B
Do
  1. Run “Back up” when the Mac is charging
Open in Switchboard to try it

Gotchas #

  • Dry run. Nothing is parked; the step says so.

  • The macro runs as if started by its own trigger: its Only if is skipped when it runs by hand, as always.

  • Text in when is rendered when the step runs, not when the condition is read.

  • AI conditions cannot be watched.

See also #

Wait until a condition holds, Run macro, A condition becomes true, Triggers that watch: becomes true, States, waiting runs