> For the complete documentation index, see [llms.txt](https://docs.appfarm.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.appfarm.io/reference/flows/schedules.md).

# Schedules

A schedule runs a Flow [action](/reference/actions.md) automatically on a cron expression. Common use cases are recurring integration runs, periodic data refreshes, and other background work that runs at set times.

Schedules are configured per Flow action, in the **Triggers** section at the top of the Flow action editor. A single Flow action can have any number of schedules. When triggered, the schedule runs the Flow action under the selected [service account](/reference/security/service-accounts.md).

{% hint style="info" %}
**Important**

* The selected service account must have permission to run the Flow action and any object class permissions required by the action. If the action updates a [secret](/reference/security/secrets.md), that permission must also be granted.
* To change the **Schedule**, **Time Zone**, or **Service Account** of a saved schedule, first clear the **Enabled** checkbox. Re-enable the schedule when you are done.
  {% endhint %}

### Usage

Any task that needs to be run on a regular schedule is a candidate for a schedule.

* Fetch data from an external API every 15 minutes to populate a dashboard.
* Synchronize customer data with a CRM nightly at 2am.
* Refresh an OAuth access token used for integrations every 3 hours.
* Send a summary email every morning with the previous day's orders.

### Properties

| Property                  | Description                                                                                                                                                                                                                                                                                                                                                     |
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Schedule**              | The schedule on which the Flow action will be run, in the form of a [cron expression](#cron-expression). The expression is validated and an error is shown if it is not valid.                                                                                                                                                                                  |
| **Time Zone**             | The time zone used by the schedule when evaluating the cron expression. Defaults to Europe/Oslo.                                                                                                                                                                                                                                                                |
| **Service Account**       | The service account that will be used to run the Flow action.                                                                                                                                                                                                                                                                                                   |
| **Limit to Environments** | By default a schedule will run on all enabled environments in a solution that have the **Enable Scheduler** checkbox selected under [Environments](/reference/configuration/environments.md). You can restrict which environments the schedule will run on by selecting this checkbox and then selecting the environments where the schedule should be enabled. |
| **Enabled**               | Activate the schedule. This must be checked for the schedule to run.                                                                                                                                                                                                                                                                                            |
| **Description**           | A longer description of the schedule. It may be useful to specify what the Flow action does and why it runs on this schedule.                                                                                                                                                                                                                                   |

### Cron expression

A cron expression typically consists of five values separated by spaces, in this order, within the stated ranges.

* Minute (0–59)
* Hour (0–23)
* Day of month (1–31)
* Month (1–12)
* Day of week (0–6, where 0 = Sunday)

The following example would be run every 3rd hour, on the hour: `0 */3 * * *`.

**Available patterns**

| Symbol | Description     | Example |
| ------ | --------------- | ------- |
| \*     | any value       | \*      |
| ,      | list of values  | 1,5,7   |
| -      | range of values | 1-3     |
| /      | steps           | \*/2    |

{% hint style="info" %}
**Good to know**

* A written description of the current cron expression appears as the title of the schedule.
* Use [crontab guru](https://crontab.guru/) to help you generate a valid expression and to find common examples.
  {% endhint %}

### Action params

A schedule does not provide input values to the Flow action's [action params](/reference/actions/action-params.md). Flow actions intended to run on a schedule should not require input. If the action needs inputs, trigger it from [Run Flow](/library/action-nodes/run-flow.md) or an [API Endpoint](/reference/flows/api-endpoints.md) instead, where values can be supplied at the call site.

### Behavior

**Overlapping runs are skipped.** If a scheduled Flow action is still running when the next cron tick arrives, the next tick is silently skipped. There is no configurable concurrency mode.

**Minimum interval between runs.** The platform enforces a minimum interval between successful runs of a schedule. The default is 5 minutes. Cron expressions that schedule more frequent runs effectively run at the configured minimum.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.appfarm.io/reference/flows/schedules.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
