Cron Expression Generator

This cron expression generator builds a schedule field by field, shows the next run times, and writes the result for Linux, Kubernetes, GitHub Actions, AWS EventBridge, Vercel or Quartz.

Starting points

Linux five-field expressions. Choose one to load it into the generator above.

Frequent
Daily
Business hours
Reports and maintenance

How the cron expression generator works

Start from what you want to happen instead of from the syntax. Choose a schedule type, set the time with the dial or by typing it, and the expression, a plain sentence and the next run times update together. The raw fields stay editable: change one and the options on the left follow, as long as the result can be shown that way.

The platform setting changes the output, not the schedule. AWS EventBridge gets six fields with a ? where required, Quartz gets a seconds field, and Kubernetes gets a CronJob snippet with spec.timeZone. GitHub Actions, Vercel and EventBridge rules run in UTC, so your time is converted and you are warned when daylight saving time will change it.

Cron expression builder: set each field

If you already think in fields, use the builder directly. Each of the five fields (six on EventBridge and Quartz) has its own control, so you can pick minutes, hours, days and months without typing a symbol. Change a control and the expression updates; edit the expression and the controls follow as long as they can show it. For what the symbols mean, see the crontab syntax reference.

When a platform cannot do what you asked

If the schedule cannot be written for the platform you chose, the generator says which part is not supported and shows the closest schedule that is. It does not quietly hand you something different.

Common schedules

GoalLinux expressionCheck before you ship
Every 5 minutes*/5 * * * *The job should finish well inside 5 minutes, or runs will overlap.
Weekdays at 9 AM0 9 * * 1-5Which time zone is 9 AM in? On UTC platforms it is 9 AM UTC.
Monthly at 2 AM on the 1st0 2 1 * *Pick a quiet hour and alert on failure.
Last day of the monthnot possible in plain cronQuartz and EventBridge use L. Elsewhere, schedule daily and check the date in the job.

Frequently asked questions

Choose what you want, such as every weekday or every 15 minutes, set the time with the dial or by typing it, and the expression, a plain sentence and the next run times update together. You can also type a description like "every weekday at 9am".
Platforms do not share one syntax. AWS EventBridge needs six fields and a ? in one day field, Quartz starts with a seconds field, and Vercel and GitHub Actions run in UTC by default. CronWave rewrites the same schedule for each one. When a platform cannot express your schedule it says so and shows the closest schedule it can.
It is not AI. It matches a fixed set of phrasings locally, builds a schedule from them, and the result is produced by the same engine as the rest of the site. Anything it had to assume is listed, and if it does not understand a sentence it tells you instead of guessing.
Next runs are calculated in the time zone you select. If the platform runs in UTC, CronWave converts the local time using the current offset and warns you that the local time will shift by an hour when clocks change, because a UTC cron expression cannot follow daylight saving time. Kubernetes (spec.timeZone) and Quartz can follow a named zone.
Some platforms limit what you can write. GitHub Actions does not run more often than every five minutes, Vercel rejects expressions that restrict both day-of-month and day-of-week, and standard cron has no "last day of the month" (Quartz and EventBridge use L). The generator flags these cases.

Related tools