Automate

Schedules

Put a finished workflow on a recurring schedule. Every setting you choose is applied to each run, and every run is recorded.

Run it once by hand firstA scheduled run replays the saved code of every step, which is fast and costs no model tokens. A step with no saved code for its current instruction is written by its agent during the run, which costs tokens - so run the workflow once from the chat before you schedule it.

Create a schedule

  1. Open the workflow's menu

    In the Projects panel, open the workflow's ··· menu and choose Schedule DAG. A workflow has one schedule; to change it, edit it on the Schedules page.

  2. Choose the model

    Runs on, at the top, is the model every run uses. It starts as the model chosen in your chat.

  3. Set the cadence and save

    Choose how often it runs and when, then Save schedule. The other tabs start from sensible values; each number field shows the range it accepts.

The four tabs

TabWhat you set
CadenceHourly (at which minute), daily, weekly (which days), monthly (which day) or a custom cron; the time and timezone; an optional start and end; and what happens to a start that was missed, for example while the server was down: run it once now, skip it, or run every missed start in turn.
ConcurrencyWhat happens when the next start comes while the previous run is still going: skip the new start (Forbid), run both (Allow), stop the old run and start the new one (Replace), or start once the old one has finished (Queue). Also how many steps may run at once, and a random delay added to each start to spread load.
GuardrailsHard caps for one run, its retries included: input tokens, output tokens and cost - the run stops as soon as one is reached; 0 is no limit. Also the attempts each step has, and schema gating: a step whose inputs are not the types it expects fails before any model call.
ResilienceRetries: how many, the first delay and how it grows (exponential, linear or fixed); a retry runs only the steps that failed. Time limits for the whole run, retries included, and for each step. And a dead letter target - a webhook, Slack or PagerDuty - told when a run fails every attempt.

The Schedules page

Open Schedules from the left rail. The period at the top - one month ending now, unless you pick other dates - sets which runs are shown.

PartWhat it shows
OverviewActive and paused schedules, runs in the period, how many failed, the success rate, what they spent, and the next run.
Runs over timeEach day's runs by how they ended, and what they spent.
SchedulesEach schedule: its workflow and project, when it runs, its model, its status, its latest runs as coloured marks, and its next run. Open one to see every setting and each of its runs: when and how it started, how it ended, its attempts, how long it took, its tokens and cost, and any error.

On each schedule: Run now (it follows the schedule's concurrency setting), Pause or Resume, Edit, or Delete, which also deletes its run history. Deleting the workflow deletes its schedule.

How a run can end

StatusMeaning
SucceededEvery step succeeded.
FailedA step did not succeed after the run's retries.
Timed outThe run passed its time limit.
Over budgetThe run reached its token or cost cap.
SkippedThe previous run was still going and the concurrency setting is Forbid.
ReplacedA newer run replaced it (concurrency setting Replace).
RefusedYour plan's usage for this billing period is used up.
InterruptedThe server stopped while the run was in progress.

A run that does not succeed raises the Scheduled run failed alert when it is turned on in Guardrails.

How reruns stay consistent: Reruns replay saved code.

Something wrong or missing? Write to [email protected] about “Schedules”.Updated 11 Oct 2026