本文へスキップ

Cron式解説ツール

cron式を文章に直し、選んだタイムゾーンでの次の実行時刻を最大20件まで表示します。5フィールドと、先頭に秒が付いた6フィールドを読み取ります。

5フィールド

説明

次において実施09:00、月曜日 から 金曜日 まで

次の実行時刻

ブラウザのタイムゾーン: UTC

有効な式を入力すると次の実行時刻が表示されます。

フィールド早見表

フィールド早見表
フィールド意味値
秒秒(6フィールドの場合のみ)0〜59
分分0〜59
時時0〜23
日日(日付)1〜31
月月1〜12 または JAN〜DEC
曜日曜日0〜7(0と7はどちらも日曜日)または SUN〜SAT

L・W・#・? のようなQuartz(Javaスケジューラ)専用の記号には対応していません。標準の5・6フィールド構文のみ扱います。

よく使うマクロ

例

入力した内容はこのブラウザの中だけで処理され、サーバーには送信されません。 仕組みを見る

0 9 * * *を選択した時間帯の毎日09時と解釈

*/15 9-17 * * 1-5 と入れると、「15 分ごと, 09:00 と 17:59 の間、月曜日 から 金曜日 まで」という文に続いて、実際に実行される日付と時刻が順に並びます。書いた式が思ったとおりに解釈されるかを、サーバーに登録する前に確かめておくためのツールです。

使い方

  1. Cron式の欄に式を入れます。最初は 0 9 * * 1-5 が入っています。「5フィールド」として読まれたのか、「6フィールド(先頭が秒)」として読まれたのかは、欄の下の表示でわかります。
  2. 説明に、式を文章にしたものが出ます。「式をコピー」でコピーされるのは整形済みの式で、マクロを入れていた場合はフィールドに展開した形になります(例:@daily → 0 0 * * *)。
  3. 次の実行時刻で「件数」(1〜20)と「タイムゾーン」を指定します。現在時刻より後の実行時刻が、そのタイムゾーンの日付と時刻で一覧になります。
  4. フィールド早見表にある「よく使うマクロ」と「例」のボタンを押すと、その式が入力欄に入ります。

文法に誤りがあるときは、どのフィールドのどの値がいけないのかを示します。たとえば 60 * * * * なら、「分フィールドの「60」は許容範囲を超えています。」と表示されます。

フィールドの書き方

フィールドは空白で区切り、数は5個か6個です。5個なら分・時・日・月・曜日の順に読み、6個なら先頭を秒として読みます。

フィールド 値
秒(6フィールドの場合のみ) 0〜59
分 0〜59
時 0〜23
日(日付) 1〜31
月 1〜12 または JAN〜DEC
曜日 0〜7(0と7はどちらも日曜日)または SUN〜SAT

それぞれのフィールドには、次の形が書けます。

  • *:すべての値
  • 5:その値だけ
  • 1-5:範囲。開始が終了より大きい 5-1 はエラーになります
  • */15:間隔。分フィールドなら0、15、30、45分です
  • 5/15:開始値を決めた間隔。分フィールドなら5分から15分おき(5、20、35、50分)です
  • 10-40/10:範囲の中での間隔。分フィールドなら10、20、30、40分です
  • 1,15:カンマで並べたリスト。ここまでの形を混ぜて並べることもできます

マクロは7種類に対応しています。@yearly と @annually は 0 0 1 1 *、@monthly は 0 0 1 * *、@weekly は 0 0 * * 0、@daily と @midnight は 0 0 * * *、@hourly は 0 * * * * にあたります。@reboot は「システムの起動時に1回実行する」という意味で、計算できる時刻がないので読み取りません。

日(日付)と曜日を両方指定したとき

日と曜日の両方に * 以外の値を書くと、実行されるのは「両方に当てはまる日」ではなく、「どちらか一方にでも当てはまる日」です。これはcrontabのマニュアルに書かれているUnix cronの決まりで、このツールも次の実行時刻をそのとおりに計算します。

つまり、0 0 13 * 5 は「13日の金曜日」を指す式ではありません。タイムゾーンをUTCにして2026年10月10日に計算すると、10月13日(火)、10月16日(金)、10月23日(金)の順に並びます。13日であれば何曜日でも、金曜日であれば何日でも実行される、ということです。

この式の説明は「次において実施00:00、月の 13 日目、〜と 金曜日」と出るため、2つの条件を両方満たす日のことだと受け取ってしまいがちです。そのため、日と曜日を両方書いた式には、どちらか一方にでも当てはまる日に実行されるという案内が説明の下に出ます。実際の日付は、次の実行時刻の一覧で確かめてください。

サマータイム(DST)のあるタイムゾーンでは

サマータイムのあるタイムゾーンを選ぶと、時計が切り替わる日だけ、実行時刻がいつもと違う出方をします。America/New_Yorkの2026年の日付で計算すると、次のようになります。

  1. 開始日には存在しない時刻:3月8日は時計が午前2時から3時へ飛ぶため、午前2時台がありません。30 2 * * *(毎日午前2時30分)はこの日に限って3:30:00と表示され、翌日からは2:30:00に戻ります。実行が抜けるのではなく、1時間後ろにずれて表示されます。
  2. 終了日に2回来る時刻:11月1日は午前1時台が2回あります。30 1 * * * のように時を数字で指定した式では、この日の1:30:00は1回しか出ません。これに対して、0 * * * * のように時が * の式では、1:00:00が2回出ます。

実際のスケジューラがこうした時刻をどう扱うかは、プログラムによってまちまちです。午前1時から3時のあいだに動かすジョブがあるなら、サーバーで使っているcronのドキュメントもあわせて確認してください。

参考資料

よくある質問

*/7のように60を割り切れない間隔にすると、きっかり7分おきに実行されますか?

されません。間隔は毎時0分で数え直しになります。*/7 * * * * の次の実行時刻を見ると、0、7、14、…、49、56分と進んだあと、次は翌時の0分です。56分から0分までは4分しか空きません。時・日・月フィールドの間隔も同じで、範囲の先頭に戻って数え直します。

0 0 30 2 * と入れたら、「カレンダーにない日付なので、一度も実行されません。」と表示されます。

文法としては正しいのに、当てはまる日付が存在しない式です。0 0 30 2 * はどのフィールドも範囲内ですが、2月30日はないため、実行される日がありません。そのためこのツールは、説明と次の実行時刻を出さずに、エラーとして知らせます。0 0 31 * * のように一部の月にしかない日付はエラーにならず、31日のある月だけが並びます。

曜日をMONDAYや英語以外の言語で書けますか?

書けません。名前として読めるのは英字3文字(SUN〜SAT、JAN〜DEC)だけで、大文字と小文字は区別しません。MONDAYと入れると「曜日フィールドの「MONDAY」は読み取れない値です。」というエラーになります。名前はMON-FRIのような範囲にも、mon,wedのようなリストにも使えます。ただし、月の名前が通るのは月フィールドだけ、曜日の名前が通るのは曜日フィールドだけです。

サーバーはUTC、手元のブラウザは別のタイムゾーンです。タイムゾーンはどちらを選べばよいですか?

cronが実際に動いているサーバーのタイムゾーンを選んでください。0 9 * * 1-5 を「UTC」で計算すると一覧には9:00:00と出て、その瞬間はUTCより9時間進んだタイムゾーン(UTC+9)では午後6時です。UTC+9のタイムゾーンに切り替えても一覧には同じく9:00:00と出ますが、その瞬間はUTCでは同じ日の0時です。一覧の時刻はいつでも選んだタイムゾーンでの時刻で、ページを開いた直後は「ブラウザのタイムゾーン」に書かれている値が選ばれています。

QuartzやAWSのcron式もそのまま入力できますか?

ひとくちに「cron式」と言っても、文法はシステムによって違います。このツールが読めるのは、Unix cronの5フィールドと、その先頭に秒を足した6フィールドだけです。 • Unix cron(crontab):分・時・日・月・曜日の5フィールドです。曜日は0〜7で、0も7も日曜日です。 • Quartz(Javaのスケジューラ):先頭に秒があり、末尾には年も書けるので、6〜7フィールドになります。曜日は1〜7で1が日曜日なので、Unix cronとは数字が1つずれます。L(その月や週の最後)、W(いちばん近い平日)、#(6#3 で第3金曜日)、?(日と曜日のうち、指定しないほうに書く印)といった、Unix cronにはない記号も使います。 • AWS EventBridge:分・時・日・月・曜日・年の6フィールドです。秒がなく、末尾に年が来ます。曜日は1〜7またはSUN〜SATで、日と曜日のどちらか一方には必ず ? を書かなければなりません。L、W、# も使います。 • そのほかのクラウドスケジューラ:Google Cloud SchedulerのようにUnix cronに近い文法のサービスでも、細かな決まりは違うことがあります。 よそのシステム向けの式をそのまま貼り付けると、エラーになるか、別の意味に読まれます。AWSのドキュメントに載っている 0 10 * * ? *(毎日10時)は6フィールドなので、このツールは先頭を秒として読みます。すると5番目の ? が月フィールドの値という扱いになり、「月フィールドの「?」は読み取れない値です。」というエラーが出ます。QuartzやAWS向けの式は、それぞれのドキュメントやコンソールで確かめてください。

使用しているオープンソース: cronstrue (MIT), cron-parser (MIT), Luxon (MIT)

最終更新日: