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.