Cron Expression Generator

Build a cron expression with simple controls and presets. Runs in your browser; nothing is uploaded.

Time format

Standard 5-field cron: minute hour day-of-month month day-of-week (0–6 = Sun–Sat; also accepts 6 fields with leading seconds).

Quick presets:
Custom schedule:

Every 5 minutes

Next scheduled runs

Calculating upcoming runs…

How to build a cron schedule

  1. Choose your target syntax: leave Syntax on Normal for Linux crontab, GitHub Actions, or Kubernetes CronJobs, or switch to Quartz, AWS EventBridge, or Jenkins so day-of-week numbers and special symbols (?, L, W, #, H) match your platform.
  2. Start from a preset or customize each field: click a quick preset (such as Every 5 minutes or Weekdays at 09:00) and refine the Minute, Hour, Day of month, Month, and Day of week cards.
  3. Verify the schedule: check the plain-English summary and the next 10 run timestamps in Local or UTC time before clicking Copy.

Frequently asked questions

How do I schedule a cron job to run every N minutes or hours?
Select "Every N minutes (*/N)" in the Minute card and enter your interval (such as 5 for */5 * * * *). In Jenkins syntax, choose "Jenkins hash (H)" and enable "Step (/N)" to generate H/5 * * * * so multiple jobs do not all fire on minute 0.
Why does selecting a day of the week put ? in day of the month for Quartz and EventBridge?
Quartz and AWS EventBridge do not allow both day-of-month and day-of-week to use * at the same time. The ? character means "no specific value" and is placed automatically in whichever day field is not being restricted.
How do I run a job on the last day or last weekday of every month?
Switch Syntax to Quartz or System → AWS EventBridge, then in the Day of month card choose "Last day of month (L)" or "Last weekday of month (LW)". Standard 5-field Unix cron does not have a built-in L modifier.
Does standard cron support scheduling by seconds?
Standard POSIX/Vixie crontab has 5 fields and a minimum resolution of 1 minute. However, many libraries (such as node-cron, Go cron, and Rust cron crates) accept a 6-field form with a leading seconds field, and Quartz always starts with seconds. Check "Include seconds (6 fields)" under Normal syntax or switch to Quartz when your scheduler supports seconds.