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
以上です。