What this cron builder does
Cron syntax is compact but easy to get wrong: is 0 0 * * 1 Monday or Sunday? Does */15 start at zero? This builder lets you construct an expression by clicking instead of memorizing. For each field (second, minute, hour, day of month, month, day of week) choose every, an interval, specific values or a range, and the expression, a human-readable description and the next 10 run times update instantly. It supports classic Unix cron, six-field cron with seconds, Quartz (used by Spring and Java schedulers) and Kubernetes CronJob.
How to use it
- Choose the variant you are targeting: Unix, with seconds, Quartz or Kubernetes.
- For each field, pick a mode. Click chips to select specific values, or set "every N starting at M".
- Check the description sentence and the next runs list. Pick a time zone to see runs as your server sees them.
- Copy the expression. You can also paste an existing expression into the input to load it back into the builder.
Variant differences
- Unix / crontab: five fields, minute first. Day of week 0–7, where both 0 and 7 are Sunday.
- With seconds: six fields with seconds first, used by node-cron and many libraries.
- Quartz: seconds first, optional year at the end, day of week 1–7 with Sunday = 1, and one of day-of-month or day-of-week must be
?. SupportsL,Wand#. - Kubernetes CronJob: standard five fields; the time zone is set with
spec.timeZone(Kubernetes 1.27+), otherwise the controller's local time applies. The builder generates a YAML snippet for convenience.
Common pitfalls
- When both day of month and day of week are restricted in Unix cron, the job runs when either matches, not both.
*/15in the minute field means minutes 0, 15, 30 and 45, not "15 minutes after the job last ran".- Daylight saving changes can skip or repeat runs between 1:00 and 3:00 local time. Schedule critical jobs in UTC.
- Many hosted schedulers (GitHub Actions, Vercel Cron) always use UTC.