# Scheduling tests

Turn a test into an always-on monitor by running it automatically on a recurring schedule.

A test that only runs when you remember to click "Run" is not really automated. Schedules turn a test into a continuous monitor, running the same check at the cadence you choose without any manual involvement. The combination of a schedule and a notification is, for most teams, the entire reason they are using Testsnag in the first place.

![The Schedule tab of test settings with scheduled runs enabled on a daily 07:00 Europe/London schedule.](https://testsnag.com/images/docs/running-tests/scheduling-1-schedule-tab.r1.jpg)

Marked on the screenshot:
- Enable scheduled runs to turn the test into a continuous monitor.
- The interval, from every five minutes to monthly.
- Time of day, for daily, weekly, and monthly schedules.
- Pin the schedule to a timezone so it does not drift with daylight saving.
- Run Now fires an off-schedule check without disturbing the schedule.

## Setting a schedule

Open any test, go to its Settings page, and switch to the Scheduled Runs tab. Enable scheduling and pick an interval. The current choices range from every 5, 15, or 30 minutes, through hourly and every 6 or 12 hours, then daily, weekly, and monthly for lower-frequency audits. Pick the cadence that matches the cost of finding out late, while keeping your monthly run limit in mind.

## Times and timezones

Daily, weekly, and monthly schedules let you choose a specific time of day, day of the week, or day of the month. You can pin everything to the timezone that matches your team rather than the server's, which is the difference between a 9am report that lands when standup starts and one that lands six hours earlier in the wrong timezone. Schedules are stored in your chosen timezone, so daylight saving transitions are handled correctly without you having to think about it.

## Environments

When the test has [environments](https://testsnag.com/docs/building-blocks/environments.md) enabled, the Schedule tab also asks where each scheduled run should go:

- **No environment**: the run uses the test's own URL and variables.
- **Selected**: one run per environment you tick.
- **All enabled**: one run per environment enabled for the test.

Each of those runs counts against your monthly allowance. If none of the chosen environments is still enabled for the test when the schedule comes due, nothing runs.

## Finding scheduled runs

Scheduled runs appear on the Runs page just like manual ones, but their trigger is shown as "schedule" so you can filter to see only automated runs when you are scanning for noise. Combined with notifications (Slack on failure is the most common setup, GitHub Check Runs are the next most common) this is how teams use Testsnag as an always-on watcher for their production journeys.

## Running off-schedule

If you ever need to fire an off-schedule check while keeping the schedule intact, the same tab has a "Run Now" button. Disabling and re-enabling the schedule is non-destructive: the configuration is kept, so you can pause during a maintenance window and resume later without reconfiguring everything from scratch.
