Cron Expression Parser

Paste a cron expression and instantly see what it means in plain English, plus the next 8 times it will run. Supports POSIX 5-field syntax with @yearly, @monthly, @weekly, @daily, @hourly presets.

  • Runs in browser
  • No signup
  • No tracking
Share

How to use Cron Expression Parser

  1. Type or paste a cron expression in the input.

  2. Read the English description and verify it matches what you intended.

  3. Scan the next-run times to sanity-check the cadence.

  4. Use a preset chip as a starting point if you're not sure where to begin.

When to use it

  • Debugging a cron entry that 'didn't fire when expected'.

  • Sanity-checking a CI / GitHub Actions schedule before merging.

  • Sharing a human-readable description in a runbook or PR.

  • Comparing two candidate schedules by looking at their next runs.

What it fixes

  • Cron expressions that 'looked right' but never fired.

  • Day-of-month vs day-of-week OR semantics catching teams by surprise.

  • Trial-and-error of waiting for the next run to confirm a schedule.

About Cron Expression Parser

Cron expressions look concise but read terribly. `*/5 9-17 * * 1-5` is 'every 5 minutes from 9am to 5pm on weekdays' — easy to write wrong if you only check the syntax cheatsheet.

This parser breaks the expression into its five fields, validates each, describes the schedule in English, and simulates the next 8 run times against your local clock. The forward simulator iterates minute by minute up to 5 years out, mirroring how Unix cron picks the next matching slot.

References: Wikipedia — Cron · GNU mcron docs

Frequently asked

  • Which cron syntax does this support?

    Standard 5-field POSIX cron: minute, hour, day-of-month, month, day-of-week. Operators: * (any), , (list), - (range), / (step). Aliases: jan-dec for month, sun-sat for day-of-week. Presets: @yearly, @monthly, @weekly, @daily, @midnight, @hourly.

  • Why does my schedule run on more days than I expected?

    When BOTH day-of-month and day-of-week are restricted (i.e., neither is *), cron treats them as OR — the job runs on either match. To require both, use one * and filter in the script.

  • Which timezone does this use?

    Your local browser timezone. To preview in another timezone, change your system clock or set the schedule using UTC and convert mentally. Server cron runs in the server's TZ — usually UTC for containers.

  • Does it support seconds or @reboot?

    No. 6-field crons with seconds (Quartz, node-cron extended) and @reboot are platform-specific and not portable. This tool sticks to standard 5-field cron.

Discussion

All tools