Skip to content
Developer

Cron Expression Generator

Build cron schedules visually and preview next run times.

cronschedulecrontabjobtimer
Loading tool…

About the Cron Expression Generator

The Cron Expression Generator builds five-field cron schedules visually and proves they work before you ship them. Each of the five fields — minute, hour, day-of-month, month, and day-of-week (0 = Sunday) — gets its own row with a mode selector: Every (*), Specific, Range (a-b), Step (*/n), or List (a,b,c), with number inputs validated against each field's legal range and month and weekday names shown as you type. Ten one-click presets cover the schedules people actually need, from Every minute through Hourly and Weekdays 8:30am to Weekends noon. The generated expression renders in a large monospace box with a live Valid/Invalid status, a plain-English description of each field, and a Copy button; below it, the Next 5 executions card computes concrete upcoming run times from your local clock using standard cron semantics, where day-of-month and day-of-week combine as OR when both are restricted. A quick-reference strip documents field order and the */n, a-b, a,b,c syntax. For crontab entries, GitHub Actions schedules, or Kubernetes CronJobs, it removes the guesswork.

Cron Expression Generator examples

Input
Preset: Weekdays 8:30am
Output
30 8 * * 1-5
Note: Minute 30, hour 8, every day of month, every month, Monday through Friday — the preset fills all five fields for you.
Input
Minute: Step (*/n) with n = 15, other fields Every
Output
*/15 * * * *
Note: The Every 15 min preset produces a step expression; the Next 5 executions card lists the concrete upcoming run times.
Input
Minute: Specific 0 · Hour: Specific 0 · Day of month: Specific 1
Output
0 0 1 * *
Note: The 1st of month preset — a valid expression plus a plain-English description: minute 0 · hour 0 · day of month 1 · every month · every day of week.

How to use the Cron Expression Generator

  1. 1

    Click a preset button (e.g. Every 15 min) to start from a known-good schedule.

  2. 2

    For each of the five fields, choose a mode: Every, Specific, Range, Step, or List.

  3. 3

    Fill the numeric inputs that appear for the chosen mode — the row validates the range live.

  4. 4

    Copy the generated cron expression with the Copy button or download it as cron.txt.

  5. 5

    Check the Next 5 executions card to confirm the schedule fires when you expect.

Common use cases

  • Building a crontab entry without memorizing the five-field order.
  • Generating GitHub Actions cron schedules for CI triggers.
  • Creating Kubernetes CronJob schedules for periodic jobs.
  • Verifying what a vendor-supplied cron string actually does by rebuilding it visually.
  • Choosing between day-of-month and day-of-week semantics with the preview.
  • Documenting a schedule with the plain-English field descriptions.

Best practices

  • Remember this tool emits five-field cron (no seconds); Quartz and some systems need six fields.
  • Day-of-week is 0–6 with 0 = Sunday here — double-check the platform, since some systems treat 0 as Monday.
  • When both day-of-month and day-of-week are restricted, cron fires when either matches (OR), which surprises people — use the preview to confirm.
  • Validate the Next 5 executions against your own timezone expectations before deploying.
  • Prefer step expressions like */15 over long lists for readability in stored crontabs.
  • For schedules that never fire within a year (like Feb 31), the tool reports it — trust the empty-state message.

Tips

  • Start from the closest preset — it fills all five fields correctly and you only tweak one or two.
  • Read the plain-English description under the expression before copying; it catches wrong-field mistakes.
  • Check the Next 5 executions after any change to feel the rhythm of the schedule.
  • Keep day-of-month or day-of-week at * unless you have a specific reason, to avoid OR-matching surprises.

Frequently asked questions

The standard five-field order: minute, hour, day-of-month, month, and day-of-week, with day-of-week 0–6 where 0 is Sunday. The quick-reference panel at the bottom restates this so you can map expressions to other tools confidently.

The tool expands each field into its set of allowed values and walks minute by minute from the current local time, matching all five fields and capping the search at one year ahead. It shows the next five matches, or an empty state if none exist.

That is standard cron semantics: when both fields are restricted, a day matches if either field matches. Most cron implementations (including Vixie cron and GitHub Actions) behave this way, which is why the preview is so valuable.

No — the generator builds expressions from the five field rows and presets; it does not parse arbitrary cron strings. Use the mode selectors to recreate a schedule and compare the resulting expression against the original.

Anything expecting standard five-field cron: Linux crontab, GitHub Actions schedule triggers, Kubernetes CronJob (five fields), and most CI systems. Quartz jobs add a seconds field, so prepend a seconds value if you target Quartz.

The field input is marked invalid, the generated expression shows a ? in that position, the status switches to Invalid, and the Copy button disables. Fix the value and the expression recovers instantly.

Explore more developer tools

Browse the full collection of developer tools on the hub, or jump back to all categories.

Related tools

Did this tool help?

Anonymous — one tap, no sign-up.