Cron Expression Builder

Build a cron expression part-by-part, get a plain-English description, and preview the next five scheduled runs in your timezone. Handles ranges, lists, step values, and named days.

DomainProgrammingVersionv1.0.0Added2026-05-17

Build a cron expression field by field and see exactly what it means before it ever hits your crontab or CI pipeline. Set the minute, hour, day-of-month, month and day-of-week, pick your timezone, and the tool returns the assembled expression, a plain-English description, and a preview of the next five times it will actually fire.

Inputs
Minute
When in the hour. * = every minute. 0 = top of the hour. */15 = every 15 minutes. 0,30 = on the hour and half past.
Hour
Which hour(s), 24-hour clock. 9-17 = 9 AM to 5 PM. * = every hour.
Day of Month
1-31. * = every day. 1,15 = first and fifteenth. Combine with Day of Week for finer control.
Month
1-12 or JAN-DEC. * = every month.
Day of Week
0=Sunday, 6=Saturday. 1-5 = Mon–Fri. Names like MON-FRI also work.
Timezone
Cron expressions are timezone-agnostic by themselves — the timezone tells us when to fire in real time. Pick where your servers actually run.
Result
version1.0.0
POST /v1/programming-dev/cron-expression-builderView API docs →
curl -X POST https://toolsamurai.com/api/v1/programming-dev/cron-expression-builder \
  -H "Authorization: Bearer sk_live_•••••••••••••••" \
  -H "Content-Type: application/json" \
  -d '{
     "minute": "0",
     "hour": "9",
     "day_of_month": "*",
     "month": "*",
     "day_of_week": "1-5",
     "timezone": "Asia/Kolkata"
  }'
cronschedulercronjobautomationtimezonedevops
How it works

The method behind the numbers

A standard cron expression has five fields — minute, hour, day-of-month, month, day-of-week — each accepting a single value, a list (1,15), a range (9-17), a step (*/5), or a wildcard (*). The builder validates each field, assembles the expression, and translates it back into a sentence so you can sanity-check intent against syntax.

The next-run preview is timezone-aware, which is where most cron mistakes hide: a schedule that looks right in UTC can fire at the wrong local hour, and the day-of-month / day-of-week fields combine with an OR in standard cron, not an AND. Seeing the next five concrete timestamps in your chosen timezone catches both traps before they cause a 3 a.m. page.

Worked examples

See it in practice

Every weekday at 9:00 AM

A common business-hours job: minute 0, hour 9, Monday–Friday.

minute
0
hour
9
day_of_month
*
month
*
day_of_week
1-5
timezone
Asia/Kolkata
Every 15 minutes

A frequent polling schedule using a step value.

minute
*/15
hour
*
day_of_month
*
month
*
day_of_week
*
timezone
UTC
FAQ

Frequently asked questions

How do day-of-month and day-of-week interact?

In standard (Vixie) cron, when both fields are restricted the job runs when EITHER matches — it's an OR, not an AND. So '0 0 13 * 5' runs on the 13th and on every Friday, not only Friday the 13th. The next-run preview makes this explicit.

What does */5 mean?

A step value: 'every 5th'. In the minute field, */5 fires at minutes 0, 5, 10, … 55. You can combine steps with ranges too — 0-30/10 means minutes 0, 10, 20, 30.

Why does timezone matter for cron?

Cron fires in whatever timezone its host uses. A schedule authored mentally in your local time can run hours off on a UTC server, and daylight-saving transitions can skip or double a run. Previewing concrete timestamps in your timezone removes the guesswork.

Is this standard 5-field cron or the 6-field variant?

It builds the classic 5-field crontab expression used by Unix cron, most CI systems, and Kubernetes CronJobs. The 6-field form (with seconds) used by some schedulers like Quartz isn't produced here.

Embedding

Embed Cron Expression Builder on your site

Sign in to configure the live preview, theme, defaults, locked inputs, and analytics ID from the embed dashboard.