Cron Expression Generator & Parser

Cron Expression Generator & Parser
Type an expression or build it field by field. Next runs are shown in your own time zone (local time).

Minute
0-59
Hour
0-23
Day
1-31
Month
1-12
Weekday
0-6 (Sun-Sat)

Presets
Every minute
Every 5 min
Every 15 min
Hourly
Every 6 hours
Daily 00:00
Weekdays 09:00
Mondays 09:00
1st of month
Fridays 18:00
Quarterly
Yearly

Meaning
Matched values
Minute
0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55
Hour
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23
Day
31 values (1…31)
Month
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
Weekday
0, 1, 2, 3, 4, 5, 6
Next 10 runs
2026. 10. 18. 20:10
in 3 min
2026. 10. 18. 20:15
in 8 min
2026. 10. 18. 20:20
in 13 min
2026. 10. 18. 20:25
in 18 min
2026. 10. 18. 20:30
in 23 min
2026. 10. 18. 20:35
in 28 min
2026. 10. 18. 20:40
in 33 min
2026. 10. 18. 20:45
in 38 min
2026. 10. 18. 20:50
in 43 min
2026. 10. 18. 20:55
in 48 min

Cron expressions are five fields of terse punctuation, and a wrong guess means a job that silently never runs — or runs a thousand times more often than you meant. Paste one here to read it back in plain English and see exactly when it will next fire.

Cron syntax is compact and unforgiving, and the errors it produces are silent: a job that never runs looks the same as a job that has not run yet. Two mistakes account for most of them. `0 0 * * 0` is weekly, not daily — the fields are minute, hour, day-of-month, month, day-of-week, and it is easy to shift by one. And when both day-of-month and day-of-week are restricted, standard cron runs on either, not on both, so `0 0 13 * 5` fires every Friday as well as every 13th.

This page describes an expression in plain language and lists the next several times it will actually fire, which turns "I think this is right" into something you can check before a job spends a week not running. It reads the standard five-field form — the one crontab, Kubernetes CronJobs and most schedulers use. Quartz and Spring accept a six-field variant with a leading seconds column; drop that column before pasting an expression in here, or every field will be read one position to the left.

How to use Cron Expression Generator & Parser

  1. Type or paste an expression into the big field, or start from one of the presets below it.
  2. Adjust individual fields with the five dropdowns — each one accepts free text too, so you can type "*/15" or "MON-FRI" directly.
  3. Read the Meaning panel to confirm the schedule matches your intent.
  4. Check "Next 10 runs" — the times are in your own time zone, with the gap to each one shown beside it.
  5. Copy the finished expression with the button in the field.

Tips & gotchas

  • The most common cron mistake: setting both day-of-month and day-of-week. Cron treats them as OR, not AND, so "0 0 13 * 5" fires on the 13th AND on every Friday. The Meaning panel spells this out when it applies.
  • Servers usually run in UTC while you read times locally. The next-run list uses your browser time zone — compare it against your server before trusting a deployment.
  • "Matched values" expands each field into the exact list of numbers it allows, which is the quickest way to spot an off-by-one in a range.
  • Named shorthands like @daily and @hourly are accepted and expanded for you.

Frequently asked questions

Does this support 6-field (seconds) or Quartz expressions?

The parser expects the standard 5-field crontab format used by Linux cron, Kubernetes CronJobs and most CI systems. Quartz "?" is accepted as a synonym for "*", but Quartz-only extensions such as L, W and # are not supported.

Why does my expression say it never runs?

The combination is impossible — most often a date that does not exist, such as "0 0 30 2 *" for the 30th of February. Widen the day or month field and the run list reappears.

Is 0 or 7 Sunday?

Both. Cron accepts 0 and 7 for Sunday, and this tool normalises 7 to 0 internally, so either form produces the same schedule.