Cron Expression Explainer
Paste a cron expression like */15 9-17 * * 1-5 and get an exact plain-English description of when it fires. For anyone who has stared at a crontab line at 2 a.m. wondering why the backup ran at the wrong time.
How to use
- Paste a standard 5-field cron expression into the input.
- Click Explain.
- Read the English translation and verify it matches the schedule you intended.
A cron expression is five space-separated fields, minute, hour, day-of-month, month, day-of-week, read left to right. Each field takes a number, a range (9-17), a list (1,15), a step (*/15) or * for 'every'. The notation is dense enough that even experienced admins misread it, and a misplaced field is the classic cause of a job running every minute instead of every day.
The single most misunderstood rule is how day-of-month and day-of-week combine: when both are restricted, standard cron fires when either matches, not both. So 0 0 13 * 5 runs at midnight on every 13th and on every Friday, not only on Friday the 13th. Quartz and some cloud schedulers behave differently, which is why the same string can mean different things on different platforms.
Other common traps: days of week run 0-6 with both 0 and 7 meaning Sunday in most implementations. Cron uses the server's local timezone, so a job written for IST fires at the wrong moment on a UTC server (and daylight-saving jumps can skip or double-run jobs in DST regions), and there is no seconds field in classic cron, 5 fields, not 6. Kubernetes CronJobs, GitHub Actions schedules and crontab all use this 5-field format, so one explanation covers all three. This tool decodes the expression and lists upcoming run times so you can confirm before deploying.
Examples
Input: 0 9 * * 1-5
Output: At 09:00 on every day-of-week from Monday through Friday.
Input: */15 * * * *
Output: Every 15 minutes (at :00, :15, :30 and :45 past every hour).
Input: 30 6 1 * *
Output: At 06:30 on day-of-month 1 (the first of every month).
Frequently asked questions
What do the five fields in a cron expression mean?
In order: minute (0-59), hour (0-23), day of month (1-31), month (1-12), day of week (0-6, Sunday=0). An asterisk means every value for that field.
Why did my cron job run on days I didn't expect?
Most likely both day-of-month and day-of-week are restricted. Standard cron treats that as OR, so the job fires when either field matches. Leave one of the two as * to get the intersection behaviour you probably wanted.
What timezone do cron jobs use?
The system timezone of the machine or scheduler running them. GitHub Actions and most cloud CI systems evaluate cron in UTC, so an Indian team scheduling 09:00 IST must write 30 3 * * * (03:30 UTC).
Can cron run something every 30 seconds?
Not natively, the smallest unit in 5-field cron is one minute. Workarounds include two entries offset with a sleep, or a systemd timer, which supports second-level precision.
Related tools
Velona is India's INR-native AI API gateway with 300+ models, UPI top-up from ₹10, no foreign card needed. These tools are free forever.