How to Read a Cron Expression
Cron expressions are compact to the point of being cryptic, and the cost of misreading one is a job that runs at three in the morning every day instead of once a month. Paste your expression above and you get three things immediately. First, a plain-English sentence describing the schedule, which you can copy straight into a code comment or a ticket. Second — and this is the part most cron tools leave out — the actual next ten times the job will fire, as real dates in your own time zone, each with a countdown showing how far away it is. A description can be misinterpreted; a list of dates cannot, and it catches the classic mistakes instantly, like a schedule you thought was monthly firing daily. Third, a field-by-field table showing exactly which values each of the five fields expands to, so you can see that */15 really did mean 0, 15, 30 and 45. Named months and weekdays work, as do the shorthand aliases such as @daily and @weekly, and when something is wrong the error names the offending field and its allowed range rather than just saying the expression is invalid. Everything is computed in your browser.
Paste the expression
Type your cron schedule, or tap one of the presets.
Read the summary
A plain-English description appears instantly.
Verify the dates
Check the next ten runs match what you intended.
Common Gotchas
Day-of-month and day-of-week are OR
When both are restricted, the job runs if either matches, not both. So 0 0 1 * 1 fires on the first of the month and every Monday — which surprises almost everyone the first time.
The first field is minutes, not seconds
Standard cron has five fields and the smallest unit is one minute. Some systems add a sixth seconds field at the front — if yours does, this parser will report five fields expected.
Common Use Cases
Verify before deploying
Check the next runs match your intent before the job goes live.
Understand inherited jobs
Decode a crontab someone else wrote years ago.
Debug a job that fires too often
The run list makes an over-eager schedule obvious immediately.
Document a schedule
Copy the plain-English summary into a comment or runbook.
CI and pipeline schedules
Confirm a scheduled workflow triggers when you expect.
Backup windows
Check a backup lands inside its maintenance window.
Learning cron
Change a field and watch the run times shift.
Code review
Confirm a colleague's cron change does what the PR claims.
Tips & Best Practices
Always check the run dates
A description can be misread; a list of actual dates cannot. It's the fastest way to catch a mistake.
Avoid restricting both day fields
Because they combine with OR rather than AND, the result is almost never what people intend.
Mind the server's time zone
Cron uses the server clock. The times here are yours — confirm the server matches, especially around daylight saving.
Stagger jobs off the hour
Everything scheduled at 0 0 competes for resources. Offsetting by a few minutes spreads the load.
Comment the schedule in your crontab
Paste the plain-English summary above the line so the next person doesn't have to decode it.
Watch out for the 31st
A schedule for day 31 skips months that don't have one — the run list shows the gaps clearly.
Troubleshooting
It says five fields expected
Your expression may include a seconds field, which some schedulers add. Remove the leading field, or the trailing command if you pasted a whole crontab line.
The runs are on the wrong days
If both day-of-month and day-of-week are restricted, they combine with OR. Leave one as an asterisk.
The times look an hour out
Runs are shown in your local time zone. Cron uses the server's clock, which may differ — especially across daylight saving.
No upcoming runs were found
The schedule may be impossible, such as 30 February. Check the day and month fields together.
Frequently Asked Questions
How do I read a cron expression?
Paste it above and you get a plain-English summary, a field-by-field breakdown and the next ten actual run times — free, no signup.
Does it show when the job will next run?
Yes. Ten upcoming runs as real dates in your local time zone, each with a countdown.
What do the five fields mean?
Minute, hour, day of month, month and day of week, in that order, separated by spaces.
What does */15 mean?
Every fifteenth value in that field — so in the minute field, at 0, 15, 30 and 45 past the hour.
Can I use @daily and @weekly?
Yes. The standard aliases @yearly, @monthly, @weekly, @daily, @midnight and @hourly are all recognised.
Can I use month and day names?
Yes. Names like jan, dec, mon and fri work in the month and day-of-week fields, including in ranges such as mon-fri.
Why does my job run more often than expected?
If both day-of-month and day-of-week are restricted, cron runs when either matches, not both. Leave one as an asterisk.
Which time zone are the runs in?
Your browser's local time zone. Your server may use a different one, so verify before relying on the times.
Can cron run more often than once a minute?
Not in standard cron — one minute is the smallest interval. Some schedulers add a seconds field as a sixth value.
What happens on 31 February?
The schedule simply never matches those dates. The run list shows which months it skips.
Is my expression sent to a server?
No. Everything is parsed and calculated in your browser.
Does it handle daylight saving?
Run times use your browser's time zone rules, so local shifts are reflected. Your server's behaviour depends on its own configuration.
What does 0 9 * * 1-5 mean?
Nine in the morning, Monday to Friday.
Can I paste a whole crontab line?
Paste only the schedule portion — the five fields, without the command that follows.
Why is my expression reported invalid?
The error names the field and its allowed range, so check that field first — most problems are an out-of-range number or a stray character.
Does it work offline?
Once the page has loaded it runs entirely in your browser, so it keeps working without a connection.
Does it work on phones?
Yes, in any modern browser on Windows, Mac, Android or iPhone with nothing to install.
Is this tool really free?
Completely free, forever — no account, no ads and no premium wall.
100% free · No signup · Processed in your browser · Data never sent
Last updated: August 2026 · FlipMyFormat Cron Expression Parser
Written and maintained by the FlipMyFormat team · Runs entirely in your browser