TontonTools

Cron Expression Parser

Build and understand cron expressions — five fields, translated to English.

100% Free No signup Privacy-friendly Web Development
Updated Sep 2026
Share X / Twitter Facebook LinkedIn WhatsApp

How to use Cron Expression Parser

  1. Set each field — specific values, * for every, */n for steps, ranges like 1-5.
  2. Read the plain-English translation — confirm it says what you meant.
  3. Copy the expression into crontab, your host's cron panel or CI schedule.
  4. Mind the server timezone — cron's clock is the machine's, not yours.

What is Cron Expression Parser?

A cron expression builder turns crontab's five cryptic fields — minute, hour, day-of-month, month, day-of-week — into something you can read and construct: 0 3 * * 1 becomes "every Monday at 03:00", and "every 15 minutes on weekdays" becomes */15 * * * 1-5.

Cron syntax is dense and unforgiving: * means every, */5 every fifth, 1-5 a range, 1,15 a list — and a mistake doesn't error, it silently runs your job at the wrong time (or 60× too often, the classic * * * * *-instead-of-hourly incident). Building visually with a plain-English readback prevents exactly that.

About the Cron Expression Parser

Set each field — minute, hour, day, month, weekday — with values, ranges or steps, and read the resulting expression alongside its plain-English meaning.

The expressions everyone eventually needs: nightly at 3am (0 3 * * * — off-peak convention), every 15 minutes (*/15 * * * *), weekday mornings (0 8 * * 1-5), first of the month (0 0 1 * *), and Sunday-night maintenance (0 23 * * 0). Where they go: server crontabs (crontab -e), hosting control panels' cron sections, CI schedules (GitHub Actions' schedule: uses the same five fields), and framework schedulers that accept raw cron.

The two classic traps the builder makes visible: day-of-month and day-of-week are OR-combined when both are restricted (0 0 13 * 5 fires on the 13th AND on every Friday — not just Friday the 13th); and cron runs in the server's timezone, so "3am" is 3am wherever the machine thinks it lives — verify before trusting a schedule across DST.

Frequently Asked Questions

In order: minute (0-59), hour (0-23), day of month (1-31), month (1-12), day of week (0-7, both 0 and 7 = Sunday). 30 2 * * 1 = Mondays at 02:30.
* matches every value (every minute, in the minute field); */5 every fifth (:00, :05, :10…). Confusing them is the classic way a "every 5 minutes" job runs every minute.
0 0 * * * — minute 0 of hour 0, every day. For "nightly" batch work, 3–4am (0 3 * * *) is the convention: off-peak and clear of midnight-boundary jobs.
Cron ORs them: 0 0 13 * 5 runs on every 13th AND every Friday — not only Friday the 13th. It's the spec's most surprising rule; achieving the AND requires a date check inside the job.
In order: is the expression what you think (paste it here), is the server timezone what you assume, does the command work with cron's minimal PATH (use absolute paths), and does the cron log/mail show an attempt. Nine of ten "cron didn't run" cases are one of those four.

We use cookies for analytics and to keep the tools free via ads. See our Privacy Policy.