About Cron Expression Parser
Cron Expression Parser decodes a standard 5-field cron expression — minute, hour, day-of-month, month, and day-of-week — into a plain-English description of when it runs, plus its next five run times, entirely in your browser. Cron expressions power scheduled jobs across almost every server and CI system, but their compact syntax (*/15, 1-5, MON-FRI) is easy to misread, and a wrong schedule can mean a job that silently never runs, or runs far more often than intended. This tool also accepts the common shorthand aliases (@daily, @hourly, @weekly, @monthly, @yearly). Nothing you paste is uploaded — the expression is parsed and the next run times are computed locally, using your browser's clock.
How to use it
- 1
Paste the expression
Paste a 5-field cron expression, or one of the @daily / @hourly / @weekly / @monthly / @yearly shorthands.
- 2
Click Parse
The output shows a plain-English description of the schedule and the next five times it would fire, computed from your current local time.
- 3
Check the terminal
The terminal pane echoes the same plain-English description for quick reference without scrolling the output pane.
What it does
- Parses standard 5-field cron expressions: minute, hour, day-of-month, month, day-of-week
- Supports wildcards (*), ranges (1-5), steps (*/15), lists (1,15,30), and combinations (1-10/2)
- Supports month names (JAN-DEC) and day names (SUN-SAT) as well as numbers
- Supports the @yearly, @monthly, @weekly, @daily, @hourly, and @midnight shorthand aliases
- Generates a plain-English description of the schedule
- Computes the next five run times based on your browser's local clock
FAQ
What do the five fields mean, in order?
Minute (0-59), hour (0-23), day-of-month (1-31), month (1-12 or JAN-DEC), and day-of-week (0-6 or SUN-SAT, where both 0 and 7 mean Sunday). A cron expression like '30 9 * * 1-5' means minute 30, hour 9, every day-of-month, every month, Monday through Friday — 9:30 AM on weekdays.
If I restrict both day-of-month and day-of-week, do both have to match?
No — this is one of the most common cron mistakes. When both fields are restricted (neither is *), standard cron fires the job if EITHER one matches, not only when both match. For example, '0 0 1,15 * MON' runs at midnight on the 1st, the 15th, AND every Monday, not just Mondays that happen to fall on the 1st or 15th.
Why does this tool show 'next run times' instead of just the description?
A plain-English description tells you the rule, but seeing the actual next few timestamps is often the fastest way to catch a mistake — like a schedule that fires every minute instead of every hour, or a day-of-month/day-of-week combination that fires more often than you expected because of the OR behavior above.
Does this tool verify my cron expression against a real scheduler?
No — it implements the standard 5-field cron syntax used by cron, crontab, and most CI schedulers (GitHub Actions, GitLab CI, etc.), but some systems support extensions (seconds fields, 'L' for last day, 'W' for nearest weekday) that this tool does not parse. If your scheduler uses one of those extensions, treat this as a syntax reference for the standard subset, not a full validator for your specific platform.