Cron Expression Builder
Build cron expressions for Unix, Kubernetes, AWS EventBridge and Quartz — with a human-readable description and the next 5 run times.
Every minute of every day
Next 5 runs
Calculating…
Common schedules
Syntax
*— any value5— exact value1,3,5— list of values1-5— inclusive range*/15— every 15 units (also0/15in AWS / Quartz)
A cron expression is a short string that tells a scheduler when to run a job. Standard Unix cron uses five fields — minute, hour, day-of-month, month, day-of-week — like 0 9 * * 1-5 for “every weekday at 9 AM”. AWS EventBridge uses six fields with a cron(...) wrapper, and Quartz Scheduler uses seven (adding a leading seconds field). Use the form above to build any flavor with a live human-readable description and the next 5 run times.
New to cron? Start with what is a cron job? for a plain-English walkthrough of the syntax and where these jobs run.
For ready-to-paste expressions covering the most common schedules (every 5 minutes, daily at midnight, every weekday, first of the month), see the common cron schedules hub.
For platform-specific guides:
- AWS EventBridge cron expressions — 6-field syntax, the
?rule, IaC examples for CloudFormation and Terraform. - Kubernetes CronJob schedules — 5-field syntax, timezone caveats, ConcurrencyPolicy and StartingDeadlineSeconds.
Which cron flavor do I need?
Switch between Unix / Linux mode (5 fields — minute, hour, day-of-month, month, day-of-week) for crontab, Kubernetes, GitHub Actions and most schedulers. Use AWS EventBridge mode (6 fields — adds year, wraps the output in cron(...), requires ? for one of day-of-month or day-of-week) for EventBridge Rules and Scheduler. Use Quartz mode (7 fields — adds a leading seconds field, year is optional) for Java applications, Spring’s @Scheduled annotation, and any framework that embeds the Quartz library. The form, presets and validation update with the mode.
What are the five Unix cron fields?
minute hour day-of-month month day-of-week
* * * * *
0-59 0-23 1-31 1-12 0-6 (Sun=0)
What are the six AWS EventBridge cron fields?
minute hour day-of-month month day-of-week year
* * ? * MON-FRI *
0-59 0-23 1-31 / ? 1-12 1-7 (Sun=1) 1970+
Cron syntax cheat sheet
*— any value.5— this exact value.1,3,5— a list of values.1-5— an inclusive range.*/15— every 15 units (AWS prefers0/15for the same meaning).?— AWS only: required for whichever of day-of-month or day-of-week is unconstrained.2#1,6L,L— AWS extensions for “first Monday of month”, “last Friday of month” and “last day of month”. The next-run preview supports these.
When should I use cron vs a workflow scheduler?
- Simple time-based schedules — “every Monday at 9 AM”, “first of the month”.
- Systems without a workflow service — cron is on every Unix-like OS, every CI runner, every Kubernetes cluster.
- Cheap recurring jobs — no per-trigger billing, no infrastructure beyond a row in a config file.
When you need anything dynamic (schedule based on state, retries, dependencies between jobs), reach for a workflow scheduler instead — Argo Workflows, Airflow, Step Functions, Temporal.
Frequently asked questions
- Which cron flavors does this tool cover?
- Three: standard 5-field Unix cron (Linux crontab, Kubernetes CronJobs, GitHub Actions); 6-field AWS EventBridge (adds a year field, requires `?` for one of day-of-month or day-of-week, always UTC); and 7-field Quartz (Java schedulers, Spring `@Scheduled`) which adds a leading seconds field for sub-minute precision. Switch with the mode toggle — the form, presets, validation and next-run preview all adapt.
- What''s the difference between Quartz and AWS EventBridge cron syntax?
- Quartz uses 7 fields (`seconds minute hour day-of-month month day-of-week year`, year optional), AWS uses 6 (no seconds, year mandatory). Quartz expressions are bare strings (`0 0 12 * * ?`); AWS wraps in `cron(...)` (`cron(0 12 * * ? *)`). Both share day-of-week 1–7 (Sun=1), the `?` rule for unconstrained dom/dow, and the `#` and `L` operators for nth/last weekday. To port Quartz → AWS, drop the leading seconds field and append a year (or `*`); to port AWS → Quartz, prepend `0` for the seconds field.
- What is the difference between day-of-month and day-of-week in Unix cron?
- They combine as an OR, not an AND. `0 9 15 * 1` runs at 9 AM on the 15th of every month AND every Monday. To restrict to "9 AM on Mondays" leave day-of-month as `*`. To restrict to "9 AM on the 15th" leave day-of-week as `*`. AWS EventBridge avoids this trap by requiring `?` for whichever field is unconstrained.
- Why does the AWS preview only show UTC times?
- AWS EventBridge Rules evaluate cron expressions in UTC with no timezone option. EventBridge Scheduler (the newer service launched 2022) supports per-schedule timezones, but the cron expression itself remains the same — you set the timezone separately in the schedule resource. Always express the time you want in UTC when writing the rule.
- Are @daily, @hourly and other shortcuts supported?
- Many cron implementations (Vixie cron, anacron, GitHub Actions, Kubernetes CronJobs) accept shortcuts like `@daily`, `@hourly`, `@weekly`. They are shorthand for the standard 5-field expressions — this builder outputs the expanded form for maximum portability. AWS EventBridge does NOT accept `@daily`-style shortcuts.
- How accurate are the next-run times?
- For standard cron syntax (`*`, ranges, lists, `*/N`) the next-run preview is exact. The AWS extensions `2#1` (first Monday of month), `6L` (last Friday) and `L` (last day of month) are also computed correctly. The `W` modifier (nearest weekday to a date) is not yet supported — expressions using `W` will produce a valid AWS string, but the preview ignores the W constraint.