Cron Expression Parser

Translate a cron expression into plain English and see the next scheduled run times.

How cron expressions work

A cron expression packs an entire recurring schedule into a compact, five- or six-field string. Each field narrows down when the job fires — a wildcard (*) means "any value is fine" for that field, while specific numbers, comma-separated lists, ranges (1-5), and step values (*/5) narrow it down further. The schedule only fires at moments where every field's condition is satisfied simultaneously.

Cron syntax is notoriously easy to get subtly wrong — mixing up the day-of-month and day-of-week fields, or misjudging what a wildcard combined with a step value actually matches, are common sources of jobs that run at the wrong time or not at all. Translating an expression into plain English and a list of upcoming run times, as this tool does, is the fastest way to catch that kind of mistake before it reaches production.

Frequently asked questions

What is a cron expression?
A five-field string (minute, hour, day-of-month, month, day-of-week) that defines a recurring schedule. For example, "0 9 * * 1-5" means every weekday at 9:00 AM. Most systems also support a six-field format with a leading seconds field.
Why do my next run times look off?
Run times are shown in UTC by default. Change the timezone field to your local timezone (e.g. "Europe/London" or "America/New_York") to see times in your local time.
What is the difference between 5-field and 6-field cron?
Standard Unix cron uses 5 fields (minute through weekday). Some systems (AWS, Quartz, many CI tools) add a leading seconds field, making it 6 fields. This parser supports both formats.
What do the five fields of a cron expression represent?
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 can be a specific value, a range, a list, or a wildcard, and the schedule fires only when all five fields match the current time.
What is `*` vs `*/5` in a cron expression?
`*` means "every value" for that field — e.g. every minute, if used in the minute field. `*/5` means "every 5th value" — e.g. `*/5` in the minute field fires at minute 0, 5, 10, 15, and so on.
Which timezones should I use for cron jobs?
UTC is generally the safest default for server-side cron jobs, since it avoids daylight saving time ambiguity and keeps behaviour consistent regardless of where the server runs. Use a specific IANA timezone (e.g. "America/New_York") only when the schedule genuinely needs to track local wall-clock time, like a business-hours notification.
What are the most common cron expressions?
`0 * * * *` runs every hour on the hour; `0 9 * * 1-5` runs at 9am Monday–Friday; `0 0 * * *` runs daily at midnight; `0 0 1 * *` runs on the first of each month; `*/15 * * * *` runs every 15 minutes. Paste any of these into the parser to verify the next run times.

Related calculators