Cron expression explainer
Type a cron schedule to see what it means in plain English and exactly when it runs next. Handy for crontab, Kubernetes CronJobs, GitHub Actions and CI schedules.
| Field | Value | Means |
|---|
How to read a cron expression
A standard cron expression has five fields separated by spaces: minute (0–59), hour (0–23), day of month (1–31), month (1–12 or JAN–DEC) and day of week (0–7 or SUN–SAT, where both 0 and 7 are Sunday). The job runs whenever the current time matches every field.
*means every value.*/15means every 15th value (0, 15, 30, 45).1-5is a range,1,15a list, and0-20/2every 2nd value in a range.5/15starts at 5 and repeats every 15 (5, 20, 35, 50).
Cron cheat sheet
* * * * *: every minute*/5 * * * *: every 5 minutes0 * * * *: every hour, on the hour0 9 * * 1-5: 09:00 on weekdays0 0 * * 0: midnight every Sunday0 0 1 * *: midnight on the first of every month0 0 1 1 *: once a year, on January 1@hourly,@daily,@weekly,@monthly,@yearlyand@rebootare shortcuts most cron daemons accept.
Gotchas
- Day of month OR day of week: when both are set, cron runs when either matches.
0 0 13 * 5runs on every 13th and every Friday, not only on Friday the 13th. - Time zone: crontab uses the server's time zone. Kubernetes CronJobs use the controller's zone unless you set
timeZone, and GitHub Actions schedules always run in UTC. Switch to UTC above to check. - Daylight saving: a job at 02:30 may be skipped or run twice when clocks change. Schedule critical jobs outside 01:00–03:00 or run the server in UTC.
- Seconds and years: 6 and 7 field expressions, and
L,W,#and?, belong to Quartz, Spring and AWS EventBridge, not standard cron.
Questions
What does */5 * * * * mean?
Every 5 minutes: at minute 0, 5, 10 and so on of every hour, every day.
How do I run a cron job every weekday?
Use 1-5 in the last field. For example 0 9 * * 1-5 runs at 09:00 Monday through Friday.
Is Sunday 0 or 7 in cron?
Both. Standard cron accepts 0 and 7 for Sunday, and names like SUN work too.
What time zone does cron use?
The time zone of the machine or service running it. GitHub Actions uses UTC; Kubernetes CronJobs can set timeZone. This tool shows next runs in your browser's zone or in UTC.
Why does my job run on the wrong days?
If both day-of-month and day-of-week are restricted, cron runs when either matches. Set one of them to * to require only the other.
Can cron run every 30 seconds?
Not directly: the smallest unit is one minute. A common workaround is two entries, one of them starting with sleep 30.
Does this support Quartz or AWS cron?
No, this tool checks standard 5-field cron as used by crontab, Kubernetes and GitHub Actions. It tells you when an expression uses Quartz-only syntax like seconds, L, W, # or ?.