Explain an expression

This page turns a cron expression such as 0 9 * * 1-5 into a sentence — “At 09:00, on Monday through Friday.” — and lists the next times it will actually run. The tool needs JavaScript, because every calculation happens in your browser rather than on a server: that is the whole reason nothing you type leaves the page.

Try one:

Build an expression

Only in these months (none ticked = every month)

What this understands

Standard 5-field Unix cron, the dialect in crontab(5), cronie and Debian: minute hour day-of-month month day-of-week. Wildcards (*), steps (*/5, 1-9/2), ranges (1-5), lists (1,15,30), and the three-letter month and day names (JAN, MON). Sunday may be written as either 0 or 7. The nicknames @yearly, @annually, @monthly, @weekly, @daily, @midnight and @hourly are expanded to their 5-field form.

The rule almost everyone gets wrong

When both the day-of-month and the day-of-week field are restricted, cron runs the job when either one matches — not when both do. So 0 0 13 * 5 means the 13th of any month, or any Friday. It does not mean Friday the 13th. If either day field starts with *, that field counts as unrestricted and both conditions must hold. This tool implements Vixie cron's actual rule and says out loud which of the two applies.

What this deliberately does not accept

  • @reboot — it fires when the machine boots, so there is no schedule and no next run time to show.
  • 6- or 7-field expressions — that is Quartz or Spring cron, where the first field is seconds. Every field shifts meaning, so parsing it as 5-field cron would produce confidently wrong answers.
  • L, W, # and ? — Quartz extensions for “last day”, “nearest weekday”, “nth weekday” and “no value”. Standard Unix cron has no equivalent, so this tool refuses rather than guesses.
  • Seconds — standard cron has one-minute resolution.

Each of these is reported as an explicit refusal with a reason. A wrong explanation is worse than no explanation.

Privacy

There is no server side. The page makes no network requests once it has loaded, sets no cookies, stores nothing, and carries no analytics, no tag manager and no webfont. You can confirm all of that by reading the source of this page — it ships unbundled and unminified for exactly that reason.