Cron Expression Builder
Build and decode cron expressions with a plain-English explanation and the next run times. Covers standard five-field and extended formats.
Explanation
- Minute: 0-59
- Hour: 0-23
- Day of Month: 1-31
- Month: 1-12 (or JAN-DEC)
- Day of Week: 0-6 (Sun-Sat)
Need this built for your product?
We design, build & host secure software & APIs.
The five fields
A standard cron expression has five fields in a fixed order: minute, hour, day of month, month, and day of week. Each accepts a number, a list separated by commas, a range with a hyphen, a step with a slash, or an asterisk for every value. Minute runs 0 to 59, hour 0 to 23, day of month 1 to 31, month 1 to 12, and day of week 0 to 6 with Sunday as 0. Some implementations also accept 7 for Sunday.
The day-of-month and day-of-week trap
This catches almost everyone once. When both the day-of-month and the day-of-week fields are restricted, standard cron treats them as OR, not AND. The expression 0 0 13 * 5 does not mean "Friday the 13th". It means the 13th of every month and also every Friday. To get one specific weekday, leave day-of-month as an asterisk. Quartz-style cron, used by Java schedulers, resolves this differently by requiring one of the two fields to be a question mark.
Steps behave differently from ranges
*/15 in the minute field means every fifteenth minute starting at zero: 0, 15, 30, 45. But */40 means 0 and 40 only, then it resets at the top of the hour, so the gap between the second and third run is 20 minutes rather than 40. Steps divide the field's range; they do not schedule a repeating interval that crosses field boundaries. Any step that does not divide evenly into 60 produces an uneven schedule.
Time zones and daylight saving
Cron typically runs in the server's local time zone. When clocks go forward, jobs scheduled in the skipped hour never run. When clocks go back, jobs in the repeated hour may run twice. For anything where a missed or doubled run matters, either run the server in UTC or use a scheduler with explicit time zone support and idempotent jobs.
Special strings
Most implementations accept shorthand: @hourly, @daily, @weekly, @monthly, @yearly and @reboot. They are clearer than the numeric equivalents for simple schedules and worth using when they fit.
Frequently Asked Questions
Privacy & Security
Built locally.
About This Tool
This tool runs entirely in your browser. No data is sent to any server, ensuring complete privacy. Simply use the interface above to get started — no registration or login required.
Disclaimer: This tool is provided "as is" without warranty of any kind. Results are for educational and utility purposes.
Related Tools
JSON Formatter
DeveloperFormat and beautify JSON in your browser. Pinpoints syntax errors by line and column, flags unsafe integers, and never uploads your data to a server.
JSON Validator
DeveloperValidate JSON syntax with precise line and column errors, and check documents against a JSON Schema. Runs locally in your browser, nothing uploaded.
Regex Tester
DeveloperTest regular expressions against sample text with live match highlighting, capture groups and flag control. Runs entirely in your browser.