4
3

Microsoft FormsとOutlookを連携させて他人をカレンダー招待してみた

Last updated at Posted at 2024-08-05

はじめに

最近、社内でイベントを企画した時に定期的にFormsの回答を確認して、カレンダー招待するということがあったのですが、参加者が多いと面倒なのとカレンダーの招待漏れがあったので、Formsの回答からカレンダー招待されるように自動化してみました。
FormsをトリガーにPower Automateでメール通知やカレンダーに新規の予定を登録する記事はいくつか見かけたのですが、他人をカレンダーに招待する記事がなかったので、実際に設定値を調整し、試しながら実装までたどり着けました。同じことをしたい人の助けになればと思います。

事前準備

フォームの作成

Formsを開いて適当なフォームを作成します。
image.png

カレンダーへの予定の登録

Outlookのカレンダーを開いて適当な予定を作成します。
image.png

Power Automateのフローの設定

フォームをトリガーに設定する

Power Automateを開いて適当なフローを、、、
本題なのでここはちゃんと説明します。
Power Automateを開いて「作成」→「自動化したクラウドフロー」を選択します。

image.png

フロー名を入力し、「新しい応答が送信されるとき」を選択し、「作成」を押します。

image.png

初めてフローを作成する場合は、Microsoftアカウントの連携ができておらず、画像のように「接続が無効です。・・・」と表記され、フォームを読み込むことができません。
その時はMicrosoftアカウントを連携してください。

image.png

アカウント連携ができたら、フォームIDをドロップダウンで選択できるようになるので、先ほど作成したフォームを選択します。

image.png

フォームをトリガーに設定できました。

フォームの回答情報を取得する

次は、そのフォームの回答情報を取得します。
先ほど作成したトリガーとなるアクションの下にある+ボタンからアクションを追加します。

image.png

アクションの追加画面が開いたら、「Microsoft Forms」を選択し、「応答の詳細を取得する」を押します。

image.png

トリガーの下に新しいアクションが追加されました。

image.png

追加したアクションには、フォームIDはトリガーと同じフォームIDを選択し、応答IDには右端の⚡マークから応答IDを選択します。

image.png

これでフォームの回答情報を取得できるようになりました。
各質問項目の回答内容、回答者のメールアドレス、回答の送信時間が取得できます。

招待するカレンダーの予定情報の取得

大詰めになってきました。
さらにアクションを追加し「Outlook.com」を選択し、「イベントを取得する」を選択します。

image.png

設定値は以下の画像の通りです。
予定表IDは対象の予定が入ったカレンダーを、詳細パラメータでは「フィルタークエリ」を選択し、以下の文を入力します。予定表IDで選択したカレンダーの全ての予定が対象となるため、そこからフィルタークエリで対象の予定だけを抽出します。
※できるだけ完全一致で抽出するようにしてください。ヒットした予定が全て変更されます。

contains(subject ,'(予定名)')

image.png

予定を更新する

これが最後のアクション追加です。
再度アクションを追加し、「Outlook.com」から「イベントを更新する」を選択します。

image.png

「イベントを更新する」は設定項目が多いですが、基本的には直前のアクションで取得したイベントの情報を右側の⚡マークから入力していきます。詳細パラメータは必要なところのみ、✅を付けて表示させます。
注意点としては、開始時刻、終了時刻はUTCで取得しているので、時間を変更する場合はUTCで入力しないといけないです。
もう1点は必須出席者(任意出席者)の入力です。
回答者のみを入力した場合、誰かが回答する度にその回答者だけが出席者に上書きされていき、過去に回答した人のカレンダー招待が無くなってしまいます。
なので、1つ前のアクションで取得した予定の情報から既存の出席者を入力した上で、;(セミコロン)で繋いで回答者を出席者の欄に追加します。

image.png

フローの確認

これでPowerAutomateのフローの設定は完了です。全体は画像のようになります。
あとは保存して、テストを実施します。

image.png

テスト

テストと言っても誰かにフォームを回答してもらうだけです。
社内のメンバーに回答してもらったところ、ちゃんと登録されました。

image.png

テスト時にこのフローがどのように動いたかは、作成したフローの実行履歴のところから確認できます。

image.png

実行履歴を開くと、画像のように各アクションの実行ステータスと実行時間が表示されます。
※スクリーンショット用に自分で回答した時のものなので、更新のところは動いていません。

image.png

さらにアクションを選択すると、入力と出力、実行時刻などの情報も見ることができます

image.png

また、編集画面の右上にある「テスト」ボタンからはテストの再実行ができ、フローを調整した時に再度フォームを回答してもらわなくても動作確認ができます。

image.png

おわりに

Power Automateを使って、FormsとOutlookを連携させてみました。
今回は、イベントに参加する人しかフォームを回答しない前提でフローを作成しました。
フローのアクションには「Control」というものもあり、条件分岐なども設定できるため、「参加」と回答した人だけをカレンダーに招待するといったこともできます。

みなさんもPower Automateを使用して、作業漏れの回避、自動化による効率化を実施してください!

最後までお読みいただきありがとうございます。
ぜひ「いいね♡」もよろしくお願いしますm(_ _)m

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3