Power Automateを使って、1日の予定をTeamsチャットへ自動通知する方法をご紹介します。
毎朝決まった時間に、その日のOutlook予定をTeamsチャットへ自動通知できます。
Outlookを開かなくても1日の予定を一覧で確認できるので、
朝のスケジュール確認や会議の見落とし防止にも便利です。
Power Automateで新しいフローを作成
1. Office365へアクセスし、画面左上の点のマークをクリックし、
「その他のアプリ」を選択

2. 「Power Automate」をクリック

3. 左メニューの「Create」をクリックし、「Scheduled cloud flow」を選択します。

4. 「Flow name」に任意の名前を入力し、「Create」をクリック
開始日時や実行曜日については、このあとの画面で設定できるため、
この画面ではFlow nameだけ入力すればOKです。

1日の予定通知フローを作成
1. 「Recurrence」を設定します。
毎週月曜日~金曜日の8:30にフローを実行する設定にしています。
Interval:1
Frequency:Week
Time zone:(UTC+09:00) Osaka, Sapporo, Tokyo
On these days:Monday~Friday
At these hours:8
At these minutes:30

2. +ボタンをクリックして「Initialize variable」を追加します。

3. 以下のように設定します。
この変数は、取得した予定を1つの文章として保存するために使用します。
Name:scheduleText
Type:String

4. +ボタンをクリックして「Get calendar view of events (V3)」を追加します。

5. 以下のように設定します。
Calendar Id:Calendar
Start Time:枠内をクリックして「fx」

6. 「Function」を選択し、以下青文字のコードを
上の枠内に入力します。
convertToUTC(startOfDay(convertTimeZone(utcNow(),'UTC','Tokyo Standard Time')),'Tokyo Standard Time')

7. EndTime:枠内をクリックして「fx」
「Function」を選択し、以下青文字のコードを上の枠内に入力します。
convertToUTC(addSeconds(addDays(startOfDay(convertTimeZone(utcNow(),'UTC','Tokyo Standard Time')),1),-1),'Tokyo Standard Time')

8. 下部の「Advanced parameters」のプルダウンを開き、「Order By」にチェックを入れます。
表示された「Order By」欄に以下青文字のコードを入力します。
予定を開始時刻の早い順に並べて取得するための設定です。
(枠に直接テキスト入力してOKです)
start/dateTime asc

9. +ボタンをクリックして「Apply to each」を追加します。

10. 「Select an output from previous steps」の枠内をクリックし、
雷マークをクリックします。

11. 「body/value」を選択します。

12. 「Select an output from previous steps」の値が設定できた状態です。

13. +ボタンをクリックして「Condition」を追加します。
このConditionは、Apply to each内で「今日の予定だけを対象にする」ための絞り込み条件です。

14. 以下の2つの条件を「AND(かつ)」で設定します。
条件①(予定の開始日が今日かどうか)
左側:formatDateTime(convertTimeZone(items('Apply_to_each')?['start'],'UTC','Tokyo Standard Time'),'yyyy-MM-dd')
条件:is equal to
右側:formatDateTime(convertTimeZone(utcNow(),'UTC','Tokyo Standard Time'),'yyyy-MM-dd')
条件②(件名が「Canceled」で始まる予定を除外)
左側:startsWith(items('Apply_to_each')?['subject'],'Canceled')
条件:is equal to
右側:false

15. +ボタンをクリックして、Trueの場合に、もう1つ「Condition」を追加します。
ここでは、予定が終日予定かどうかで、メッセージの表示形式を分けます。

16. 以下のように設定します。
左側:items('Apply_to_each')?['isAllDay']
条件:is equal to
右側:true

17. Trueの場合(終日予定)に「Append to string variable」を追加します。

18. 次のように設定します。
Name:scheduleText
Value には、以下青文字のコードを枠内に直接コピペしてください。
・ 終日 @{items('Apply_to_each')?['subject']}<br>

19. Falseの場合(時刻指定の予定)に「Append to string variable」を追加します。

20. 次のように設定します。
Name:scheduleText
Value には、以下青文字のコードを枠内に直接コピペしてください。
・ @{formatDateTime(convertTimeZone(items('Apply_to_each')?['start'],'UTC','Tokyo Standard Time'),'HH:mm')}〜@{formatDateTime(convertTimeZone(items('Apply_to_each')?['end'],'UTC','Tokyo Standard Time'),'HH:mm')} @{items('Apply_to_each')?['subject']}<br>

21. Apply to eachの外側に出て、+ボタンをクリックして「Condition」を追加します。
ここでは「今日の予定が1件もなかったか」で、送信するメッセージを分岐させます。

22. Coose a value の枠内をクリックして、雷マークをクリックします。

23. scheduleText を選択します。

24. 以下のように設定できたらOKです。
左側:scheduleText
条件:is equal to
右側:空欄

25. +ボタンをクリックして、 Trueの場合に、
「Post message in a chat or channel」を追加します。

26. 以下のように設定します。
このメッセージは、予定が1件も無かった場合だけ送信されます。
Post as:Flow bot
Post in:グループチャット
グループチャット:自分専用チャット(任意のチャットを選択してください)
メッセージは、青文字のコードを枠内に直接コピペしてください。
🗓【本日のスケジュール】
今日は予定がありません 🌿
---
システムメモ:Power Automate 「1日の予定通知」

27. +ボタンをクリックして、 Falseの場合に、
「Post message in a chat or channel」を追加します。

28. 以下のように設定します。
予定が何件あってもまとめて確認できます。
Post as:Flow bot
Post in:グループチャット
グループチャット:自分専用チャット(任意のチャットを選択してください)
メッセージは、青文字のコードを枠内に直接コピペしてください。
🗓【本日のスケジュール】
@{variables('scheduleText')}
今日もがんばりましょう!💪
---
システムメモ:Power Automate 「1日の予定通知」

動作確認
1. Outlookの予定表にスケジュールを3つ登録しました。

2. 予定がある日は、Teamsへ予定一覧が通知されます。

3. 予定が無い日は、「今日は予定がありません」と通知されます。

※通知されない場合は、フローが「オン」になっていることと、
「保存」が完了していることを確認してください。
以上、Power Automateで1日の予定をTeamsへ自動通知する方法でした。
毎朝決まった時間に予定を通知できるため、会議や予定の確認漏れ防止にも役立ちます。
ぜひ活用してみてください。
・【Teams】自分だけのグループチャットを作る方法:こちらも便利です!

ゼロからはじめる Microsoft Teams 基本&便利技[改訂2版]
Teamsの基本から便利機能までやさしく解説