Developer Tools
Parse and Explain a Cron Expression
Transform pasted text with the cron expression parser and copy the cleaned output.
Direct Answer
Use the Cron Expression Parser when you have a cron schedule and need to understand when the job will run before deploying or editing it.
Reading an existing cron expression field by field
Parsing works by mapping each of the five positions to its meaning, which is where most misreads happen.
- field 1: minute (0-59)
- field 2: hour (0-23)
- field 3: day of month (1-31)
- field 4: month (1-12)
- field 5: day of week (0-6 or 0-7)
Things that make a schedule read differently than expected
A handful of cron quirks routinely cause a parsed explanation to surprise the person who wrote the original expression.
- day-of-month and day-of-week are OR'd together when both are restricted, not AND'd
- a 6-field expression (with a leading seconds field) misaligns every field if parsed as standard 5-field cron
- the explained schedule reflects the cron daemon's configured timezone, not necessarily your local one
- shorthand strings like @daily need to be recognized before field-by-field parsing applies
How to Use Cron Expression Parser
- Paste or type your content into the input box.
- The transformed result appears instantly in the result panel below.
- Click Copy result to copy the output to your clipboard.
- Download .txt saves the transformed text as a file.
- Reset clears everything and lets you start over.
Reference
| Feature | Details |
|---|---|
| Purpose | Transform pasted text into a cleaner or different format. |
| Input | Text, lines, lists, or copied content. |
| Result | Transformed text ready to copy or download. |
| Best for | Cleanup, formatting, list preparation, and copy-paste workflows. |
| Category | Developer Tools |
| Works on | Desktop, tablet, and mobile browsers |
Useful Related Tools
Frequently Asked Questions
What does each field in 0 9 * * 1-5 mean?
Reading left to right: minute 0, hour 9, any day of month, any month, and day-of-week 1 through 5 - so this expression runs at 9:00am every Monday through Friday, regardless of the date or month.
Why does the parser show my job running every minute?
This usually means the minute field is * or a step value like */1, which places no real restriction on when it fires. Check whether a field you intended to restrict was accidentally left as a wildcard.
What's the difference between a 5-field and a 6-field cron expression?
Standard cron uses 5 fields: minute, hour, day of month, month, and day of week. Some schedulers, like Quartz or Spring's cron support, add a leading seconds field, making it 6 fields total. Pasting a 6-field expression into a parser expecting 5 fields shifts every field's meaning by one position and produces an incorrect explanation.
Why does my expression seem to run on a specific date AND a specific weekday?
It doesn't run on both as an AND condition - standard cron ORs the day-of-month and day-of-week fields when both are restricted, so the job actually runs whenever either condition matches, not only when both do simultaneously.
What timezone does the parsed explanation assume?
It explains the wall-clock time implied literally by the expression's fields, but the actual run time in practice depends on the timezone the cron daemon or scheduler is configured with, which may differ from the timezone you're reading the explanation in.
What do @daily or @weekly expand to?
These are shorthand strings some cron implementations support in place of the five numeric fields - @daily expands to 0 0 * * * and @weekly expands to 0 0 * * 0. Recognizing them is useful when parsing an existing crontab that mixes shorthand and explicit expressions.
Why does the parser flag my day-of-month step value like */7 as unusual?
*/7 in the day-of-month field is syntactically valid but doesn't divide evenly into most months, so the resulting schedule drifts and lands on different days of the week each month - a pattern worth calling out even though it's not technically invalid syntax.
Can I paste a full crontab line, including the command, or only the schedule fields?
The parser expects just the schedule fields. A full crontab line also includes the command to execute after the fifth field, which should be stripped off before parsing so it isn't mistaken for part of the schedule.