ADHD、毎朝チャットに予定を送ってもらう。【PowerAutomate】

# はじめに
社会人として当然のスキル、予定を把握すること。
しかし特に突発的な予定だと意識から抜けてしまい、直前に思い出すこともしばしば……。

以前タスク管理をどうにかする方法を記事にまとめましたが、今回は予定把握編です！

https://qiita.com/redwings_a/items/c6a9dbdc1d362d2cd6b8


毎朝スケジュールを確認することで漏れを防ごうとすると、そもそも確認することを失念してしまうことがあるのが懸念でした。
（何かに着手すると忘れてしまうパターンが多いです。）

そこで、自力で不安定なルーティン化を図るのではなく、**Power Automateでチャットに今日の予定(Outlook)を送ってくれるフローを作成してみました！**

※会議などのイベントを想定しています。日を跨ぐ予定を入れる機会が多い方には向いていないかもしれません。

# 作成にあたっての注意点
* Outlookからイベントを取得する際は、「イベントのカレンダービューの取得（V3）」を使うこと
* タイムゾーンに合わせて、時刻を都度調整すること
* Outlookの形式に合わせて、日付の型を指定すること
下記、アクション概要では注意点を含め各アクションの中身を載せています。

# フロー全体図
※PowerAutomateの基本的な使い方などは割愛します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/944e981e-597e-8b6f-ebe7-59159ae61903.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/15923f87-7bb9-c14e-da10-819219cfd363.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/798794b4-7535-0fca-3cbb-6d0c4247067e.png)


# アクション概要

### **・スケジュール設定**
今回は月曜～金曜、毎朝9:15に走行する設定です。
~~Automate上では、9時間減算して0:15と設定しています。~~
　⇒追記：Automate上での設定も9:15に修正しました。
※祝日の判定はありません。別途条件分岐を追加する必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/66a2df11-d894-d997-075b-ab21ead6847e.png)



### **・今日の日付を取得**
フローに追加するだけでOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/60ff5087-40e9-3343-eb0f-af4765a7d31e.png)


### **・「現在の時刻」を日本時刻の年月日に変換**
※予定表取得の際に年月日だけ使いたいため時刻は切っています。
**※yyyy-MM-ddの形にしないと、後でOutlookで用いる際エラーになります。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/1ad320ad-8247-03c9-499b-c6f75f43dbb6.png)

### **・取得範囲の時刻を調整（6:00～23:00）**
開始時間が当日の6:00～23:00であるイベントを取得する設定にしているのですが、
Outlookで用いられる時刻に合わせて9時間減算しています。
※試してないですが、日を跨いでいるイベントの場合でも開始時間だけで判定されると思います。ご留意ください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/85bf1cd5-7c38-effe-1a11-25daa98b010b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/f3bf097b-7e8b-f2e4-d044-378a2f811b7c.png)

### **・Outlookからイベントを取得**
**※「イベントのカレンダービューの取得（V3）」を用います。
「イベントの取得」だと定期的な会議は初回しか反映されません。**
予定表IDはCalendarにするとデフォルトのカレンダーになります。
開始時刻、終了時刻はそれぞれ上記にて設定したものです。
パラメーターは「開始時刻順に並べる」を追加しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/204f3bce-34aa-f880-a9a5-449f6a4960d7.png)


### **・変数の初期化**
**①最終的に出力したいイベント情報（文字列）**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/1ab4cf57-dac0-c9fe-0918-86ba5eb11db9.png)

 **②改行（文字列）**
変数内で改行を反映させるために変数として設定しました。
※わかりづらいですが、Value欄で改行を1回行っています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/f47e33fb-8d46-98bd-061a-9b00bfb74192.png)

### **・イベント情報を文章にまとめるための繰り返し処理**
※下記のアクション①を作成すると自動で枠が作成されるので、中に挿入していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/b01147b1-2de8-398d-ab71-dfbe788b2f72.png)

**①イベントの開始時刻を日本時間に変換**
日本時間でないと見づらいため変換しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/8205c3bc-3de6-5dea-a503-de35c0a7e51a.png)

**②イベントの終了時刻を日本時間に変換**
※今回は日を跨いでいるイベントでも時刻（hh:mm）のみ表記されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/71a95969-528d-3c6a-4f5a-baa5af112bdf.png)

**③イベント情報文章を作成**
イベント名はOutlook取得の結果から、開始終了時刻は上記の①②を用います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/b65da9e3-b366-7cbe-8530-6352dfeedbed.png)

### **・Teamsチャットにメッセージを送信**
イベント情報文章が空白ではない場合と、空白である（＝予定が取得されなかった）場合で分岐させています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/9e7949b4-7d06-91eb-5f47-43e59d5fa52e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/d290d5e5-4630-bbae-732c-a325dbe8e778.png)

**①予定がある場合**
Recipientには自身のアカウントを追加しています。自分宛にWorkflowsからチャットが届く形です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/6391842b-2e8c-70ad-2ce1-1dfacaffacfb.png)

〇結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/fa6cded2-385d-708a-0cb8-06dce7d124e9.png)

**②予定がない場合**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/f3624437-8d33-e017-3b59-91ce2a71a132.png)

〇結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518925/4a15ed63-0210-8dcc-4d36-04d8b324beb9.png)

## おわりに
今回はOutlookだけですが、Plannerから取得してタスクリストを送ってもらうのもできそうです。

PowerAutomate初心者のため、粗い部分があるかと思います。
もっと効率的なフローなど、改善点があればコメントいただけると嬉しいです！