Scheduled checks

Run a check on a recurring schedule — useful for keeping an eye on production between deploys.

Setup

  1. Open App settings → Triggers.
  2. Toggle Scheduled runs on and enter a cron expression.
  3. Click Save.

That's it. From the next matching cron tick, Qassandra will create a check automatically with the same lifecycle as a manual run.

Cron expressions

Qassandra uses standard 5-field cron syntax in UTC. The fields are:

┌── minute (0–59)
│ ┌── hour (0–23, UTC)
│ │ ┌── day of month (1–31)
│ │ │ ┌── month (1–12)
│ │ │ │ ┌── day of week (0–6, Sun = 0)
│ │ │ │ │
* * * * *
ExpressionRuns
0 * * * *Every hour, on the hour
*/15 * * * *Every 15 minutes
0 9 * * 1-59:00 UTC on weekdays
0 0 * * *Once a day at midnight UTC
30 6 * * 16:30 UTC every Monday
!

Mind your minimum interval

Choose an interval that gives previous checks time to finish. If a flow takes 5 minutes to run, scheduling a check every minute will queue up a backlog. Most teams settle on hourly or daily for production monitoring.

Disabling

Toggle Scheduled runs off. The cron expression is preserved so you can re-enable it later without retyping.

How it actually fires

Every minute a Supabase scheduled function checks for apps whose cron expression matches the current UTC minute and inserts a scheduled row into the checks table. From there the same check processor that handles manual and GitHub-triggered checks picks it up.