Cron Expression Generator & Parser
Build or decode a cron expression and see exactly when it'll actually fire — the next 10 real run times, not just a description.
Visual Builder
Next 10 Run Times
About this tool
What this cron expression tool does
Crontab syntax is one of those things every backend developer or sysadmin uses constantly and never quite memorizes — is it minute-hour-day, or hour-minute-day? What does */15 9-17 * * 1-5 actually run? This tool works both directions: build a schedule visually with dropdowns for minute, hour, day-of-month, month, and day-of-week, or paste an expression you found in someone else's codebase and get an instant plain-English translation plus the next 10 times it will genuinely fire, computed for real from right now — not a rough approximation.
It covers standard Unix/Linux crontab syntax: wildcards (*), ranges (1-5), steps (*/15), comma-separated lists (1,15,30), named months and weekdays (JAN, MON), and the common @daily / @hourly / @weekly / @monthly / @yearly shortcuts.
How to use it
Type or paste a cron expression directly into the field, or use the visual builder below it — each dropdown updates the expression live as you change it, and vice versa. Below that you'll get a readable sentence describing the schedule and a list of the next 10 actual dates and times it'll run, computed by simulating forward minute-by-minute from right now, so what you see is exactly what a real cron daemon would do — including tricky cases where day-of-month and day-of-week are both restricted (cron's actual rule: either match fires the job).
A real example
0 9 * * 1-5 reads as "at 09:00, on Monday through Friday" — a classic weekday-morning job — and the next-run list will show you the next 10 weekday 9am slots, correctly skipping weekends. Paste in 0 0 1 1 * instead and you'll see it's really an annual January 1st job, with next-run dates a year apart.
Frequently asked questions
What's the difference between day-of-month and day-of-week when both are set?
This trips up almost everyone: standard cron treats a restricted day-of-month AND a restricted day-of-week as an OR, not an AND. 0 0 1,15 * 1 runs on the 1st, the 15th, and every Monday — not just Mondays that happen to land on the 1st or 15th. This tool's next-run calculation follows that exact rule.
Does this support seconds (6-field Quartz-style cron)?
No — this is standard 5-field Unix/Linux crontab syntax (minute hour day-of-month month day-of-week), which is what crontab, most CI systems, and Kubernetes CronJobs use. Quartz/Spring's 6-7 field variant with seconds isn't covered.
What does */15 actually mean?
It means "every 15 units, starting from the field's minimum" — in the minute field, that's :00, :15, :30, :45. It's shorthand for the list 0,15,30,45.
Why does my expression say it never runs?
Usually an impossible date, like day-of-month 30 combined with month February — that combination never exists on the calendar, so no real date ever matches.
Is this specific to any one platform (AWS, Kubernetes, etc.)?
It's plain standard crontab syntax, which is what crontab itself, GitHub Actions, GitLab CI, and Kubernetes CronJobs all use directly — no platform-specific extensions.
