# Schedule test plans

URL: https://testmode.ai/docs/schedule-test-plans/

> A schedule runs a Testmode test plan automatically against one environment, hourly, daily, weekly or monthly. Set it up and learn how timezones apply.

A schedule runs a test plan automatically, at a time you choose, against one environment. Testmode starts the run for you and can email a report when it finishes.

Schedules belong to a plan. A plan can have several, for example one per environment.

**Before you start:** you need a [test plan](https://testmode.ai/docs/test-plans/) with at least one enabled test case that has steps or an Expected Outcome, and the Editor role or above. For advice on how often to run which tests, see [regression testing without a QA team](https://testmode.ai/learn/regression-testing-without-a-qa-team/).

Viewers can open a plan's **Schedules** tab and see its schedules, but not change them. The tab reads "Schedules run this test plan automatically. You need the Editor role or above to change them." There is no **Add Schedule** button, no edit or delete icons, and each schedule's switch is disabled.

## Add a schedule

1. Open the plan from **Test Plans** and select the **Schedules** tab.

2. Click **Add Schedule**. The **New Schedule** dialog opens with the plan's name under **Test Plan**.

3. Choose the **Environment** the plan should run against, for example `Production`.

4. Set **Frequency**, **Time** and **Timezone**. The preview shows a description such as "Weekly on Monday, Wednesday, Friday at 06:00" and the next run in your local time.

5. Choose when to send **Email reports** and add **Recipients**. See [Email run reports](https://testmode.ai/docs/email-run-reports/).

6. Leave **Enabled** on and click **Save**.

The schedule appears on the **Schedules** tab with its environment, recipients and next run time.

[Screenshot: New Schedule dialog for the Checkout regression plan on Production, weekly on Monday, Wednesday and Friday at 06:00 Amsterdam time, emailing a report after every run to the listed recipients. Caption: A schedule runs the plan on one environment at a set time and emails a report to the addresses you add.]

A new schedule starts as **Daily** at 09:00 in your browser's timezone, with reports set to **Only when a test fails** and sent to your own email address. It preselects the project's oldest environment, which is not always the project's default, so check **Environment** before you save.

## Choose frequency and time

| Frequency | Settings | Example |
| --- | --- | --- |
| **Hourly** | **Run every** 1, 2, 3, 4, 6, 8 or 12 hours. No time picker. | Every 6 hours |
| **Daily** | **Time** | Daily at 07:30 |
| **Weekly** | **Days** (Sun to Sat) and **Time** | Monday, Wednesday and Friday at 06:00 |
| **Monthly** | **Day of month** (1 to 28) and **Time** | Day 1 at 09:00 |

Minutes can be `:00`, `:15`, `:30` or `:45`. A **Weekly** schedule needs at least one day. If you untick them all and click **Save**, Testmode shows "Select at least one day of the week" and saves nothing.

## Timezones and daylight saving time

**Timezone** offers 13 choices: UTC, Eastern Time (US), Central Time (US), Mountain Time (US), Pacific Time (US), London (UK), Paris (CET), Berlin (CET), Amsterdam (CET), Tokyo (Japan), Shanghai (China), Singapore and Sydney (Australia).

The **Next run** preview, and the next run shown on the **Schedules** tab, are always in your browser's local time. The schedule's description on the tab names the timezone by its ID, for example "Daily at 07:30 (Europe/Amsterdam)".

The dialog notes: "Schedules run at the chosen time in the selected timezone. Zones with daylight saving time shift by one hour for part of the year."

In practice, Testmode fixes the time using the zone's offset on the day you save. A schedule saved in winter for 09:00 Amsterdam time runs at 10:00 Amsterdam time in summer. To realign it after a clock change, open the schedule and save it again.

**Tip**

If your team works across several zones, or you want a time that never shifts, choose **UTC**.

## Hourly and monthly schedules

- **Hourly every 2 to 12 hours** runs at hours counted from midnight UTC, not your local midnight. Every 6 hours means 00:00, 06:00, 12:00 and 18:00 UTC.
- **Monthly** schedules set close to midnight can land on the day before or after the day you chose, in your local time.
- If your browser's timezone is not one of the 13 choices, **Timezone** looks blank on a new schedule but still saves your zone. Picking a choice from the list replaces it.

## What happens when a schedule fires

A scheduled run is a normal plan run on the schedule's environment:

- Every enabled test case in the plan runs, each in its own cloud browser. Disabled test cases are left out, and so are test cases with no steps and no Expected Outcome.
- Credential overrides from the plan apply.
- On the Runs page, **Triggered By** shows `Scheduled`.

You read the results exactly as for a run you start yourself. See [Read run results](https://testmode.ai/docs/read-run-results/).

## When a schedule does not run

| Situation | What Testmode does |
| --- | --- |
| The schedule's previous run is still `Queued` or `Running` | Skips that time. No run is recorded. |
| The plan is empty, or all its test cases are disabled | Skips that time silently. No run and no email. |
| None of the plan's enabled test cases has steps or an Expected Outcome | Records a run with status `Skipped` and a reason such as "None of the 2 test cases has steps or an expected outcome to check. Add at least one step." It is not charged and sends no email. |
| The organization does not have enough credits | Records a run with status `Skipped` and the reason. It is not charged and sends no email. |
| The schedule is switched off | Never runs. |

A skipped run shows "This run was skipped", the reason, and a **Manage credits** link. A skipped time is not retried; the schedule tries again at its next time.

If the reason is missing steps, buying credits does not help: add steps to the plan's test cases. The plan's **Test Cases** tab marks them **No steps**; see [Test cases marked No steps](https://testmode.ai/docs/organize-test-cases/#test-cases-marked-no-steps).

[Screenshot: Skipped scheduled Kestrel smoke run with a This run was skipped notice giving an insufficient credits reason and a Manage credits link. Caption: A scheduled run the organization cannot pay for is recorded as skipped, with the reason.]

See [How credits work](https://testmode.ai/docs/how-credits-work/) for how a run's cost is worked out.

## Turn a schedule off or delete it

On the plan's **Schedules** tab, each schedule has:

- a switch that turns it on or off straight away. A switched-off schedule shows a "Disabled" badge and no next run.
- a pencil icon to edit it.
- a trash icon to delete it, after you confirm.

Deleting a schedule does not change the plan. Deleting the plan, or the environment the schedule uses, deletes the schedule too.

**Caution**

Disabling a plan does not stop its schedules. To stop scheduled runs, switch off each schedule on the plan's **Schedules** tab.

## Related

  - [Email run reports](https://testmode.ai/docs/email-run-reports/): Choose who gets a report after each scheduled run.
  - [Group tests into test plans](https://testmode.ai/docs/test-plans/): Create the plans your schedules run.
  - [Run and test statuses](https://testmode.ai/docs/run-and-test-statuses/): What Queued, Running, Passed, Failed and Skipped mean.
  - [How credits work](https://testmode.ai/docs/how-credits-work/): What a run costs and when credits come back.
