Cron Expression Builder
Understand Cron Expression Builder
Parses a five-field cron expression, describes what it means in plain English, and shows the next five times it will fire.
How it works
The five fields are minute (0–59), hour (0–23), day of month (1–31), month (1–12), and day of week (0–6, with 0 as Sunday), each accepting `*`, a list (`1,15`), a range (`1-5`), or a step (`*/15`). Cron evaluates them by testing every minute against all five, but the two day fields are the exception: when day of month and day of week are both restricted, they are combined with OR rather than AND, so `0 0 13 * 5` runs on the 13th and on every Friday, not only on Friday the 13th. The next-run times shown here are calculated in your browser's local timezone.
When to use it
- Confirming that a schedule you wrote does what you meant before it goes into a crontab or a Kubernetes CronJob
- Reading someone else's expression in a legacy crontab and finding out when it actually fires
- Choosing a stagger for a fleet of jobs so they do not all start at the top of the hour
- Debugging a job that "runs at the wrong time" by seeing the concrete next five timestamps rather than reasoning about the fields
Watch out for
- The day-of-month and day-of-week OR is the single most misread rule in cron. If you want "Monday, but only if it is the 1st", cron cannot express it — put the date check inside the script.
- Steps restart at every field boundary, not at the interval you had in mind. `*/7` in the minute field fires at :00, :07 … :56 and then :00 again, leaving a four-minute gap once an hour rather than an even 7-minute cadence.
- `0 0 31 * *` silently skips February, April, June, September, and November. For "the last day of the month", use a scheduler that supports `L` or run daily and exit early.
- Cron runs in the host's timezone, so daylight saving moves your jobs. A 2:30 AM job may not run at all on the spring-forward day and may run twice on the fall-back day; scheduling in UTC avoids both.
Not the right tool for: Quartz and AWS EventBridge dialects. Those add a seconds or year field and characters like `?`, `L`, `W`, and `#` — this parser reads the standard five-field form, so translate before pasting.
Frequently Asked Questions
What is a cron job?
A cron job is a scheduled task that runs automatically at a specified time or interval on Linux/Unix systems. Cron is the daemon that reads a crontab file and executes its entries. Common uses: database backups, log rotation, report generation, and sending scheduled emails.
What is a cron expression?
A cron expression is five space-separated fields defining a schedule: minute (0–59), hour (0–23), day-of-month (1–31), month (1–12), day-of-week (0–6, 0=Sunday). Each field accepts asterisks, ranges, lists, and steps. Quartz and AWS extras — seconds, ?, L, W, #, and @daily macros — are not parsed here.
How to create a cron job?
On Linux, run crontab -e to open the crontab editor and add a line: "*/15 * * * * /path/to/script.sh". Save and exit. The cron daemon picks up the change immediately. Verify with crontab -l. For AWS EventBridge or GitHub Actions, use their respective cron syntax variants.
How to Use Cron Expression Builder
- Paste or type your input in the input area above.
- The tool processes your input automatically or click Run.
- Copy or download the result using the action buttons.
- Use Ctrl+Enter to run quickly from the keyboard.