scheduled and carry the schedule’s schedule_id. For a
single run at a later time, set start_at on
POST /runs instead.
In the SDKs (Python 0.23.0 or Go v0.16.0 or later), these endpoints are on
client.agents in Python and client.Agents in Go.
Create a schedule
- Dashboard
- REST API
- Open Agents and select the agent.
- Click Schedule, then Add schedule.
- Pick When it runs, such as Every weekday at 9:00 AM, or choose Custom and enter a cron expression.
- Pick the Time zone.
- Choose what happens If the last run is still going: Skip this time or Start another anyway.
- Click Add schedule. When you edit a schedule later, the button reads Save schedule.
A cron expression or time zone that doesn’t parse, an expression that never
fires, or an agent with no revision returns
400.
How occurrences run
- A run starts up to about 30 seconds after its occurrence, then waits for a phone like any queued run.
- Each occurrence starts at most one run.
- On a day when daylight saving skips a time, a schedule for that time doesn’t run. On a day that repeats a time, it runs once.
- After an outage, only the latest missed occurrence runs.
- A scheduled run holds no phone after it ends, so it has no follow-up window.
- When an occurrence starts no run, a
schedule.occurrence_skippedwebhook fires with areason:overlap(the previous run hadn’t finished),agents_unavailable(Agents isn’t available to your organization) ormodel_unavailable(the agent’s model can no longer be used). The schedule goes on.
Pause, resume, run now, change or delete
In the Dashboard, open the agent and click Schedule to turn a schedule on
or off, edit it, or delete it.
A schedule’s
state is active, paused or ended. next_run_at is when
the next occurrence starts a run, and last_run_id is the run it last
started. A schedule that reaches its end_at, or has no occurrence left, ends
and fires schedule.ended once.
List a schedule’s runs with GET /runs?schedule_id=... or
axilio runs list --schedule <schedule-id>.
Next steps
Monitor runs
Inspect and measure the runs a schedule starts.
Webhook events
Get schedule.paused, schedule.ended and skipped occurrences.