やりたいこと | 1日の始めに本日の予定一覧をTeamsにチャットして欲しい |
使うアプリ | |
改善効果 | 今日の会議等が一覧でパッと見できる(3分/日) |
パッケージ | あり |
いいね数 | |
ポイント
- 現在時刻~12時間後までの予定一覧を取得し、予定があったらTeamsチャットに通知する
- 午前と午後で分けて出力する
前回(#004 Outlook独自リマインダーをAutomateで作る)の処理を少し修正して作っています。
手順
以下のような通知を出すことが出来ます
基礎的な操作手順が分からない方は以下をご参照ください。
Step.1 Power Automate 今日の予定一覧をTeamsにチャットしてくれるフロー作成
フローのパッケージは以下からダウンロードすることが可能です。また、インポート手順はこちらを参考にインポートを行ってみてください。1からフローを作らなくてもいいので、非常に効率的です。
また、インポート後の修正箇所を簡単に説明します。ここだけ変えればとりあえず動くだろうという箇所です。
①繰り返し頻度
繰り返し頻度を好きな時間に変更します
②イベントの取得 (V4)
予定表IDを自分の予定表を選択します
③チャットまたはチャネルでメッセージを投稿する
Recipientを自分のアドレスに変更します
以上です。これでフローは動きますが、以降は各ステップの詳細を説明しています。必要な方のみご覧ください。
全体のフローは以下の通りです。
ステップごとに説明していきます。
Step.1-1 繰り返し
サンプルでは毎日8:45にフローが実行されるようになっています
好きなタイミングに変更します
Step.1-2 outlookスケジューラから現在時刻~12時間後までの予定を取得する
現在の時刻を取得します
スケジューラから予定を取得するときの起点計算の為に取得します。
[現在の時刻]から[12時間]追加します
12時間先までの予定を取得する為のセットです。18時間先までを取得したい場合は、12⇒18に変更します。
フィルタークエリ、並べ替え順には以下のコードを記載します
[現在の時刻]、[算出時間]をセットします
コピーしました!
start/dateTime ge '@{body('現在の時刻')}' and start/dateTime le '@{body('時間への追加-12時間')}'
コピーしました!
start/dateTime asc
フィルタークエリで「開始時刻が現在時刻~12時間後までの予定」を抽出しています。並べ替え順は、開始時刻で昇順にしています。
フィルタークエリについてもっと知りたい方はこちらのサイトが分かりやすいです。
Step.1-3 変数の初期化
午前用の変数初期日に[<午前の予定><br>]、午後用の変数初期値に[<午後の予定><br>]をセットします
Step.1-4 12時間後までの予定一覧を自分宛にチャットする
Step.1-2-3(イベントの取得 (V4))で取得したvalue(予定一覧)をセットします
12時間以内に、予定が1つだけであれば1回、3つあれば3回繰返し処理されます。
予定の開始時刻と終了時刻を[HH:mm]形式で日本時間に変換します
Teamsに通知する際の参考情報の為に、日本時間に変換しています。終了時刻は日付を除いています。
左に以下の式、条件は[次の値以下]、右に[03:13:00]をセットします
コピーしました!
dateDifference(items('取得した予定の繰返し処理')?['start'], body('現在の時刻'))
午前中の予定か判定しています。dateDifference関数は2つの日時の差異を計算してくれる関数です。
(予定の開始時刻ー現在時刻)をした結果、3:13以下であれば午前中と判定し、それ以上であれば午後と判定しています。
フローの開始時刻によって[03:13:00]を変更する必要はあります。サンプルは、8:45に実行される為、11:58までの予定は午前中としています。(2分はフロー実行遅延対応)
[出力文字列(午後)]に文字と動的なコンテンツをセットします
最後に<br>を入れることでTeams投稿時に改行できます。
[出力文字列(午前)]に文字と動的なコンテンツをセットします
「いいえ」と違うのは、変数(出力文字列(午前))部分だけです。それぞれの変数に出力しておくことで、後で分かりやすくなります。
[または]を選択し、右に以下の式、条件に[次の値以上]、右に[1]をセットします
コピーしました!
length(variables('出力文字列(午前)'))
コピーしました!
length(variables('出力文字列(午後)'))
予定が1件も無い場合は通知させたくないので、出力文字列が1文字以上かどうかで判定しています。
終了ステップで[成功]をセットします
予定が1件も無い場合は後続処理に進まず、ここで処理終了とします。
投稿者に[フローボット]、投稿先に[Chat with Flow bot]、Recipientに自分、Messageに[出力文字列(午前)]と[出力文字列(午後)]をセットします
今まで作成したデータをTeamsのフローボットを使って自分宛にチャットするようにしています。メールに置換えてもいいですし、通知先に上長を含めるのも面白いかもしれません。
以上でフローの説明は終了です。正しく動くと、以下のような通知が届きます。
実運用時に気を付けること
- 予定をスケジューラにしっかりと入れること
- 「今日」ではなく、「12時間」という時間設定の為、夜勤等でも汎用的に使える一方、設定を間違えると午前午後の判別が出来なくなるので注意
- でじらぼ 様
いつも大変参考になる情報をありがとうございます。
この記事は参考になりましたか?