Cron Expression Calculator
Show the next runs for a five-field cron expression in UTC, with a field-by-field parse.
What it does
Cron is a time-based scheduler found on Linux, Unix, and many application platforms. A five-field expression describes when a job should run. The fields are minute, hour, day of the month, month, and day of the week, in that order.
Each field accepts a number, a range, a list, a step, or an asterisk for any value. For example, */15 in the minute field means every 15 minutes. 9-17 in the hour field means the hours from 09:00 through 17:59. A weekday field of 1-5 means Monday through Friday.
The default expression */15 9-17 * * 1-5 starts at 2026-01-01 00:00 UTC. The first match is Thursday 01 Jan 2026 at 09:00 UTC. The next four runs follow at 09:15, 09:30, 09:45, and 10:00.
The search is exclusive: it begins one minute after the start time, so a run exactly at the start is not included. All output is in UTC. If your server uses a local time zone, convert the start and the printed runs before comparing them with a live crontab.
The calculator covers the classic five-field syntax. It does not expand @daily, @weekly, or @reboot shortcuts, and it does not support seconds fields or nonstandard extensions such as L, W, or #. Those features differ between cron implementations and need the documentation for the scheduler you actually use.
How to use
- Enter the five cron fields separated by spaces.
- Enter the start date and time in UTC using YYYY-MM-DD HH:MM.
- Choose how many runs to list, from 1 to 10.
- Read the next run first, then the following runs.
- Check the parsed field line to confirm each field was read as intended.
- Compare the UTC output with the time zone used by the target server.
Formula
- minute
- Minutes 0 to 59.
- hour
- Hours 0 to 23.
- day
- Day of month 1 to 31.
- month
- Month 1 to 12, or Jan to Dec.
- weekday
- Day of week 0 to 7, with Sunday as 0 or 7 and Monday as 1.
An asterisk means every allowed value. A range uses a hyphen, a list uses commas, and a step uses a slash. Names such as JAN and MON are accepted. The day fields are the tricky part: when both are restricted, many Linux systems run the job when either field matches. Some cron versions differ, so verify the behavior on the target host.
Worked example
Example: weekdays every 15 minutes
The default expression, UTC start, and run count are already filled in the form.
- Split the expression into five fields: */15, 9-17, *, *, and 1-5.
- Minute */15 expands to 0, 15, 30, and 45.
- Hour 9-17 allows 09:00 through 17:59.
- Day and month are unrestricted; weekday 1-5 allows Monday through Friday.
- The start is Thursday 01 Jan 2026 at 00:00 UTC, so the first match is 09:00 UTC.
- The five requested runs are 09:00, 09:15, 09:30, 09:45, and 10:00 on that Thursday.
Reference table
| Expression | Meaning |
|---|---|
| */15 9-17 * * 1-5 | Every 15 minutes from 09:00 through 17:45, Monday to Friday |
| 0 0 1 * * | 00:00 on the first day of every month |
| 30 6 * * 0 | 06:30 every Sunday |
| 0 9-17 * * 1-5 | Hourly on the hour from 09:00 through 17:00, Monday to Friday |
| 15 14 * * 1,3,5 | 14:15 on Monday, Wednesday, and Friday |
| 0 0 * * 7 | 00:00 every Sunday, where 7 is Sunday |
Limits
- The tool supports classic five-field cron only, not seconds fields, @ shortcuts, or Quartz extensions.
- All times are UTC. The result does not convert to a server's local time zone.
- Day-of-month and day-of-week behavior can differ between cron implementations.
- The search covers at most ten years; a valid but very rare schedule may return no result.
Common mistakes
- Pasting a six-field expression that includes seconds into a five-field parser.
- Forgetting that the search starts after the given time, not at it.
- Assuming a local time when the calculator and the server both need UTC or an explicit conversion.
- Using a range that wraps around midnight, such as 22-2, which this parser rejects.
- Expecting L, W, or # syntax from Quartz or another nonstandard cron dialect.
Try it yourself
Quick checks. Answers sit tucked under each question.
What is the next run for 0 9 * * 1-5 after 2026-01-02 09:00 UTC?
The next weekday at 09:00 is Monday 05 Jan 2026 at 09:00 UTC.
What is the next run for 30 6 * * 0 after 2026-01-01 00:00 UTC?
The first Sunday is 04 Jan 2026, so the run is Sunday 04 Jan 2026 at 06:30 UTC.
What is the next run for 0 0 1 * * after 2026-01-15 12:00 UTC?
The next first day of a month is 01 Feb 2026 at 00:00 UTC.
Questions
What are the five cron fields?
Minute, hour, day of month, month, and day of week, in that order.
Does cron use UTC?
Cron uses the time zone of the daemon or the host. This calculator always uses UTC, so convert if your server runs on local time.
What does */15 mean?
Every 15 values in that field. In the minute field it means 0, 15, 30, and 45.
Is Sunday 0 or 7?
Both are commonly accepted. Use 0 for Sunday in this tool, or 7, which the parser maps to Sunday.
Why did both day fields match?
When both day of month and day of week are restricted, common Linux cron uses OR logic, so either field can trigger the job.
Can I use names like JAN or MON?
Yes. Month and weekday names are accepted in the month and weekday fields.