MUTools

Text

Cron Builder & Parser

The Cron Builder & Parser generates a cron expression from a visual schedule and, in reverse, explains any cron expression in plain English while listing its upcoming run times. Pick a frequency such as "every day at 9", "every weekday on the hour", or "every 5 minutes" and an expression like 0 9 * * * is built for you, ready to paste into a crontab.

Frequency
Time
:
Cron expressionmin hour day month weekday

What this means

Runs daily at 9:00.

Field breakdown

FieldValueRange
Minute00–59
Hour90–23
Day of month*1–31
Month*1–12
Day of week*0–6 (0=Sun)

Next runs

Time zone

No matching run times were found.

Common examples

Everything is processed in your browser and never sent to a server.

About Cron Builder & Parser

The Cron Builder & Parser generates a cron expression from a visual schedule and, in reverse, explains any cron expression in plain English while listing its upcoming run times. Pick a frequency such as "every day at 9", "every weekday on the hour", or "every 5 minutes" and an expression like 0 9 * * * is built for you, ready to paste into a crontab.

Any expression you enter is broken down into the five cron fields — minute, hour, day of month, month, and day of week — so you can see exactly what each part does even if you are unsure of the syntax. Next run times are calculated for the time zone you choose, so you can compare how a job on a UTC server lines up with your local time. Macros like @daily, steps like */5, ranges like 1-5, and lists like 9,18 are all supported.

It is handy for double-checking a schedule before a misconfigured job fires in the middle of the night. Every expression is processed locally and never sent to a server — it runs entirely in your browser.

How to use

  1. Choose a frequency: every minute, hour, day, week, month, or year.
  2. Set the time, weekdays, or day shown for that frequency, and the cron expression is built automatically.
  3. To inspect an existing expression, paste it straight into the input box (e.g. 0 9 * * 1-5).
  4. Read the plain-English meaning and the minute/hour/day/month/weekday field breakdown below it.
  5. Switch the time zone to confirm the list of upcoming run times matches your expectations.
  6. Click Copy to grab the cron expression and paste it into your crontab or scheduler.

Use cases

  • Engineers who need a crontab schedule but don't want to memorize the cron syntax.
  • Ops staff who want to confirm in plain language which day and time an existing expression fires.
  • Anyone checking what time a job on a UTC server actually runs in their local time zone.
  • Developers validating GitHub Actions schedules or batch cron settings against real next run times.
  • People learning how to write expressions with steps and ranges like "every 5 minutes" or "weekdays 9–18".

Notes

  • Only the standard five-field format (minute hour day month weekday) and macros such as @daily are supported. Six-field (with seconds) and Quartz formats are not.
  • Day of week is 0–6 (0 and 7 are Sunday). When both day-of-month and day-of-week are set, most cron implementations run when either matches.
  • @reboot runs once at startup, so no next run times are calculated for it.
  • Next run times are based on the selected time zone. Actual execution depends on your server's time zone, so verify against your production settings.
  • This tool only builds and parses cron expressions; it does not register or run any jobs. Add the generated expression to your own server.

FAQ

Is the cron expression I enter sent to a server?
No. Building, parsing, and calculating next run times all happen in your browser, so it is safe to use even for internal system schedules.
What do the five cron fields mean?
From left to right: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-6, 0=Sunday). Each field accepts * (every), */5 (steps), 1-5 (ranges), and 9,18 (lists). The tool breaks your expression down into these five fields.
Can I see the next run times in a specific time zone?
Yes. The time zone selector offers your browser's local zone plus common zones like UTC and Asia/Tokyo, so you can check what time a UTC server's job runs in your local time.
How do I write "every 5 minutes" or "every Monday"?
Every 5 minutes is */5 * * * *, every Monday at midnight is 0 0 * * 1, and weekdays at 9 is 0 9 * * 1-5. You can also generate the same expressions from the visual frequency picker, or load them from the Common examples list.
Are macros like @daily supported?
Yes. @yearly / @monthly / @weekly / @daily / @hourly are parsed and described with their next run times. @reboot only runs at startup, so it has no next run times.