FIRST CH TOOLS / 16 CRON EXPLAINER

Cron式ビジュアル解説&次回発火日時チェッカー

*/15 * * * * のようなCron式を貼り付けると、日本語の読み下し文とフィールドごとの意味、そして次回からの発火予定日時を表示します。タイムゾーン指定・@daily などの省略記法・秒付き6フィールドにも対応。

読み方

次回の発火予定

日時は選んだタイムゾーンの現地時刻です。サーバーのcronは通常そのマシンのタイムゾーン(多くは UTC/etc/localtime)で動くため、デプロイ先に合わせて切り替えて確認してください。

How to Use

  1. Cron式を貼り付ける入力欄に */15 * * * * のような式を入れます。よく使う形はボタンからも入れられます。入力した時点で自動的に解析されます。
  2. 読み方とフィールドを確かめる日本語の1文と、分・時・日・月・曜日それぞれが実際に一致する値の一覧が出ます。間違いがあればその場で赤いメッセージが出ます。
  3. 発火日時で答え合わせをするタイムゾーンを実行環境に合わせて、次回からの実行日時が意図どおりか確認します。解説と日時の一覧はまとめてコピーできます。処理はすべてブラウザ内で完結し、入力内容は送信されません。

About This Tool

解釈は Vixie cron(Linuxの crontab(5))に合わせています。基本は5フィールド(分・時・日・月・曜日)で、*1-5(範囲)/*/15(ステップ)/1,15(列挙)/5/10(5から10おき)と、JAN-DECSUN-SAT の名前指定に対応します。曜日の 70(日曜)と同じ扱いです。@yearly @monthly @weekly @daily @midnight @hourly の省略記法も展開して読みます(@reboot は起動時の1回で日時が決まらないため、その旨だけを返します)。フィールドが6つあるときは先頭を「秒」として解釈します(node-cron や Spring の形式)。

Cronで最も誤解されやすいのが「日」と「曜日」の関係です。両方に * 以外を書くと、cron はこれを AND ではなく OR として扱います。たとえば 0 0 1 * 1 は「毎月1日、かつ月曜」ではなく「毎月1日毎週月曜」の両方で実行されます。このツールは該当する式に必ず注意書きを出し、発火予定日時の計算でも同じ規則を使っています。

*/n のステップも取り違えやすい書き方です。*/7 * * * * は「7分おき」ではありません。cron は各フィールドの先頭から数え直すため、0,7,…,56分に実行され、56分の次は翌時の0分(4分後)になります。範囲を割り切れないステップにはその旨を表示します。

発火日時は、選んだタイムゾーンの壁時計の上で条件に一致する日時を探し、見つかった日時を実時刻へ戻してから表示しています。そのため夏時間のある地域でも表示が実際の実行時刻とずれません(存在しない時刻・重複する時刻はスキップします)。存在しない日付(0 0 30 2 * など)は、今後6年ぶんを探して見つからなければ「実行されない式」として知らせます。Quartz 拡張の L / W / # は標準のcronにないため対応していません。

URLに式を含めて共有できます: /cron/?e=*/15%20*%20*%20*%20*&tz=Asia/Tokyo

From AI Agents

このCron解析ロジックは、MCP(Model Context Protocol)サーバー @first-ch/tools-mcpcron_explain ツールとしても提供しており、ブラウザを使わずAIエージェントから直接呼び出せます。導入方法の詳細は AIエージェントからの使い方 を参照してください。

導入

claude mcp add firstch-tools -- npx -y @first-ch/tools-mcp

呼び出し例

# 読み下しと次回5回分の発火日時
cron_explain(expression="*/15 * * * *")

# タイムゾーンと件数を指定する
cron_explain(
  expression="30 9 * * 1-5",
  timeZone="Asia/Tokyo", count=10)

Other Tools