Skip to Content
SDKSchedules

Schedules

TL;DR

client.schedules manages cron-driven jobs on the relay plane: create a schedule with a cron expression and a command, update or delete it, trigger a run now, and review past runs. Schedules are fleet-scoped — pass fleet_id or rely on CMDOP_FLEET_ID.

schedules uses your relay token (CMDOP_TOKEN). All methods are async.

Methods

MethodWhat
list(fleet_id=, page=, per_page=)List schedules (offset-paginated; also iter / pages).
get(schedule_id, fleet_id=)Detail for one schedule.
create(name=, cron_expr=, command=, ...)Create a schedule.
update(schedule_id, ...)Partial-update a schedule.
delete(schedule_id, fleet_id=)Delete a schedule.
trigger(schedule_id, fleet_id=)Run now.
runs(schedule_id, limit=, cursor=)Run history (cursor-paginated; also iter_runs / pages_runs).

create also accepts description, timezone (default "UTC"), target_kind ("all_fleet_machines" / "specific_machines"), is_enabled, and machine_ids (for specific_machines).

Create and trigger

async with Client(token="...") as c: sched = await c.schedules.create( name="nightly-backup", cron_expr="0 3 * * *", command="backup.sh", timezone="UTC", target_kind="all_fleet_machines", ) await c.schedules.trigger(sched.id) # run now
const sched = await c.schedules.create({ name: "nightly-backup", cronExpr: "0 3 * * *", command: "backup.sh", timezone: "UTC", targetKind: "all_fleet_machines", }); await c.schedules.trigger(sched.id);

To target specific machines, pass target_kind="specific_machines" with machine_ids=[...].

Update and delete

await c.schedules.update(sched.id, cron_expr="0 4 * * *", is_enabled=False) await c.schedules.delete(sched.id)
await c.schedules.update(sched.id, { cronExpr: "0 4 * * *", isEnabled: false }); await c.schedules.delete(sched.id);

Review runs

runs = await c.schedules.runs(sched.id, limit=20) for r in runs.items: print(r.status) # every run, following cursors async for r in c.schedules.iter_runs(sched.id): print(r.status)
const runs = await c.schedules.runs(sched.id, { limit: 20 });