LoginSignup
4
3

More than 1 year has passed since last update.

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

Posted at

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 のカレンダーに複製されることを確認します。

以上です。

4
3
0

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
  3. You can use dark theme
What you can do with signing up
4
3