概要
- Outlookコネクタを使用すると、カレンダーからOutlookの予定を取得したり、登録したりすることができます。
- Power Apps/Power Automateそれぞれの使い方について備忘録的にまとめてみます。
Power Appsの場合
Outlookコネクタの、
Office365Outlook.V4CalendarPostItem()を使用します。
以下のように呼び出し、戻り値は登録されたアイテムのレコードとなります。
Office365Outlook.V4CalendarPostItem(table,subject,start ,end,timezone,{その他のオプション...})
引数の解説
table:カレンダーid
Subject:予定表タイトル
Start time:開始時間、PowerAppsの書き方でOK
End time:終了時間、PowerAppsの書き方でOK
Time zone:タイムゾーンを文字列で
その他のオプションは下のPowerAutomateを参考に
V4CalendarPostItemの使用例
まずはカレンダーIDの取得が必要です。
以下のような関数はアプリのOnStartなどで記入します。
カレンダーはテーブルとして取得されるのでFirstで一つ目を取り出し、基本1つめがメインの予定表です。
以下のように呼び出します。
bodyに特定の文字列を入れ、アプリから登録した予定を後で識別できるようにしています。
Office365Outlook.V4CalendarPostItem( __MyCalendar.id, ThisRecord.Dropdown1.Selected.Value & "(アプリから)", (ThisRecord.Date) + Time(8,0,0) ,//ネイティブ記法でOK (ThisRecord.Date) + Time(17,0,0) , "(UTC+09:00) Osaka, Sapporo, Tokyo", {showAs:"Oof",Body:"PowerApps"} );
アプリ作成例
空のアプリを作成し、Outlookコネクタを追加します。
一例として以下のような画面のアプリを作成します。
今回は日付ごとに勤務予定を選択し、保存ボタンで一気に一週間分登録します。
同じようなギャラリーの作成方法はこちら
Qiitaもよろしくお願いします。
保存ボタンの中身はこんな感じ
予定表に登録された例
Power Automateの場合
イベントの作成V4 アクションでやれば簡単と思うけどここで落とし穴。
予定表IDを選択できるものの、フローを作った人のIDが埋め込まれるだけなので、他人がフローを実行するとうまくいきません。
また、トリガーはPowerAppsボタンなどの実行者の接続情報を使用できるインスタントフローである必要があります。
対応方法としてはアプリの場合と同じです。
まずカレンダーの取得でユーザーごとのカレンダーIDを取得して、
そちらをカレンダーIDに指定します。
カレンダーはオブジェクト配列なので、nameをもとに取り出しフィルターしてidを取り出します。
イベントの作成アクションのパラメータは、PowerAppsより分かりやすいですね。
参考
https://docs.microsoft.com/en-us/connectors/office365/#create-event-(v4) https://qiita.com/yamad365/items/fc8e7f76771570aba660