crontab — 2 tools ● LIVE
Input · BUILD 5 FIELDS

The expression, its plain-English reading and the next six runs update as you build — the countdown never stops.

Output · schedule LIVE
Fires / matching day—MIN × HOUR
Next run—FROM NOW
Next after—THE ONE AFTER
Status—WAITING

Developer Tools · Group 15 of 19

Cron Tools.

Five fields, no mystery. Build an expression field by field — every / at / interval / range, with presets for the schedules everyone eventually writes — or paste one in and have it explained: the verdict, a plain-English reading, each field expanded to its actual values, and the next six run times. And at the top of it all, a countdown to the next run that never stops ticking. Evaluated locally, in your own timezone. Nothing is uploaded, nothing is stored.

  • Tools02
  • Fields05
  • EngineVixie cron
  • Backendnone
  • Costfree
In order, 01 → 02

Build it, or have it explained.

( 01 )

Each of the five fields — minute, hour, day, month, weekday — gets its own control with four ways to fill it: every value (*), specific values or a comma list, an interval (*/15), or a range with an optional step (1-5). The expression assembles itself at the top of the output pane, and beneath it the bench tells you what you've actually scheduled: a plain-English sentence, the next six concrete run times in your timezone, and a live countdown to the first one. Quick presets cover the classics — every minute, hourly, weekdays at nine, monthly on the 1st — so you're never starting from a blank line.

Example · weekdays at nine

minute: at 0 · hour: at 9 · weekday: range 1-5

0 9 * * 1-5 "At 09:00 on Monday–Friday" — next run counted down live.

Use it for crontab entriesCI/CD schedulescloud schedulersbackups

Paste any expression — one you wrote, one you inherited, one you found in a config file at 2 a.m. — and the bench tells you exactly what it means. First the verdict: five fields parsed, or the precise reason it doesn't compile. Then the plain-English reading, a field-by-field breakdown that expands */15 into 0 15 30 45 and 1-5 into Mon–Fri, and the next six times it will actually fire, in your timezone, with a countdown ticking toward the first. Month and weekday names are accepted, and the day/weekday OR rule is handled the way real cron does it.

Example · inherited crontab line

*/15 8-18 * * 1-5

"Every 15 minutes during hours 08–18 on Monday–Friday" fields expanded · next six runs listed · countdown live.

Use it for inherited crontabspre-deploy checksdebuggingdocumentation

Scheduling rules · the five fields are minute (0–59), hour (0–23), day (1–31), month (1–12 / JAN–DEC) and weekday (0–7 / SUN–SAT, where 0 and 7 are both Sunday) · each field accepts *, single values, comma lists, ranges and steps · when BOTH day-of-month and day-of-week are restricted, a day matches if EITHER matches — the classic Vixie cron OR rule · next runs are computed in your machine's timezone, minute by minute, skipping whole months and days when they can't match · the countdown re-evaluates locally every second · an expression that can't fire (like Feb 31) reports no runs rather than pretending · nothing you build or paste leaves the tab

The privacy promise

Schedule anything. We couldn't see it even if we wanted to.

This page has no backend and no database. Every field expanded, every run time computed and every second counted down just now happened inside your own browser tab, in your own timezone — your schedule never traveled a single centimeter of cable. Close the page and it's gone for good.

✕ SERVER · DATABASE · LOGS · ANALYTICS
  • Databasenull
  • Backendnone
  • Schedules uploaded0
  • Session logs0
Questions

Asked often, answered plainly.

( 02 )
What are the five cron fields?

In order: minute (0–59), hour (0–23), day of month (1–31), month (1–12 or JAN–DEC), and day of week (0–7 where both 0 and 7 are Sunday, or SUN–SAT). Each field accepts * for "every value", single values, comma lists like 0,15,30, ranges like 1-5, and steps like */15. The generator builds each field for you; the parser expands each one back to its actual values.

Why does my day-of-month and day-of-week combination behave unexpectedly?

Because of cron's famous OR rule: when BOTH the day-of-month and day-of-week fields are restricted (neither is *), a day matches if EITHER one matches. So "0 0 1 * 5" fires on the 1st of the month AND on every Friday, not "the 1st only if it's a Friday." If you want one to gate the other, one of the two fields must be *. The parser follows this rule exactly, the way real cron does.

Can I use names like MON or JAN?

Yes. Month names JAN through DEC and weekday names SUN through SAT are accepted in the month and day-of-week fields, in any case, and can be mixed with numbers and ranges. The parser expands them to their numeric values in the field breakdown, so MON–FRI and 1-5 are treated identically.

What does */15 actually mean?

It's a step over the full range: start at the field's minimum and take every 15th value. In the minute field that's 0, 15, 30 and 45 — every quarter hour. In the hour field, */6 means 0, 6, 12 and 18. The parser's field breakdown shows you the expanded list for any step, range or list you give it.

Is my data saved anywhere?

No. Stack has no backend and no database. The schedule is evaluated inside your browser tab and vanishes the moment you close or refresh the page. Nothing is logged, because nothing is ever collected.