Cron Expression Generator
Build a valid cron expression with presets or custom fields, and read it back in plain English. Covers minute, hour, day, month and weekday with * , - / syntax.
Updated 2026-06-14 · Free · No sign-up · Runs privately in your browser
Field reference
* * * * * = minute, hour, day-of-month, month, day-of-week.
* means every value, */5 every 5th value, 1-5 a range, 1,15 a list.
Day-of-week: 0 and 7 are both Sunday, 1 = Monday … 6 = Saturday.
How the Cron Expression Generator Works
This tool builds a valid 5-field cron expression and explains it back to you in plain English. Pick a common schedule from the preset list, or type into the five fields — minute, hour, day of month, month, and day of week — to craft a custom schedule. The expression and its description update live, and you can copy the result straight into a crontab or scheduler.
Cron is the time-based job scheduler used on Unix and Linux systems and supported by many CI/CD platforms, container orchestrators and cloud functions. A cron expression is a compact way to say “run this job on this schedule.”
The Format
A standard cron expression has five space-separated fields:
minute hour day-of-month month day-of-week
Each field accepts:
- a single number, e.g.
5 *— every allowed value (the wildcard)- a range, e.g.
1-5 - a list, e.g.
1,15,30 - a step, e.g.
*/10(every 10th value)
Field ranges are: minute 0–59, hour 0–23, day of month 1–31, month 1–12, day of week 0–6 (0 and 7 are both Sunday).
Worked Example
Suppose you want a backup every weekday at 2:30 AM:
- Minute =
30 - Hour =
2 - Day of month =
* - Month =
* - Day of week =
1-5(Monday to Friday)
The resulting expression is:
30 2 * * 1-5
Read in plain English: Runs at 2:30 AM, on Monday, Tuesday, Wednesday, Thursday, Friday.
Common Cron Schedules
| Schedule | Expression |
|---|---|
| Every minute | * * * * * |
| Every 5 minutes | */5 * * * * |
| Every hour, on the hour | 0 * * * * |
| Every day at midnight | 0 0 * * * |
| Every Sunday at midnight | 0 0 * * 0 |
| First of each month | 0 0 1 * * |
| Once a year (Jan 1) | 0 0 1 1 * |
Tips for Reliable Cron Jobs
Cron runs in the server’s time zone, so confirm whether that is UTC or local before relying on an hour value. Avoid scheduling many heavy jobs at the same instant (such as 0 0 * * *); stagger them by a few minutes to spread load. Finally, remember that in standard cron, setting both day-of-month and day-of-week to specific values makes the job run when either matches — keep one field as * unless you truly want that OR behaviour.
Frequently asked questions
What are the five fields in a cron expression?+
From left to right they are minute (0-59), hour (0-23), day of month (1-31), month (1-12) and day of week (0-6, where 0 and 7 are both Sunday). So '0 9 * * 1-5' means at 9:00 every Monday through Friday.
What does an asterisk mean in cron?+
An asterisk (*) means 'every' value for that field. '* * * * *' runs every minute. '0 * * * *' runs at minute 0 of every hour. The asterisk is the wildcard that matches all allowed values for that position.
How do I run a cron job every 15 minutes?+
Use a step value in the minute field: '*/15 * * * *'. The '/15' means every 15th minute starting from 0, so the job fires at :00, :15, :30 and :45 of every hour, every day.
How do I schedule a job on weekdays only?+
Put a range in the day-of-week field. '0 0 * * 1-5' runs at midnight Monday through Friday. You can also use a list, for example '0 0 * * 1,3,5' for Monday, Wednesday and Friday only.
What is the difference between day of month and day of week?+
Day of month (field 3) selects calendar dates like the 1st or 15th. Day of week (field 5) selects weekdays like Monday. In standard cron, if you set both to non-wildcard values the job runs when either condition matches, so leave one as * unless you intend that behaviour.