Cron & time zones
Scheduled jobs decide when to run using a cron expression and a time zone. You do not have to write cron by hand: the editor has one-click presets and previews the next five run times. This page is for when you want something custom.
Cron expressions
SnowstormBot uses standard 5-field cron:
┌───────────── minute (0 - 59)
│ ┌─────────── hour (0 - 23)
│ │ ┌───────── day of month (1 - 31)
│ │ │ ┌─────── month (1 - 12)
│ │ │ │ ┌───── day of week (0 - 6, Sunday = 0)
│ │ │ │ │
* * * * *A * means "every". You can also use lists (1,3,5), ranges (1-5), and steps (*/15).
Common examples
| You want | Cron |
|---|---|
| Every day at 09:00 | 0 9 * * * |
| Every hour, on the hour | 0 * * * * |
| Every 15 minutes | */15 * * * * |
| Weekdays (Mon-Fri) at 09:00 | 0 9 * * 1-5 |
| Every Monday at 09:00 | 0 9 * * 1 |
| The 1st of each month at 09:00 | 0 9 1 * * |
| Every Sunday at 20:30 | 30 20 * * 0 |
The editor offers the most common of these as preset chips.
Minimum interval
To protect your server and Discord's limits, each job kind has a floor on how often it may run. If your cron fires more often than allowed, the editor flags it and you pick a coarser schedule.
| Kind | Minimum gap |
|---|---|
| Send a message | 5 minutes |
| Clear old threads | 4 hours |
| Clear recent messages | 4 hours |
| Reward the most active members | 6 hours |
Time zones
Each schedule runs in a time zone you choose (it defaults to the one on your profile). Type a city or region in the picker (for example "Amsterdam", "New York", or "UTC") and select it. The "next fires" preview always shows times in the schedule's zone, so you can confirm it looks right.
Time zones follow daylight-saving changes automatically. "Every day at 09:00" stays at 09:00 local time across the clock change.