Cron Expression Builder
Build and validate cron expressions with a plain-English description of when they will run.
Parsing and the next-run calculation run locally in your browser using standard 5-field cron syntax, so nothing you type here is sent to a server.
Cron Expression Builder
Build, validate, and understand a 5-field cron expression, with the next run times computed live.
minute · hour · day of month · month · day of week
Quick patterns
In plain English
Runs at 09:00, on Monday through Friday.
How Cron Syntax Actually Works
A cron expression is five fields separated by spaces, each one narrowing down when a job runs: minute, hour, day of month, month, and day of week. Every field defaults to *, meaning “any value,” and a job only fires in the exact minute where every field's condition is satisfied at once. 0 9 * * 1-5 reads as minute 0, hour 9, any day of month, any month, weekdays only, which is why it fires once at 09:00 on Monday through Friday and nowhere else.
The part that trips people up almost every time is what happens when both the day-of-month and day-of-week fields are restricted at once. It is tempting to read them as an AND, “the 1st, but only if it's also a Monday,” but standard cron treats them as an OR instead: the job runs if either condition is true. 0 0 1 * 1 fires on the 1st of every month and separately on every Monday, not only on a Monday that happens to land on the 1st. If you only want one of the two conditions, leave the other field as *.
Step values (*/15), ranges (9-17), lists (1,15,30), and combined range-steps (9-17/2) all compose within a single field, and most schedulers also accept three-letter names for months and days (jan, mon) as a more readable alternative to the numeric form. This tool accepts both and treats them identically.
Common Use Cases
Checking a schedule before it ships
Paste an expression from a deploy config or a scheduler UI and see the next few run times computed directly, instead of mentally simulating five interacting fields.
Debugging a job that fired at the wrong time
The plain-English description surfaces the day-of-month/day-of-week OR behavior explicitly, which is the most common reason a job runs on a day nobody expected.
Building an expression without memorizing field order
The field-by-field builder sets each of the 5 fields independently (every, every N, a specific value or list, or a range) and assembles the expression for you.
Frequently Asked Questions
Is my cron expression sent to a server?
No. Parsing, validation, and the next-run calculation all run in your browser. Nothing you type here is transmitted anywhere.
What do the 5 fields mean?
In order: minute (0-59), hour (0-23), day of month (1-31), month (1-12 or jan-dec), and day of week (0-7, where both 0 and 7 mean Sunday, or sun-sat). This tool does not support the 6-field "seconds" variant some schedulers use.
Why did my job run on a day I did not expect?
If both the day-of-month and day-of-week fields are restricted (not *), standard cron treats them as OR, not AND: the job runs when either condition is true. "0 0 1 * 1" runs on the 1st of the month AND on every Monday, not only on a Monday that happens to be the 1st.
What is the difference between */15 and 0,15,30,45?
For the minute field they produce the same run times, but */15 is a step expression (every 15 units starting from the field minimum) while 0,15,30,45 is an explicit list. They diverge if the field does not start at 0: */15 on hours 9-17 starts at 9, while an explicit list gives full control over which values are included.
Further Reading
Related Tools
GUID / UUID Generator
Generate UUID v1, v4, and v5 identifiers, in bulk.
Encrypt / Decrypt
AES encryption, SHA/MD5 hashing, Base64, Hex, ROT13.
Password Generator
Generate strong, random passwords.
JSON Formatter
Format, validate, and beautify JSON.
JWT Decoder
Decode and verify JSON Web Tokens.
Timestamp Converter
Convert Unix timestamps, ISO 8601, and human-readable dates.
Regex Tester
Test regular expressions with live match highlighting and group capture.