Cron Expression Builder and Explainer
A cron schedule is five fields: minute (0-59), hour (0-23), day of month (1-31), month (1-12) and day of week (0-7, where 0 and 7 are Sunday). An asterisk means every value, a comma lists values, a hyphen makes a range and a slash gives a step. This builder turns a preset or your own expression into the crontab line, explains it in words and lists the next run times.
Cron expression builder
Pick a schedule, or choose "My own expression" and type five fields. Results update as you type and are saved in the page address. Nothing leaves your browser.
How the cron expression builder works
The builder checks every field against the ranges in crontab(5), expands lists, ranges and steps into the exact minutes, hours and days they select, and then walks forward day by day to find the next times that match. It lists the first five. It describes the result in words so you can check that the schedule does what you meant before you put it in a crontab.
minute hour day-of-month month day-of-week command * every value (first to last) a,b a list; a-b a range; */n or a-b/n steps of n both day fields restricted: run when EITHER matches
- names
- month and day-of-week accept the first three letters, such as jan-mar or mon,wed,fri
- @nickname
- @yearly, @annually, @monthly, @weekly, @daily, @hourly, @reboot replace the five fields
Example 1: every 15 minutes on weekdays from 09:00 to 17:59
Worked example
Given: */15 9-17 * * mon-fri.
- Minute */15 steps through 0 to 59:
0, 15, 30, 45 - Hour 9-17 is a range:
9, 10, ..., 17 - Day of week mon-fri:
1, 2, 3, 4, 5
Answer: It runs four times an hour from 09:00 to 17:45, Monday to Friday.
Example 2: both day fields set
Worked example
Given: 30 4 1,15 * 5.
- Day of month is restricted (1,15) and so is day of week (5).
- Neither contains an asterisk, so either may match.
Answer: It runs at 04:30 on the 1st and 15th of each month, and also at 04:30 every Friday. This is the example in crontab(5).
Field ranges and special characters
| Field | Allowed values | Names |
|---|---|---|
| minute | 0-59 | no |
| hour | 0-23 | no |
| day of month | 1-31 | no |
| month | 1-12 | jan to dec |
| day of week | 0-7 (0 and 7 are Sunday) | sun to sat |
Source 1, crontab(5).
| Symbol | Meaning | Example |
|---|---|---|
| * | first to last | * * * * *: every minute |
| , | a list of numbers or ranges | 1,15: the 1st and 15th |
| - | a range | 9-17: hours 9 to 17 |
| /n | steps of n through a range or * | */10: every 10th value |
| @reboot | once after reboot | no repeating time |
| @hourly, @daily, @weekly, @monthly, @yearly | once an hour, day, week (Sunday), month, year | same as the five-field forms |
Source 1. The builder rejects a step after a single number, such as 5/15, because crontab(5) describes a step as following a range.
Assumptions and limits
- The rules are those in the Ubuntu 24.04 crontab(5) and crontab(1) pages, as read on 2026-11-13. Other cron implementations can accept more syntax.
- Run times use the clock on your device and ignore time zones and daylight saving. Cron uses the machine's own clock.
- The tool checks the schedule, not the command. It does not know whether the command exists or runs in cron's environment, where crontab(5) says SHELL is set to /bin/sh and LOGNAME and HOME come from the owner's /etc/passwd line.
- A schedule that can never occur, such as 31 February, is reported as having no upcoming runs. The search looks about nine years ahead.
- System crontabs (/etc/crontab and /etc/cron.d) need a username between the time fields and the command; the line built here is for a user crontab.
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 (or names), and day of week 0-7 (0 or 7 is Sunday, or names), followed by the command. crontab(5) calls these the time and date fields.
How do I run a job every 5 minutes?
Use */5 * * * *. The asterisk stands for first-last, and the slash with 5 skips through the range in steps of five, so the job runs at minutes 0, 5, 10 and so on up to 55 of every hour.
What happens when I fill in both day of month and day of week?
crontab(5) says that if both day fields are restricted (neither contains an asterisk), the command runs when either field matches. Its example, 30 4 1,15 * 5, runs at 4:30 am on the 1st and 15th of each month and also every Friday. If one of them is an asterisk, the other one decides.
Can I use names like mon or jan?
Yes, in the month and day-of-week fields. Use the first three letters, in any case, as in mon,wed,fri or jan-mar. Names cannot be used in the minute, hour or day-of-month fields.
What do @daily, @hourly and @reboot mean?
They are nicknames that replace the five fields: @yearly and @annually run once a year, @monthly once a month, @weekly once a week on Sunday, @daily once a day and @hourly once an hour. @reboot runs once after reboot. The builder expands each to its five-field form, and @reboot has no times to list.
Why does my command with a percent sign fail?
In a crontab line, a % in the command that is not escaped with a backslash is turned into a newline, and everything after the first % is sent to the command as standard input. Write \% instead, for example date +\%F. The builder warns when it sees an unescaped %.
How do I install a cron line?
Run crontab -e. crontab(1) says it edits your crontab with the editor named in the VISUAL or EDITOR environment variable and installs the result when you exit. crontab -l lists the current crontab. Files in /etc/cron.d and /etc/crontab are system jobs and need a username field after the five time fields.
Which time zone does cron use?
The clock of the machine running cron, not your browser. The next-run list here uses the clock on your device and no time zone rules, so it will not reflect daylight saving changes. crontab(5) warns that non-existent times during a daylight saving change never match, and that some changes can make matching jobs run twice.
Sources
- Ubuntu manpages: crontab(5), the crontab file format (manpages.ubuntu.com) Ubuntu 24.04 (Noble). Accessed 2026-11-13.
- Ubuntu manpages: crontab(1), editing and listing a crontab (manpages.ubuntu.com) Ubuntu 24.04 (Noble). Accessed 2026-11-13.