Skip to content
TextArray
100% local

Cron expression parser

Explain a cron expression in plain language and preview its next run times.

Input
Output

Cron expression parser

A cron expression packs a whole schedule into five terse fields, and even people who write them every week pause at 0 3 * * 1-5. Paste the expression and this parser translates it into plain language — "At 3:00, Monday to Friday" — and lists the upcoming run times in your local time zone, so you can confirm the schedule does what you meant before it ever reaches a server.

The parser reads the standard 5-field syntax: wildcards, lists like 1,15, ranges like 1-5, steps like */5 or 1-30/10, month names JAN–DEC and weekday names SUN–SAT, with 0 and 7 both meaning Sunday. The macros @hourly, @daily, @weekly, @monthly and @yearly work as well. Mistakes are named precisely: a minute of 61 or a missing field tells you what is wrong and in which field, instead of a bare "invalid expression".

Typical uses: checking a crontab entry before it goes live, verifying the schedule of a Kubernetes CronJob or a GitHub Actions workflow, or documenting a job for a teammate. Paste several expressions at once — one per line — and each is explained separately. When day-of-month and day-of-week are both set, the tool applies cron's OR rule, and an impossible date such as February 30 is reported as never running rather than glossed over.

Like every TextArray tool it runs entirely in your browser. Schedules, job names and anything else you paste never leave your device.

FAQ

Which cron syntax does it support?
The standard 5-field format: minute, hour, day of month, month, day of week. Within each field you can use *, lists (1,15), ranges (1-5), steps (*/5, 1-30/10), month names JAN–DEC and weekday names SUN–SAT. Weekday 0 and 7 both mean Sunday, and the macros @hourly, @daily, @weekly, @monthly and @yearly are accepted.
What happens when both day-of-month and day-of-week are set?
Standard cron treats them as alternatives: when neither field is *, a date matches if either of them matches. So 0 0 1 * 1 runs on the 1st of the month and on every Monday. When either field is *, the two are combined with AND instead — the same rule classic Vixie cron applies.
Does it understand Quartz or 6-field expressions with seconds?
No. Quartz (used by Spring and other Java schedulers) uses 6 or 7 fields with seconds and extra symbols like ? and L, which this tool does not parse. It covers the 5-field format used by crontab, Kubernetes CronJob and GitHub Actions. For a Quartz expression, drop the leading seconds field to get a close 5-field approximation.
Which time zone are the next run times shown in?
Your browser's local time zone. Note that the server running the job may use a different zone — crontab typically runs in the server's local time and Kubernetes CronJobs default to UTC unless timeZone is set.
Are my cron expressions uploaded anywhere?
No. The tool runs entirely in your browser and your input never leaves your device.