Cron Time Translator
Paste any cron expression to see a plain-English description, per-field breakdown, and the next 8 firing times in your local timezone. Handles @aliases and 6-field (with seconds) cron. 100% client-side.
What is the Cron Time Translator?
Cron Time Translator parses 5-field (POSIX) and 6-field (with leading seconds) cron expressions, plus the common `@yearly` / `@monthly` / `@weekly` / `@daily` / `@hourly` aliases. It produces three outputs: a plain-English description (`every 15 minutes`, `at 09:00 on Monday`), a per-field breakdown table (Field, Raw, Resolved values, Count) showing exactly how every wildcard, range, step and list resolved, and the next 8 firing times computed forward from now — shown in your local timezone with relative deltas (`in 12 min`, `in 2 days`). The matcher uses standard cron semantics: when both day-of-month and day-of-week are non-`*`, either match fires (union, not intersection). A 4-year iteration cap prevents pathological combinations (Feb 30) from hanging the browser. Pure functions, no scheduler bus, no setInterval — the same input always returns the same output for a given 'now'.
How to use it
- Paste your cron expression (5-field, 6-field, or @alias).
- Read the English description in the hero.
- Inspect the per-field breakdown table to see how every field resolved.
- Browse the next 8 firing times in your local timezone.
Benefits
- Handles 5-field POSIX cron, 6-field cron with seconds, and @yearly / @monthly / @weekly / @daily / @hourly aliases.
- Plain-English description in a single sentence — perfect for code review comments.
- Per-field breakdown table makes step / range / list patterns visible.
- Next 8 firing times computed forward from now in your local timezone with relative deltas.
- Honors classic cron union semantics: when both DOM and DOW are non-`*`, either match fires.
- 4-year iteration cap prevents pathological combinations from hanging the browser.
- 10 preset buttons cover the most common patterns (every minute, hourly, weekday 9 AM, etc.).
- Runs 100% in your browser — Toollyz has no server.
Frequently asked questions
What cron formats does this support?
5-field POSIX (`* * * * *` → minute hour day-of-month month day-of-week) and 6-field Quartz-ish (leading seconds: `* * * * * *`). The aliases @yearly, @annually, @monthly, @weekly, @daily, @midnight and @hourly all work.
What does 'union vs intersection of DOM and DOW' mean?
Standard cron rule: when both day-of-month and day-of-week are restricted (neither is `*`), the cron fires if EITHER matches. So `0 0 13 * 5` means 'midnight on Friday OR midnight on the 13th'. We follow this.
Does it handle `*/5`, `1-30/5`, `0,15,30,45`?
Yes — all standard cron syntax: ranges (`1-30`), steps (`*/5`, `1-30/5`), lists (`0,15,30,45`) and bare values are all supported. Name-style months (`jan-jun`) and weekdays (`mon-fri`) also parse.
What timezone are the next runs shown in?
Your local browser timezone, as reported by `Intl.DateTimeFormat().resolvedOptions().timeZone`. The relative deltas ('in 12 min') use `Date.now()` so they stay honest as time passes.
What if my cron never fires (e.g. Feb 30)?
We cap forward iteration at 4 years. If no matching date is found within that window, the next-runs list comes back empty and we surface a warning.
Does it support special characters like `L` (last) or `#` (nth weekday)?
Not yet — those are Quartz extensions and we're focused on POSIX cron. Most schedulers (Linux crontab, Vixie cron, GitHub Actions cron) don't support them either.
Does it differentiate cron implementations?
We aim for POSIX cron behaviour. Most Linux schedulers and CI cron schedulers (GitHub Actions, GitLab, Render) all follow this. Quartz-specific syntax may parse but not behave identically.
What about `?` in day-of-month or day-of-week?
Quartz uses `?` to mean 'no specific value'. POSIX cron doesn't recognise it. We currently reject `?`; use `*` instead.
Will it tell me if my cron is too aggressive?
Not explicitly — but the next-runs view makes it obvious: if you see 8 firings within 60 seconds, your cron will probably overlap itself in production.
Is anything uploaded?
No. Parsing, English description and run computation are all pure browser functions.
Can it convert from English to cron?
That's what the Cron Job Expression Generator does — visual builder that produces a valid cron expression. The two tools cross-link.