Cron Expression Builder -Visual Cron Generator & Tester Online

Cron expressions are one of those things every developer has to deal with sooner or later -and they always seem just cryptic enough to cause confusion. Is it minutes first or hours first? Does `*/5` mean every 5 minutes or every 5th minute? What is the difference between day-of-month and day-of-week? What happens if you specify both? This free online cron expression builder removes all the guesswork. Use the visual controls to build your schedule field by field, see an instant plain-English description of exactly what your expression means, and view the next 10 scheduled run times so you can verify the schedule is exactly what you intended -all in your browser with no libraries, no signup, and no server.

Loading Cron Builder...

How to Build a Cron Expression

  1. Use the preset buttons to start from a common schedule or begin with * * * * *
  2. Adjust each field using the visual controls -choose Every, Specific values, a Range, or a Step
  3. Watch the plain-English description update instantly as you build
  4. Check the Next 10 Scheduled Runs panel to verify the schedule produces the times you expect
  5. Click Copy to copy the expression, or Copy as Comment to copy with a description block
  6. Use the Share button to generate a URL to send to colleagues

Understanding the Five Cron Fields

A standard cron expression has five space-separated fields. The first field is minutes (0–59), the second is hours (0–23), the third is day of month (1–31), the fourth is month (1–12), and the fifth is day of week (0–7 where both 0 and 7 represent Sunday). Some systems add a sixth field for seconds at the beginning and a seventh for year at the end. The fields combine to define exactly when a job should run -for example 30 8 * * 1-5 runs at 8:30 AM every weekday.

Cron Special Characters Explained

* (Asterisk) - Wildcard meaning all possible values. E.g., a * in the hour field means "every hour".

, (Comma) - Selects multiple distinct values. E.g., 1,5,10 in the minutes field means at minute 1, 5, and 10.

- (Hyphen) - Defines an inclusive range. E.g., 9-17 in hours means every hour from 9 AM to 5 PM.

/ (Forward Slash) - Describes increments or steps. E.g., */15 in minutes means every 15 minutes.

L (Last) - The last day of the month or last specific weekday (e.g., 5L means last Friday).

W (Weekday) - The nearest weekday to a specific date. E.g., 15W means nearest weekday to the 15th.

# (Hash) - The Nth occurrence of a weekday. E.g., 1#3 means the 3rd Monday.

? (Question Mark) - No specific value. Used mainly in Quartz scheduler when specifying day of month but not day of week (or vice versa).

Common Cron Mistakes

  • Using the wrong field order -minutes comes before hours in standard cron.
  • Forgetting that day-of-week 0 and 7 are both Sunday.
  • Using */60 in the minutes field -this produces no matches since 60 is out of range.
  • Specifying both dom and dow without understanding OR logic -both restrictions are checked and either match triggers the job.
  • Expecting 0 9-17 * * * to run every minute from 9 to 17 -it only runs once per hour (at minute 0).

Platform Cron Differences

Cron implementations can vary heavily by platform. Make sure to choose the correct rules for your ecosystem:

Unix cron: Standard 5 fields. Both 0 and 7 are Sunday.
Quartz Scheduler: 6 or 7 fields including seconds. Requires ? in dom or dow field to avoid conflicting logic. Note: 1=Sunday.
AWS EventBridge: 6 fields including year. Requires ? in either dom or dow.
GitHub Actions: Uses standard POSIX cron but minimum interval is 5 minutes, running strictly on UTC.
Kubernetes CronJob: Uses Unix cron, relying on kube-controller timezone unless specified.

Key Features

  • Visual field-by-field builder with Every, Specific, Range, and Step modes
  • Instant plain-English description of any expression
  • Next 10 scheduled run times with relative time display
  • Timezone selector for run time display
  • 16 quick preset schedules
  • 6-field cron support (with seconds)
  • Full cron syntax reference with special characters
  • Validator with field-by-field breakdown
  • Shareable URLs
  • Works on all devices including mobile
  • 100% free -no signup, no account, no data uploaded

Frequently Asked Questions

Frequently Asked Questions

What is a cron expression?

A cron expression is a string of 5 fields (minute hour dom month dow) defining a recurring schedule. Special characters allow complex schedules like every 5 minutes, weekdays only, or the first of every month.

What does * * * * * mean?

Every minute of every hour every day -the wildcard * in all five fields means match all values.

How do I run every 5 minutes?

Use `*/5 * * * *`. The `/` step character means every N values starting from the beginning of the range.

How do I schedule weekdays only?

Use `1-5` in the day-of-week field (5th field). Example: `0 9 * * 1-5` runs at 9:00 AM Monday through Friday.

What is the difference between dom and dow?

DOM is the calendar date (1st, 15th etc.). DOW is the day of the week (Monday, Friday etc.). If both are specified in standard cron either match triggers the job (OR logic).

How do I run on the last day of the month?

Use `L` in the dom field: `0 0 L * *`. Supported in Quartz and AWS EventBridge but not standard Unix cron.

What does */5 mean?

Step notation -every 5 units. `*/5` in minutes = every 5 minutes (0, 5, 10, 15...). `*/2` in hours = every 2 hours.

Is this cron builder free?

Yes, completely free with no account required. All processing runs in your browser -nothing is sent to any server.