はじめに
LINE WORKSの「カレンダー」機能には、APIが用意されており、自動的に予定を追加したり、予定を取得したりと、カレンダーと連携したアプリケーションを作ることができます。
ここでは、そのカレンダーのAPIを使って予定を追加する方法をまとめます。
メンバーのカレンダーに予定を追加するAPI
カレンダーの予定追加を行うAPIは以下になります。
POST https://www.worksapis.com/v1.0/users/{userId}/calendar/events
{userId}
に対象のメンバーのuser idを指定して、予定を追加します。
追加する予定情報はjson形式でリクエストボディに入れます。
以下、リクエストボディのサンプルです。
例. 2023/12/01 14:00〜15:00 に "社内会議" という予定を入れる。
{
"eventComponents": [
{
"summary": "社内会議",
"start": {
"dateTime": "2023-12-01T14:00:00",
"timeZone": "Asia/Tokyo"
},
"end": {
"dateTime": "2023-12-01T15:00:00",
"timeZone": "Asia/Tokyo"
}
}
]
}
その他詳しいパラメータはAPIのページを参照ください。
実行してみる
ここからは、予定追加のやり方についてまとめます。
ここでまとめるのはターミナル上で実行するサンプルになります。
- テスト環境: MacBook Air (M1, 2020), macOS 12.7
1. アクセストークン取得
まずは、Service Account認証でアクセストークンを取得します。calendar
scopeが必要になります。
こちらで公開したLINE WORKS CLIを使いました。
./lineworks auth service-account --scopes "calendar" --profile xxxx
export ACCESS_TOKEN=`./lineworks auth get-access-token --profile xxxx`
次に取得したアクセストークンを用いてAPIリクエストを送ります。
2. 予定追加のAPIを実行
cURLで予定追加のAPIリクエストをしてみます。
test.user@xxxxxx
というメンバーのカレンダーに予定追加します。
curl -X POST https://www.worksapis.com/v1.0/users/test.user@xxxxxx/calendar/events \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d '{
"eventComponents": [
{
"summary": "社内会議",
"start": {
"dateTime": "2023-12-01T14:00:00",
"timeZone": "Asia/Tokyo"
},
"end": {
"dateTime": "2023-12-01T15:00:00",
"timeZone": "Asia/Tokyo"
}
}
]
}'
これで、カレンダーに予定を登録することができます。
補足. LINE WORKSのカレンダーの種類
LINE WORKSのカレンダーにはいくつか種類がありますが、「基本カレンダー」と呼ばれる、各メンバーが持つデフォルトのカレンダーに予定を追加しました。
カレンダーの種類: https://guide.worksmobile.com/jp/calendar/calendar-guide/calendar/calendar-type/
まとめ
LINE WORKS APIはカレンダーにも対応しており、このように予定追加をプログラムから行うことができます。
比較的手頃に使えるため、ぜひご活用ください。