Power Automateのスケジュール実行:毎朝・毎週・月末に動くフローを作る

公開 書いた人 大林 諒

Power Automate(パワーオートメイト)で「毎朝8時に」「毎週月曜に」「月末に」動くフローを作るときは、スケジュール済みクラウド フローを使います。人が何かを操作するのを待たず、決まった時刻にフローが自分で動き出す形です。作り方そのものは数分で終わりますが、タイムゾーンを指定し忘れて9時間ずれる、月末が設定の画面で選べない、祝日にも通知が飛ぶ、といったところで止まりがちです。この記事では、社員15名ほどの「サンプル工務店」を例に、「繰り返し」トリガーの設定の決め方、毎朝・毎週・毎月1日・月末・平日だけの組み方、毎朝の現場一覧と月初の売上集計の2つの例、パソコンの操作を定時に動かしたいときの考え方までを、2026年10月時点の画面と公式ドキュメントに沿って書きます。

この記事の内容
  1. 先に決めること
  2. スケジュールのパターンの一覧
  3. スケジュール済みクラウド フローの作り方
  4. 毎朝・毎週・月末・平日だけの組み方
  5. 例1:毎朝8時に今日の現場一覧をTeamsへ
  6. 例2:毎月1日に前月の売上集計をメールで
  7. 遅れ・重なり・取りこぼし
  8. 本番に出す前の確かめ方
  9. Windowsのタスク スケジューラとの違いと、デスクトップフローの定時実行
  10. できないことと、その代わり
  11. よく詰まるところ
  12. 次にやること

先に決めること

1. 何時に、どのタイムゾーンで動かすか

スケジュールで一番多い失敗は時刻のずれです。「繰り返し」トリガーはタイムゾーンを選ばないとUTC(協定世界時)として扱われ、日本時間の朝8時のつもりが夕方5時に動きます。サンプル工務店では、スケジュールのフローは必ずタイムゾーンを「(UTC+09:00) 大阪、札幌、東京」にして、開始時刻も日本時間で書く、と決めています。

2. 誰の名前で動かすか

スケジュールのフローは、作った人の接続で動きます。作った人が退職してアカウントが止まると、フローも止まります。会社の仕組みとして毎日動かすフローは、個人ではなく共同所有者を付けておくか、管理用のアカウントで作ります。共同所有者の付け方は「Power Automateの運用ルール:所有者・退職・接続切れ・DLPでフローを止めない」で書いています。

3. 実行の頻度

制限のドキュメントのパフォーマンス プロファイルの表では、Microsoft 365 プランは「低」に入っています。Microsoft 365のライセンスで動かすフローは、24時間あたりのPower Platformの要求数の目安が10,000です。1分ごとに動くフローは1日1,440回動き、中のアクションも1回ずつ数えられます。「新しい行がないか1分ごとに見に行く」ような使い方は、トリガーで受ける形にできないかを先に考えます。繰り返しの間隔は最短で60秒です。

スケジュールのパターンの一覧

やりたいこと頻度間隔ほかの設定
毎朝8時日1設定時刻(時間)8、設定時刻(分)0
1日に2回(8時と17時)日1設定時刻(時間)8と17、設定時刻(分)0
平日の朝8時週1設定曜日 月〜金、設定時刻(時間)8、設定時刻(分)0
毎週月曜8時週1設定曜日 月曜日、設定時刻(時間)8、設定時刻(分)0
隔週月曜8時週2開始時刻を最初の月曜8時にする
毎月1日7時月1開始時刻を次の1日の7時にする
月末日1毎日動かし、条件で月末だけ先へ進める
月末の最終営業日週1平日だけ動かし、条件で判定する
30分ごと分30営業時間だけにしたいなら条件で絞る

「設定時刻」と「設定曜日」は、頻度が「日」か「週」のときだけ出てきます。「月」を選んだ場合、公式ドキュメントでは毎月同じ日に動くと書かれています。何日になるかは開始時刻の日付で決まる前提で組み、最初の月に予定の日に動いたかを実行履歴で確かめます。

スケジュール済みクラウド フローの作り方

作成の画面から作る

  1. Power Automateにサインインし、左のメニューで「作成」を選ぶ
  2. 「スケジュール済みクラウド フロー」を選ぶ
  3. フロー名を入れ、開始日と時刻、繰り返しの間隔(数と単位)を入れて「作成」を押す
  4. デザイナーが開き、「繰り返し」トリガーが置かれた状態になる
スケジュール済みクラウド フローの作成画面で、フロー名・開始日・時刻・繰り返し間隔を入れている状態
スケジュール済みクラウド フローの作成画面で、フロー名・開始日・時刻・繰り返し間隔を入れている状態

「マイ フロー」から空のフローを作り、トリガーの検索で「繰り返し」を選んでも同じものができます。Copilotが使える環境では、「毎週月曜の8時に、期限が近い案件をメールで知らせるフローを作って」のように文章で頼むこともできます。どちらの作り方でも、最後に「繰り返し」の設定を自分で見直します。

「繰り返し」の設定を詰める

  1. デザイナーで「繰り返し」トリガーを選ぶ
  2. 構成ウィンドウで「間隔」と「頻度」を確かめる
  3. 「タイム ゾーン」で日本時間を選ぶ(一覧では「(UTC+09:00) 大阪、札幌、東京」のように表示される)
  4. 「開始時刻」に、最初に動かしたい日時を 2026-11-04T08:00:00 の形で入れる
  5. 頻度が「日」か「週」なら、「設定時刻(時間)」「設定時刻(分)」、週なら「設定曜日」も選ぶ
  6. 「保存」を押す
新しいデザイナーで「繰り返し」トリガーを開き、タイム ゾーン・開始時刻・設定曜日・設定時刻が入っている状態
新しいデザイナーで「繰り返し」トリガーを開き、タイム ゾーン・開始時刻・設定曜日・設定時刻が入っている状態

クラシック デザイナーでは、「繰り返し」のカードの「詳細オプションの表示」を押すと、タイム ゾーンや設定時刻の欄が出てきます。

開始時刻の書き方は、タイムゾーンを選んだかどうかで変わります。

タイムゾーン開始時刻の書き方意味
「大阪、札幌、東京」を選ぶ2026-11-04T08:00:00日本時間の8時
選ばない2026-11-03T23:00:00ZUTCの23時=日本時間の翌日8時
選んだうえで末尾に Z を付ける2026-11-04T08:00:00Zタイムゾーンが無視され、UTCの8時=日本時間の17時

3つ目が一番気づきにくい間違いです。タイムゾーンを選んだら、開始時刻の末尾に Z を付けません。

開始時刻は空でも保存できます。ただ、空のまま保存すると、設定にかかわらず保存した時点ですぐ1回目が動きます。テスト中に意図しない通知が飛ぶのを避けるため、開始時刻は必ず入れます。

設定時刻の「分」を空にしない

「設定時刻(時間)」に8だけを入れて「分」を空にすると、分は開始時刻の分で決まります。開始時刻が 08:23:00 なら、毎日8時23分に動きます。時刻をぴったりにしたいときは、「設定時刻(分)」に0を入れます。動いた時刻は、予定の時刻から最大で1分ほど前後することがあります。

毎朝・毎週・月末・平日だけの組み方

毎朝と毎週

毎朝は頻度「日」、毎週は頻度「週」と「設定曜日」で組めます。平日だけにしたいときは、頻度「週」で設定曜日を月曜日から金曜日まで選びます。

毎月1日

頻度「月」、間隔1にして、開始時刻を次の1日にします。たとえば11月から毎月1日の7時に動かすなら、タイムゾーンを「(UTC+09:00) 大阪、札幌、東京」にして開始時刻を 2026-11-01T07:00:00 にします。

月末

Power Automateのデザイナーの「繰り返し」には「月末」を選ぶ欄がありません。Azure Logic Apps のドキュメントでは、コード ビューでトリガーの定義に "monthDays": [-1] を書くと毎月の最終日に1回動く、と説明されています。ただ、Power Automateのデザイナーではこの項目を画面から設定できず、コードの表示も編集できないことが多いので、ここでは毎日動かして、今日が月末のときだけ先へ進める方法を使います。

  1. 頻度「日」、設定時刻(時間)18、設定時刻(分)0の「繰り返し」を置く
  2. 「作成」アクションを置き、名前を「今日」にして convertFromUtc(utcNow(), 'Tokyo Standard Time') を入れる
  3. 「条件」を置き、次の式が true に等しいかを見る
equals(formatDateTime(addDays(outputs('今日'), 1), 'dd'), '01')

明日が1日なら、今日は月末です。偽の側には何も置きません。日付の関数の意味は「Power Automateの式と変数:日付・文字列・配列をよく使う関数で扱う」で書いています。

「条件」に addDays と formatDateTime の式が入り、真の側にだけアクションが置かれている状態
「条件」に addDays と formatDateTime の式が入り、真の側にだけアクションが置かれている状態

月末の最終営業日

経費精算の締めの連絡のように、月末が土日なら直前の金曜に動かしたい場面があります。平日だけ動く「繰り返し」にして、次の営業日が来月になるかを判定します。金曜日なら3日後、それ以外は1日後が次の営業日です。

not(equals(formatDateTime(addDays(outputs('今日'), if(equals(dayOfWeek(outputs('今日')), 5), 3, 1)), 'MM'), formatDateTime(outputs('今日'), 'MM')))

この式は土日だけを見ていて、祝日は考えていません。

祝日を外す

Power Automateの式は日本の祝日を知りません。サンプル工務店では、SharePoint リスト「祝日」に日付の列を1つ作り、年に一度、翌年の祝日と会社の休業日を入れています。フローの最初で、そのリストを今日の日付で絞り込みます。

  1. 「繰り返し」のすぐ下に、SharePoint の「アイテムを取得」を置く
  2. 「フィルター クエリ」に Date eq '@{formatDateTime(outputs('今日'), 'yyyy-MM-dd')}' を入れる
  3. 「条件」で length(body('祝日を取得')?['value']) が0に等しいかを見る
  4. 真(祝日ではない)の側に、本来の処理を置く
「アイテムを取得」のフィルター クエリに今日の日付が入り、その下の条件で件数を見ている状態
「アイテムを取得」のフィルター クエリに今日の日付が入り、その下の条件で件数を見ている状態

例1:毎朝8時に今日の現場一覧をTeamsへ

工事チームのTeamsに、毎朝その日に動いている現場の一覧を流します。現場監督は朝礼の前にスマホで確かめられます。

順番アクション設定
1繰り返し頻度「週」、設定曜日 月〜土、設定時刻(時間)8、設定時刻(分)0、タイム ゾーン「(UTC+09:00) 大阪、札幌、東京」
2作成(今日)formatDateTime(convertFromUtc(utcNow(), 'Tokyo Standard Time'), 'yyyy-MM-dd')
3アイテムを取得サイト「工事案件」、リスト「工事案件」、フィルター クエリ StartDate le '@{outputs('今日')}' and EndDate ge '@{outputs('今日')}'
4選択現場名・住所・現場監督の名前だけを抜き出す
5HTML テーブルの作成「選択」の結果を表にする
6チャットまたはチャネルでメッセージを投稿するチーム「工事」、チャネル「一般」に表を投稿

この会社は土曜も現場が動くので、設定曜日に土曜日を含めています。今日の現場が0件の日に「本日の現場はありません」と投稿するか、何も投稿しないかは先に決めます。0件の日も投稿しておくと、フローが止まったのか現場がないのかを読み手が区別できます。

Teamsの工事チームのチャネルに、今日の日付と現場一覧の表が投稿されている状態
Teamsの工事チームのチャネルに、今日の日付と現場一覧の表が投稿されている状態

Teamsへの投稿のしかたとメンションの付け方は「Power AutomateでTeamsに自動投稿:チャネルへの通知とメンションの付け方」が詳しく扱っています。

例2:毎月1日に前月の売上集計をメールで

事務が毎月手で作っている「月次の売上集計」のExcelから、前月分の合計を代表と営業に送ります。

  1. 「繰り返し」を頻度「月」、間隔1、タイム ゾーン「(UTC+09:00) 大阪、札幌、東京」、開始時刻 2026-11-01T07:00:00 にする
  2. 「作成」で前月の初日を作る(名前「前月初日」)
formatDateTime(startOfMonth(addToTime(convertFromUtc(utcNow(), 'Tokyo Standard Time'), -1, 'Month')), 'yyyy-MM-dd')
  1. 「作成」で今月の初日を作る(名前「今月初日」)
formatDateTime(startOfMonth(convertFromUtc(utcNow(), 'Tokyo Standard Time')), 'yyyy-MM-dd')
  1. Excel Online (Business) の「表内に存在する行を一覧表示」で「月次の売上集計」の表を読む。「DateTime 形式」は「ISO 8601」にする
  2. 「配列のフィルター処理」で、日付が前月初日以上かつ今月初日より前の行だけ残す
  3. 「HTML テーブルの作成」で表にし、「メールを送信する (V2)」で代表と営業に送る
「繰り返し」の頻度が月、開始時刻が 2026-11-01T07:00:00、タイム ゾーンが大阪、札幌、東京になっている状態
「繰り返し」の頻度が月、開始時刻が 2026-11-01T07:00:00、タイム ゾーンが大阪、札幌、東京になっている状態

1日の朝7時に動かすのは、事務が出社する前に届けて、数字がおかしければ朝のうちに気づけるようにするためです。Excelの読み方と、DateTime 形式を指定しないと日付が数字で返ってくる点は「Power AutomateでExcelを自動化:表に行を足す・転記する・集計を送る」で書いています。

遅れ・重なり・取りこぼし

遅れて動く、少し早く動く

「繰り返し」は予定の時刻ぴったりではなく、数秒から1分ほど前後して動くことがあります。トリガーの出力の時刻をそのまま「今日」として使うと、0時ちょうどのフローでは前日の日付になることがあります。日付が大事なフローは0時ちょうどを避けて0時5分などにし、日付は utcNow() から計算します。

前の実行が終わらないうちに次が始まる

30分ごとに動くフローの1回の処理が40分かかると、前の実行が終わる前に次の実行が始まり、同じ行を二重に処理します。これを防ぐには、トリガーの「設定」で同時実行制御をオンにして、並列の数を1にします。

項目内容
既定オフ(制限なしで同時に動く)
オンにしたときの範囲1〜100(制限のドキュメントでは既定25)
1にすると前の実行が終わるまで次の実行は待つ
注意一度オンにすると、トリガーを削除して追加し直さない限りオフに戻せない
「繰り返し」トリガーの設定で、同時実行制御がオンになり並列処理の次数が1になっている状態
「繰り返し」トリガーの設定で、同時実行制御がオンになり並列処理の次数が1になっている状態

最初の1回が動かない

公式ドキュメントでは、頻度を日・週・月にして未来の開始時刻を入れる場合、日は24時間以上前、週は7日以上前、月は1か月以上前に設定しないと、最初の1回が飛ばされることがあると書かれています。作った直後に動作を確かめたいときは、開始時刻を待たず、デザイナーの「テスト」から手動で1回動かします。

海外の取引先の時刻に合わせるとき

日本には夏時間がないので、「大阪、札幌、東京」を選んでいれば季節で時刻は動きません。気をつけるのは、海外の取引先の営業時間に合わせて動かすフローです。相手の国のタイムゾーンを選んでおくと、夏時間の切り替えに合わせて実行の時刻も動きます。タイムゾーンを選ばずUTCで書くと、相手の夏時間の前後で1時間ずれます。

本番に出す前の確かめ方

スケジュールのフローは、本番の時刻まで待たないと結果が分からないのが弱点です。サンプル工務店では、新しいスケジュールのフローを次の順で確かめてから本番に出しています。

  1. 投稿先やメールの宛先を、作った人だけに変えておく
  2. デザイナーの「テスト」から「手動」を選んで1回動かし、実行履歴で各アクションの出力を確かめる
  3. 祝日や月末の判定は、「今日」の作成アクションに 2026-11-30T09:00:00 のような日付を一時的に入れて、真と偽の両方に進むかを確かめる
  4. 確かめ終わったら「今日」の式を元に戻し、宛先を本番の相手に戻す
  5. 本番の初日と翌日は、「28 日間の実行履歴」で予定の時刻に動いたかを見る

月末や月初のように月に1回しか動かないフローは、3つ目の確かめ方をしておかないと、最初の月末に初めて間違いに気づくことになります。確かめに使った日付を戻し忘れると毎日同じ日付で動き続けるので、4つ目は必ず行います。

Windowsのタスク スケジューラとの違いと、デスクトップフローの定時実行

比べるところスケジュール済みクラウド フローWindowsのタスク スケジューラ
どこで動くかMicrosoftのクラウドそのパソコン
パソコンの電源切れていても動く入っていてサインインできる状態が必要
扱えるものクラウドのサービス(メール・SharePoint・Teams・Excel Online など)パソコンの中のプログラム・ファイル
失敗の通知と履歴実行履歴とメールで分かるパソコンの中のログを見に行く
追加の費用Microsoft 365のライセンスの範囲で使えるWindowsに入っている

メールやSharePoint、Teamsだけで完結する仕事は、クラウドフローのスケジュールで組みます。社内のパソコンにしかない会計ソフトや、ブラウザの操作が要る仕事は、Power Automate for desktop(Power Automate Desktop)のデスクトップフローで作り、クラウドフローの「繰り返し」から「デスクトップ用 Power Automate で構築したフローを実行する」アクションで呼び出します。

ここで費用が変わります。クラウドフローからデスクトップフローを動かすには、接続を作る人に Power Automate Premium のライセンスが要ります。人がパソコンの前にいる状態で動かす有人(アテンド型)なら Premium のライセンスの範囲で、誰もサインインしていないパソコンで動かす無人(非アテンド型)には、さらにマシンに割り当てる Power Automate プロセスのライセンスが要ります。プロセスのライセンスを割り当てるマシンは、Power Automate Premium のライセンスを持つ人が登録しておく必要があります。なお、90日間の試用版ライセンスには無人で動かす機能も含まれているので、買う前に試用版で動きを確かめられます。Microsoft 365 Business Standardのライセンスだけでは、どちらもできません。設定の手順は「Power Automate Desktopのスケジュール実行:クラウドフローから動かす・無人で動かす」で書いています。

できないことと、その代わり

やりたいこと標準でできるか代わりの手
設定の画面で「毎月末」を選ぶ選べない毎日動かし、条件で月末を判定する
「第2火曜日」のように第何週かで動かす選べない毎週火曜に動かし、日付が8日〜14日かを条件で見る
祝日を自動で外す祝日を知らないSharePoint リストに祝日を入れて判定する
1分より短い間隔で動かす最短60秒即時性が要るならイベントで動くトリガーを使う
年に一度だけ動かす頻度「月」の間隔12で組める動作の確認を忘れるので、前月にも知らせる仕組みを足す
パソコンの中のファイルを定時に処理するクラウドフローだけではできないデスクトップフローを組み合わせる(Premiumが要る)

第2火曜日の判定は、and(greaterOrEquals(int(formatDateTime(outputs('今日'), 'dd')), 8), lessOrEquals(int(formatDateTime(outputs('今日'), 'dd')), 14)) のように書けます。

よく詰まるところ

症状原因直し方
朝8時のはずが17時に動くタイムゾーンを選んでいない、または開始時刻の末尾に Z を付けたタイム ゾーンを「大阪、札幌、東京」にし、Z を外す
保存した瞬間に通知が飛んだ開始時刻が空だった開始時刻を入れてから保存する
8時23分のような半端な時刻に動く「設定時刻(分)」が空「設定時刻(分)」に0を入れる
月末に動かしたいのに、日付の決め打ちでずれる月によって末日が28日〜31日と変わる毎日動かし、条件で月末を判定する
祝日にも通知が来る式は祝日を知らない祝日のリストで判定する
同じ行が二重に処理される前の実行と次の実行が重なったトリガーの同時実行制御をオンにして1にする
0時のフローの日付が前日になる少し早く動いた、またはUTCのまま日付を取った0時5分にずらし、日本時間に直してから日付を取る
担当者が退職したらフローが止まった作った人の接続で動いていた共同所有者を付け、接続を引き継ぐ
設定曜日・設定時刻の欄が見つからない頻度が「月」か「時」「分」になっている頻度を「日」か「週」にする
しばらく動いていたのに急に止まった失敗が続き、14日でオフになった実行履歴で原因を直し、フローをオンに戻す

失敗に気づく仕組みと、止まったフローの直し方は「Power Automateのエラー処理と実行履歴:失敗に気づき、直して再実行する」で扱っています。

次にやること

月末や前月の日付をもっと自由に計算したい場合は「Power Automateの式と変数:日付・文字列・配列をよく使う関数で扱う」を読んでください。毎朝の通知をTeamsに流すなら「Power AutomateでTeamsに自動投稿:チャネルへの通知とメンションの付け方」、売上集計のようにExcelを読んで送るなら「Power AutomateでExcelを自動化:表に行を足す・転記する・集計を送る」が次の記事です。パソコンの操作を定時に動かしたいときは「Power Automate Desktopのスケジュール実行:クラウドフローから動かす・無人で動かす」へ進んでください。

あわせて読む