Cron Expression Explainer

Turn a cron schedule into plain English.

minute
hour
day of month
month
day of week
Runs
—

Paste a 5-field cron expression and get a plain-English explanation of when it runs, with support for ranges, lists, and step values.

The five cron fields

PositionFieldAllowed values
1Minute0–59
2Hour0–23
3Day of month1–31
4Month1–12
5Day of week0–6 (0 = Sunday)

Special characters: * means every value, , separates a list, - sets a range, and / sets a step — */15 in the minute field means every 15 minutes.

Common cron examples

ExpressionRuns
* * * * *Every minute
*/5 * * * *Every 5 minutes
0 * * * *At the start of every hour
0 0 * * *Every day at midnight
30 2 * * *Every day at 2:30 AM
0 9 * * 1-59:00 AM, Monday to Friday
0 0 * * 0Every Sunday at midnight
0 0 1 * *Midnight on the first day of every month
0 */6 * * *Every 6 hours

Things that catch people out

  • Time zone: cron runs in the server's time zone, which is often UTC rather than your local time.
  • Day of month and day of week together: if both are set (not *), most cron versions run the job when either matches, not only when both do.
  • Overlapping runs: if a job takes longer than its interval, a second copy can start before the first finishes.
  • Output: cron runs without your usual terminal setup, so use full paths to programs and save the output to a log file to see errors.

Frequently asked questions

What format does this expect?

Standard 5-field cron syntax: minute, hour, day of month, month, and day of week — e.g. "0 9 * * 1-5" for 9 AM on weekdays.

Does it support ranges, lists, and steps?

Yes — ranges like "1-5", lists like "1,3,5", and step values like "*/15" (every 15 units) are all supported.

How do I run a job every 15 minutes?

Use */15 * * * * — it runs at :00, :15, :30 and :45 past every hour.

Is 0 or 7 Sunday?

In standard cron, 0 is Sunday, and many versions also accept 7 as Sunday. Using 0 works everywhere.