DevOps
Cron expression generator
Pick a preset or type your cron expression and get a clear explanation, per-field validation and the next 5 firing times. Everything runs in your browser — the expression is never sent to a server.
Minute
*/5
Hour
*
Day of month
*
Month
*
Day of week
*
Explanation
Every 5 minutes.
crontab
# generated by toolsops */5 * * * *
Syntax
*any value*/5every 5 units1-5range (inclusive)1,3,5list of values0-30/10range with step
Examples
* * * * *Every minute*/5 * * * *Every 5 minutes0 2 * * *Every day at 02:000 9 * * 1-5Monday to Friday at 09:000 0 1 * *First day of every month
Frequently asked questions
- Does this tool support Quartz or cron with seconds?
- No. This version supports 5-field Unix cron only (minute, hour, day-of-month, month, day-of-week). Pasting an expression with 6 or 7 fields (seconds / year, Quartz format) will surface a warning. Use a Quartz-aware parser for that.
- Which time zone is used for the next runs?
- Your browser's local time zone. Dates are computed by iterating minute by minute from now, with no external libraries and no server calls. If you deploy the cron to a remote server, the effective time zone will be the server's, not the one shown here.
- Why does the day-of-week field accept both 0 and 7?
- Both 0 and 7 represent Sunday in most Unix cron implementations. The tool normalizes 7 to 0 internally to avoid duplicates.
- Is my cron expression sent to a server?
- No. All processing happens inside your browser. There are no backend calls, nothing is stored in localStorage, and everything disappears when you close the tab. You can use the tool with production expressions safely.
- Why does '0 0 31 2 *' show no next runs?
- February 31 doesn't exist in the calendar, so no future date can satisfy that combination. The calculation gives up after a year of iteration without matches and a small note is shown.
- Can I combine day-of-month and day-of-week in the same expression?
- Yes. When day-of-month and day-of-week are BOTH restricted (neither is '*'), the tool applies the Unix/POSIX semantics: the expression fires if EITHER matches (OR). For example, '0 0 1 * 1' runs on the 1st of every month and every Monday. If only one of the two fields is restricted, the other ('*') always matches and the rule reduces to the restricted one. As always, validate against your system's actual cron if your environment uses a variant (Quartz, cronie, busybox, etc.) with different semantics.