What is a cron expression?
A cron expression is a 5-field string that tells a cron daemon when to run a job: minute, hour, day-of-month, month, day-of-week. For example, "0 9 * * 1-5" means "at 09:00 on weekdays". Each field accepts wildcards (*), specific values, ranges (1-5), steps (*/5), and lists (1,15,30).
What is the 5-field vs 6-field cron syntax?
The classic Unix crontab uses 5 fields. Some systems — Quartz Scheduler, Spring @Scheduled, and AWS CloudWatch Events — add a leading seconds field for 6 fields, and Quartz adds a 7th year field. This generator produces standard 5-field expressions, which work in cron, GitHub Actions, GitLab CI, Kubernetes CronJob, and Vercel cron.
What is the difference between * and 0 in the minute field?
A * in the minute field means "every minute"; the job fires 60 times per hour. A 0 means "at minute 0 only"; the job fires once per hour, on the hour. The most common confusion is writing * * * * * (every minute) when you wanted 0 * * * * (hourly).
How does day-of-week work — is Sunday 0 or 7?
In standard cron, day-of-week 0 and 7 both mean Sunday — Monday is 1, Tuesday 2, … Saturday 6. Most schedulers accept both. This generator emits 0 for Sunday and treats 7 as a synonym when parsing presets.
Can I use these expressions in AWS, GitHub Actions, and Kubernetes?
Yes for GitHub Actions (cron syntax) and Kubernetes CronJob (cron syntax). Note: GitHub Actions cron schedules only fire on the default branch, run in UTC, and have ~5–15 minutes of jitter. AWS uses 6-field cron in CloudWatch Events / EventBridge — convert this expression by prepending a "0 " for the seconds slot if needed.
What timezone does cron use?
Standard Unix cron uses the system timezone of the machine. GitHub Actions and Vercel cron use UTC. Kubernetes CronJob can be configured per-job. The "next firing times" shown above use your browser's local timezone — convert mentally if your target system runs in UTC.
What is the difference between */5 and 0/5?
In standard Unix cron they are equivalent — both mean "every 5 starting at 0". The 0/5 syntax is a Quartz Scheduler form (start/step). Standard cron prefers */5. This generator emits */5 since that is the form GitHub Actions, Vixie cron, and Kubernetes accept without warnings.
How do I trigger every weekday at 9am?
Use 0 9 * * 1-5 — at minute 0, hour 9, every day-of-month, every month, on Monday through Friday. Click the "Weekdays 9am" preset above to see it built. Many ops teams set their daily standup reminder this way.