> For the complete documentation index, see [llms.txt](https://docs.jetadmin.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.jetadmin.io/workflow/start-a-workflow/run-on-a-schedule.md).

# Run on a schedule

Run an automation at a regular interval and check its results.

Use **Workflows → Add Automation** to choose when background work starts. Background logic needs explicit inputs and queries; it cannot depend on a row selected in an app.

## Choose a timing option

| Option                   | Configuration                                                                    | Use                                |
| ------------------------ | -------------------------------------------------------------------------------- | ---------------------------------- |
| **At regular intervals** | **Interval in minutes**                                                          | Repeat a check at a fixed interval |
| **Based on a schedule**  | **Every day**, **Days of the week**, **Days of the month**, or **Specify dates** | Run according to a calendar        |
| **One-time run**         | **Run date**                                                                     | Arrange one execution              |

The inspected interval form initially shows 15 minutes. Set the value needed for your process instead of relying on that initial value.

## Configure a daily schedule

1. Open **Workflows** and select **Add Automation**.
2. Choose **Based on a schedule**.
3. Choose **Every day** and set **Time**.
4. The inspected daily form specifies **Time zone is UTC (+0)**. Convert your intended local time to UTC; consider daylight-saving changes when relevant.
5. Configure the function's logic and required data.
6. Save the function and complete the trigger configuration shown in your app.

The UTC label above was verified for the daily form. Check the labels for other schedule modes and the one-time date picker before assuming they use the same time zone.

![Daily schedule setup showing Every day, Time, and Time zone is UTC (+0)](https://3448227606-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LQ08RFAKZvFADEiXKFy%2Fuploads%2FbNSheye8KkHKEDdbuP41%2Fworkflow-daily-schedule.jpg?alt=media)

In the daily schedule form, the time zone is UTC (+0). Convert your intended local time before setting Time.

For recurring work, start with a query that selects only the records due for processing. Pass those results into [conditions](/workflow/build-workflow-steps/add-conditions-and-branches.md) or an [iterator](/workflow/build-workflow-steps/process-multiple-records-with-iterators.md).

## Test the function and the schedule separately

Use fictional records in a test environment. Save and test the function with representative inputs, then check an actual scheduled execution in **Run history** and verify its result. An editor test does not prove that a schedule is active.

Record the configured time, expected execution time, observed run, and result. Check the trigger's saved configuration and any enabled-state control available in your interface if the run does not appear.

## Keep repeated runs predictable

Exclude records already processed and store a marker after successful work. A marker alone does not prevent duplicate work when executions overlap. See [Handle failures and prevent duplicate processing](/workflow/handle-outcomes/handle-failures-and-prevent-duplicate-processing.md).

For an application example, see [Send scheduled reminders](/workflow/practical-guides/send-scheduled-reminders.md). For other entry points, see [Choose a trigger](/workflow/start-a-workflow/choose-a-trigger.md).


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.jetadmin.io/workflow/start-a-workflow/run-on-a-schedule.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
