Skip to main content
UtilityStack

Cron Generator — build and preview cron schedules

Pick a preset or fill in the five fields manually. The tool shows the cron expression, a plain-English description, and the next five times the schedule will fire (UTC).

Preset:
Cron expression
0 9 * * 1-5

At 09:00, on weekday 1-5 (0=Sun)

Next 5 fires
  • 2026-05-08 09:00 UTC
  • 2026-05-11 09:00 UTC
  • 2026-05-12 09:00 UTC
  • 2026-05-13 09:00 UTC
  • 2026-05-14 09:00 UTC

What is a cron expression?

A cron expression is a five-field schedule string (minute, hour, day-of-month, month, day-of-week) used by Unix's cron daemon since the 1970s and inherited by every modern scheduler — systemd timers, Kubernetes CronJobs, GitHub Actions schedules, AWS EventBridge, BullMQ, and most CI/CD systems all read it.

Each field accepts a number, a wildcard (*), a range (1-5), a list (1,3,5), or a step (*/15). The expression '0 9 * * 1-5' means 'at 09:00 on every Monday through Friday'. This generator helps you compose the expression by typing each field with hints, then validates by computing the next firing times in your timezone.

How to use this tool

  1. Either click a preset (every minute, daily midnight, weekdays 09:00…) to load a starting point, or type each field directly.
  2. Field hints remind you of the allowed range and syntax. The expression at the top updates live; if it's invalid, the next-fires list goes empty and the description disappears.
  3. Read the human-readable description and the next five fire times to confirm the expression matches your intent. Click Copy to grab the cron string and paste it into your scheduler.

Frequently asked questions

What's the field order?

Minute (0-59), hour (0-23), day-of-month (1-31), month (1-12), day-of-week (0-6, where 0 = Sunday). Some systems extend the format with a seconds field at the start (Quartz, Spring); this tool produces the standard 5-field POSIX form.

Can I combine ranges and lists?

Yes. '0,30 9-17 * * 1-5' means at minute 0 and 30 of hours 9 through 17 on weekdays. You can also combine a step: '*/15 8-20 * * *' fires every 15 minutes between 08:00 and 20:00.

What does '* * * * *' do?

Fires every minute. Useful as a sanity-check schedule when developing, but rarely what you want in production — most jobs become 'thundering herd' if they run that often.

Are the next-fire times in my timezone or UTC?

UTC. Display in UTC keeps the schedule unambiguous when comparing with server logs or other systems. To check what the cron means in your local time, mentally add or subtract your offset from the UTC time shown.

Why don't my fires happen exactly on the dot?

Cron schedules a job at the start of the matching minute. The actual run starts a few seconds after, depending on system load and other queued jobs. If you need sub-minute precision, cron is the wrong tool — use a job runner with sub-second resolution.

Common use cases

Where dialing in a cron expression saves real frustration.

Database backups

'0 3 * * *' runs at 03:00 every night, when load is lowest. Combine with a retention policy and you have a low-cost backup pipeline that nobody has to think about.

Periodic reports

'0 9 * * 1' fires every Monday at 09:00 — perfect for a weekly summary email landing in your team's inbox at the start of the work week.

Cache warming or pre-fetch

'*/5 * * * *' every five minutes is the sweet spot for cache refreshes that need to be fresh but not so frequent they're hammering the source.

Cleanup of old records

'0 4 * * 0' once a week (Sunday 04:00) is enough for log rotation, expired session purges, or temp file cleanup that doesn't need to happen daily.

Tips and shortcuts

Habits that make cron expressions less error-prone.

Stagger your jobs

If you have multiple cron jobs and they all start at minute 0, your server gets a load spike every hour. Start them at different minutes (0, 7, 13, 19…) to spread the work and avoid contention.

Beware day-of-month and day-of-week interaction

When both DOM and DOW are set, classic cron fires when EITHER matches (an OR), not both. Most modern schedulers (Quartz, Kubernetes) honour both as AND. Test on your specific platform if you set both.

Comment your crontab

Cron expressions are write-once read-many. Add a # comment line above each entry explaining what the job does — your future self in three months will thank you.

Pick a sensible time zone

Cron daemons honor the system timezone, which can flip between standard and daylight saving. For schedules that must run at the same wall-clock hour year-round, pick a fixed-offset timezone (UTC) and convert in your job code if needed.

Ähnliche Tools