Cron Builder

Read and write cron expressions in plain English, with the next run times in any timezone.

Every 5 minutes

Read as a crontab line, where Sunday is 0 or 7.

minutehourday of monthmonthday of week
*/5****

Next runs

Working out the next runs from your clock…

Runs in your browser. Nothing you enter is sent anywhere.

How to use it

Type into Cron expression, or pick a chip like Weekdays at 09:00. It’s read as you type; nothing is uploaded.

  • The line under the chips describes the schedule in English, with a 24-hour clock, and the next says which format was read.
  • The table splits it into fields.
  • Timezone starts on your browser’s zone.
  • Next runs lists the next five times in that zone and how far away each is, updated every 30 seconds; a line says why when there are fewer.

An invalid expression shows one error line instead. Copy copies the box as typed.

Examples

Weekdays at 09:00 with Timezone America/New_York, at 10:00 UTC on October 14, 2026:

0 9 * * 1-5

It reads At 09:00, Monday through Friday, and an en-US browser lists:

Wed, Oct 14, 2026, 09:00 AM  in 3 hours
Thu, Oct 15, 2026, 09:00 AM  tomorrow
Fri, Oct 16, 2026, 09:00 AM  in 2 days
Mon, Oct 19, 2026, 09:00 AM  in 5 days
Tue, Oct 20, 2026, 09:00 AM  in 6 days

That’s 13:00 UTC: New York is on UTC-4 until November 1.

An AWS EventBridge schedule, in UTC on October 14, 2026:

15 10 ? * 6L 2026

The ? makes it EventBridge order; it reads At 10:15, on the last Friday of the month, only in 2026:

Fri, Oct 30, 2026, 10:15 AM  in 16 days
Fri, Nov 27, 2026, 10:15 AM  next month
Fri, Dec 25, 2026, 10:15 AM  in 2 months

Then The year field allows only 2026, and no later run falls in those years.

Daily at 02:30 in America/New_York, at 12:00 UTC on March 6, 2026:

30 2 * * *
Sat, Mar 7, 2026, 02:30 AM  in 20 hours
Sun, Mar 8, 2026, 03:30 AM  in 2 days
Mon, Mar 9, 2026, 02:30 AM  in 3 days
Tue, Mar 10, 2026, 02:30 AM  in 4 days
Wed, Mar 11, 2026, 02:30 AM  in 5 days

Clocks jump from 02:00 to 03:00 on March 8, so that day’s run is listed at 03:30. The EventBridge form, 30 2 * * ? *, skips it.

A range across midnight, 0 22-2 * * *, gives The hour range "22-2" runs backward. Split it in two, like "22-23,0-2".

Good to know

  • The five fields follow POSIX crontab: minute 0-59, hour 0-23, day of month 1-31, month 1-12, day of week 0-6 from Sunday. 7 also means Sunday, and names like JAN or mon-fri work. Steps, names and nicknames are Vixie cron extensions.
  • Restricting both day fields means OR, as POSIX specifies: 0 0 13 * 5 runs every Friday and every 13th. For Friday the 13th only, schedule 0 0 13 * * and test the weekday in the command: [ "$(date +\%u)" = 5 ] && ./job.sh (% is escaped in a crontab). croner’s AND, +FRI, is rejected.
  • ? means any day and goes only in a day field: 0 12 ? * 1 is 0 12 * * 1.
  • Steps restart every hour. */7 runs at :56 and then :00, four minutes later. An hour range includes its last hour: */15 9-17 * * * runs until 17:45.
  • Six fields are read two ways. A ? as the third or fifth field, or a year last, makes them AWS EventBridge: minute, hour, day of month, month, day of week, year. Otherwise seconds come first, as in Spring. Seven fail.
  • EventBridge’s own rules apply: 1-7 is Sunday to Saturday, L alone is Saturday, years are 1970-2199, and one day field must be ?. Leave out cron( and ). Quartz also counts Sunday as 1, so its 2 (Monday) is Tuesday here.
  • L, W and # work: L is the last day of the month, 15W the weekday nearest the 15th, 5L or 5#L the last Friday, 1#1 the first Monday. Vixie cron and cronie reject them.
  • Nicknames like @weekly expand to five fields. @reboot isn’t a schedule, so it fails with This one has 1.
  • A repeated hour doesn’t repeat runs. When clocks fall back on November 1, 2026 in America/New_York, */30 * * * * goes from 01:30 straight to 02:00. Daemons differ: avoid 01:00-03:00 local time, or use UTC.
  • A date that never comes, like 0 0 31 2 *, says This schedule never runs; 0 0 29 2 * waits for February 29, 2028.
  • Expressions are limited to 200 characters.

Questions

What is the cron expression for every 5 minutes?

*/5 * * * *. It runs at :00, :05, :10 and so on, not five minutes after you install it; 2-59/5 * * * * shifts it to :02, :07, :12.

What do the fields of a crontab line mean?

In order: minute, hour, day of month, month and day of week, then the command. 30 3 * * 0 /usr/local/bin/backup runs at 03:30 every Sunday. * means every value, a-b a range, a,b a list and /n a step. System crontabs add a user name before the command.

How do I see when a cron job will run next?

Paste its schedule here and set Timezone to the cron daemon’s zone; Next runs shows the next five. cronie has no command that prints upcoming runs: crontab -l only lists the entries.

What timezone does cron use?

The cron daemon’s local time zone, often UTC on servers. cronie reads a CRON_TZ variable in the crontab, Kubernetes CronJobs take spec.timeZone, and GitHub Actions schedules are in UTC.