Cron Expression Explainer

Read a cron schedule in plain English, field by field, and see when it runs next. Your expression never leaves your browser.

Five fields: minute (0-59), hour (0-23), day of month (1-31), month (1-12 or JAN-DEC), day of week (0-7 or SUN-SAT; 0 and 7 are Sunday). Operators * , - and /, or a macro such as @daily. Names in ranges (MON-FRI) work in most crons; check yours.

Common examples

Type a cron expression. Nothing you enter leaves your browser.

In plain English

Field by field

FieldTextValuesMeaning
Minute (0-59)
Hour (0-23)
Day of month (1-31)
Month (1-12)
Day of week (0-7)

Next run times

This tool's daylight-saving rule: a time that doesn't exist (clocks go forward) runs once, at the first moment after the gap; a time that happens twice (clocks go back) runs once, the first time. Real daemons differ. The search looks up to 5 years ahead.

#In the chosen zoneOffsetUTCNote

Cron is the scheduler on Linux and other Unix-like systems: a line in a crontab tells it when to run a command. Its five short fields are easy to misread.

The supported format

This tool explains the standard 5-field cron format used by Vixie cron and most Linux crontabs: minute (0-59), hour (0-23), day of month (1-31), month (1-12 or JAN-DEC) and day of week (0-7 or SUN-SAT, where both 0 and 7 mean Sunday). Implementations differ in details.

A * means every value, a comma separates a list, a hyphen makes a range, and a slash adds a step to a range or to *: “*/15” in the minute field means every 15 minutes. The macros @yearly, @annually, @monthly, @weekly, @daily, @midnight and @hourly stand for fixed schedules; @reboot runs once when cron starts and has no schedule.

A worked example

“*/15 9-17 * * 1-5” reads as “Every 15 minutes, between 09:00 and 17:59, on Monday through Friday.” From 16:50 UTC on Friday 2 January 2026, its next runs are 17:00, 17:15, 17:30 and 17:45 that day, then 09:00 on Monday 5 January.

The day-of-month and day-of-week rule

When both day fields are restricted, standard cron runs the job when either one matches. “0 0 15 * 1” reads as “At 00:00, on day 15 of the month OR on Mondays, not only on Mondays that fall on the 15th.” If one of the two is *, only the other counts. In Vixie cron a field that starts with *, such as “*/2”, also counts as * for this rule, and then both fields must match. Some other implementations combine the two fields with AND; check your platform's documentation.

Time zones and daylight saving

A crontab runs in the server's local time unless it is configured otherwise. When clocks go forward, some local times don't exist; when they go back, some happen twice. This tool runs a time in the gap once, at the first moment after it, and a repeated time once, the first time, and flags both. Real daemons differ, so check yours. Many teams run servers in UTC to avoid the question: a common practice, not a rule.

Other formats

Quartz and Spring add a seconds field at the start, and Quartz uses ?, L, W and #. AWS EventBridge uses six fields with the year last. GitHub Actions documents its schedules as the standard five fields in UTC. For other platforms, check their documentation. This tool flags those formats instead of misreading them.

Privacy

The expression is processed in your browser and never leaves it. Like every page on this site, the page records a visit when it loads, but not what you type.

How to use

  1. Type or paste an expression, or load an example.
  2. Read the sentence and the field table; errors name the field and character.
  3. Choose a time zone to see the next runs, then copy what you need.

Features

Common uses

Frequently asked questions

What does */5 mean in cron?

Every 5th value, starting from the field's lowest: in the minute field, “*/5” runs at minutes 0, 5, 10 and so on.

What do the five cron fields mean?

Minute, hour, day of month, month and day of week, in that order: “30 2 * * *” reads as “At 02:30, every day.”

Why does my cron run on both the 15th and Mondays?

Both day fields are restricted, so standard cron runs when either matches. To run only on Mondays, put * in the day-of-month field.

How do I run a job every weekday?

Use 1-5 in the day-of-week field: “0 9 * * 1-5” reads as “At 09:00, on Monday through Friday.”

What time zone does cron use?

The server's local time, unless the daemon or the job is set to another zone. Check your platform's documentation.

What is the difference between cron and Quartz expressions?

Quartz adds a seconds field first, may add a year, numbers the days of the week 1 to 7 from Sunday and has ?, L, W and #.

What does @daily mean?

Once a day at midnight: it stands for “0 0 * * *”, which reads as “At 00:00, every day.”

Is my expression uploaded?

No. It is processed in your browser and never sent anywhere or saved. The page itself records a visit when it loads, as every page here does.

Need to test a whole website, not just a snippet?

RoboQA tests real pages and user journeys in a browser: logins, forms, clicks and full flows. See what RoboQA can test or compare plans.

More free tools

See all free tools