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

# Schedule syncs in the UI

> Choose when a sync runs, whether manually, on an interval, on a custom recurrence, on a cron expression, or after a dbt Cloud or Fivetran job.

*A sync's schedule controls when it runs.* You set it on the sync's **Schedule** tab, as the last step of configuration.

To set a schedule, open the sync and go to its **Schedule** tab, then choose a **Schedule type**.

![The Schedule tab of a sync in Hightouch](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/syncs/sync-schedule.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=75c6fd87c6955aad869f42437a5b99c9)

## Before you begin

* A saved sync.

## Schedule types

Choose the schedule type that matches how the sync should be triggered:

| Schedule type | Use when |
| - | - |
| **Manual** | You trigger each run yourself, or an orchestrator or the [API](https://docs.hightouch.com/api-reference/trigger-sync.md) does. Required for syncs in a [sequence](https://docs.hightouch.com/syncs/schedule-sync-with-sequences.md). |
| **Interval** | You want a recurring cadence and exact run times don't matter, such as every hour. |
| **Custom recurrence** | You need specific days and local times, such as Mondays at 9 AM. |
| **Cron expression** | You need a precise or complex schedule, written as cron and evaluated in UTC. |
| **dbt Cloud** | The sync should run after a [dbt Cloud job](https://docs.hightouch.com/extensions/dbt-cloud.md) finishes. |
| **Fivetran** | The sync should run after a [Fivetran job](https://docs.hightouch.com/extensions/fivetran.md) finishes. |

> [!TIP]
>
> Times you set in the UI run in your local timezone. Cron expressions are
> evaluated in UTC.

### Manual runs

A **Manual** sync runs only when something triggers it. Click **Run** on the sync's page to start a run.

![Running a sync manually in Hightouch](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/syncs/sync-manual-run.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=9eb7ef1d2f9dce2d293b4cdbd3087ac0)

Choose **Manual** for any sync you trigger from outside Hightouch:

* a [sequence](https://docs.hightouch.com/syncs/schedule-sync-with-sequences.md)
* an orchestrator such as [Airflow](https://docs.hightouch.com/extensions/airflow.md), [Dagster](https://docs.hightouch.com/extensions/dagster.md), [Prefect](https://docs.hightouch.com/extensions/prefect.md), or [Mage](https://docs.hightouch.com/extensions/mage.md)
* the [REST API](https://docs.hightouch.com/api-reference/trigger-sync.md)

### Interval schedules

Run the sync every *n* minutes, hours, days, or weeks.

![Configuring an interval schedule in Hightouch](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/syncs/configure-interval.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=40e19f220b6a769d80e29ad0d9d3323f)

An interval run starts approximately one interval after the previous run, so the start time can drift after a [manual run](#manual-runs) or a background delay. If you need stable start times, use [custom recurrence](#custom-recurrence-schedules) instead.

### Custom recurrence schedules

Run the sync on specific days and times in your local timezone. Click **Add recurrence** to add each day and time.

![Configuring a custom recurrence schedule in Hightouch](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/syncs/custom-recurrence.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=9c46c7c751ab2782b7fd4e1590f9783c)

The schedule above runs at midnight on weekdays and at 8 AM on weekends.

### Set when a schedule starts and ends

> [!NOTE]
>
> Scheduling a start and/or end time is only available on [Business tier plans](https://hightouch.com/pricing).

For interval and custom recurrence schedules, you can set when the schedule takes effect (immediately or a future date and time) and when it stops (indefinitely or a future date and time).

![Setting a schedule's start and end times in Hightouch](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/syncs/configure-schedule.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=273c47c9bb0988728a320934bdd3dc1c)

### Cron expression schedules

Schedule the sync with a [cron](https://en.wikipedia.org/wiki/Cron) expression when you need precise control. Use five fields, not six: the smallest interval Hightouch supports is one minute, not one second.

| Cron expression | Runs |
| :- | :- |
| `* * * * *` | Every minute |
| `0 12 * * *` | Every day at noon |
| `0 12 1 * *` | The first day of every month at noon |
| `0 12 L * *` | The last day of every month at noon |
| `0 12 * 12 1,2` | Every Monday and Tuesday at noon, in December only |

Use a [cron expression generator](https://crontab.guru/) to build an expression that fits your needs.

> [!TIP]
>
> Cron expressions are evaluated in UTC.

> [!WARNING]
>
> Hightouch doesn't support these non-standard cron characters: `W`, `LW`,
> `L-2`, `L-3`, and `#`.

### dbt Cloud

Run the sync when a dbt Cloud job finishes. See [trigger a sync with dbt Cloud](https://docs.hightouch.com/extensions/dbt-cloud.md) for setup. Scheduling with dbt Cloud requires a paid dbt plan.

### Fivetran

Run the sync when a Fivetran job finishes. See [trigger a sync with Fivetran](https://docs.hightouch.com/extensions/fivetran.md) for setup.

## Verify the schedule

After you save, the sync's page shows its schedule and the next scheduled run. Confirm the next run time matches what you expect, remembering that UI times are local and cron is UTC. To confirm the sync itself works, click **Run** and check the result in the [live debugger](https://docs.hightouch.com/syncs/debugger.md).

## Tips and troubleshooting

### Daylight Saving Time (DST)

Daylight Saving Time affects schedules differently depending on the schedule type:

* **Cron expression** schedules are evaluated in UTC, so the UTC run time stays fixed while the local wall-clock time shifts by one hour when DST starts or ends.
* **Custom recurrence** schedules run at the local time shown in the UI, so they follow the wall-clock time through DST changes.

For DST-sensitive schedules, choose one of these approaches:

* Define your SLA in UTC and keep the schedule fixed.
* Accept a one-hour local-time shift, and monitor the sync around DST transitions.
* For a strict local time year-round (for example, 7:00 AM local), use an external timezone-aware scheduler and trigger the sync with the [REST API](https://docs.hightouch.com/api-reference/trigger-sync.md). Common options include [Airflow](https://docs.hightouch.com/extensions/airflow.md), [Dagster](https://docs.hightouch.com/extensions/dagster.md), [Prefect](https://docs.hightouch.com/extensions/prefect.md), a cloud scheduler, or your own application scheduler.

### Disabled syncs continue to run

If you [disable](https://docs.hightouch.com/syncs/overview.md#individual-sync-overview-page) a sync but it still has recent runs, check whether it belongs to a [sequence](https://docs.hightouch.com/syncs/schedule-sync-with-sequences.md). A sync's schedule and its sequences run independently, so a disabled sync still runs as part of a sequence. Set any sync you use in a sequence to the [Manual](#manual-runs) schedule type.

A disabled sync also runs if you [trigger it manually](#manual-runs) or an external service such as [Airflow](https://docs.hightouch.com/extensions/airflow.md) triggers it.
