Cron Expression Explainer
Translate a cron expression into plain English (or your language) and break down each field.
Description
Fields
Examples
How to use
- Type or paste a cron expression like '0 9 * * 1-5'.
- Read the plain-language description below.
- Inspect each of the 5 fields (minute, hour, day, month, weekday).
- Click an example chip to load a common pattern.
About this tool
ShowHide
Paste a standard five-field cron expression and read, in plain language, when it actually runs — plus a field-by-field breakdown of the minute, hour, day of month, month and day of week. Example chips load common schedules, from every minute to weekdays at nine, so you can build a new one by analogy instead of from memory. The description is produced in the language of the page, so a Korean or Japanese reader gets a sentence in their own language rather than translated jargon. One cron rule catches almost everyone eventually: when both the day-of-month and the day-of-week fields are restricted, the job runs on days matching either one, not only on days matching both.
Frequently asked questions
Which cron syntax is supported?
Standard 5-field POSIX cron (minute hour day month weekday) plus ranges (1-5), steps (*/15), and lists (1,3,5). A Quartz-style 6/7-field expression (with seconds) still gets a description, but the field-by-field breakdown is shown only for the standard five fields.
What about @hourly, @daily, @reboot?
The description understands named shortcuts such as @hourly, @daily and @reboot, but the field breakdown needs the five fields written out — e.g., @daily → '0 0 * * *'.
Is the time zone considered?
Cron expressions themselves don't carry timezone info. The description is timezone-agnostic — whether '0 9 * * *' means 09:00 UTC, KST, or local depends on the system that runs it.
Does the language follow my site language?
Yes. Descriptions are rendered in the current page locale (en/ko/ja/es/pt/zh).
Why did my job run on days I did not expect?
Almost always the day-of-month and day-of-week rule. When both fields are restricted, cron fires on days matching either one, not both — so 0 0 1 * 1 runs on the first of the month and on every Monday. Leave one of the two as an asterisk unless you genuinely mean the union.
Does */5 always mean every five minutes?
Only because the minute field starts at zero. A step applies within the range it is attached to, so 0-59/5 and */5 are the same, but 10-30/5 fires only between ten and thirty past. The step counts from the start of the range, not from the current time.
Guides on this topic
Related tools
Cron Expression Builder
Build a cron expression by clicking — hourly, daily, weekly, monthly, or fully custom — pairs with the Cron Explainer.
Developer
Cron Next Runs
Type a 5-field cron expression and see the next N times it will fire — local time, including weekday + day-of-month dual semantics.
Time
Regex Tester
Test JavaScript regular expressions live with highlighted matches and replace preview.
Developer
XPath Tester
Run an XPath expression against XML or HTML in your browser and see every node it matches, with namespace prefixes and parse errors reported.
Developer
JWT Decoder
Decode a JSON Web Token to inspect its header, claims, and expiration.
Developer
YAML Formatter & Validator
Pretty-print and validate YAML — fix indentation, sort keys, choose line width, catch errors in place.
Developer