Scheduling & cron syntax
How cron expressions work, with a field reference, common examples, timezone handling, and DST.
Both HTTP jobs and heartbeat checks are scheduled either with a cron expression or a simple interval. This page explains cron syntax and how SteadyCron handles timezones.
Want to check an expression quickly? Use the free cron expression explainer — it translates any expression to plain English and previews the next runs.
The five fields
A standard cron expression has five fields:
┌───────────── minute (0 - 59)
│ ┌─────────── hour (0 - 23)
│ │ ┌───────── day of month (1 - 31)
│ │ │ ┌─────── month (1 - 12)
│ │ │ │ ┌───── day of week (0 - 6, Sunday = 0)
│ │ │ │ │
* * * * *
Operators
*— every value (“every minute”, “every hour”).,— a list, e.g.1,15(the 1st and 15th).-— a range, e.g.9-17(09:00 through 17:00)./— a step, e.g.*/15(every 15 units).
Common examples
| Expression | Meaning |
|---|---|
*/15 * * * * | Every 15 minutes |
0 9 * * 1-5 | Weekdays at 09:00 |
30 4 1,15 * * | 04:30 on the 1st and 15th |
0 */4 * * * | Every 4 hours |
0 2 * * * | Daily at 02:00 |
0 9 * * 1 | Mondays at 09:00 |
Intervals
If you don’t need calendar precision, choose an interval instead — “every 30 minutes”, “every 6 hours”. SteadyCron schedules the next run relative to the last.
Timezones and DST
Every job has its own timezone from the IANA database (e.g.
Europe/Berlin). SteadyCron evaluates the schedule in that timezone and handles
daylight-saving transitions correctly — so “09:00 every weekday” stays at 09:00
local time across the spring and autumn clock changes, unlike a server crontab
running in UTC.
Frequency limits
The minimum scheduling frequency depends on your plan (for example, down to one minute on the Developer plan). See Plans & limits.