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
Paste or type a cron expression
Standard 5-field syntax, or a preset from the example chips.
- 2
Read the plain-English explanation
Including an explicit note if day-of-month and day-of-week combine as OR.
- 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.