Cron Expression Generator

Two tools in one: build a cron schedule from five simple fields, or paste an existing cron expression to see exactly what it means in plain language.

Presets

0 0 * * *

Meaning: every day at 00:00

How to use

To build one: fill in minute, hour, day-of-month, month and day-of-week (use `*` for "every"), or pick a common preset like "every day at midnight". The resulting expression and its plain-English meaning update as you type.

To decode one: paste any 5-field cron expression you found in a script, crontab, or CI config, and get an explanation of exactly when it runs — useful for auditing a scheduled job you didn't write yourself before it surprises you at 3am.

FAQ

What do the 5 fields in a cron expression mean?

In order: minute (0–59), hour (0–23), day of month (1–31), month (1–12), and day of week (0–6, where 0 is Sunday). Each field accepts `*` for "any value", a specific number, a comma list, a range like `1-5`, or a step like `*/15`.

What does `*/15` mean in a cron field?

It means "every 15 units", starting from the field's minimum. In the minute field, `*/15` fires at :00, :15, :30 and :45 — not simply every 15 minutes from whenever the job was set up.

How do I schedule something for weekdays only?

Set the day-of-week field to `1-5` (Monday through Friday), leaving day-of-month as `*`. For example, `0 9 * * 1-5` runs at 9:00 AM every weekday.

What happens if both day-of-month and day-of-week are set?

Most cron implementations treat this as OR, not AND: the job runs if either field matches, not only when both match. If you only want one condition, leave the other field as `*`.

More tools