Runs 100% in your browser — nothing is uploaded
Regex & Cron

Cron Expression Builder

Build a valid cron expression visually from minute, hour, day, month, and weekday fields — with a human-readable summary and next 10 run times.

Cron Expression Builder
Client-side

About this tool

The Cron Expression Builder is the visual, form-based counterpart to the Cron Parser: instead of pasting a cron string to decode, you fill in minute, hour, day-of-month, month, and day-of-week fields (plus an optional seconds field for 6-field cron dialects like Quartz or Spring) and get a ready-to-use expression assembled and validated for you.

Each field accepts the full range of standard cron syntax — wildcards (*), steps (*/5), ranges (1-5), lists (1,15,30), and combinations of them (1-5/2) — and is checked against its valid numeric range so you catch mistakes like an hour of 25 or a month of 13 before you ship the schedule to a crontab or CI pipeline.

A presets dropdown covers the schedules developers reach for most often: every minute, every 5 minutes, every hour, daily at midnight, weekdays at 9am, every Monday, and first-of-month. As you type, the tool renders a human-readable sentence describing the schedule and computes the next 10 actual run times from the current moment, so you can sanity-check the expression before deploying it.

Everything — field validation, the human-readable description, and the run-time projection — runs entirely in your browser with no external cron-parsing library and no network calls.

FAQ

What is the difference between this tool and the Cron Parser?
The Cron Parser takes an existing cron expression and explains what it does. The Cron Expression Builder works the other way: you fill in individual fields visually and it assembles a valid, validated cron expression for you.
Does this support 6-field cron with seconds?
Yes. Toggle "Include seconds field" to add a leading seconds field (0-59), producing a 6-field expression compatible with dialects like Quartz and Spring Scheduler. Standard Unix cron only uses 5 fields.
How does day-of-month and day-of-week interact when both are restricted?
Standard cron semantics apply: if both are restricted to something other than *, the schedule runs when EITHER condition matches (an OR, not an AND).
Why does "next run times" sometimes show fewer than 10 results?
If your field combination describes an impossible or extremely rare date, the tool searches up to roughly 4 years forward before giving up and returns however many valid matches it found, including zero, which usually signals a field mistake worth double-checking.
Is my schedule data sent anywhere?
No. Field validation, the human-readable description, and the next-run-time projection are all computed with plain JavaScript in your browser tab.