UtilitySansar
Developer

Cron Expression Builder & Explainer

Build a cron schedule with a step-by-step picker — every N minutes, hourly, daily, weekly, monthly, or yearly — and watch the expression, plain-English explanation, and next runs update live. Paste an existing cron to drive the builder in reverse, or switch to advanced mode for Quartz L/W/# specials. Copy the result as a crontab line, Kubernetes CronJob, Spring @Scheduled, AWS EventBridge cron(...), or GitHub Actions schedule.

  • Published
  • Last reviewed

Tool Summary Answer Block

This tool accepts structured input and returns deterministic output in the browser with no server upload.

Tool name
Cron Expression Builder & Explainer
Input intent
Provide source content to transform, validate, or analyze.
Output intent
Receive normalized output suitable for copy, reuse, or debugging.
Example input
*/15 9-17 * * 1-5
Example output
Runs every 15 minutes past hour 9-17 on Monday, Tuesday, Wednesday, Thursday, Friday.

This expression uses syntax the builder can't represent (Quartz specials, seconds, step lists). Edit the raw expression below — the explainer and preview still work.

Runs every 15 minutes past hour 9, 10, 11, 12, 13, 14, 15, 16, 17 on Monday, Tuesday, Wednesday, Thursday, Friday.
Minute*/15
Hour9-17
Day (month)*
Month*
Day (week)1-5

Next 10 runs (UTC)

  • Thu, Jun 11, 2026, 09:00:00in 5h
  • Thu, Jun 11, 2026, 09:15:00in 5h
  • Thu, Jun 11, 2026, 09:30:00in 5h
  • Thu, Jun 11, 2026, 09:45:00in 6h
  • Thu, Jun 11, 2026, 10:00:00in 6h
  • Thu, Jun 11, 2026, 10:15:00in 6h
  • Thu, Jun 11, 2026, 10:30:00in 6h
  • Thu, Jun 11, 2026, 10:45:00in 7h
  • Thu, Jun 11, 2026, 11:00:00in 7h
  • Thu, Jun 11, 2026, 11:15:00in 7h
*/15 9-17 * * 1-5 /path/to/command
Cron syntax cheatsheet
┌── minute (0-59)
│ ┌── hour (0-23)
│ │ ┌── day of month (1-31)
│ │ │ ┌── month (1-12 or JAN-DEC)
│ │ │ │ ┌── day of week (0-6 or SUN-SAT; 7 also = Sunday)
│ │ │ │ │
* * * * *
  • * — every value
  • , — list (e.g. 1,15,30)
  • - — range (e.g. 9-17)
  • / — step (e.g. */15)
  • Aliases: @yearly, @monthly, @weekly, @daily, @hourly
  • Quartz extras (mode = Quartz): L last, LW last weekday, 15W nearest weekday, 6#2 2nd Friday, ? no-specific-value

Tool Introduction

Build a cron schedule with a step-by-step picker — every N minutes, hourly, daily, weekly, monthly, or yearly — and watch the expression, plain-English explanation, and next runs update live. Paste an existing cron to drive the builder in reverse, or switch to advanced mode for Quartz L/W/# specials. Copy the result as a crontab line, Kubernetes CronJob, Spring @Scheduled, AWS EventBridge cron(...), or GitHub Actions schedule.

Tool Overview

Cron expressions look intimidating but break down into a small set of fields. Standard (Unix) cron uses 5: minute, hour, day-of-month, month, and day-of-week. The 6-field dialect (Spring, AWS EventBridge in seconds mode) prepends a seconds field. Quartz adds a year field plus L (last), W (nearest weekday), and # (nth weekday) for more expressive calendar rules. Each field accepts numbers, ranges (1-5), lists (1,15,30), wildcards (*), step syntax (*/5), and named tokens like JAN-DEC or MON-FRI. This tool wraps that surface area in a builder for the common cases, falls back gracefully to a raw editor for advanced syntax, and always shows the parsed dialect, the upcoming runs in your chosen IANA timezone, and ready-to-paste snippets for the most common runtimes.

Use Cases

  • Use Cron Expression Builder & Explainer when you need fast build cron schedules with a step-by-step picker, then read the plain-english explanation, the next runs in any iana timezone, and ready-to-paste snippets for crontab, kubernetes cronjob, spring @scheduled, aws eventbridge, and github actions. standard, 6-field, and quartz dialects (with l, w, # specials) all supported.
  • Handle developer workflows directly in the browser with no install required.
  • Support SEO long-tail intent by covering quick checks, troubleshooting, and one-off conversions.

Input/Output Examples

Input Intent
*/15 9-17 * * 1-5
Output Intent
Runs every 15 minutes past hour 9-17 on Monday, Tuesday, Wednesday, Thursday, Friday.
Input Intent
@daily
Output Intent
Runs at minute 0 past hour 0.
Input Intent
0 0 0 L * ?
Output Intent
Quartz: runs at midnight on the last day of every month.
Input Intent
0 0 12 ? * FRI#2
Output Intent
Quartz: runs at noon on the second Friday of every month.

FAQ

Which cron dialects are supported?+
Three: classic 5-field POSIX (Unix crontab), 6-field with seconds (Spring's @Scheduled, AWS EventBridge seconds mode), and Quartz with optional 7th year field plus L, LW, W, #, and ? specials.
Are the next runs in UTC or local time?+
Whichever timezone you pick. The tool starts in your browser's local zone but accepts any IANA tz name — common picks are pre-filled in the dropdown.
How does day-of-month interact with day-of-week?+
In standard cron, when both fields are restricted the schedule fires if EITHER matches (POSIX 'OR' semantics). In Quartz one of the two must be ? since both restrictions wouldn't make sense together.
Can I use JAN-DEC or MON-FRI instead of numbers?+
Yes. Named tokens are accepted (case-insensitive) for month and day-of-week in every dialect.
What's the difference between 0-6 and 1-7 for day-of-week?+
Standard cron uses 0-6 with 0 = Sunday (7 is also accepted as Sunday for compatibility). Quartz uses 1-7 with 1 = Sunday. The tool applies the right convention based on the selected dialect.
What do L, LW, W, and # mean (Quartz only)?+
L = last day of month, LW = last weekday of month, 15W = nearest weekday to the 15th, 6#2 (or FRI#2) = second Friday of the month. ? in either day-of-month or day-of-week means 'no specific value' and is required when the other is restricted.

Explore More Tools

Discover related utilities in the Developer category below.

Browse all Developer

Related tools

Handpicked utilities you might find useful