LoginSignup
2

More than 1 year has passed since last update.

posted at

LINE WORKS に Google カレンダーの予定を同期する

Google や Office 365 のカレンダーを LINE WORKS と併用したい

LINE WORKS のカレンダーと Google や Office 365 などのカレンダーと併用したいという話しはよくあります。

LINE WORKS は、標準ではそれらと自動で同期する機能の提供はありません。

ですが、共有用の URL 経由で、LINE WORKS の画面にそれらのカレンダーを表示する機能が、2021 年 2 月のアップデートから使えるようになっています。

ただ、あくまでも表示されるだけなので、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 カレンダーのイベントがカレンダーに追加されたときをトリガーに指定します。
l_1517737_1464_1638328328426.png

l_1517737_1465_1638328351933.png

連携する Google カレンダーのアカウントでサインインして接続を作成します。
l_1517737_1466_1638328365454.png

連携する Google カレンダーを選択します。
l_1517737_1468_1638328516312.png

フローの次のステップを作成します。
l_1517737_1469_1638328539352.png

日時コネクタを日時の書式変更のために使用します。
l_1517737_1470_1638328565909.png
タイムゾーンは変換しないのですが、書式変更にも使えます。
l_1517737_1471_1638328586605.png
まずはイベント開始日時。
l_1517737_1472_1638328656086.png
タイムゾーンは適宜選択してください。書式はカスタム値を指定します。
l_1517737_1473_1638328755482.png
書式は以下のとおり指定します。

yyyyMMddTHHmmssZ

数種類の日時を扱うので判別できるように名前を付けてください。
l_1517737_1474_1638328920535.png

同様に予定の終了日時と、作成日時を処理します。作成日時は現在時刻を基にしています。
l_1517737_1475_1638328933779.png

l_1517737_1477_1638329057256.png

次のアクションを作成します。HTTP コネクタで LINE WORKS のカレンダー API を実行します。
l_1517737_1478_1638329111405.png

LINE WORKS Developers サイトのドキュメントの説明に沿って、リクエストの URI やヘッダー、本文を入力します。
https://developers.worksmobile.com/jp/document/100702703?lang=ja
l_1517737_1479_1638330905468.png
本文は iCalendar 形式で記述します。
https://developers.worksmobile.com/jp/document/1007011?lang=ja
Google カレンダーのトリガーから取得した予定の情報を含めます。
l_1517737_1480_1638331099384.png

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 のフローは以上です。保存してフローを有効化します。
l_1517737_1481_1638337331223.png

フローのトリガーには、予定追加の他に変更や、削除もあります。
また、LINE WORKS のカレンダー API も、PUT や DELETE メソッドが使えます。
これらを用いて、予定の新規作成だけでなく、変更や削除を反映するフローも作成できます。

動作確認

Google カレンダーに予定を作成すると、LINE WORKS のカレンダーに複製されることを確認します。

以上です。

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
What you can do with signing up
2