Difyで平日の決まった時刻に動かしたいときは、Cronの式だけで判断せず、設定画面の「次の5回」を、日付と曜日まで照合します。 手動で処理を動かせること、設定どおりに起動すること、起動後に最後まで進むことは、それぞれ別の確認です。

DifyのWorkflowで週次・日次の処理を作り始めた人に向けて、日本時間の平日8時30分に架空の在庫点検を行う例を使います。実在の連絡先を使う必要はありません。Cronの時刻がどの時間帯で扱われるかは、利用する画面の表示と実行履歴で確認してください。

次の5回を、日本時間の曜日まで照合する

最初の5件を先に書き、合格条件を決める

月曜から金曜の8時30分に点検する例です。2026年11月13日(金)の8時29分を基準にすると、次は13日(金)、16日(月)、17日(火)、18日(水)、19日(木)のそれぞれ8時30分です。14日と15日には予定が入りません。日付と曜日を書いてから式を設定すると、時間だけを見て見落とす間違いを拾えます。

ここでいう平日は月曜から金曜です。祝日や会社の休業日を外すには、曜日指定とは別に、業務上のカレンダーを点検する仕組みが必要です。業務担当に渡す検収表には、時刻のほかに「祝日も動くか」「何をもって処理済みとするか」を記録します。

毎週決まった時間なら、画面の選択肢から確認する

DifyのSchedule Trigger公式資料(2026年11月10日確認)は、日時を画面で選ぶ方法とCron式で指定する方法を案内しています。どちらでも次の5回の予定を確認できます。単純な曜日指定なら、先に画面の選択で表現できるかを確かめると、引き継いだ人も意図を読みやすくなります。

Cronの5欄は、分、時、日、月、曜日の順です。たとえば、設定が日本時間として評価されると確かめられた環境なら、30 8 * * MON-FRIが月曜から金曜の8時30分の候補です。設定画面で受理されたことと、表示される予定が日本時間の要件に合うことは両方確認します。

UTCを使うと、時刻に加えて曜日も前へずれる

日本時間の月曜8時30分は、UTCの日曜23時30分です。同じ瞬間を表すつもりでUTCの「月曜23時30分」にすると、日本時間では火曜8時30分になります。UTCで評価する設定だと確認できた場合に限り、日曜から木曜の23時30分を候補にします。

平日8時30分(日本時間)を表す候補
設定を評価する時間帯式の候補日本時間に直した結果
日本時間30 8 * * MON-FRI月〜金 08:30
UTC30 23 * * SUN,MON,TUE,WED,THU月〜金 08:30
UTCで曜日を月〜金のままにした場合30 23 * * MON-FRI火〜土 08:30

UTCで評価されるかが分からない段階で、式に9時間分の補正を入れないようにします。予定の表示だけが端末の時間帯で変換される可能性もあるため、「式を評価する時間帯」「予定の表示の時間帯」「業務日付の時間帯」を分けてメモします。表示にUTCやオフセットがなければ、外部への処理を持たないフローで実行時刻を検収します。

別の時計に直して、同じ瞬間かを検算する

以下は時刻の換算だけを確認するPythonの例です。DifyのCronエンジンや予約処理は呼び出しません。画面の次回予定を読んだら、時差を頭の中で引くだけでなく、日付つきの値を相互に変換して照合できます。

from datetime import datetime, timedelta, timezone
from zoneinfo import ZoneInfo

jst = ZoneInfo("Asia/Tokyo")
start = datetime(2026, 11, 13, 8, 30, tzinfo=jst)
days = [start + timedelta(days=i) for i in range(7)]
expected = [d for d in days if d.weekday() < 5]
utc = [d.astimezone(timezone.utc) for d in expected]

assert [d.day for d in expected] == [13, 16, 17, 18, 19]
assert [d.strftime("%a") for d in utc] == ["Thu", "Sun", "Mon", "Tue", "Wed"]
assert all((d.hour, d.minute) == (23, 30) for d in utc)
assert [d.astimezone(jst) for d in utc] == expected

for local, other in zip(expected, utc):
    print(local.isoformat(), other.isoformat())

金曜朝はUTCの木曜夜、月曜朝はUTCの日曜夜です。新しい式を導入するときは、週末をまたぐ行と日付境界の行を含めて確認します。海外の業務時刻を基準にするなら、その地域の夏時間で時差が変わるかも確認します。日本時間のこの例をそのまま他地域へ移すことはできません。

テスト実行と公開後の履歴を別々に読む

「このステップを実行」と予約待ちのテストを使い分ける

公式資料では、ノードだけを実行する操作は予定を待たず、テスト実行では次の予定を待つと説明されています。設定した時刻を確認したいとき、ノードだけの実行成功を定刻の成功として記録しないようにします。外部送信や更新をつなぐ前に、開始時刻と架空の点検対象を出力するだけで、定刻に起動したかを確認できます。

Schedule Trigger自体から出力変数は生成されません。公式資料では、ワークフロー開始の時刻を表すシステム変数 sys.timestamp が更新されると説明されています。業務日付や予定枠はそれぞれ必要な形式へ整形し、実際の開始時刻とは別の項目として保存します。DifyのOutputで返る項目を検査する手順も、試験用の出力を作るときに使えます。

履歴がない場合と、履歴が失敗した場合で見る場所を変える

予定時刻を過ぎたら、対象のワークフローと、どの版の設定が実行に使われたかを確かめます。履歴に実行が見つからない場合は、予定の表示、公開版への反映、トリガーの状態を先に確認します。履歴があり下流で失敗している場合は、Cronを変更する前に、止まったノードとエラーを見ます。

観測したこと 次に確認する情報 記録する状態
予定が期待と違う 日付・曜日・表示の時間帯 設定の不一致
予定は合うが履歴が見つからない 公開版、トリガー状態、履歴の範囲 起動を確認できない
履歴はあるが途中で停止 最後に通ったノードとエラー 起動後の失敗
履歴も出力も確認できる 予定枠と実際の開始時刻の差 定刻テストを検収

下流のHTTP Requestで停止する場合は、接続先の応答と再試行を確認します。DifyのHTTPタイムアウトと再試行の切り分けは、その段階で確認する内容です。

手動の再実行と予約実行が同じ点検を作らないようにする

たとえば11月16日朝の点検が失敗し、担当者が手動でやり直したとします。実行IDは別でも、対象倉庫と業務日付と「朝の点検」の組が同じなら、一つの点検結果として扱う設計ができます。逆に同じ倉庫の朝と夕方を別に扱うなら、業務日付だけでは識別できません。

この識別は、処理先で重複を止める仕組みと一緒に設計します。履歴を見て人が気づくだけでは、二つの処理がほぼ同時に走るケースを防げません。練習用フローでは、同じ枠を入力した2回の出力が同じ識別子になることを確かめ、実運用で書き込む先に合わせて重複防止を追加します。

担当者が1件だけ再検査できる記録を残す

試験時は、予定時刻、時間帯、公開版、業務日付、開始時刻、結果の6項目を残します。異常時は式全体を作り直す前に、たとえば「11月16日月曜の8時30分が表示され、履歴もあるが出力が空だった」と、どこまで合っていたか説明します。公開前と公開後を分けると、直すべき場所が見えます。

人の承認も含む場合、予約どおりに起動したことは承認されたことを意味しません。Human Inputの期限切れと承認を分ける方法と合わせると、定刻、到達、承認、処理完了をそれぞれ検収できます。

業務フロー全体を学ぶ講座を選ぶなら

Difyの条件分岐や外部連携をまとめて練習したい場合は、バイテックAIスクールのDifyマスターコースも比較できます。公式案内には申請フローやレポート自動化が含まれます(2026年11月10日確認)。予約実行の時刻やエラー履歴まで練習したい場合は、教材の対象バージョンと演習範囲を説明会で確認してください。

広告:バイテックAIスクールの講座内容を確認

よくある質問

Q. 日本時間ならCronの時を9時間引きますか?
A.

式をUTCで評価する場合に限って時差換算します。画面に表示された次回予定と履歴で、設定と表示の時間帯を確認してください。

Q. MON-FRIで日本の祝日も止まりますか?
A.

月曜から金曜の曜日指定です。祝日や社内休日を除外するなら、業務カレンダーを別途判定します。

Q. 手動で実行できれば公開後の予約も成功しますか?
A.

手動実行と予約起動は別です。外部送信をつなぐ前に、予定時刻を待ち、履歴と開始時刻を照合します。

Q. 次の5回の予定はどこまで見ればよいですか?
A.

時刻だけでなく、日付、曜日、週末をまたぐ並びを確認します。表示の時間帯が不明なら、履歴も時差つきで記録してください。

Q. 実行が遅れて日付が変わったらどうしますか?
A.

開始時刻から業務日付を自動で決めず、どの予定枠の処理かを別に保持する設計を検討します。

Q. このコードでDifyを動かしていますか?
A.

Pythonで日付と時間帯を変換する例です。Difyでの予定や実行結果は、利用環境の画面と履歴で確認してください。