Paste a cron expression. Get a sentence you can check, the next ten times it
will actually run, and a warning for every way it does not mean what it looks
like it means.
Everything is computed on your device. No account, no network, no upload.
Read it in plain English
"0 0 1 * MON" becomes "At 00:00, on day 1 of the month — and also on Monday,
since either day field matching is enough." The description is built from the
expression you typed, so a step stays a step and a range stays a range.
See the real times
The next runs, the last runs, and a countdown to the next one — in the time zone
your job runs in, not the one your phone is in. Pick any IANA zone.
Daylight saving, handled properly
Twice a year the wall clock does something a schedule cannot. An hour
disappears, and later an hour happens twice. A backup at 02:30 simply has no
02:30 to run at on the spring-forward date, and most schedulers lose the run
without logging anything.
This app resolves every occurrence against the full IANA database, marks the
runs that are skipped or repeated, and tells you what Vixie cron and cronie do
about it — and what systemd timers, Kubernetes CronJobs and library schedulers
do not.
The mistakes, before you make them
Both day fields set is an OR, not an AND — the most common cron mistake
Sunday is 0 in cron and 1 in Quartz, so the same digits mean a different day
"0 0 31 * *" runs seven times a year, not twelve
A step counts from the start of the field, so "*/25" leaves a ten-minute gap
A reversed range like "18-8" makes crontab reject the whole file
"5/10" is ordinary in Quartz and a syntax error in Vixie cron
Four dialects, and conversion between them
Unix (Vixie / cronie), the six-field form with seconds, Quartz, and AWS
EventBridge. Switch dialect and the app rewrites the expression — refusing,
with a reason, when the target genuinely cannot express the schedule.
Export to fourteen places
crontab, Kubernetes CronJob, systemd timer, GitHub Actions, GitLab CI, Jenkins,
Spring, Quartz, AWS EventBridge, Celery, node-cron, Go robfig/cron, Laravel and
APScheduler. Each snippet comes with what that target will and will not do:
GitHub Actions is UTC only, Kubernetes needs 1.27 for a time zone, Celery
intersects the day fields where cron unions them.
Day-of-week is always written as names in generated snippets, so the numbering
trap cannot survive a conversion.
Also
A visual builder, if you would rather not write the expression
45 presets, including six that exist to demonstrate a trap
An offline reference to the syntax, the dialects and the daylight-saving rules
Saved schedules and recent history
How often it runs: per year, per month, per week, and the shortest gap
Light and dark, following your system
Free, with ads.
Explain any cron expression, see when it really runs, and export it.