Cron expression tester
Paste a cron expression and a timezone. You get the next dozen run times in that timezone and in UTC, with daylight-saving changes marked.
At 03:00 AM
Next 12 runs in UTC (GMT+0)
24 hr between the next two- Wed, Sep 23, 03:00 AM2026-09-23 03:00 UTC
- Thu, Sep 24, 03:00 AM2026-09-24 03:00 UTC
- Fri, Sep 25, 03:00 AM2026-09-25 03:00 UTC
- Sat, Sep 26, 03:00 AM2026-09-26 03:00 UTC
- Sun, Sep 27, 03:00 AM2026-09-27 03:00 UTC
- Mon, Sep 28, 03:00 AM2026-09-28 03:00 UTC
- Tue, Sep 29, 03:00 AM2026-09-29 03:00 UTC
- Wed, Sep 30, 03:00 AM2026-09-30 03:00 UTC
- Thu, Oct 1, 03:00 AM2026-10-01 03:00 UTC
- Fri, Oct 2, 03:00 AM2026-10-02 03:00 UTC
- Sat, Oct 3, 03:00 AM2026-10-03 03:00 UTC
- Sun, Oct 4, 03:00 AM2026-10-04 03:00 UTC
How a cron expression reads
Five fields, separated by spaces: minute hour day-of-month month day-of-week. A * means “every.” So 0 3 * * * is 03:00 every day, */15 * * * * is every fifteen minutes, and 0 9 * * 1-5 is 09:00 Monday through Friday.
The timezone matters because 0 2 * * * in America/New_York is a different moment in January than in July, and on the two days a year the clocks move it's either ambiguous or doesn't exist at all. The tester resolves each run through the IANA timezone database so those days are handled rather than guessed.
Why daylight saving trips up job monitoring
A lot of monitoring tools check “has this job pinged in the last N minutes?” That works until a DST transition shifts the wall clock by an hour: a daily 2 a.m. job is suddenly 60 minutes early or late relative to the fixed window, and you get a false alert, twice a year, on a weekend.
illari computes each expected run from the cron expression and timezone the same way this tester does, so the window moves with the clock. More on catching silent cron failures →
Need this schedule in another scheduler's syntax? The cron expression converter translates it into systemd, AWS EventBridge, Kubernetes, and GCP Cloud Scheduler.
Cron expression FAQ
- What do the five cron fields mean?
- In order: minute (0–59), hour (0–23), day of month (1–31), month (1–12), and day of week (0–6, where 0 is Sunday). A * means every value of that field.
- What does */5 mean in a cron expression?
- A step value: every 5 units of that field. */5 * * * * runs every 5 minutes; 0 */2 * * * runs at the top of every 2nd hour.
- How do I run a cron job only on weekdays?
- Set the day-of-week field to 1-5, for example 0 9 * * 1-5 runs at 09:00 Monday through Friday. 0 is Sunday and 6 is Saturday.
- Why does my cron job run an hour early or late twice a year?
- Daylight-saving transitions shift the server's local wall clock by an hour. A job on a fixed local schedule moves relative to UTC. Either run the schedule in UTC, or use a scheduler that's timezone-aware so the run time moves with the clock.
- Can cron run a job every 30 seconds?
- No. Cron's smallest interval is one minute. To go sub-minute you either run the job every minute with a delayed second invocation, or use a different scheduler (systemd timers, a job queue).