Cron Expression Explainer

Paste a cron expression to get a plain-English explanation and the next 10 run times in your time zone. Supports ranges, steps, names and @macros.

Built & Maintained by the devtoolspack Team

Last updated: September 2026

Every 15 minutes, during hour 9 through 17 on Monday through Friday

*/15Minute
9-17Hour
*Day of month
*Month
1-5Day of week

Read Any Cron Expression in Plain English

Cron strings are short and easy to get wrong. 0 0 * * 0 and 0 0 * * 7 both mean "midnight on Sunday", and 0 0 13 * 5 runs far more often than most people expect. The Cron Expression Explainer turns an expression into a sentence, breaks down each field, and lists the next ten times the job will actually fire, so you can check a schedule before it goes into a crontab, a Kubernetes CronJob or a CI workflow.

The 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; both 0 and 7 are Sunday)

Each field accepts * (any value), lists (1,15), ranges (9-17) and steps (*/5, 0-30/10). The macros @hourly, @daily, @weekly,@monthly and @yearly are expanded to their 5-field equivalents.

Why the Next-Run List Matters

An explanation tells you what an expression says, but the run list shows what it does. A job set for February 30th never runs. A leap-day job runs once every four years. A job that sets both day fields runs on the union of the two. Seeing real dates catches all of these before production does.

Private by Design

The parser runs entirely in your browser, and nothing you paste is sent to a server. To build a new expression from scratch, use the Cron Generator. To convert epoch values from job logs, try the Timestamp Converter.

How to Read a Cron Expression

  1. Paste the expression: Paste a 5-field cron expression or a macro such as @daily into the input.
  2. Read the explanation: The plain-English summary and the per-field breakdown update as you type.
  3. Check the next runs: Compare the next 10 run times with when you expect the job to run.

Frequently Asked Questions

What does */15 mean in a cron expression?

A slash sets a step. "*/15" in the minute field means every 15 minutes starting at minute 0, so the job runs at :00, :15, :30 and :45. "5-59/15" would run at :05, :20, :35 and :50 instead.

Why does my job run on more days than I expected?

When both day of month and day of week are set (neither is *), standard cron runs the job when EITHER matches, not both. "0 0 13 * 5" runs on every 13th and on every Friday, not only on Friday the 13th. The next-run list above shows this behaviour.

Which time zone are the next run times shown in?

Your browser's local time zone. A server runs cron in its own time zone, which is often UTC, and managed schedulers such as GitHub Actions use UTC, so shift the times if your server is elsewhere.

Does this support Quartz or AWS cron syntax?

No. This tool reads the standard 5-field Unix cron format (minute, hour, day of month, month, day of week). Quartz and AWS EventBridge add a seconds or year field and use "?" and "L", which this parser rejects rather than guessing.

Cite this Tool

Using this tool for a technical blog, research, or documentation? Copy a pre-formatted citation below to link back to devtoolspack.

APA Citation
devtoolspack. (2026). Cron Expression Explainer. https://devtoolspack.dev/cron-explainer
MLA Citation
"Cron Expression Explainer." devtoolspack, 2026, https://devtoolspack.dev/cron-explainer.