DevKits

Cron Expression Generator — Build Cron Schedules Visually

Build cron expressions from a friendly UI — every N minutes, daily at HH:MM, weekdays only, weekly, monthly, yearly. Preview the next 5 runs and a plain-English description. 100% local.

Last updated:

Parameters

Cron expression

0 9 * * *

At 9:00.

Next 5 runs (your local time)

  • 1.Tue, Jul 21, 2026, 09:00 AM
  • 2.Wed, Jul 22, 2026, 09:00 AM
  • 3.Thu, Jul 23, 2026, 09:00 AM
  • 4.Fri, Jul 24, 2026, 09:00 AM
  • 5.Sat, Jul 25, 2026, 09:00 AM

Pick a schedule preset (every N minutes, daily, weekly, weekdays only, custom, …) and get a standard 5-field cron expression with a plain-English description and the next 5 run times previewed in your local zone. Ready to paste into crontab, GitHub Actions, Vercel Cron, or a Kubernetes CronJob.

What is Cron Generator?

A cron expression describes a recurring schedule using five whitespace-separated fields: minute, hour, day-of-month, month, day-of-week. It looks cryptic — `0 9 * * 1-5` runs at 9 AM on weekdays — and getting the field semantics right (especially the OR between day-of-month and day-of-week) trips up almost everyone once. Rather than writing the expression by hand, a cron generator lets you pick a schedule intent from a UI and produces the correct expression. This tool covers the 10 most common schedule shapes plus a free-form custom mode, and always shows the plain-English description and the actual next-5 run times so you can verify the schedule before shipping.

How to build a cron expression online

  1. 1Pick a schedule preset — e.g. 'Weekly on a chosen day' or 'Every N minutes'.
  2. 2Fill in the parameters shown for that preset (minute, hour, day, N, …).
  3. 3The 5-field cron expression appears at the top of the results card, ready to copy.
  4. 4Read the plain-English description and next 5 run times to confirm the schedule matches your intent.
  5. 5Switch to 'Custom expression' to hand-write a cron string and use the same preview / description features.

Tips & Best Practices

  • cron on most servers runs in UTC — if you want 9 AM local, offset the hour field by your UTC offset (or verify the target scheduler's timezone setting).
  • day-of-month (field 3) and day-of-week (field 5) are OR'd when both are restricted — `0 9 1 * 1` fires on the 1st of the month AND on every Monday, not their intersection.
  • GitHub Actions ignores schedules more frequent than 5 minutes on public repos, and can be delayed under load. Don't use cron for hard real-time triggers.
  • For sub-minute schedules, use a systemd timer with OnUnitActiveSec or a long-running process; cron cannot do it.

Frequently Asked Questions

What cron syntax does the generator target?

Standard 5-field Unix cron: minute, hour, day-of-month, month, day-of-week. This matches crontab on Linux/macOS, GitHub Actions schedule triggers, Kubernetes CronJob spec.schedule, Vercel Cron, and most cloud schedulers.

Does it support 6-field (with seconds) or Quartz-style cron?

Not directly. Quartz and Spring's TaskScheduler use extended syntax (seconds field, L / W / # modifiers). For those systems, generate a standard 5-field expression here and adapt manually.

Are the preview times in my local zone or UTC?

The next-run preview is computed in your browser's local time zone. Note that cron on most servers runs in UTC — check your scheduler's docs and adjust the hour field accordingly.

What's the smallest interval I can schedule?

Once per minute (* * * * *). Cron cannot go finer than that — for sub-minute schedules, use a systemd timer or an application-level scheduler with sleep loops.

Is the expression uploaded anywhere?

No. Generation and preview run entirely in your browser as client-side JavaScript.

Related Tools