Saturn scheduling
Saturn is Mercury's scheduler. A schedule is a session fact: it rides the durable session record, the background daemon fires it, and every fire decision lands as a receipt row on the session it belongs to. There is no schedule store apart from the sessions themselves. The box schedule belongs to the machine instead, and its record is one file in the daemon's home.
Schedule kinds
- Fire: Delivers a prompt to an existing session once with
ator on a recurrence withevery. A fire due while the session is parked wakes it by default;onParked: "queue"banks the fire for the session's own next wake. - Birth: Creates a fresh session at a time, every fact of it chosen up front. The born session's first receipt names the schedule that created it.
- Box schedule: A birth schedule that belongs to the machine and is stored in the daemon's home. It needs no existing session.
Inside a session, the model schedules through the tools CronCreate, CronList, CronDelete and ScheduleWakeup, and the /loop skill builds on them.
Schedule board
/saturn: Opens the board inside the chat.- Saturn Scheduler: Opens the same board from the Boot face as a layer of the face, and
Escreturns to the face. ↑and↓: Move between rows.a: Opens the form for scheduling a session birth.x: Deletes the selected schedule.n: Runs the selected schedule now.p: Pauses or resumes the selected schedule.r: Refreshes the board.
Rows group under the session that owns them, and box schedules sit under their own box section. A row's trail shows the time expression as typed, the account it will fire on as an identity and never a token, held fires with their reasons, and the trail of fired-late and missed receipts.
Schedule a session birth
To schedule a session birth, follow these steps:
- Open
/saturnor the Boot face's Saturn Scheduler row. - Press
a. - Set When.
- Select Model.
- Select Workspace.
- Set Presence.
- Select any required Kit preset.
- Set the Opening mission.
- Set Contract if required.
- Set Title if required.
- Set Note if required.
- Review the preview.
- Press
s.
Saturn saves a box schedule, and its firing creates the specified session. No session needs to exist first.
The form's fields are:
- When: Accepts a supported time expression or recurrence.
- Model: Selects from the full model catalogue.
- Workspace: Selects one of the saved projects or a custom path.
- Presence:
headlessruns unattended.screen-presentneeds Mercury open; a birth due while Mercury is closed waits for the next boot and then obeys the catch-up window from its due instant. - Kit preset: Selects the extensions the session is born wearing, from the saved preset roster.
- Opening mission:
auditandreviewprovide complete missions.customopens a text field, and none creates a blank session that waits. - Contract, Title and Note: Supply the session contract pre-answered at birth, the born session's name and a word for the board.
The live preview displays the compiler's errors as written, the account the birth would run on and the verdict sentence, including the born-held line when the account is already stranded.
Time expressions
- One-time expressions: Examples include
6am,18:30,tomorrow 07:30andin 20m. - Recurrences: Examples include
every 5 minutes,every hour at:07,every day 09:00,weekdays 9amandevery mon,fri 17:00. - Cron: Raw five-field cron passes through unchanged.
The spelling typed is stored and echoed on every surface as written, and a phrase the compiler cannot read is refused with a working form named.
Held and late fires
A schedule captures its account at write time: the provider family and the credential door, with the signed-in identity as a label and never a token or key. An expired sign-in, a signed-out account, a local server that no longer answers or a rate limit holds the fire with a typed, receipted reason, and a held fire never runs on another family. Signing in again, or the local server returning, releases the held fires whole and in order, each receipted as fired late with its origin.
A fire that comes due while the daemon is down runs inside the catch-up window, six hours by default, and its receipt carries how late it fired. Outside that window it is recorded as missed-expired: a one-time schedule is spent and a recurrence re-arms.
MERCURY_DAEMON_CATCHUP=0: Turns late fires off, so every late fire is recorded as missed-expired.MERCURY_DAEMON_CATCHUP_MINUTES: Resizes the catch-up window.MERCURY_SATURN_DISABLE: When truthy, nothing fires, holds or replays. The schedules and their editing surface stay, and the scheduling tools leave the catalogue.
Related pages
Sessions, Agents and teams, MCPs and skills, Providers and sign-in