はじめに
- タイトルにある通りoutlookのスケジュールのカテゴリの条件判定ですこしてこずったので備忘録として残しておく。
今回やりたかったこと
- 祝日・休日かどうか確認し、通知をする
- Outlookのカテゴリを利用
最終的な実装内容
カテゴリ(休日)情報を含む終日スケジュール情報を(当日分のみ)取得し、カテゴリ(休日)がついているものが含まれるかどうかを判定する
- 各アクションの詳細
アクション名 | 名前 | 種類 | 値 | その他 |
---|---|---|---|---|
繰り返し | N/A | N/A | N/A | 実行したい時間・頻度を自身で設定 |
変数を初期化する | 開始時刻 | 文字列 | formatDateTime(addHours(utcNow(),9),'yyyy.MM.dd') | 値は式で定義 |
変数を初期化する | 終了時刻 | 文字列 | formatDateTime(addHours(utcNow(),33),'yyyy.MM.dd') | 値は式で定義 |
イベントカレンダービューの取得(V3) | N/A | N/A | N/A | 設定詳細は別途記載 |
変数を初期化する | イベント結果 | アレイ | value | 値は動的なコンテンツ>value |
条件 | N/A | N/A | N/A | 判定式は別途記載 |
- イベントカレンダービューの取得(V3)設定の詳細
カレンダーID | 開始時刻 | 終了時刻 | フィルタークエリ | 補足 |
---|---|---|---|---|
予定表※1 | 動的なコンテンツ>開始時刻 | 動的なコンテンツ>終了時刻 | categories/any (category : category eq '休日') | ※1 カレンダーIDは自分の予定表を選択 |
- 条件の詳細
値の選択(左端) | 比較演算子 | 値の選択(右端) | 補足 |
---|---|---|---|
式> empty(variables('イベント結果')) | 次の値に等しい | false | 祝日/休日がある場合は'はいの場合'へ進む |
躓いた点
- カテゴリのフィルタークエリの定義
カレンダーのイベントビューの中身を確認すると。。。
[
{
"subject": "夏期休暇",
"start": "2022-08-15T00:00:00.0000000",
"end": "2022-08-16T00:00:00.0000000",
"startWithTimeZone": "2022-08-15T00:00:00+00:00",
"endWithTimeZone": "2022-08-16T00:00:00+00:00",
"body": xxxxxxxx",
"isHtml": true,
"responseType": "none",
"responseTime": "0001-01-01T00:00:00+00:00",
"id": "xxxxxx",
"createdDateTime": "2022-08-22T00:08:12.6190438+00:00",
"lastModifiedDateTime": "2022-08-22T00:15:17.9104213+00:00",
"organizer": "xxxxx@xxxxx.co.jp",
"timeZone": "UTC",
"iCalUId": "xxxxxxxxxxxxxxxxxxx",
"categories": [
"休日"
]
}
categoriesで値持っていることを確認しました。
上記をもとに最初以下のように記載していました。
フィルタークエリ
categories eq '休日'
手動テストすると。。。
実行結果
Could not find a property named 'categories' on type 'microsoft.graph.event'.
clientRequestId: xxxxxxxx-xxxxxxxxxxxxx
serviceRequestId: xxxxxxx-xxxx-xxxx-xxxxxx-xxxxxxxxx
categoriesなんてみつからないと。。
自分で調べてみて参考URLにあるany演算子を使って書いてあげる必要がありました。
参考URL