Power Apps で日程調整を効率化しよう


# はじめに

これまでこのブログでも度々画面ショットを出していましたが、改めて Power Apps で作成する日程調整アプリについて紹介いたします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/0c7c85e2-db1d-6ca5-3d0f-9ff87a761fb8.png)

実は、上記画像のアプリは以下のサイトを通じてパッケージをインポートすることも出来ます。

https://blogs.windows.com/japan/2021/07/05/2powerappsforteams/

今回は、このアプリのカスタマイズバージョンしたバージョンおよびよくあるご質問について説明します。

# 日程調整アプリとは

先にどんなアプリか改めてざっくりと説明します。
まず、こちらのアプリでは、出席者の Outlook の空き時間情報を元に (Exchange Online 上の)、Office 365 Outlook Connector の Find meeting times アクションを利用して**日程の候補をベストエフォートで返してくれます。**

https://learn.microsoft.com/en-us/connectors/office365/#find-meeting-times-(v2)

そちらの情報がアプリ上に表示されるため、例えば、いくつかの日程候補にチェックを入れて件名や本文を書いて送信ボタンを押すことで、複数の会議出席依頼が一括で送信されるため、日程調整業務、特に一旦複数仮押さえをするような日程調整業務を効率化することが出来ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/49769f49-4a4f-fef3-495b-df6743b06a0b.png)

# カスタマイズしたバージョン

こちらのアプリをカスタマイズしたバージョンは以下のような感じです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/0c4b9bae-c085-ad3c-8175-73d01d9da4bb.png)

どのような機能が追加されているか説明いたします。

## 全員が出席可能ではない候補日時も表示する

日程調整の相手が多いものの、全員が出席可能な日時だけしか表示されない場合、日程調整が上手く行かない時もあると思います。

そのため、チェックボックスのチェック有無で、全員が出席可能ではない候補も表示されるようにしています。
どの程度の出席者が参加できそうかは、パーセンテージで表示されるようにしており、出来るだけ出席率の高い日時を簡単に見分けることが出来るようにしています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/44989a1b-b382-37f4-87e4-3a2e797e1e92.png)

## 業務時間外の候補日時も表示する

業務時間内では日程候補が見つからず、業務時間外含め候補を探したい時も稀にあると思います。
そのため、チェックボックスのチェック有無で、業務時間外の候補も表示するかどうか選択できるようにしています。
※結構凄い時間帯も出てくるので、チェックボックスのチェック有無で選択できるようにしています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/35de7441-0958-a84b-3b86-13db93029a9d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/01ed386d-e3c0-c0ed-cacc-fe3da3a4bb9e.png)


## 昼休憩時間 (12:00-13:00) を除く

こちらも、チェックボックスのチェック有無で、昼休憩時間を候補から除くか選択できるようにしています。
候補に出たとしても、そこから選択しなければいいだけなので、選択式にしています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/8ccee53d-1f65-5190-3c39-083246a0632d.png)

## 出席者の空き時間の詳細を確認する

日程候補のパーセンテージを押すと、以下のように各出席者の空き時間の詳細を確認できます。
これによりきめ細やかな日程調整が可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/b8243e6b-06c2-2f8a-559d-e7b7198ddee9.png)

:::note warn
Find meeting times アクションは、仮の予定が入っている日時について、確定した予定ではないと判断し、候補日時として返します。

これが好ましくない場合、仮の予定が入っている日時をフィルターして、全員が空き時間の予定のみ表示することも可能ですが、この場合、候補日時が少なくなってしまう場合もあること、私もそうですが、基本的に仮の予定の箇所 (承諾していない予定) が候補として返されても問題ない人もいることから、出席率をパーセンテージを表示したり、空き時間の詳細を表示したりできるようにするなどして、アプリ利用者に選択肢を持たせるようにしています。
:::

## お気に入り追加

日程調整をするメンバーが多く、また、よく同じメンバーで日程調整をする場合、毎回出席者を一人一人追加するのは面倒なため、お気に入り登録しておき、一括で出席者に追加できるようにしています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/b66c1ade-7d9b-c033-50b4-917ed4d3db89.png)

データソースが必要になるためオプションですが、このようなことももちろんできます。

# よくあるご質問

## こちらのアプリを使用することで、どのような日程調整業務を効率化できますか？

こちらのアプリを使用することで、以下のような日程調整業務を効率化することが可能です。

　a) 打ち合わせの日時は決まっておらず、ある期間内において、出席者の都合が良い日時に
　　打ち合わせを実施したいケース

　b) 社外の人と打ち合わせをするため、社内出席者の都合が良い日時をいくつか
　　ピックアップして候補日時を提示するケース、
　　また、そのタイミングで会議出席依頼を送り、一旦日程を仮押さえしておくケース
　　(ダブルブッキングとなることを避けるため)

　c) 誰かから、候補日時を提示してほしいという依頼を受けた際、出席者を自分だけにして
　　候補日時を探し、表示された日時を提示および仮押さえしておくケース
　　(自分から候補日時を提示したにも関わらず忘れておりダブルブッキングとなることを避けるため)

　※既に打ち合わせの日時が決まっているケースについては、
　　Outlook 等から直接予定表を参照して日程調整することをお勧めします

## 空いている時間が日程候補に返されません

こちらのアプリが使用している Find meeting times アクションでは、出席者の空き時間情報からベストエフォートで日程候補を返しています。そのため、空いている時間が日程候補として返されない場合もあります。

また、非常に稀ですが、一時的な API や Exchange Online の問題等により日程候補が返されない場合もあります。その場合は、Outlook 等を利用して日程調整ください。
**あくまで、日程候補の補助的な位置づけ、期待値として利用いただくのが良いかと存じます。**

## 1 時間枠にした際、9 時 30 分～10 時 30 分のような枠の候補が返ってきません

こちらのアプリで利用している Find meeting times アクションでは、空いている時間からベストエフォートで日程候補を返すもののため、 9 時 30 分～10 時 30 分のような枠で候補が返ってこないケースもございます。

候補として表示されている日時ではなく、どうしてもそのような時間帯で会議の予約をしたい場合は、Outlook 等で予約することをご検討ください

## このアプリで繰り返しの予定を作成することは出来ますか？

出来ません。繰り替えしの予定について、基本的に日時が決まっており、出席者全員の都合を確認しない (日程調整しない) ケースも多いという認識です。
そのため、Outlook 等から個別に作成する、または、以下のような別のアプリを作成することを検討ください。

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

## 特定の件名の予定は空いているとみなし候補とすることはできますか？

出来ません。こちらのアプリが使用している Find meeting times アクションでは、出席者の空き時間情報からベストエフォートで日程候補を返しており、予定の件名の情報は考慮しておらず、出席者の各予定の件名の情報も取得していないためです。

## こちらのアプリを使ったときに提示される候補日時は何の情報を元にしていますか？

出席者全員の Exchange Online の予定表の空き時間情報、稼働時間を元にしています。
出席者の中で、稼働時間を適切に設定していない人がいる場合、候補日が上手く返されませんが、[業務時間外の候補日時も表示する] にチェックを入れることで候補が表示されるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/d226c5a0-84d0-25b6-39f9-0664ef92bd63.png)

## 会議室の予約も取ることは可能ですか？

会議室も出席者に含めることは可能ですが、複数の会議室を追加した場合は複数の会議室の予約を取ってしまうことになります。

あるフロアの複数の会議室のうち、空いている会議室の中でどれかを予約したいような場合は、こちらのアプリで出席者の予定を元に日程を確定させ、その後、Outlook の [会議室の検索] 機能を利用することをご検討ください

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/423eb8b8-acbe-1f8d-4ce4-910029733c84.png)

## ユーザーの検索結果にゲストユーザーが表示されます

Office 365 ユーザーコネクターの SearchUser アクションについて、ゲストユーザーも検索結果に含まれるため、必要な場合は、以下で案内している方法でフィルターください。

https://qiita.com/Takashi_Masumori/items/92f4772a73d7f05e6690#-%E3%82%B2%E3%82%B9%E3%83%88%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%8C%E6%A4%9C%E7%B4%A2%E7%B5%90%E6%9E%9C%E3%81%AB%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B

# まとめ

今回は、Power Apps で日程調整を効率化するアプリについて紹介しました。機能はほぼ同じですが、実際に弊社でも 2 年以上多くの人が利用しております。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/bc293bb6-5e22-812d-5f47-044b7e671ec0.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/3fa0bae2-6c31-3182-9f92-51045815c6a1.png)

また、モバイル向けの場合、以下のような感じになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/c7ac36fa-43be-5e45-9af3-e864edcd1d7f.png)

これまで、多くのお客様から、「利用したい」という要望をいただき、必要に応じてカスタマイズをした上で実際に利用されております。

そのため、日程調整に時間を割いており、苦慮している方は、是非 Power Apps で効率化することをご検討いただけると幸いです。