Parse cron expressions into plain English, view an interactive 24-hour timeline and 60-minute execution grid, calculate next run times, and export Systemd .timer units.
✕ {{ error }}
{{ systemdTimerCode }}Two OnCalendar= lines: cron ORs day-of-month and day-of-week when both are restricted, but a single systemd calendar expression ANDs its weekday against its date. Systemd combines multiple OnCalendar= lines on the same directive with OR (fires whenever either elapses), which reproduces cron's OR exactly.
{{ useUtc ? 'Timestamps carry an explicit UTC suffix.' : "No timezone suffix — systemd resolves this against the machine's own local timezone at runtime, which may differ from your browser's timezone shown above." }} Unlike cron's ambiguous behavior on DST-transition days, systemd's calendar engine resolves every occurrence unambiguously against the IANA timezone database.
| Field | Value | Allowed · meaning |
|---|---|---|
| {{f.name}} | {{f.raw}} | {{f.desc}}{{f.range}} |
┌ minute ┬ hour ┬ day-of-month ┬ month ┬ day-of-week
*any value ,value list separator (1,3,5) -range of values (1-5) /step values (*/15 = every 15) ?no specific value (day fields, extended)minute0–59 hour0–23 day-of-month1–31 month1–12 or JAN–DEC day-of-week0–7 (0 and 7 are Sunday) or SUN–SATWhen BOTH fields are restricted (not */?), standard cron (crontab(5)) runs the job if either condition matches — not only when both do. This is the classic vixie-cron/Linux crontab rule this tool follows; some other schedulers (e.g. Quartz) require exactly one of the two to be unset instead.
Each of the 5 fields is expanded into a set of matching values, walking forward minute by minute to calculate 24-hour visual schedule timelines, upcoming execution runs, and equivalent Systemd OnCalendar= timer directives.
This parses the standard 5-field cron dialect (crontab(5)/vixie-cron), including the common ? extension for "no specific value". It does not parse Quartz/Spring/AWS EventBridge's 6–7 field dialect (adds a seconds and/or year field, numbers Sunday–Saturday as 1–7, and adds L/W/# modifiers) — expressions using those will fail to parse here.
Everything is computed locally in your browser. No expression is sent anywhere.