Skip to content

Cron Expression Parser

Parse cron expressions into human-readable descriptions and preview the next scheduled run times.

Cron Expression Parser tool

Loading...

Example

Input: */15 9-17 * * 1-5

Result: Every 15 minutes, past hour 9 through 17, on Monday through Friday

The five fields are minute, hour, day of month, month and day of week. The tool also lists the next 5 run times in your local time zone.

Common Cron Expressions

ExpressionWhat the parser says
* * * * *Every minute
*/5 * * * *Every 5 minutes
*/15 * * * *Every 15 minutes
0 * * * *At minute 0 (every hour, on the hour)
0 */6 * * *At minute 0, every 6 hours
0 0 * * *At 00:00
0 9 * * 1-5At 09:00, on Monday through Friday
0 0 * * 0At 00:00, on Sunday
0 0 1 * *At 00:00, on day 1 of the month
30 4 1,15 * *At 04:30, on day 1 and 15 of the month
0 0 1 1 *At 00:00, on day 1 of the month, in January
15 10 * JAN,JUL *At 10:15, in January and July

Descriptions as this parser writes them. The note in brackets is added for clarity.

  1. Enter a cron expression (e.g., "0 9 * * 1-5") into the input field.
  2. Read the human-readable description that explains when the schedule fires in plain English.
  3. Review the list of the next 5 upcoming execution times displayed in your local timezone.
  4. Use the Presets menu to load common schedules like "every hour" or "every day at midnight."
  5. Check the field breakdown and any error message to confirm each field holds the value you intended.
  6. Copy the description or a run time with the copy buttons, and use the expression in your crontab, CI/CD pipeline, or cloud scheduler.

How to Read a Cron Expression

A cron expression is a short schedule made of five fields: minute, hour, day of month, month and day of week. This parser explains any expression in plain English and lists the next 5 times it will run. For example, 0 9 * * 1-5 reads as At 09:00, on Monday through Friday.

Each field takes a number, a * for every value, a list like 1,15, a range like 1-5 or a step like */15. So */15 9-17 * * 1-5 means every 15 minutes from 9:00 to 17:45 on weekdays.

Months and weekdays can also be written as names, JAN to DEC and SUN to SAT, and both 0 and 7 mean Sunday. Shortcuts such as @hourly, @daily, @weekly, @monthly and @yearly are expanded to their five-field form.

Some schedulers, such as Quartz and Spring, put a seconds field first. The parser accepts that 6-field form too, along with the ? placeholder those tools use for an unused day field. When both day fields are set, the job runs if either one matches. That is how classic cron behaves, and it surprises many people: 0 0 1,15 * 1 runs on the 1st, on the 15th and on every Monday.

Next run times are shown in your browser's time zone. Each copy button copies that time as a UTC ISO 8601 string. Servers often run cron in UTC, so check which zone your scheduler uses. If a field is wrong, the error names it, for example The hour value 24 is out of range (0-23). To build an expression from dropdowns instead, use the Crontab Generator.

Sources

Frequently Asked Questions

The / sets a step. */5 in the minute field means every 5th minute starting from 0, so the job runs at :00, :05, :10 and so on up to :55. In the hour field, */2 means every 2 hours from midnight. You can also start the steps elsewhere: 5/15 in the minute field runs at :05, :20, :35 and :50.
Put 1-5 in the day of week field, which means Monday through Friday, and leave the day of month as *. For example, 0 9 * * 1-5 runs at 09:00 on every weekday. You can also write MON-FRI, which this parser accepts. Remember that the time uses your scheduler's time zone.
Check the two day fields. If both are restricted, standard cron runs the job when either one matches, not only when both match. So 0 0 13 * 5 runs on the 13th of every month and on every Friday, not only on Friday the 13th. The description here spells this out with the word or.
No. It supports numbers, month and weekday names, *, ?, lists, ranges, steps and the @ shortcuts. Quartz extras such as L (last day), W (nearest weekday) and # (such as the second Monday) are not recognized and produce an error, as does the optional seventh year field.
Yes. They use your browser's time zone, and the zone name is shown with each time. The copy button next to each run copies it as a UTC timestamp instead, such as 2025-01-06T09:00:00.000Z. Times that do not exist locally because of a daylight saving change are skipped.
Use 5 fields for Unix crontab, Kubernetes CronJobs, GitHub Actions and most cloud schedulers, where the smallest unit is one minute. Use 6 only when your scheduler documents a seconds field first, as Quartz and Spring do. A sixth field in a normal crontab line breaks it, because cron treats everything after the fifth field as the command.

Related Tools

Unix Timestamp Converter

Convert Unix timestamps to human-readable dates and dates back to Unix timestamps instantly.

Developer Tools

Timezone Converter

Convert times between any world timezones instantly. Supports all IANA timezones with daylight saving adjustments.

Date and Time

Crontab Generator

Visually build cron expressions with dropdowns, see human-readable descriptions, and preview the next 5 run times.

DevOps Tools

Regex Tester

Test regular expressions with real-time match highlighting, group capture display, and a pattern library.

Developer Tools

Chmod Calculator

Convert between symbolic and numeric Unix file permissions with a visual chmod calculator.

Developer Tools

Working Days Calculator

Count working days between two dates, excluding weekends and, if you like, the public holidays of your country.

Date and Time