Cron to Human — Translate Cron Expressions to Plain English
Translate cron expressions to plain English. Shows the next 5 run times in your local timezone. Standard cron and Quartz syntax supported.
Cron to Human
Translate cron expressions to plain English. Works entirely in your browser — no uploads.
A cron expression is one of those formats that everyone copies from somewhere else and nobody writes from memory. The five fields (minute, hour, day-of-month, month, day-of-week) are easy to type the first time, but the moment the second field needs a step value or the weekday field needs a range, a cheat sheet is faster than reasoning about it. The cheat sheet is the point of this tool — paste the expression, read the English, and copy the next-run times into whatever place you were going to put them anyway.
The thing that surprises most people the first time they use a cron explainer is the timezone. A cron expression has no timezone in it — it is just five numbers. The daemon that runs the job has a timezone, and the explainer has a timezone (your browser’s), and they are usually different. An expression that reads as “9am weekdays” in a developer’s local time may fire at 5pm UTC on a server in another country, or at 2am on a developer laptop. The next-runs list in this tool is computed in your browser’s zone; if the actual job runs on a server, the times will not match the server’s clock.
After the expression is translated, the next step is usually deciding whether the schedule is right at all. If the job is hourly but only fires 12 times a day because of a misread step value, fix the expression. If the job is meant to fire at midnight UTC for a daily report, prefix the explanation with the timezone you intend. And if the schedule is for a one-off task in the next 24 hours, you do not need cron at all — the Epoch/Date converters will give you a single timestamp to pass to at.
How to use
Paste a cron expression
Type or paste a 5-field standard cron (minute hour day month weekday) or a 6/7-field Quartz expression. The tool validates as you type and flags syntax errors inline.
Read the plain-English breakdown
Each field is shown on its own line with the meaning. `0 9 * * 1-5` reads as 'At 09:00, Monday through Friday' — no guessing about ranges or step values.
Check the next 5 run times
The right panel lists the next five times the expression will fire, computed in your browser's local timezone. Daylight Saving transitions are handled correctly.
Frequently asked
Does it support Quartz syntax (6 fields with seconds)?
Yes. Paste a 6-field Quartz expression (with seconds first) and the tool detects the format automatically. A 7-field Quartz expression with a year is also supported.
What timezone are the next-run times in?
Your browser's local timezone. The header above the next-runs list shows the IANA zone name (e.g. 'America/New_York'). Cron jobs on a server will fire in the server's zone, not yours.
Why is `0 9 * * 1-5` not 9am every weekday in my server logs?
Your server is probably in UTC. 9am in 'America/Los_Angeles' is 17:00 UTC, and 9am UTC is 02:00 in Los Angeles. The expression itself is correct — the timezone is the variable.
Can it explain the special strings like @daily and @reboot?
Yes. Type `@daily`, `@hourly`, `@weekly`, `@monthly`, `@yearly`, or `@reboot` and the tool expands them to the equivalent standard cron fields.
Limitations
- No spring/frost syntaxQuartz's special characters L, W, and # (last-day, nearest-weekday, Nth-weekday) are tokenized and explained, but the next-runs list does not handle W (nearest weekday) — it falls back to the plain weekday.
- No cron.d-style environment variablesCron expressions that reference shell variables (PATH=, MAILTO=, *) are not parsed. Only the time fields themselves are translated.
- DST transitions can shift 'next run' by an hourFor jobs scheduled at 02:30 local time, the next-runs list may skip an occurrence on the night DST springs forward. This matches what the OS cron daemon actually does.
Platform notes
- macOS
- macOS uses vixie cron, which treats day-of-month and day-of-week as OR when both are set (the historical quirk). The tool's explanation matches this behavior.
- Linux
- Most Linux distributions ship cronie or vixie cron, both of which use the standard 5-field syntax. systemd timers (.timer files) use a different format not handled here.
- Windows
- Windows has no native cron. The most common port is the WSL cron daemon, which uses vixie syntax. PowerShell scheduled tasks use a different XML format.
- CLI
- The same library that powers this tool is available as a Node.js package (cronstrue) and a CLI. Useful for embedding human-readable cron in build logs or documentation.
- Web
- Runs entirely client-side. Useful for sanity-checking a cron expression from a README or a Stack Overflow answer before pasting it into crontab.