Skip to content

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 wantCron
Every day at 09:000 9 * * *
Every hour, on the hour0 * * * *
Every 15 minutes*/15 * * * *
Weekdays (Mon-Fri) at 09:000 9 * * 1-5
Every Monday at 09:000 9 * * 1
The 1st of each month at 09:000 9 1 * *
Every Sunday at 20:3030 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.

KindMinimum gap
Send a message5 minutes
Clear old threads4 hours
Clear recent messages4 hours
Reward the most active members6 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.