FIRST CH TOOLS / 16 CRON EXPLAINER
Cron Expression Explainer & Next Run Checker
Paste a cron expression such as */15 * * * * and get a plain-English reading, a field-by-field breakdown, and the next run times. Time zones, @daily-style shorthands and six-field (seconds) expressions are all supported.
What It Means
Next Runs
Times are local to the time zone you selected. A server's cron normally runs in the machine's own time zone (often UTC, or whatever /etc/localtime says), so switch the selector to match your deployment before you trust the dates.
How to Use
- Paste the expressionType or paste something like */15 * * * *. The preset buttons fill in the common shapes. Parsing runs as you type.
- Check the reading and the fieldsYou get one sentence in plain English plus the exact values each of the minute, hour, day, month and weekday fields matches. Mistakes are reported inline in red.
- Confirm against real datesSet the time zone to match your runtime and check that the upcoming run times are what you intended. The explanation and the list of dates copy out together. Everything runs in your browser and nothing is uploaded.
About This Tool
Parsing follows Vixie cron (Linux crontab(5)). The base form is five fields — minute, hour, day of month, month, day of week — with *, ranges (1-5), steps (*/15), lists (1,15), start-plus-step (5/10) and the JAN-DEC / SUN-SAT names. In the weekday field 7 means the same as 0 (Sunday). The @yearly @monthly @weekly @daily @midnight @hourly shorthands are expanded and read out (@reboot fires once at start-up and has no date, so it is reported as such). When an expression has six fields, the first one is read as seconds — the node-cron and Spring convention.
The relationship between "day of month" and "day of week" is the part people get wrong most often. If both are set to something other than *, cron treats them as OR, not AND. So 0 0 1 * 1 does not mean "the 1st, but only if it is a Monday" — it fires on the 1st of every month and on every Monday. This tool always flags such expressions, and its run-time calculation uses the same rule.
Steps are the other common trap. */7 * * * * is not "every 7 minutes": cron restarts the count at the beginning of each field, so it fires at minutes 0, 7, … 56 and then again at 0 of the next hour, four minutes later. Whenever a step does not divide its range evenly, that is called out.
Run times are found on the wall clock of the selected time zone and then converted back to real instants before being displayed, so the dates stay honest in regions that observe daylight saving time (times that do not exist, or that repeat, are skipped). Impossible dates such as 0 0 30 2 * are searched for six years ahead and then reported as never firing. The Quartz extensions L, W and # are not part of standard cron and are not supported.
Expressions can be shared as a URL: /en/cron/?e=*/15%20*%20*%20*%20*&tz=Asia/Tokyo
From AI Agents
This cron logic is also published as the cron_explain tool of the MCP (Model Context Protocol) server @first-ch/tools-mcp, so AI agents can call it directly without driving a browser. See Using these tools from AI agents for setup.
Setup
claude mcp add firstch-tools -- npx -y @first-ch/tools-mcp
Example calls
# reading plus the next five run times cron_explain(expression="*/15 * * * *") # pick a time zone and how many runs to return cron_explain( expression="30 9 * * 1-5", timeZone="Asia/Tokyo", count=10)
Other Tools
- 01Batch Image → WebP ConverterWebP Converter
- 02White Background RemoverWhite BG Remover
- 03WCAG Contrast CheckerContrast Checker
- 04Character CounterCharacter Counter
- 05llms.txt Generatorllms.txt Generator
- 06JSON-LD GeneratorJSON-LD Generator
- 07Markdown → PDFMD → PDF
- 08OGP Meta Tag WizardOGP Wizard
- 09Favicon GeneratorFavicon Generator
- 10TikTok PublisherTikTok Publisher
- 11Encoding & Line Ending ConverterEncoding Converter
- 12Batch Image → AVIF ConverterAVIF Converter
- 13Test Data GeneratorTest Data Generator
- 14Marp Markdown → SlidesMarp Slides
- 15Text & Code Diff CheckerDiff Checker
- 17Base64 & Data URI EncoderBase64 & Data URI
- 18URL Parameter Editor & UTM BuilderURL Parameters
- 19HTML Entity Escape & UnescapeHTML Escape
- 20JSON ⇄ YAML ConverterJSON ⇄ YAML
- 21PX ⇄ REM / EM ConverterPX ⇄ REM / EM 単位変換
- 22Color Converter & AlphaColorコード変換&アルファ透過
- 23MD5 / SHA-256 Hash Generatorハッシュ生成
- 24JWT Decoder & Expiry CheckerJWTデコーダー&有効期限チェッカー
- 25User-Agent ParserUser-Agent解析&デバイス判定
- 26UUID & ULID GeneratorUUID (v4) & ULID 一括生成
- 27Aspect Ratio Calculatorアスペクト比計算&サイズ算出