Summary
This cron expression generator builds and checks standard five-field cron schedules in your browser. Choose a preset or edit the minute, hour, day of month, month and day of week fields. The tool explains the schedule in plain English, shows each field in detail and lists the next five run times in UTC or your own time zone. It follows the standard cron rule for combining day of month and day of week. Nothing is sent to a server and no signup is needed.
Cron expression generator: build and preview schedules in seconds
Pick a preset or type the five fields. You get a plain English reading, a field by field breakdown and the next five run times, all calculated locally.
What the tool does with your five fields
It parses each field on its own
Every field accepts a single value, a list (1,15), a range (1-5), a step (*/10) or a mix. Month and weekday names such as JAN or MON-FRI work. Out of range values and backwards ranges are flagged on the exact field that is wrong.
It applies the real cron matching rule
A time matches when its minute, hour and month are in your lists and the day test passes. If day of month and day of week are both restricted, cron accepts either one. If one starts with an asterisk, both must match.
It walks the calendar to list future runs
Starting from the current minute, the script steps through days, keeps the ones that pass the day test, then lists the matching hours and minutes in order. It looks up to eight years ahead, which is enough to find a 29 February schedule.
The five fields, in the order cron reads them
A cron line is five fields separated by spaces, followed by the command. The order never changes: minute, hour, day of month, month, day of week. Most mistakes come from swapping the first two, so a schedule meant for 2 PM ends up running at minute 14 of every hour. Read it left to right and say the fields out loud before you commit.
- Minute: 0-59
- Hour: 0-23, on a 24 hour clock
- Day of month: 1-31
- Month: 1-12 or JAN-DEC
- Day of week: 0-7 or SUN-SAT, where 0 and 7 are both Sunday
- Symbols: * for every value, , for a list, - for a range, / for a step
Cron gotchas that cost people a weekend
The environment is nearly empty
Cron starts jobs with a minimal PATH and no shell profile. A script that works in your terminal can fail silently from cron. Use absolute paths for the command and for any file it reads, and redirect output to a log file so you can see errors.
A percent sign ends your command
In a crontab line, an unescaped % is treated as a newline, and everything after it is sent to the command as input. Date formats like date +%F need each percent escaped with a backslash. Put the command in a script and the problem disappears.
Every minute is rarely what you want
A job that runs every minute and takes 90 seconds will overlap with itself. Guard long jobs with a lock, or move to a queue. If you only need something every few minutes, a step such as */5 is gentler and easier on whatever the job calls.
Time zones are not yours
A crontab uses the server's time zone. Hosted schedulers usually use UTC. A job set for 09:00 may fire at 17:00 in Taipei or 04:00 in Bangkok depending on where the machine lives. State the time zone in a comment next to the line.
Weekday and day of month combine as OR
Restricting both fields does not narrow the schedule, it widens it. If you want the first Monday of the month, no five-field expression can say it directly. Run the job every Monday and let the script check that the date is 7 or less.
Test the schedule before the job
Check the next five runs here first, then run the command by hand with the same environment. Two small checks beat debugging a nightly backup that never ran. Start with a harmless command such as writing the date to a file.
Questions about cron expressions
Is this cron expression generator free, and does it send my schedule anywhere?
How many fields does a cron expression have?
Why does my job run on days I did not expect when I set both day of month and day of week?
Which time zone do the next-run times use?
Does the same expression work in GitHub Actions, Kubernetes and crontab?
What does a step like */15 or 10/20 mean?
Can I use names like MON-FRI or JAN?
What happens at daylight saving time changes?
Looking for the next thing to build?
A cron job is a good first backend for a side project. The free generator on our home page hands you a full project spec, with stack and scope, in one click.