Cron Expression Explainer

Standard 5-field Unix cron: minute hour day-of-month month day-of-week. Also understands @daily, @hourly, @weekly, @monthly and @yearly.

Every 15 minutes, between 9:00 AM and 5:59 PM, on Monday through Friday.

Next 5 times this runs (your local timezone)

Loading…

About Cron Expression Explainer

Paste a cron expression like "*/15 9-17 * * 1-5" and see exactly what it means in plain English, plus the next 5 times it would actually run. Runs entirely in your browser, so a schedule from a private deployment config never has to leave your machine.

Cron syntax is compact by design, which is exactly what makes it easy to misread — is that a step, a range, or a list? Does the day-of-month field combine with day-of-week, or override it? Seeing the schedule spelled out in plain English, plus the actual calendar dates it would fire on, is the fastest way to confirm a crontab entry does what you think before it goes live.

This parses standard 5-field Unix/Vixie cron (minute hour day-of-month month day-of-week) — the format crontab, most CI schedulers, and Kubernetes CronJobs all use — along with the @daily/@hourly/@weekly/@monthly/@yearly shorthand. It's deliberately not the 6-field-with-seconds dialect some cloud schedulers use, which has different rules for combining day fields.

One classic gotcha this makes visible rather than hiding: when both the day-of-month and day-of-week fields are restricted (neither is "*"), cron treats them as OR, not AND — "0 0 13 * 5" means the 13th of the month, or any Friday, never only a Friday that happens to land on the 13th. The explanation spells this out explicitly whenever it applies.

What you can use it for

  • Confirm what a crontab line, CI schedule, or Kubernetes CronJob actually does before deploying it.
  • Check the real next run times for a schedule instead of mentally simulating cron syntax.
  • Catch the day-of-month/day-of-week OR gotcha before it causes a job to fire on the wrong day.
  • Build a schedule from scratch using the example presets as a starting point.
  • Decode a cron expression someone else wrote without reaching for a reference table.

How it works, step by step

  1. 1

    Paste or type a cron expression

    Standard 5-field syntax, or a preset from the example chips.

  2. 2

    Read the plain-English explanation

    Including an explicit note if day-of-month and day-of-week combine as OR.

  3. 3

    Check the next 5 run times

    Real calendar dates and times, in your browser's own timezone.

Frequently asked questions

Does this support the 6-field format with seconds?

No — this is standard 5-field Unix cron (minute hour day-of-month month day-of-week), the format crontab and most schedulers use. Some cloud schedulers (like AWS EventBridge or Quartz) use a different 6-field dialect with its own rules for combining day fields.

Why does "0 0 13 * 5" run on more than just Friday the 13th?

Standard cron treats day-of-month and day-of-week as OR when both are restricted, not AND — this expression means "the 13th of the month, or any Friday," not "only a Friday that's also the 13th." It's a well-known cron gotcha, and the explanation states it plainly whenever it applies.

What timezone are the next run times in?

Your browser's own local timezone — the same timezone a cron schedule would actually run in on a machine set to that timezone. Nothing is sent anywhere to figure this out.

What does @daily or @hourly mean?

Shorthand some cron implementations accept in place of a full 5-field expression: @hourly is "0 * * * *", @daily/@midnight is "0 0 * * *", @weekly is "0 0 * * 0", @monthly is "0 0 1 * *", and @yearly/@annually is "0 0 1 1 *". All are understood here and explained the same way.

Is my cron expression sent anywhere?

No. Parsing, the explanation, and the next-run calculation all happen entirely in your browser.