Scheduled agent runs
Nora can run an agent on a recurring cron schedule from the control plane — no human in the loop. Use it for daily summaries, hourly health/triage prompts, nightly reports, or scheduled lifecycle maintenance. Every run is recorded in the agent’s events, and prompt runs flow through the same token/cost accounting (and budget auto-pause) as interactive chat. Schedules live on the Schedules tab of an agent, or via the API.What you can schedule
Each schedule has a cron expression (5-field, standard), a timezone, and an action:| Action | What it does |
|---|---|
prompt | Sends a prompt to the agent (OpenClaw via the gateway, Hermes via its runtime API). Requires prompt text. |
restart / stop / start | Lifecycle control of the agent’s runtime. |
redeploy | Re-provisions the agent. |
A guardrail enforces a minimum interval between fires (
NORA_SCHEDULE_MIN_INTERVAL_SECONDS, default 60s) so a too-frequent cron can’t thrash an agent or run away with its budget. Hermes also has its own runtime-native cron (/api/jobs); control-plane schedules are independent of it.How it runs
A backend sweep (every ~30s) atomically claims any schedules whose next fire is due (replica-safe), computes the next fire, and enqueues each run. The provisioner worker executes the action and records anagent.schedule.run event — so runs show up in monitoring, can trigger alert rules, and (for prompts) appear in cost/OpenTelemetry telemetry.
API
GET/run-listing need the agents:read scope; create/update/delete need agents:write. See the API reference.
