> For the complete documentation index, see [llms.txt](https://docs.steadybit.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.steadybit.com/use-steadybit/experiments/schedule.md).

# Schedule

Experiments can be run on the fly using the UI, API, or CLI, or scheduled to run automatically in the future. Scheduling an experiment can be done via [UI](#scheduling-via-ui) or [API](#scheduling-via-api).

{% hint style="info" %}
To schedule an experiment, you must have permission to edit it, which means you have to be a member of the team.

Please note that an experiment schedule always starts the experiment. In case of validation errors, these are documented as canceled experiment runs to check them out asynchronously.
{% endhint %}

## Scheduling via UI

You can open the scheduling configuration dialog in the platform either in the experiment editor or the experiment list's context menu.

![Schedule experiment within the experiment editor](https://853194531-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZLJS2c8EXBcu8PiwteIJ%2Fuploads%2Fgit-blob-2ea126b4423de09753b812e80c4d34a1db42d246%2Fcreate-experiment-schedule.png?alt=media)

When the configuration dialog opens, you can manage multiple experiment schedules. Each schedule can run the experiment just once or repeatedly in the future.

### One-Time Schedule

The configuration is straightforward if you decide to run it once. Just select a date and time in the future and save the schedule. Please keep the "Activate Schedule" toggle enabled. Otherwise, the schedule will be ignored and not run.

![Scheduling Experiments just once](https://853194531-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZLJS2c8EXBcu8PiwteIJ%2Fuploads%2Fgit-blob-875af142b62f2182d4d5746a776fc55120096603%2Fcreate-experiment-schedule-once.png?alt=media)

{% hint style="info" %}
The date and time selections are done in the user’s configured timezone.
{% endhint %}

### Recurring Schedule

Experiments can be scheduled to run repeatedly (like every hour or every Friday morning). To do so, you have to configure a cron-like expression.

![Scheduling Experiments repeatedly](https://853194531-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZLJS2c8EXBcu8PiwteIJ%2Fuploads%2Fgit-blob-5161220b9eda726f7ca2efcc29b3214b30fdd021%2Fcreate-experiment-schedule-recurrently.png?alt=media)

{% hint style="info" %}
**Just so you know**, we are using the [Quartz cron trigger syntax](http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html). The Quartz cron expression is evaluated in the user’s configured timezone. The currently configured timezone will also be shown for the next experiment run.
{% endhint %}

### Schedules Overview

In the experiment list section on the left-hand side, you can find a quick overview of all configured schedules. Here you can see when each schedule will next be triggered, and enable, disable or delete it.

![Scheduled Experiment overview](https://853194531-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZLJS2c8EXBcu8PiwteIJ%2Fuploads%2Fgit-blob-fd533d179c5d00bee5e837ea4a974f5348ffb9d4%2Fexperiment-schedule-overview.png?alt=media)

### Experiment Variable Overrides

If the experiment is making use of an [environment, service, or experiment variable](/use-steadybit/experiments/variables.md), you can override them in the schedule. As in the experiment editor, the experiment is validated when you enter unsupported values (e.g. entering "name" into a duration variable). Schedule variables override the environment, service and experiment values for every run triggered by this schedule.

![Experiment Schedule override](https://853194531-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZLJS2c8EXBcu8PiwteIJ%2Fuploads%2Fgit-blob-57d9df18d95053ba4db664bacf2bca0f3d61c4d1%2Fexperiment-schedule-overrides.png?alt=media)

## Scheduling via API

Schedules can also be configured using the following API endpoints. Check out [Integrate with Steadybit / API](/integrate-with-steadybit/api.md) to learn how to access the API.

* [Create or update an experiment schedule](https://platform.steadybit.com/api/swagger/swagger-ui/index.html#/Experiment%20Schedule/upsertSchedule)
* [Get an experiment schedule](https://platform.steadybit.com/api/swagger/swagger-ui/index.html#/Experiment%20Schedule/getSchedules)
* [Remove an experiment schedule](https://platform.steadybit.com/api/swagger/swagger-ui/index.html#/Experiment%20Schedule/removeExperimentScheduleById)
* [List all schedules currently configured](https://platform.steadybit.com/api/swagger/swagger-ui/index.html#/Experiment%20Schedule/getAllSchedulesV2)

Each experiment schedule can be identified via a UUID (`id`) which can be used to update or delete a specific schedule.
