Skip to main content

Cron Expression Generator

Build a valid 5-field cron expression by pasting one directly, or switch to simple schedule presets — every N minutes, daily, weekly, or monthly — without needing to know cron syntax. A plain-English description shows exactly what the expression runs.

Input

Enter a complete 5-field cron expression: minute hour day-of-month month day-of-week.

Output

Was this helpful?

Guides

A cron expression is the five-field schedule string that cron, GitHub Actions, Kubernetes CronJobs, and countless task schedulers use to decide when a job runs. The syntax is compact and easy to get backwards — this tool builds a valid expression for you from plain-English choices, so you don't have to remember field order or symbol meaning.

The five fields

A standard cron expression always has five space-separated fields, in this order:

minute   hour   day-of-month   month   day-of-week
0-59     0-23   1-31           1-12    0-6 (0 = Sunday)

For example, 30 9 * * * means "at minute 30 of hour 9, every day of every month, on any weekday" — in other words, every day at 09:30.

The operators

  • * — any value ("every"). * * * * * runs every single minute.
  • , — a list. 1,15,30 * * * * runs at minutes 1, 15, and 30.
  • - — a range. 1-5 * * * * runs at every minute from 1 through 5.
  • / — a step. */15 * * * * runs every 15 minutes (0, 15, 30, 45).

These operators can combine within a single field (e.g. 1-5,15-20), and cron day-of-week uses 0 for Sunday through 6 for Saturday — the same convention as JavaScript's Date.getDay().

How to use it

Pick a Schedule Type:

  • Every N Minutes — set an interval (1–59) and the tool builds a */N minute field, e.g. every 15 minutes.
  • Daily — pick an hour and minute; the job runs at that time every day.
  • Weekly — pick a day of the week plus an hour and minute.
  • Monthly — pick a day of the month (1–31) plus an hour and minute.
  • Custom (advanced) — the default. Enter a complete 5-field expression directly into Full Cron Expression, using any combination of *, ,, -, and /. Use this for anything the presets above don't cover, like "every 2 hours on weekdays" (0 */2 * * 1-5).

The Cron Expression field updates automatically and includes a copy button. A What This Means line underneath translates the expression back into plain English so you can double-check it matches what you intended before pasting it into a crontab, CI config, or job scheduler.

FAQ

Does this support seconds (a 6-field expression)? No — this tool generates the standard, widely-supported 5-field POSIX cron format. Some schedulers (like Quartz) add a leading seconds field; if yours does, prepend 0 (or your desired second) manually.

What if I leave the Full Cron Expression blank, or paste something invalid? In Custom (advanced) mode, the field is used as-is only when it contains exactly five whitespace-separated values; anything else (blank, or too few/too many fields) falls back to * * * * * ("every minute, every day"), so the generated expression is guaranteed to be syntactically valid even with incomplete input.

Can I schedule something for multiple days or a range of months? Yes, in Custom (advanced) mode — use a list (1,3,5) or range (1-5) in the relevant field, same as you would in a real crontab.

What timezone does the schedule run in? Cron expressions themselves are timezone-agnostic — the actual timezone depends on the system or service running the job (server local time, UTC, or a timezone you configure separately in tools like GitHub Actions or Kubernetes).

Privacy

Everything runs locally in your browser — the schedule you build is never sent to a server or stored anywhere.

croncron expressioncrontabcron jobschedulerschedule generator

Use it from code

From 3 credits per call

REST API

curl -X POST https://api.iotools.cloud/v1/tool/cron-expression-generator \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "scheduleType": "custom",
    "rawCronExpression": "0 */2 * * 1-5"
  }'

Swap in your own key from your account. The tool's fields are the body — no wrapper.

Ask an AI agent

Use the IOTools `cron-expression-generator` tool (Cron Expression Generator) on this input:

YOUR_INPUT_HERE

Paste this at any agent connected to the IOTools MCP server, then add your input.

Love the tools? Lose the ads.

One payment clears every ad from your account, for good. No subscription, no tracking.