> ## Documentation Index
> Fetch the complete documentation index at: https://learn.workflow.dog/llms.txt
> Use this file to discover all available pages before exploring further.

# Scheduling workflows

> Choose between recurring schedules and one-time delayed sub-workflow runs.

WorkflowDog has two different scheduling tools:

| Goal                                                | Use                                                   |
| --------------------------------------------------- | ----------------------------------------------------- |
| Run this workflow repeatedly                        | **Schedule** trigger                                  |
| Run another workflow once at a future date and time | **Schedule Workflow** action with a callable workflow |

They are not interchangeable. The trigger owns recurring automation for its
current workflow. The action queues one child run and continues without
waiting for that child to execute.

## Create a recurring schedule

Choose **Schedule** when creating the workflow, then open its trigger
configuration.

<Steps>
  <Step title="Add a schedule">
    Select **Add Schedule**. A new schedule starts at 9:00 AM every day in your
    browser's current timezone.
  </Step>

  <Step title="Choose the recurrence">
    Set an exact time or interval, then narrow it by day of month, day of week,
    or month. Presets include Hourly, Daily, Daily at 9 AM, Weekdays at 9 AM,
    and Monthly.
  </Step>

  <Step title="Confirm the timezone">
    Choose the IANA timezone that should own the wall-clock time. The schedule
    follows that timezone through daylight-saving changes.
  </Step>

  <Step title="Save and enable">
    Save the trigger configuration, wait for the graph to show **Saved**, and
    make the workflow live when it is ready.
  </Step>
</Steps>

A workflow can contain multiple recurring schedules. Each recurrence-and-timezone
pair must be unique. Every event exposes a **Timestamp** through **Data from
Trigger**.

<Note>
  The timestamp records when the scheduled event was emitted. Queue load or
  retries can make the run begin slightly later.
</Note>

## Schedule a one-time child run

Use **Schedule Workflow** inside a parent workflow when an event should queue
follow-up work for one specific future time.

The selected child must use the **Sub-Workflow** trigger. Configure:

* **Selected Workflow** — the callable child to run,
* **Date & Time** — at least 10 seconds in the future, and
* **Payload** — optional data exposed as **Data In** inside the child.

The action queues the child and has no result output. It does not wait until the
scheduled date and does not wait for the child to complete. Use
[Run Workflow](/reference/actions/core/run-workflow) instead when the parent
needs the child's returned result immediately.

<Warning>
  The child workflow must be enabled when **Schedule Workflow** queues it.
  Pausing the child later does not cancel a delayed run that is already
  scheduled. Cancel that run from workflow runs if it should no longer execute.
</Warning>

The delayed run captures the child's graph snapshot when it is queued. Later
edits apply to newly queued runs, not that already scheduled run.

Learn the complete callable-workflow pattern in
[Sub-workflows](/building/sub-workflows).

## Choose a timezone deliberately

Recurring schedules store an explicit timezone. Use the timezone of the
business event, not necessarily the timezone of the person configuring it. For
example, a daily storefront report should normally follow the storefront's
zone.

A connected **Date & Time** value for **Schedule Workflow** represents one
specific instant. If you build that value from text, include or intentionally
convert its timezone before scheduling it.

## Verify scheduled work

Scheduled runs appear with a scheduled status before they start. Use
[Workflow runs](/essentials/workflow-runs) to inspect or cancel them.

There is no generic Test Run button for schedules. For a recurring workflow,
temporarily add a near-future schedule, enable the workflow, wait for one event,
and remove the temporary recurrence after verification. Do not leave a
high-frequency test schedule attached to a live workflow.
