Crontab Generator
WebBuild cron expressions with a visual editor and see next run times and plain-language meaning. Debug Linux crontab and Kubernetes CronJobs in seconds.
*/59-17**1-5Related Tools
About Crontab Generator
A cron expression is the Unix scheduling syntax, made of 5 or 6 space-separated fields (minute, hour, day-of-month, month, day-of-week, optionally second).This tool parses any cron expression and shows the next several execution times — so you can debug scheduled tasks without waiting for the next tick. For example, 0 9 * * 1-5 is immediately shown as "every weekday at 09:00" with the next and future run times.
How to Use
- Open the Crontab Generator tool
- Enter or paste the content to process
- Adjust the output options as needed
- Click the Run button; results appear in real time
- Copy or export the result
Use Cases
- Debug Kubernetes CronJobs — Validate the schedule field here before deploying to avoid jobs firing at the wrong time.
- GitLab CI / GitHub Actions — Verify exactly when scheduled pipelines will run before merging your config.
- Backend job scheduling — Spring @Scheduled, Node node-cron, and Python APScheduler all use the same syntax.
- Sysadmin scripts — Validate /etc/crontab or systemd timer expressions here before deploying.
- Learning cron syntax — Tweak the expression and see the next run time live — much faster than memorizing * / , - rules.
- Timezone adjustment — Verify that a cron expression scheduled in UTC produces the expected local time across daylight saving boundaries.
- Complex interval validation — Test non-standard schedules like 'every 45 minutes' or 'last weekday of month' by inspecting the next fired times.
FAQ
5-field vs 6-field cron — what's the difference?
The 5-field form is classic Unix cron (minute, hour, day, month, weekday) with minute-level granularity. The 6-field form adds a leading "second" field — used by Quartz and Spring. This tool detects which is in use.
What does * * * * * mean?
Every minute. The first * is minute (0-59 any), the second is hour (0-23 any), and so on.
Is 0 */2 * * * every two hours?
Yes. 0 means the 0th minute, */2 means every 2 hours — so it fires at 0, 2, 4. 22 o'clock on the hour.
How are conflicting day-of-month and day-of-week handled?
Classic cron treats them as an OR — if either matches, the job runs. Quartz requires one to be ? to disambiguate. This is the most common beginner trap.
Can I schedule by the second?
Not with classic 5-field cron — minute is the minimum granularity. For per-second triggers use the 6-field (Quartz) variant, or fall back to setInterval / a message queue.