Skip to content
BEAD

Cron Expression Builder & Explainer

Read any cron expression in plain English and preview the next few run times.

In English
Every 15 minutes, between 09:00 AM and 05:59 PM, Monday through Friday
Next 7 runs (UTC)
16/1/2026, 9:00:00 AMin 2d 2h
26/1/2026, 9:15:00 AMin 2d 2h
36/1/2026, 9:30:00 AMin 2d 2h
46/1/2026, 9:45:00 AMin 2d 2h
56/1/2026, 10:00:00 AMin 2d 3h
66/1/2026, 10:15:00 AMin 2d 3h
76/1/2026, 10:30:00 AMin 2d 3h

Cron field cheatsheet

┌───────── minute (0–59)
│ ┌─────── hour (0–23)
│ │ ┌───── day of month (1–31)
│ │ │ ┌─── month (1–12 or JAN–DEC)
│ │ │ │ ┌─ day of week (0–6 or SUN–SAT, 7 = SUN)
│ │ │ │ │
* * * * *
  • */n — every n units
  • a-b — range a through b
  • a,b,c — list
  • a-b/n — every n within a range

English explanation comes from cronstrue. Next runs are computed locally in your browser, using your local timezone.

Frequently asked

What flavor of cron syntax is this?

Standard 5-field POSIX cron — minute, hour, day-of-month, month, day-of-week. It accepts ranges (1-5), lists (1,3,5), and steps (*/15). It does not parse 6-field (with seconds) Quartz syntax used by some Java schedulers.

What does * * * * * actually do?

Runs every minute. The first * is minute 0–59, the second is hour 0–23, and so on. The explainer translates to plain English so you don't have to memorize the columns.

Why does the next-run list sometimes skip dates?

When both day-of-month and day-of-week are restricted, POSIX cron says match if either fires. The next-run search applies this rule, so 0 0 1 * 1 fires on the 1st of every month OR on every Monday — that's intentional.

You might also like

Used in these workflows