← All documentation

How-to guides

Scheduling routines

Choose when a saved workflow runs. OOMU sleeps between exact deadlines and records every result.

Once a workflow does what you want, a schedule makes it run without you. Open Chat → Workflows and choose the Schedules & Triggers section.


Adding a schedule

Pick the workflow, then pick a frequency:

FrequencyWhat you set
WeekdaysA time. Runs Monday to Friday.
DailyA time.
WeeklyA day and a time.
IntervalA number of minutes. Between 1 minute and one year.
CronA five-field expression: minute, hour, day, month, weekday.

Choose Add schedule. The panel confirms with "Routine added" and shows Next run {time}.

Every expression, however you entered it, is normalized and validated before it is stored. A cron expression that does not parse is refused rather than accepted and silently never fired.


What happens when one fires

Each firing is a distinct occurrence, keyed to its exact scheduled time. That key is unique, which is what prevents the same slot running twice, including after a crash, a restart, or a clock change.

The occurrence claims a lease, runs the workflow, and records a run with:

FieldValues
StateCompleted · Waiting for information · Needs attention · Check required
NotificationDelivered · Failed · Not applicable
TimesWhen it was scheduled for, when it completed

Recent runs shows the history under each schedule, marked Notified where a notification went out. A schedule that has not fired yet says so: "No runs yet."

How you hear about it

A completed scheduled run posts a macOS notification. This needs Notifications access, which you can check in Settings → Mac access.

Failed and paused runs are recorded in the history and in Activity whether or not a notification was delivered: a failed notification never hides a failed run.


Missed runs

If your Mac was asleep or OOMU was closed when a schedule was due, the routine's missed-run policy decides what happens:

PolicyBehavior
SkipMissed slots are dropped. The next run is the next scheduled time.
Run onceOne catch-up run, no matter how many slots were missed.
Run eachCatch up each missed slot, up to a cap.

The cap is between 1 and 12 runs. Choose Skip for anything time-sensitive, where a stale result is worse than no result. Choose Run once for a daily digest.


Pausing and deleting

Every schedule has a toggle: Pause stops it firing while keeping it; Resume starts it again. Delete schedule removes it.

Routines can also pause themselves. If a required connection is missing or a controlled destination is no longer valid, the routine records a pause reason rather than running against a broken dependency.


Keeping work running after OOMU closes

Settings → Background work is where you decide whether scheduled work continues once the window is gone.

"Keep scheduled work running after OOMU closes. An installed OOMU app uses macOS Login Items."

Turn on Continue scheduled work and OOMU registers itself with SMAppService: the same mechanism behind Login Items in System Settings. The panel then reports:

StateMeaning
Runs after OOMU closesRegistered and active.
Stops when OOMU closesNot registered.
Needs Login Items in System SettingsmacOS requires you to approve it there.
Available after OOMU is installedOOMU is not running from a real application bundle.
Unavailable on this MacNot supported here.

This is why installing to Applications matters. OOMU checks whether it is running from an application bundle before it will register. Running from Downloads or a build directory gives you Available after OOMU is installed and background work stays off.

The same panel shows Active routines, Next scheduled work, and Last activity, so you can confirm at a glance that something really is scheduled.


When OOMU restarts

On startup OOMU reconciles anything that was in flight:

  • Expired routine leases are released, so a routine held by a process that is gone becomes claimable again.
  • Workflow steps that were reserved are reset.
  • Workflow steps that were mid-execution are quarantined as Check required, because OOMU cannot verify whether they finished.

All of that is logged. Nothing unverifiable is reported as either done or failed.