Run tests on a schedule
Schedules let Qodex run scenarios automatically. Use them for nightly regression, hourly smoke checks, security sweeps, or recurring validation against a staging or production environment. A schedule stores the run scope, environment, cron expression, timezone, and notification settings. When the schedule fires, Qodex creates a normal test run and records results in the same history as manual runs.What a schedule controls
Each schedule defines:- Run scope: all active scenarios, scenarios by tag, or scenarios and groups you pick.
- Environment: the target environment for base URLs, credentials, and variables.
- Cron expression: when the run should fire.
- Timezone: how the cron expression should be interpreted.
- Notifications: who should be notified and when.
Create a schedule
Open Test > Test runs, click Schedules, then click New schedule. Give it a Name and an optional Description, then choose What to run:
Scenario groups run as one unit. Sequential groups run members in order and can stop on first failure. Parallel groups run members independently at the same time. See Test groups and folders for the full behavior.
Choose the environment
Pick the target from the Environment dropdown. It lists the project’s own environments, and a new schedule starts on the project’s default environment. If the project has no environments yet, the dropdown says No environments configured; add one on the Environments page first. If an environment a schedule uses is later deleted, editing the schedule shows that it no longer exists so you can pick another. When the environment is read-only or has destructive tests turned off, scenarios taggeddestructive are skipped in each scheduled run. See Sensitive endpoints.
Choose the cadence
Pick a preset under Schedule: Every 15 minutes, Every hour, Every 6 hours, Every night at 2am, Every Monday at 9am, or Custom. With Custom, enter a standard five-field cron expression.Pause, resume, or run now
Use Pause on the schedule card to stop recurring execution, and Resume to start it again. Pausing keeps the schedule definition intact, and the card shows PAUSED. If you want CI to fire a schedule on demand, click Edit and use the CI/CD trigger section: click Generate URL, then Copy. A POST to that URL runs the schedule even while it is paused, without advancing its cron clock. Regenerate replaces the URL and stops the old one working immediately.Read the schedule card
Each card shows what it runs, its cadence, when it last ran, and when it runs next. Badges explain anything unusual:
Project admins are emailed when a scheduled slot cannot start, at most once a day per schedule.
Delete a schedule
Open Schedules, find the schedule, click Delete, and confirm Delete. This permanently removes the schedule and stops its future recurring runs. If you may use the same schedule again, use Pause instead. Pausing preserves the schedule definition without running it on its normal cadence.Notifications
Under Notifications, set:- Notify on: Every run (pass + fail), Failures only, or Never.
- Notify emails (comma-separated): leave empty to email the project admins. Each recipient gets their own copy.
- Webhook URL (optional): a Slack incoming webhook URL receives a formatted Slack message. Any other URL receives a JSON POST with the event, project, result, summary, failed scenarios, and a link to the run.
Related
Run tests via webhook
Trigger a schedule or run from an external system.
Run the full suite
Understand the scope used by nightly regressions.
Test groups and folders
Learn how grouped scenarios run on schedules.