Skip to main content

Cron Analyzer - analyze cron schedules and overlaps

Every 10 minutes, every hour, every day.

Next runs · UTC

Calendar

September 2026 · UTC

0 runs

About this tool

Paste a cron expression and CronTool analyzes the schedule end-to-end: syntax validation, field-by-field breakdown, plain-English description, calendar of next runs, dialect compatibility and suggested variations. Free, runs in your browser, supports standard crontab plus AWS, Vercel, Quartz dialects.
For multi-cron analysis - checking whether several schedules overlap or distribute evenly across the hour - open the multi-cron visualizer instead. The calendar overlay makes problems visible in seconds.

What the cron analyzer checks

  • Syntax - every field validated against its accepted range.
  • Schedule shape - next 30+ runs plotted on a calendar.
  • Dialect compatibility - which schedulers accept this expression (standard cron, Quartz, AWS, Vercel).
  • Density - fires per day / week / month, with the calendar making it easy to eyeball.
  • Variations - “similar crons” cross-links suggest one-step tweaks.

Analyzing multiple crons at once

Production crontabs almost never have just one entry. The multi-cron visualizer accepts every cron in your file at once and plots them on the same calendar with color-coded labels. Common things it surfaces:

  • Overlaps - multiple jobs firing the same minute (often unintended).
  • Bunching - many jobs at the top of the hour (load spike risk).
  • Gaps - long quiet windows where you expected activity (maybe a job is misconfigured).
  • Off-hours - weekend/holiday fires you didn't intend.

Analyzer vs runtime monitoring

The analyzer is static - it tells you what should happen given the cron expression. It can't tell you what actually happened (job failures, retries, drift). For runtime monitoring you need a separate tool: cronitor.io, Healthchecks, the platform-native CloudWatch / Vercel logs / Kubernetes job status, etc. The analyzer's job is to make sure the schedule is right before the runs start.

Examples

  • 0 18 * * *
    Every day at 18:00
  • 0 */5 * * *
    Every 5 hours
  • 0 18 * * 1-5
    Weekdays at 18:00
  • 0 0 1 * *
    Once a month, on the 1st at midnight

Cheatsheet

Full cheatsheet
FieldReq.RangeWildcards
minuteyes0-59, - * /
houryes0-23, - * /
day of monthyes1-31, - * /
monthyes1-12 or JAN-DEC, - * /
day of weekyes0-6 or names; some dialects use 0-7 or 1-7 — see Dialects, - * /

Frequently asked questions

Syntax

How do I analyze a cron expression?

Paste the cron above. CronTool validates its fields, writes an English sentence, lists five next runs in the selected timezone, and plots the visible month. Use the multi-cron visualizer to analyze several schedules together.

What does the cron analyzer output?

It outputs editable fields with help, a plain-English sentence, lint messages, five next runs, a navigable month calendar, and Copy-as formats. It does not identify which scheduler dialect originally produced the expression.

Does the analyzer check cron field ranges?

Yes. It validates each token against its field, including minutes 0-59, hours 0-23, and day-of-month 1-31, then highlights the field that fails.

Cron field ranges

Timing

Can the analyzer detect schedule overlaps?

Yes, on the multi-cron page. It overlays the visible month's runs and automatically lists up to five source pairs that fire in the same minute, including a sample time and monthly count.

Multi-cron visualizer
Can the analyzer help with load distribution?

Yes. Put the schedules in the multi-cron view to expose top-of-hour bunching and overlapping pairs. Stagger fixed minutes, or use Jenkins H when Jenkins should choose a stable hashed minute. Expression: 0 * * * *

Open in editor
When does the analyzer warn about schedule density?

It shows an informational warning from 288 runs per day and a warning at 1,440 or more. The latter is every minute or several times a minute, depending on Extended mode. Expression: * * * * *

Open in editor

Days and months

Does the analyzer warn when both day fields are restricted?

Yes. In Standard mode it warns that Unix cron ORs day-of-month and day-of-week, so 0 9 1 * 1 runs on every Monday and every first of the month. Expression: 0 9 1 * 1

Open in editor
Cron day rules
What does the analyzer's step-reset lint mean?

It means the step restarts at its field boundary. */2 in day-of-month restarts at day 1 each month, while a month step restarts at January; neither is a continuous elapsed-time interval. Expression: 0 0 */2 * *

Open in editor
Step operator details
How does analysis distinguish parse-valid from runnable?

CronTool separately checks fixed day/month combinations. 0 0 30 2 * parses, but its status says the expression never fires because February 30 does not exist. Expression: 0 0 30 2 *

Open in editor

Timezones and DST

When does the analyzer show a DST warning?

For a fixed 01:00-03:00 hour, it warns when the selected timezone has a DST transition within 60 days. The message says whether the hour may be skipped or repeated. Expression: 30 2 * * *

Open in editor
Timezone and DST guide
How should I read the analyzer's timezone output?

Treat the selected IANA timezone as the clock used for next runs and calendar labels. Your production scheduler may use its host zone, UTC, or its own timezone setting.

Timezone reference

Platforms

Why does the analyzer suggest Extended mode for six fields?

Six pasted fields are ambiguous in Standard mode, so the lint offers to switch to Extended before issuing other advice. Extended mode handles seconds-first or year-bearing dialects.

Dialect matrix
Does the analyzer check ?, L, W, and # by dialect?

No. CronTool parses supported forms but has no dialect selector or compatibility verdict. Consult the dialect matrix, then use Copy as to produce a target format and read any conversion caveat.

Dialect matrix

Debugging

Which context should an analysis link preserve?

Preserve cron=<expression> and add mode=extended when needed. Add tz=<IANA zone> yourself if the recipient must see the same timezone; the Copy link action does not include it.

What can static cron analysis not prove?

Static analysis cannot prove that a command ran. CronTool cannot see your server's PATH, environment, permissions, logs, or process state, and it never executes commands.

Runtime debugging checklist

Write the cron here. Run it on Crontap.

Point Crontap at any URL. Pick any cron. Done.

WordPress, Shopify, Railway, Cloud Run, Vercel, HubSpot, Ghost, your own box. If it answers HTTP, Crontap can drive it on a clock you can read, in the timezone that actually matters, and page you when something breaks.

1.9k+ teams · Free forever tier · No credit card