Temporal Schedule V2

How a Scheduled Action Becomes a Workflow Run

Time, jitter, overlap, catch-up, and backfills—followed from one Schedule rule to a completed Workflow.

A Temporal Schedule is a durable set of instructions for starting Workflow Executions over time. It defines when to act, which Workflow to start, and how to handle conditions such as overlapping runs or missed times.

This article follows what happens after a Schedule produces a time: how that time becomes a scheduled action, how the action waits or starts, and how its result is recorded. Along the way, we’ll see how jitter, overlap policies, catch-up windows, and Backfills change that path.

1 · Choose a time

The Schedule chooses a nominal time

A Schedule is independent of the Workflow Executions it starts. Its Spec supplies the times, its Action supplies the Workflow template, and its Policies decide what happens when execution cannot follow the ideal timeline.

2 · Become an action

A forecast becomes a buffered action

FutureActionTimes is a forecast view. When its time arrives, the Generator materializes a new entry in the one persisted BufferedStarts collection.

Future actionforecast only
Waitingno run ID
Runningrun ID
Completedretained result

3 · Resolve overlap

What if another Workflow is already running?

The baseline lifecycle stays the same, but overlap policy changes whether each new action disappears, waits, replaces the current run, or starts concurrently.

4 · Decide whether it is too late

Waiting has a deadline

A Catch-up Window limits how late a scheduled action may begin. It matters after outages, retries, and long overlap deferrals.

5 · Revisit the past

Backfills create actions from past times

A Backfill asks the same five-minute Spec for matches in a historical range, preserves those historical nominal times, and starts their Workflows now.

The live interval keeps producing FutureActionTimes. Each temporary Backfiller owns an independently scaled past window and writes its matches directly into the shared BufferedStarts queue.

Reference

How Temporal names these times

Map each timestamp in the diagrams to its V2 storage and API field.