Cron Expression Generator
Build cron expressions visually. See next run times and human-readable descriptions.
Runs every minute
Next 5 runs
Visual cron expression builder with dropdowns for minute, hour, day, month, and weekday. See human-readable description and next scheduled runs. Includes common presets.
Cron expressions are compact, powerful, and easy to get wrong. Five fields — minute, hour, day-of-month, month, day-of-week — control when a job runs, but the interaction between day-of-month and day-of-week trips up even experienced engineers. "0 9 * * 1" means 9 AM every Monday; "0 9 1 * *" means 9 AM on the first of each month. A small typo schedules your nightly backup for 3 AM on January 1st only.
This generator lets you build expressions using dropdowns and preset patterns — every minute, every hour, weekdays at 9 AM, first Sunday of the month — and shows the compiled expression plus the next five scheduled run times. Seeing the actual upcoming timestamps catches bugs that a human-readable description would miss, like DST ambiguity or unintended interactions between fields.
The output is plain five-field Unix cron, which runs in crontab, Kubernetes CronJob, GitHub Actions schedules, and most CI systems. If you need quartz-style six- or seven-field syntax with seconds and years (AWS CloudWatch, Spring), the tool emits that variant too with the field differences called out.
- 1
Pick a preset or build from scratch
Start from a preset like "every weekday at 9 AM" or pick minute, hour, day, month, and weekday individually. The expression updates as you choose.
- 2
Verify the next run times
A list of the next five scheduled runs shows below the expression. If those dates don't match your intent, adjust a field until they do.
- 3
Copy and paste into your scheduler
Grab the five-field Unix form for crontab, Kubernetes, or GitHub Actions — or the Quartz form with seconds for AWS CloudWatch or Spring scheduled tasks.
Scheduling backups
Build a nightly cron that runs at 2 AM on weekdays only, with the next run preview confirming it skips weekends.
GitHub Actions workflows
Generate the cron line for an Actions workflow that runs your dependency scan every Monday at 8 AM UTC.
Kubernetes CronJobs
Craft the schedule field for a CronJob manifest that processes a report at the start of every quarter.
Database maintenance windows
Schedule a vacuum or analyze job for the first Sunday of each month at 3 AM — a classic case where day-of-month and day-of-week interact.
What's the difference between Unix cron and Quartz cron?
Unix cron uses five fields (minute, hour, day, month, weekday). Quartz adds seconds at the front and an optional year at the end, plus richer syntax like L for last-day-of-month and # for nth-weekday. Quartz is used by AWS CloudWatch Events, Spring's @Scheduled, and some enterprise schedulers.
How do day-of-month and day-of-week interact?
In standard Unix cron, if both fields are restricted (neither is *), the job runs when EITHER matches — it's an OR, not an AND. This catches people off guard: "0 0 15 * 1" runs on the 15th OR on every Monday, not on the 15th only if it's a Monday.
What timezone does cron use?
Traditional crontab uses the system timezone of the host. Kubernetes CronJobs default to UTC. GitHub Actions uses UTC. Always confirm the timezone of your scheduler before debugging why a job fired an hour off.
Can cron schedule jobs more often than once per minute?
Not with standard Unix cron — one minute is the minimum granularity. Quartz supports seconds. For sub-minute scheduling, use a systemd timer with OnCalendar or a purpose-built scheduler like Temporal.
What does */5 mean?
The step syntax. */5 in the minute field means every 5 minutes starting at 0 — so 00, 05, 10, 15, and so on. Works in any field: */2 in the hour field runs every two hours.