Power Apps で定例の会議や 1on1 の日程調整を効率化しよう


# はじめに

Outlook では、以下のような機能で定例の会議や 1on1 の予約をすることが出来ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/9ad286a1-8b82-b672-2081-c8f9e051e3fb.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/73467eb3-8917-7a2d-905d-7488cf625531.png)

しかし、一旦会議出席依頼を出してみたものの、**ほとんどの各候補日時について、別の定例会議が入っている人がいたり、参加者がほぼゼロの候補日時があったりすると、定例スケジュール自体の再調整が必要になったり、各候補日時について個別の日程調整が多々発生してしまったりすることになると思います。**

スケジュールアシスタントという機能がありますが、右にスクロールして睨めっこしていく必要があると思います。個人的に、そもそも翌月の第 3 木曜日がいつか分からなかったり、右に沢山スクロールすると、前月、前々月の候補日時、何人くらいが出席できそうか忘れたりしそうな気がしています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/726cb734-c6be-cd22-c3a1-a926ccf081ec.png)

※テスト環境のため上記はほとんど予定が入っていませんが、本番環境だと多くの人がぎっしり予定が入っていると思います

今回はそのような悩みを軽減して定例の会議や 1on1 の日程調整を効率化するアプリを紹介します。

# 日程調整アプリ (定例ミーティング版)

早速、アプリを紹介します。
以下のような感じで、Outlook と同じように定例のパターンを設定し、参加者の設定をすると、**全体や各候補日時の出席率をサクッと表示してくれます。**

こちらのアプリを利用すると、おおよそ問題ない定例の会議や 1on1 の日程調整を簡単に見つけることが簡単になると思います。

個人的に、よく定例の日程調整をする方や、沢山のメンバーと定例で 1on1 するマネージャーの方にとって助かるアプリだと思っています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/bd3dcdf5-bc61-2e94-cc99-9632ecceb285.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/f8563d39-b9eb-150a-0c26-b550cea47e08.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/6b15772a-09c1-fe98-b468-2dae2884d513.png)



また、各候補日時の各出席者の空き時間情報を確認できたり、また、仮の予定を出席可能として扱うかどうかも選択できるようになっています。

::: note 
ちなみに、私自身は出席する会議は必ず承諾しているので、仮の予定の箇所は空き時間とみなしても問題ないようにして、日程調整の打診があった際そのように伝えています。

広範囲に案内を出している勉強会等や社内会議など (後で録画視聴可能)、もし余裕があったら参加してもいいかなという会議もそれなりにあり、そのような予定は承諾しないようにしており仮予定となっていますが (辞退するのも面倒で後で、辞退すると録画を探しにくくなる)、そのような仮予定まで考慮するとほとんど予定が埋まってしまい日程調整が難航するためです。
:::

# 仕組みの概要

候補日時の出席率については、Outlook コネクタの FindMeetingTimes を利用しています。

https://learn.microsoft.com/ja-jp/connectors/office365/#%E4%BC%9A%E8%AD%B0%E3%81%AE%E6%99%82%E9%96%93%E3%82%92%E6%A4%9C%E7%B4%A2-(v2)

FindMeetingTimes は以下のような感じで利用しています。

```
ForAll(
    colCandidateDate As CANDIDATEDATE,
    Collect(
        colMeetingTimes,
        AddColumns(
            Office365Outlook.FindMeetingTimesV2(
                {
                    RequiredAttendees: Concat(
                        colAttendees,
                        Mail & ";"
                    ),
                    MeetingDuration: DateDiff(
                        DateTimeValue(Today() & " " & drpStartTime.Selected.Time),
                        DateTimeValue(Today() & " " & drpEndTime.Selected.Time),
                        TimeUnit.Minutes
                    ),
                    Start: DateTimeValue(
                        DateValue(CANDIDATEDATE.Value) & " " & drpStartTime.Selected.Time,
                        "ja-JP"
                    ),
                    End: DateTimeValue(
                        DateValue(CANDIDATEDATE.Value) & " " & drpEndTime.Selected.Time,
                        "ja-JP"
                    ),
                    MaxCandidates: 5,
                    IsOrganizerOptional: If(
                        CountRows(colAttendees) = 1,
                        false,
                        true
                    ),
                    ActivityDomain: "Unrestricted",
                    MinimumAttendeePercentage: 0
                }
            ).meetingTimeSuggestions,
            "StartTime",
            DateAdd(
                DateTimeValue(meetingTimeSlot.start.dateTime),
                -TimeZoneOffset(),
                TimeUnit.Minutes
            ),
            "EndTime",
            DateAdd(
                DateTimeValue(meetingTimeSlot.end.dateTime),
                -TimeZoneOffset(),
                TimeUnit.Minutes
            )
        )
    )
);
```

上記処理より、繰り返しのパターンや期間で設定した情報から、各候補日時を計算するところ (colCandidateDate を生成するところ) に苦労しました。ここは長すぎるので割愛します。

# まとめ

Power Apps を利用することで、このような定例会議や 1on1 等の日程調整を効率化することが出来ることを、実際に作成したアプリをベースに紹介しました。

また、単発の会議の日程調整の効率化は、以前紹介したこちらのアプリの方が良いかと思います。

https://qiita.com/Takashi_Masumori/items/bc3c4588a18ad852a246

日程調整業務に苦労している方は、是非このようなアプリを参考に Power Apps で効率化することをご検討いただけますと幸いです。