ToolSec

Cron Expression Explainer

Decode any cron schedule into plain English and preview the next run times.

Updated: June 26, 2026

Make sense of any cron schedule

Cron expressions are compact but easy to misread, and a single wrong field can mean a job runs every minute instead of once a day. Paste an expression here and this tool breaks down each of the five fields in plain English and shows you the next five times it will actually fire in your local timezone — so you can confirm a schedule before deploying it.

The five fields

A standard cron expression has five space-separated fields, in this order:

  • Minute (0–59)
  • Hour (0–23)
  • Day of month (1–31)
  • Month (1–12)
  • Day of week (0–7, where both 0 and 7 mean Sunday)

Each field accepts * (every value), a list (1,15,30), a range (9-17), or a step (*/15 = every 15). You can combine them: 0-30/10 means 0, 10, 20, 30.

Common examples

  • */15 * * * * — every 15 minutes.
  • 0 9 * * 1-5 — at 9:00 AM, Monday through Friday.
  • 0 0 1 * * — at midnight on the first of every month.
  • 30 2 * * 0 — at 2:30 AM every Sunday.

Shorthand macros also work: @daily, @hourly, @weekly, @monthly and @yearly expand to their five-field equivalents.

The day-of-month / day-of-week gotcha

One rule trips up almost everyone: when both the day-of-month and day-of-week fields are restricted (neither is *), cron runs when either matches, not both. So 0 0 13 * 5 fires on the 13th of the month and on every Friday — not only on Friday the 13th. This explainer applies that rule when computing the next run times, so what you see is what cron will really do.

Test before you ship

The next-run preview is the fastest way to catch a mistake. If a schedule you thought was "once a day" shows runs a minute apart, you'll see it immediately. Pair this with our other DevOps helpers — validate the job's config with the JSON formatter or YAML converter before deploying.

Frequently asked questions

What do the five cron fields mean?

In order: minute (0–59), hour (0–23), day of month (1–31), month (1–12), and day of week (0–7, where 0 and 7 are both Sunday).

What does */15 mean in cron?

The */15 step in the minute field means 'every 15 minutes' — it fires at minute 0, 15, 30 and 45 of every hour.

Why does my job with both a day-of-month and day-of-week run more often than expected?

When both fields are restricted, cron runs when either one matches, not both. To target a specific weekday-and-date combination you generally need extra logic in the job itself.

Are the next run times in my timezone?

Yes. The preview uses your browser's local timezone. Remember that your cron server may run in UTC or another timezone, so check the server's setting too.

Job scheduling & monitoring

Cron is great until a job silently fails. These tools add visibility:

  • Cron monitoring service Get alerted when a scheduled job doesn't check in on time, so silent failures don't go unnoticed.
  • Workflow / job orchestration platform Move beyond crontab to retries, dependencies and dashboards for complex scheduled pipelines.

Learn more

Related tools