Skip to main content
POST
Create a schedule

Authorizations

Authorization
string
header
required

Use a Runcrate API key with the rc_live_* prefix as the bearer token. Create one at https://www.runcrate.ai/dashboard/api-keys.

Body

application/json

Send exactly one of run_at (once) or cron (repeating).

kind
enum<string>
required
Available options:
instance,
job
spec
object
required

The body each run sends, checked now by the same rules as the create endpoint: a JobCreateRequest for kind: job, an InstanceCreateRequest for kind: instance. max_runtime_minutes is required for both (job: 1 to 1440; instance: 5 to 10080).

run_at
string<date-time>

Run once at this time. Must be a real calendar date (2027-02-30 is refused), in the future and at most 365 days ahead.

cron
string

Repeat on this 5-field cron expression, read in timezone. Occurrences must be at least 15 minutes apart. Supports *, a-b, */n, a-b/n, lists a,b, names JAN-DEC and SUN-SAT, day-of-week 0 to 7 (0 and 7 are Sunday).

timezone
string
default:UTC

IANA timezone, e.g. America/New_York. A time skipped by a daylight saving change runs at the same offset after the gap (02:30 runs at 03:30); a time that happens twice runs once, the first time.

overlap
enum<string>
default:skip

Repeating only. Skip a run while the previous run's instance or job is still live.

Available options:
skip,
allow
name
string

Defaults to spec.name, or instance-schedule / job-schedule.

Required string length: 1 - 63
enabled
boolean
default:true

Create it paused with false.

Response

Schedule created.

data
object
required

Starts an instance or a job later: once at run_at, or on every occurrence of cron in timezone. Runcrate checks schedules every 2 minutes, so a run starts within about 2 minutes of its time, as run_as through run_as_credential, in the environment it was created in. When many schedules are due at once, each workspace gets its turn.