ZapKit

Cron Expression Explainer

Paste a cron schedule to read it in plain English, check each field and see exactly when it will next run.

What is a cron expression?

A cron expression is a short string that tells a scheduler when to run a job: backups every night, reports every Monday, a cache refresh every 15 minutes. It comes from the Unix cron daemon and is used by crontab, Kubernetes CronJobs, GitHub Actions, Vercel and most cloud schedulers.

Its terse syntax is easy to misread. This explainer translates any 5-field expression or @-shortcut into English, shows the value of each field, flags errors such as an hour of 25, and computes the next five times it will fire, so you can confirm a schedule before deploying it.

How to use the Cron Expression Explainer

  1. 1.Paste the expression

    Five fields, such as 30 9 * * 1-5, or a shortcut like @daily.

  2. 2.Read the explanation

    The schedule is described in words, field by field.

  3. 3.Check the next runs

    The next five run times are listed in your own time zone.

Example: 30 9 * * 1-5

Reading the default expression field by field:

Minute, hour
30, 9
Day of month, month
* (any), * (any)
Day of week
1-5 (Monday to Friday)
In English
At 09:30, on Monday through Friday.

Checked on a Tuesday at 10:07, the next run is Wednesday at 09:30.

The five fields

Cron fields are minute (0–59), hour (0–23), day of month (1–31), month (1–12 or JAN–DEC) and day of week (0–6 or SUN–SAT, with 7 also meaning Sunday). Each can be *, a number, a list (1,15), a range (1-5) or a step (*/15, every 15).

One rule trips people up: when both day of month and day of week are restricted, standard cron runs on either, not both. 0 0 1 * 1 means the 1st of every month and every Monday. Servers usually run cron in UTC, so check the server's time zone.

Frequently asked questions

What does */15 * * * * mean?

Every 15 minutes: at :00, :15, :30 and :45 of every hour.

How do I run a job on weekdays at 9:30?

30 9 * * 1-5.

Does it support seconds?

No. Six-field formats from Quartz or Spring have a seconds field; drop it to use standard cron.

Why did my job run at the wrong hour?

Most servers and cloud schedulers run cron in UTC. 9:30 in UTC is 3 pm in India.

More Developer tools