Microsoft Power Appsで気になるあの子（上司）の予定を押さえちゃお☆（ゝω・）vｷｬﾋﾟ

## はじめに
KDDIアジャイル開発センターのはしもと（仮名）です。

業務で Microsoft Outlook や Microsoft Teams を利用されている方、たくさんいると思います。
またその大多数は、

- **ミーティングができる時間を知るために Outlook で予定表とにらめっこ**
- **ようやく見つけた僅かな空き時間目掛けて、Teams会議のリンクを忍ばせた予定を参加者に撒き散らす**

この作業を2兆回はやったと思いますし、これからの人生あと5兆回はやります。

そんな面倒な会議の日程調整を ﾄﾞｩﾝ と効率化できるかもしれない Teams アプリを PowerApps で作りました！！！！！効率化できるとは言ってない。

## 元ネタ
こちらで公開されているアプリをベースにして、

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

機能追加時にはこちらの内容を参考にさせていただきました。
パクってないよ！

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


## 概要
アプリのトップ画面はこのようになっています。
思いっきり未実装って書いてますが見なかったことにしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463957/45ca6b7e-7a37-8cbb-a3f0-3dab1f5f328d.png)

### 使用方法
1. 会議を開催したい日程や長さ、参加者を入力する
1. 検索条件を指定する
1. 入力された条件をもと参加者の予定表に対して検索をかけ、会議可能な候補日が表示される
1. 表示された候補から実際に会議予定を送りたい時間帯を選択する
1. 件名・本文を指定の上、参加者の予定表に会議予定を送信する

## 画面一覧
### 候補検索画面

さきほどもお見せしましたが、メインとなるのがこの候補検索画面です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463957/45ca6b7e-7a37-8cbb-a3f0-3dab1f5f328d.png)

以下の条件を指定して検索を行うと、画面右側にいい感じに会議日程の候補が表示されます。
- `Meeting Settings`：日程および会議時間を指定
- `Attendees (Required)`：会議の必須参加者を指定
- `Attendees (Optional)`：会議の任意参加者を指定
- `Options`：追加の条件を指定（後述）
- `Meeting Times`:条件をもとに検索・マッチした日程候補の一覧を表示（最大15件）

候補日の横には、参加可能と判断された参加者の割合を`AND率`として表示しています。

### 詳細画面

次は詳細画面です。これは各候補日の右側に表示されているアイコンを選択することで遷移します。
参加者ごとに予定の登録状況が確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463957/ea5356e8-2701-3c06-4567-17400318261e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463957/470fd79e-c5ce-748d-13fa-4a7731cdd5ac.png)

おや？こんなところにサカバンバスピスが。珍しいですね。

https://ja.wikipedia.org/wiki/%E3%82%B5%E3%82%AB%E3%83%90%E3%83%B3%E3%83%90%E3%82%B9%E3%83%94%E3%82%B9

### 会議送信画面
候補検索画面で取得した候補から任意の日程を選択することで、会議参加者に会議予定を送信することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463957/766ab46a-01ad-e514-e58a-d3b01077ecec.png)

## 候補検索画面の詳細
`Options`では以下の条件を指定することができます。
### 任意参加者の考慮有無
検索時に、任意参加者 `Attendees(Optional)`に登録されたメンバーの予定を考慮するかのフラグです。
チェックを入れることで、任意参加者の予定も候補検索時の条件として考慮されていることが分かります。

:::note info
表示する候補数の都合で、パターン2で表示されていない候補がパターン3で表示されていますが、動きとしては想定どおりです
:::

| 1. チェックなし（任意なし） | 2. チェックなし（任意あり） | 3. チェックあり（任意あり） |
| :---: | :---: | :---: |
| ![](https://storage.googleapis.com/zenn-user-upload/d7397e154e2e-20230912.png) | ![](https://storage.googleapis.com/zenn-user-upload/ab2d0a92e6ef-20230912.png) | ![](https://storage.googleapis.com/zenn-user-upload/010e2146ba58-20230912.png)|

### 仮予定を「予定あり」とみなす
候補の検索時、デフォルトでは、「仮の予定」は予定がないものとして扱われます。

上司側で既に大事な打ち合わせの調整が動いているとしらず、重ねてブッキングする。
社会人たるものそのような過ちは避けなければなりません。

![](https://storage.googleapis.com/zenn-user-upload/3fa030fb3bf8-20230912.png)

**「おっ！最短で 9/20 13時から空いとるんけ！！！AND率100%やけど用心して見とくか！」**

![](https://storage.googleapis.com/zenn-user-upload/6c2379ff2147-20230912.png)

**「仮予定入っとるやんけ！！！！！」**

危ない！職場での信用を失うところでした...
チェックボックスにチェックを入れて再度検索してみます!

![](https://storage.googleapis.com/zenn-user-upload/d0b409d3cd9e-20230912.png)

無事に 9/20 が候補から除外されました。敗北を知りたい。


### ANDの最低割合

大人数での会議（そもそもこれが悪ですが）では、全員参加ではなく「なるべくたくさんの人のアンドが取れる日」を知りたいこともあります。
ここでは、予定を考慮する参加者のうち何%の予定が合えば候補日とみなすかを設定できます。

見切れてしまっていますが、`Attendees(Required)`に5名追加した状態です。

![IMG_1054.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463957/8db7eb12-5831-c7c2-3fbb-f105e511ba46.png)

今の状態ではしばらく打ち合わせが開催できなさそうです！どうしたもんか！
`ANDの最低割合`を **80** に変更してみます。
![](https://storage.googleapis.com/zenn-user-upload/aafe794b6593-20230912.png)
候補が増えました！`AND率`も 80% となっていますね。
![](https://storage.googleapis.com/zenn-user-upload/99665ed6a1a9-20230912.png)
詳細画面でもこのように、5名中4名は予定なしであることが分かります。


## 会議の登録
会議送信画面から実際に予定を登録してみます。
![](https://storage.googleapis.com/zenn-user-upload/f38979f9e10a-20230912.png)

**Sendｯｯｯｯｯｯｯｯｯｯｯ!!!!!!!!!!!!!!!!**

![](https://storage.googleapis.com/zenn-user-upload/a265efc37a3f-20230912.png)
![](https://storage.googleapis.com/zenn-user-upload/621687071f60-20230912.png)
お疲れ様でした。

## まとめ
普段 Power Platform 全般を利用することはないのですが、今回業務で使いそうな気配がしたのと、サンプルが提供されていたこともあって作ってみました。

業務で Microsoft 製品/サービスに囲まれた生活を送っている人類の課題、解決できるとまでは言わずとも、かなり小さくすることできるのでは？とめちゃくちゃ感じました。
会議調整とかまさにそれで、全自動化できなくてもいちいち Outlook/Teams 開かなくてよくなったの大きいです。

以上、パワーはしもとでした。

せーの、

パワー

ハッ（笑顔）

## 身内の方へ
いつでも配布いたしますので気軽にご連絡ください。