#Google や Office 365 のカレンダーを LINE WORKS と併用したい
LINE WORKS のカレンダーと Google や Office 365 などのカレンダーと併用したいという話しはよくあります。
LINE WORKS は、標準ではそれらと自動で同期する機能の提供はありません。
ですが、共有用の URL 経由で、LINE WORKS の画面にそれらのカレンダーを表示する機能が、2021 年 2 月のアップデートから使えるようになっています。
#LINEWORKS で Google や Office 365 のカレンダーの予定を表示する機能があります。2021 年 2 月のアップデートで追加されました。
— iwaohig (@iwaohig) December 1, 2021
設定方法はこちらのとおりです。https://t.co/BStZXBDRlc
ただ、あくまでも表示されるだけなので、LINE WORKS のカレンダーにデータが複製されるわけではなく、空き時間の情報にも反映はされません。
いや、Google カレンダーに追加した予定を LINE WORKS のカレンダーにも反映したいんだ、という場合はカレンダー API を使う方法があります。
この記事では、Microsoft PowerAutome のフローで Google カレンダーの予定を LINE WORKS に反映してみます。
#LINE WORKS のカレンダー API
今回はこちらのページに記載の カレンダー Server API を利用します。
予定作成
https://developers.worksmobile.com/jp/document/100702703?lang=ja
予定変更
https://developers.worksmobile.com/jp/document/100702704?lang=ja
予定削除
https://developers.worksmobile.com/jp/document/100702705?lang=ja
#PowerAutomate のフロー
PowerAutomate では、Google カレンダーのコネクターで Google カレンダーの予定の追加や変更、削除をトリガーにフローを開始します。
HTTP のコネクタで LINE WORKS のカレンダー Server API のリクエストを実行します。
なお、日時の書式の変更に日時コネクタを利用しています。
###フローの作成
Google カレンダーのイベントがカレンダーに追加されたときをトリガーに指定します。
連携する Google カレンダーのアカウントでサインインして接続を作成します。
日時コネクタを日時の書式変更のために使用します。
タイムゾーンは変換しないのですが、書式変更にも使えます。
まずはイベント開始日時。
タイムゾーンは適宜選択してください。書式はカスタム値を指定します。
書式は以下のとおり指定します。
yyyyMMddTHHmmssZ
数種類の日時を扱うので判別できるように名前を付けてください。
同様に予定の終了日時と、作成日時を処理します。作成日時は現在時刻を基にしています。
次のアクションを作成します。HTTP コネクタで LINE WORKS のカレンダー API を実行します。
LINE WORKS Developers サイトのドキュメントの説明に沿って、リクエストの URI やヘッダー、本文を入力します。
https://developers.worksmobile.com/jp/document/100702703?lang=ja
本文は iCalendar 形式で記述します。
https://developers.worksmobile.com/jp/document/1007011?lang=ja
Google カレンダーのトリガーから取得した予定の情報を含めます。
iCal 記述例
{
"ical": "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:Naver Calendar\r\nCALSCALE:GREGORIAN\r\nBEGIN:VTIMEZONE\r\nTZID:Asia/Tokyo\r\nBEGIN:STANDARD\r\nDTSTART:19700101T000000\r\nTZNAME:GMT+09:00\r\nTZOFFSETFROM:+0900\r\nTZOFFSETTO:+0900\r\nEND:STANDARD\r\nEND:VTIMEZONE\r\nBEGIN:VEVENT\r\nSEQUENCE:0\r\nCLASS:PUBLIC\r\nTRANSP:OPAQUE\r\nUID:@{triggerOutputs()?['body/id']}\r\nDTSTART;TZID=Asia/Tokyo:@{body('イベント開始日時')}\r\nDTEND;TZID=Asia/Tokyo:@{body('イベント終了日時')}\r\nSUMMARY:@{triggerOutputs()?['body/summary']}\r\nDESCRIPTION:@{triggerOutputs()?['body/description']}\r\nLOCATION:@{triggerOutputs()?['body/location']}\r\nCREATED:@{body('作成日時')}\r\nEND:VEVENT\r\nEND:VCALENDAR"
}
PowerAutomate のフローは以上です。保存してフローを有効化します。
フローのトリガーには、予定追加の他に変更や、削除もあります。
また、LINE WORKS のカレンダー API も、PUT や DELETE メソッドが使えます。
これらを用いて、予定の新規作成だけでなく、変更や削除を反映するフローも作成できます。
#動作確認
Google カレンダーに予定を作成すると、LINE WORKS のカレンダーに複製されることを確認します。
Google カレンダーに追加した予定が、しばらくすると #LINEWORKS のカレンダーに反映されます。 pic.twitter.com/dUW4V8Bgcq
— iwaohig (@iwaohig) December 1, 2021
以上です。