Skip to content
MoneyDeck

Cron Expression Generator

Pick a schedule, get the cron expression and its next run times

Updated · Free, no signup

Cron expression

0 9 * * 1-5

Schedule in plain English

Every weekday (Monday to Friday) at 09:00

Crontab line

0 9 * * 1-5 /usr/local/bin/backup.sh

Next run

Thu 2026-01-01 09:00

Upcoming runs

Thu 2026-01-01 09:00
Fri 2026-01-02 09:00
Mon 2026-01-05 09:00
Tue 2026-01-06 09:00
Wed 2026-01-07 09:00

Runs per active day

1

Fields of your expression

FieldValueAllowed
Minute00–59
Hour90–23
Day of month*1–31
Month*1–12
Day of week1-50–6 (0 = Sunday)

About the Cron Expression Generator

This cron expression generator builds the five-field schedule string used by Linux crontab, Kubernetes CronJobs, GitHub Actions and most job schedulers (AWS EventBridge and Quartz use their own six- or seven-field variants). Pick a pattern — every N minutes, every N hours, daily, weekdays, selected days of the week, a day of the month or once a year — set the time, and the tool writes the expression, a plain-English summary and a ready-to-paste crontab line with your command.

To check the schedule really does what you expect, it lists the next run times from a start date you choose. Switch to Custom to type each field yourself (ranges like 9-17, lists like 1,15 and steps like */10 are supported); the expression is validated field by field and invalid values are reported instead of silently producing a wrong schedule.

Times are wall-clock times in whatever time zone the cron daemon runs in — usually the server’s local zone or UTC — and the preview ignores daylight-saving jumps. Quartz and Spring use a six-field format with seconds; this tool produces the standard five-field format.

How to use the cron expression generator

  1. 1Choose how often the job should run from the Run menu.
  2. 2Set the interval, time, weekdays or day of month that appear.
  3. 3Enter the command to get a complete crontab line.
  4. 4Check the upcoming run list to confirm the schedule.
  5. 5Copy the expression into crontab -e, your CI file or scheduler.

Formula and method

minute hour day-of-month month day-of-week e.g. 0 9 * * 1-5

A standard cron expression has five space-separated fields. Each field is either * (every value), a single number, a range such as 9-17, a list such as 1,15 or a step such as */15 (every 15th value starting from the lowest). Day of week runs 0–6 with 0 = Sunday (7 is also accepted as Sunday by most crons).

The generator maps each preset to fixed fields — for example “every weekday at 09:00” becomes minute 0, hour 9, any day of month, any month, days 1-5. Next runs are found by scanning forward day by day from your start time and listing each matching hour and minute. When both day-of-month and day-of-week are restricted, a day matches if either one matches (Vixie cron rule).

*
Every allowed value
a-b
Range from a to b inclusive
a,b
List of values
*/n
Every nth value from the start of the range

Worked examples

Weekdays at 9 am

Minute 0, hour 9, any day of the month, any month, days 1-5 (Monday to Friday). 1 January 2026 is a Thursday, so the first run is that morning; the next ones are Friday 2 January and then Monday 5 January.

Every 15 minutes

*/15 in the minute field means minutes 0, 15, 30 and 45. That is 4 runs an hour × 24 hours = 96 runs a day. The preview starts after 00:00, so the first run listed is 00:15.

Monday, Wednesday and Friday evenings

Selected days are written as a list, 1,3,5. Starting on Thursday 1 January 2026, the first matching day is Friday 2 January at 18:30.

Day 31 of each month

Cron only fires on months that have a 31st. February and April are skipped, so after 31 January the next runs are 31 March and 31 May — use day 28 or a script check if you need month-end.

Frequently asked questions

What does */5 mean in cron?+

A slash sets a step. */5 in the minute field means every fifth minute starting at 0 — 0, 5, 10 … 55 — so the job runs 12 times an hour. 10-30/5 would mean minutes 10, 15, 20, 25 and 30.

How do I run a cron job every day at midnight?+

Use 0 0 * * * (minute 0, hour 0, every day). Many crons also accept the shortcut @daily or @midnight. Remember the time is in the cron daemon’s time zone, often UTC on servers and in cloud schedulers.

Is Sunday 0 or 7 in cron?+

Both. Standard cron numbers days 0–6 starting with Sunday = 0, and Vixie cron and most modern implementations also accept 7 as Sunday. Names such as SUN, MON and FRI are accepted too.

How do I run a job on the last day of the month?+

Standard five-field cron has no “last day” symbol. Common workarounds are scheduling on days 28–31 and checking in the script whether tomorrow is the 1st, or using a scheduler that supports L, such as Quartz.

Why does my cron expression have six fields?+

Quartz, Spring and some cloud schedulers add a seconds field at the start (and sometimes a year at the end). Linux crontab, Kubernetes and GitHub Actions use the standard five fields this generator produces.

What time zone does cron use?+

Classic cron uses the system time zone of the server. Kubernetes CronJobs default to the controller’s zone unless you set timeZone, and GitHub Actions schedules are evaluated in UTC by default, so convert your local time first.

Related tools