# Run a flow on a schedule

import { Steps } from "@astrojs/starlight/components"

A **Scheduler** trigger starts a flow at a time you choose: once on a date, or on a recurring interval (daily, weekly,
monthly, or yearly). Studio shows the next run and the time zone used for the schedule.

## When to use

- A report, sync, or cleanup should run without an external event.
- Prefer [Run a flow through a webhook](../run-flow-through-webhook/) or [Run a flow through email](../run-flow-through-emails/)
  when an outside system should start the flow.
- Prefer [Run a flow from an AI··Room](../run-a-flow-from-an-ai-room/) when an operator should start the flow from chat.

Before you begin, you need permission to create and deploy flows in the environment. Deploy the flow so the schedule can
run in that environment.

## Guide

### Add a Scheduler trigger

A **Scheduler** is the trigger that runs the flow on a clock. Configure the schedule on the step **Settings** tab.

<ol>
<li>

**Open the flow.** Create or open the flow in the designer. On an empty canvas, choose **Add a step manually**.

</li>
<li>

**Choose Scheduler.** In the step catalog, open **Triggers**, then choose **Scheduler**.
<div class="docs-screenshot-compact">

![Add a step catalog Triggers section with Scheduler](./assets/add-step-catalog-triggers-section-scheduler.png)

</div>

</li>
<li>

**Rename and describe the step.** Rename the Scheduler step and fill a description.

</li>
<li>

**Open Settings.** On the Scheduler step, open **Settings** to define the recurrence.
<div class="docs-screenshot-compact">

![Scheduler Trigger on the canvas with Settings available from the step](./assets/scheduler-trigger-canvas-settings-available-step.png)

</div>

</li>
</ol>
### Configure the schedule

Choose whether the flow runs once or on a repeating interval, then fill the time fields Studio shows for that mode.

<ol>
<li>

**Set Schedule.** Choose **At regular interval** for a repeating run, or **Once** for a single date and time.

</li>
<li>

**Set Frequency (recurring only).** For **At regular interval**, choose **Daily**, **Weekly**, **Monthly**, or
**Yearly**.

</li>
<li>

**Fill the time fields.** Set **At** (hour), **Minutes**, and any day or month fields Studio shows (for example **On**
for weekdays on a weekly schedule, or **On the** for a one-time date). Confirm the footer **Time zone** matches the zone
you intend.
<div class="docs-screenshot-compact">

![Scheduler Trigger Settings with At regular interval, Weekly frequency, weekday picker, and Time zone Europe/Paris](./assets/scheduler-trigger-settings-regular-interval.png)

</div>

</li>
<li>

**Deploy the flow.** Deploy so the schedule is active in the environment. See
[Manage version and deployments](../../../operate/manage-version-and-deployments/).

</li>
</ol>
## Example

A security team wants a weekly inventory refresh every Monday at 01:00 Europe/Paris. The flow **Refresh asset
inventory** starts with Scheduler **Weekly inventory refresh**. Settings use **At regular interval**, **Weekly**,
**On** Monday, **At** `1`, and the footer shows **Time zone: Europe/Paris**. After deploy, Studio runs the flow on that
cadence without an external caller.

## Keep in mind

- There is no free-form cron expression — use the **Schedule** and **Frequency** controls.
- The schedule uses the time zone shown in Settings (typically your browser time zone).
- Deploy the flow before you expect scheduled runs.

## Related

[Trigger your flow](../) ·
[Manage version and deployments](../../../operate/manage-version-and-deployments/)
