1. Home
  2. Tools
  3. Cron Expression Builder

Build a cron expression and see when it will actually run

Five fields of stars and numbers are easy to write and easy to get wrong. This builder lets you pick what you want in plain language, shows the next run times, and explains each field of the expression it produces.

Flavours
Unix, Quartz, AWS, GitHub
Next runs
Calculated locally
Fields
Explained inline
Cron Expression Builder Next run times are computed in your timezone
Schedule presets
In plain English

—

FieldValueMeaning
Next runs (local time)
Equivalent in other schedulers

Measured on Apple M4 Max: 4 µs parse and validate an expression (5-field expression) See the benchmarks

How to use it

  1. Describe the schedule Choose how often it should run — every minute, hourly, daily at a time, weekly on a day, monthly on a date — and the builder produces the expression.
  2. Check the next run times The next few execution times are listed in your local timezone, which is the fastest way to catch a schedule that fires at the wrong hour.
  3. Copy the right flavour Unix cron, Quartz, AWS EventBridge and GitHub Actions all differ. The equivalents are shown side by side so you paste the one your scheduler expects.

Questions people ask

What is the difference between cron and Quartz?

Quartz has seven fields, adding seconds and a year, and uses ? in place of unused day fields. Unix cron has five: minute, hour, day of month, month and day of week. AWS and GitHub Actions each have their own quirks on top of either one.

Why does my job not run on the day I expect?

Check the day-of-month and day-of-week rule first. When both are restricted, standard cron fires if either matches. Then check the timezone: the expression is evaluated in the scheduler’s timezone, which is often UTC.

What do the special characters mean?

An asterisk means every value, a comma separates alternatives, a hyphen defines a range, a slash means every nth value, and question marks in Quartz and AWS mean "no specific value" in that field.

Can I run a job every 90 seconds?

Not in standard Unix cron, which has a one-minute minimum granularity. You need Quartz for second-level scheduling, or a scheduler such as systemd timers that supports sub-minute intervals.

Are the next run times computed in my timezone?

Yes. They are shown in your browser’s local timezone, so you can confirm that a job intended for 03:00 is not actually firing at 11:00 where you are sitting.

What is the shortest useful cron schedule?

For most production systems, hourly at worst. A job that runs every minute costs 43,200 executions a month and is almost always a sign that the schedule was never checked.

Reference

The same schedule across schedulers

ScheduleUnix cronAWS EventBridge
Every hour, on the hour`0 * * * *``rate(1 hour)` or `cron(0 * * * ? *)`
Every day at 03:30`30 3 * * *``cron(30 3 * * ? *)`
Every Monday at 09:00`0 9 * * 1``cron(0 9 ? * MON-FRI *)`
Every 15 minutes`*/15 * * * *``rate(15 minutes)`

Details that catch people out

Day-of-month and day-of-week are OR-ed, not AND-ed

This is the classic cron trap. In standard Unix cron, a schedule that sets both day-of-month and day-of-week fires whenever either one matches, not when both do. If you want the intersection, you need a tool that supports it, or you split the job into two.

Timezones are not part of the expression

A cron expression is interpreted in the timezone of the scheduler, which on a Linux server is usually UTC. The next-run times here are shown in your local timezone so you can see the real effect.

Where this earns its keep

Setting up a scheduled job

Pick the schedule in words, confirm the next run times, and copy the expression in the flavour your scheduler wants. No guessing about which column is minutes.

Reading a cron expression you inherited

Paste an expression and get the field-by-field explanation plus the next run times, which is usually enough to work out why the job was never firing.

Finding a job that fires too often

The most expensive cron bug is a job that was meant to run daily and runs every minute. Seeing the next ten run times makes that obvious instantly.

Guides that go deeper

Last reviewed 2026-10-09. Every tool on DevSnap runs entirely in your browser, so whatever you paste here never reaches a server.