Free Cron Expression Generator
Build a standard 5-field cron expression from each field, pick a common preset, and read a plain-English explanation of exactly when it will run.
Each field accepts a number, * (any), a list like 1,3,5, a range like 9-17, or a step like */15. Day-of-week uses Sunday = 0 (7 also means Sunday).
0 9 * * 1Meaning: At 09:00 on Monday.
Quick answer
A cron expression is five space-separated fields β minute, hour, day-of-month, month, and day-of-week β that tell a scheduler when to run a job. For example, 0 9 * * 1 means "at 09:00 on Monday." This tool builds the expression from your inputs and explains the schedule in plain English so you can verify it before deploying.
Formula & method
Cron uses five fields in fixed order: minute (0β59), hour (0β23), day of month (1β31), month (1β12), and day of week (0β6, where Sunday is 0 and 7 also means Sunday). Each field accepts a single number, an asterisk (*) for "any value", a comma list like 1,3,5, a range like 9-17, or a step like */15. This tool validates each field against its allowed range, joins them with single spaces, and translates the combination into a readable sentence. Everything runs in your browser β nothing is uploaded.
Examples
- Input
- minute 0, hour 9, day-of-month *, month *, day-of-week 1
- Result
- 0 9 * * 1 β At 09:00 on Monday
- Why
- Fixed minute and hour give a clock time; day-of-week 1 restricts it to Monday.
- Input
- minute */15, hour *, day-of-month *, month *, day-of-week *
- Result
- */15 * * * * β Every 15 minutes
- Why
- A step value */15 on the minute field fires at minute 0, 15, 30, and 45 of every hour.
- Input
- minute 0, hour 0, day-of-month *, month *, day-of-week *
- Result
- 0 0 * * * β At 00:00
- Why
- Minute 0 and hour 0 with all other fields wildcarded runs once a day at midnight.
- Input
- minute 30, hour 8, day-of-month 1, month *, day-of-week *
- Result
- 30 8 1 * * β At 08:30 on day 1 of the month
- Why
- Day-of-month 1 limits the run to the 1st; month * means every month.
- Input
- minute 0, hour *, day-of-month *, month *, day-of-week *
- Result
- 0 * * * * β At minute 0 of every hour
- Why
- A fixed minute with a wildcard hour runs once per hour, on the hour.
When to use this tool
- Scheduling a recurring task on a Linux/Unix server, in a Docker container, or in a CI pipeline via a crontab.
- Configuring a scheduled job in tools that use cron syntax, such as GitHub Actions, Kubernetes CronJobs, or cloud function schedulers.
- Double-checking that an existing cron line actually runs when you think it does, using the plain-English explanation.
Common mistakes
- Putting the fields in the wrong order. The order is always minute, hour, day-of-month, month, day-of-week β many people accidentally swap hour and minute.
- Assuming Sunday is 1. In standard cron, day-of-week starts at Sunday = 0 (and 7 also means Sunday); Monday is 1.
- Setting both day-of-month and day-of-week to specific values and expecting an AND. Most cron daemons treat them as OR, so the job runs when either matches.
- Writing */60 or values outside a field's range (like hour 24 or minute 60). Use 0β59 for minutes and 0β23 for hours.
- Confusing standard 5-field cron with extended formats. Quartz and some tools add a seconds field (6 fields) and use different day-of-week numbering.
Frequently asked questions
What are the five fields in a cron expression?
In order: minute (0β59), hour (0β23), day of month (1β31), month (1β12), and day of week (0β6). An asterisk in any field means 'every' value for that field.
How do I run a job every 15 minutes?
Use */15 in the minute field and asterisks elsewhere: */15 * * * *. The step value */15 fires at minute 0, 15, 30, and 45 of every hour.
Is Sunday 0 or 7 in cron?
Both. Standard cron numbers days of the week 0β6 starting at Sunday, and most implementations also accept 7 as an alias for Sunday. Monday is always 1.
What does an asterisk (*) mean?
An asterisk means 'any value' for that field. For example, an asterisk in the hour field means the job is eligible to run during every hour of the day.
What's the difference between * and */1?
Nothing in practice β */1 means 'every 1 unit', which is the same as *. Steps become useful with larger values like */5 or */15.
Why does my job run more often than expected when I set both day-of-month and day-of-week?
Most cron daemons OR the day-of-month and day-of-week fields when both are specified, so the job runs whenever either condition matches. Leave one as * to avoid surprises.
Does this tool support seconds or the Quartz format?
No. It generates the classic 5-field cron format used by Unix crontab, GitHub Actions, and Kubernetes. Quartz and some schedulers add a seconds field and use different day-of-week numbering.
Sources & references
External references open in a new tab. We are independent and not affiliated with these organizations.
- β Free to use
- β No sign-up required
- β Runs entirely in your browser β nothing is uploaded.
- β Formula and method shown above
Provided βas isβ for general information only β results may be inaccurate, so verify before you rely on them. No warranty; use at your own risk.
Built and reviewed by HIFreeTools against the formula shown above and any authoritative references cited on this page. See our methodology and editorial standards.
Related tools
- Unix Timestamp ConverterDeveloper
- Chmod CalculatorDeveloper
- Regex TesterDeveloper
- UUID GeneratorSecurity
- JSON Formatter & ValidatorDeveloper
- Base64 Encoder & DecoderDeveloper
Embed this tool on your site
Free to embed, no sign-up. Paste this code where you want the cron expression generator to appear: