Cron Expression Generator
Build a valid 5-field cron expression from simple schedule presets — every N minutes, daily, weekly, or monthly — without needing to know cron syntax. A custom mode is also available for entering each field directly, and a plain-English description shows exactly what the expression runs.
Input
Output
Guides
A cron expression is the five-field schedule string that cron, GitHub Actions, Kubernetes CronJobs, and countless task schedulers use to decide when a job runs. The syntax is compact and easy to get backwards — this tool builds a valid expression for you from plain-English choices, so you don't have to remember field order or symbol meaning.
The five fields
A standard cron expression always has five space-separated fields, in this order:
minute hour day-of-month month day-of-week
0-59 0-23 1-31 1-12 0-6 (0 = Sunday)
For example, 30 9 * * * means "at minute 30 of hour 9, every day of every month, on any weekday" — in other words, every day at 09:30.
The operators
*— any value ("every").* * * * *runs every single minute.,— a list.1,15,30 * * * *runs at minutes 1, 15, and 30.-— a range.1-5 * * * *runs at every minute from 1 through 5./— a step.*/15 * * * *runs every 15 minutes (0, 15, 30, 45).
These operators can combine within a single field (e.g. 1-5,15-20), and cron day-of-week uses 0 for Sunday through 6 for Saturday — the same convention as JavaScript's Date.getDay().
How to use it
Pick a Schedule Type:
- Every N Minutes — set an interval (1–59) and the tool builds a
*/Nminute field, e.g. every 15 minutes. - Daily — pick an hour and minute; the job runs at that time every day.
- Weekly — pick a day of the week plus an hour and minute.
- Monthly — pick a day of the month (1–31) plus an hour and minute.
- Custom (advanced) — enter each of the five fields directly, using any combination of
*,,,-, and/. Use this for schedules the presets don't cover, like "every 2 hours on weekdays" (0 */2 * * 1-5).
The Cron Expression field updates automatically and includes a copy button. A What This Means line underneath translates the expression back into plain English so you can double-check it matches what you intended before pasting it into a crontab, CI config, or job scheduler.
FAQ
Does this support seconds (a 6-field expression)? No — this tool generates the standard, widely-supported 5-field POSIX cron format. Some schedulers (like Quartz) add a leading seconds field; if yours does, prepend 0 (or your desired second) manually.
What if I leave a custom field blank? Blank or invalid fields always fall back to * ("any value"), so the generated expression is guaranteed to be syntactically valid even with incomplete input.
Can I schedule something for multiple days or a range of months? Yes, in Custom mode — use a list (1,3,5) or range (1-5) in the relevant field, same as you would in a real crontab.
What timezone does the schedule run in? Cron expressions themselves are timezone-agnostic — the actual timezone depends on the system or service running the job (server local time, UTC, or a timezone you configure separately in tools like GitHub Actions or Kubernetes).
Privacy
Everything runs locally in your browser — the schedule you build is never sent to a server or stored anywhere.