Cron Expression Parser
Paste a five-field cron expression and read it in plain English, with a preview of the next five runs.
Reading cron
A cron expression is a five-field schedule that tells a Unix scheduler when to run a job. The fields are minute, hour, day-of-month, month, and day-of-week, separated by spaces. Each field accepts a single value, a comma-separated list, a range (1-5), a step (*/15), or the wildcard *. The classic Vixie cron used on most Linux systems supports this exact syntax; many newer schedulers (systemd timers, GitHub Actions, Kubernetes CronJobs) speak the same dialect.
This parser breaks the expression into its five fields, validates each value, and translates the whole thing into plain English. It also previews the next five run times relative to your local clock so you can sanity-check that, for example, a build labelled "every 15 minutes" really fires four times an hour. The parser does not include the optional seconds field used by Quartz; expressions with six fields will be rejected.
Use cases
- Sanity-check a cron line copied from a runbook before pasting it into crontab.
- Confirm that an "every 15 minutes" expression fires 96 times per day, not 24.
- Translate a complex cron such as 0 9-17/2 * * 1-5 into a sentence for documentation.
- Preview when a backup job will next run after deployment.
- Compare two cron expressions to see which one fires more frequently.
Best practices
- Document each cron job with a one-line English description in a comment.
- Pick minute offsets randomly across jobs to avoid thundering-herd traffic at minute 0.
- Use UTC for cron schedules when servers span timezones.
- Treat day-of-month and day-of-week as OR — if both are restricted, the job runs on either match.
Reference
| Expression | Meaning |
|---|---|
| * * * * * | Every minute |
| */5 * * * * | Every 5 minutes |
| 0 * * * * | Every hour at minute 0 |
| 0 0 * * * | Every day at midnight |
| 0 9 * * 1-5 | Weekdays at 9 AM |
| 0 0 1 * * | First day of every month at midnight |
| 30 2 * * 0 | Sundays at 02:30 |
| 0 0 1 1 * | Once a year on January 1st |