Cron expression tool
Explain, validate, and build cron expressions — Unix and Quartz/Spring syntax with L, W, # and macros — and see the next run times in any time zone.
Added · updated 28 October 2026
Works with
- Kubernetes manifest builder and explainer Containers and Kubernetesopens a CronJob schedule and time zone here
- launchd jobs Linux and macOSSend to launchd turns the schedule into a launchd StartCalendarInterval job
How to use it
Type an expression and read it back in plain English, with each field labelled. Errors name the field at fault.
-
Unix cron has five fields: minute, hour, day of month, month, day of week (0–7, Sunday is 0 or 7). When both day fields are set, the job runs when either matches.
-
Quartz/Spring cron has six or seven: second first, an optional year last, day of week 1–7 (Sunday is 1), and
?in one of the day fields. It addsL(last day),L-3,15W(nearest weekday),LW,6L(last Friday), andTUE#2(second Tuesday). -
Macros
@yearly,@monthly,@weekly,@daily, and@hourlyare expanded.
Next runs lists upcoming times in any IANA time zone. Times that do not exist because of a daylight-saving change are skipped; repeated times run once. The Builder writes an expression field by field — every, every N, specific values, a range, or custom — and Presets has common schedules.
On a Mac, Send to launchd opens a Unix schedule in launchd jobs as a
StartCalendarInterval, with what launchd can’t express spelled out.
Sharing
Share link copies a URL that opens this tool exactly as you have it. Hand-written links work too: ?expr=0 9 * * 1-5&zone=Europe/London&mode=unix|quartz&count=25. For example ?expr=0%209%20*%20*%201-5&zone=Europe%2FLondon.
Feedback is a gift. Something to improve, a feature to add, or a bug? Tell me.
Runs entirely in your browser; nothing you type leaves this page.