無料版Teamsを使い始めたら、次に共有カレンダーの通知が欲しくなり、GoogleカレンダーをTeamsのチャネルに投稿するための手順を調べました。
■利用するサービス
・無料版Teams
・Googleカレンダー
・
integromat
⇒自動化ツール。IFTTTやMicrosoft Power Automateみたいなものだがより色々できる。
1.Teamsの準備
Incoming Webhookアプリを追加してチャネルに投稿するWebhookURLを取得する。
「Teams Webhook」で検索したら色々出てくるので手順はそちらで。(
こことか)
2.Googleカレンダーの準備
通知したいGoogleカレンダーを用意する。
手順は割愛。
3.integromatの設定
まずサインアップ。メールアドレスでもGoogleやFacebookのアカウントを使ってもOK。
ログインできたらページ左のメニューから「Scenarios」をクリック。
画面右上の「Create a new scenario」をクリック。
使うモジュールを選択する画面が出てくるので、今回は「Google Calendar」と「HTTP」を選択。テキストボックスに入力すると名前でフィルターできるので、いい感じに絞ってクリックするとチェックマークがつく。選択したら右上のContinueをクリック。
最初にトリガーを設定。?をクリックすると選択したモジュールが出てくるのでGoogle Calendarをクリック。
一番上の、追加、変更、削除って書いているっぽいやつをクリック。
Addボタンをクリックして接続するGoogleアカウントの情報を入力すると、カレンダーの一覧が出てくるので通知したいカレンダーを選択する。
最後は一度に通知するイベントの最大値っぽいので、なんとなく50にしてみた。
いつから?って聞かれたのでとりあえず今からってしてみる。
次にActionを追加。下のWebっぽいアイコンをクリックし、一番上のMake a requestをクリック。
URL:1で取得したWebhook用のURL
Method:POST
Body type:ROW
Content type:JSON
Request content:
ここを参考にいい感じに設定
■今回設定したRequest contentの内容
必要最低限の情報と予定へのリンクを出すようにした。
{
"@type": "MessageCard",
"@context": "http://schema.org/extensions",
"themeColor": "0076D7",
"title": "カレンダー名 {{switch(1.status; "confirmed"; if(formatDate(1.dateCreated; "YYYYMMDDHHmmSS") = formatDate(1.dateUpdated; "YYYYMMDDHHmmSS"); "登録"; "更新"); "cancelled"; "削除")}}",
"text": "{{1.summary}}({{formatDate(1.start; "YYYY年MM月DD日 HH時mm分")}}~{{formatDate(1.end; "YYYY年MM月DD日 HH時mm分")}})",
"potentialAction": [
{
"@type": "OpenUri",
"name": "予定を開く",
"targets": [
{ "os": "default", "uri": "{{1.htmlLink}}" }
]
}
]
}
あとはGoogleカレンダーに予定を追加し、画面左下の再生ボタンをクリックして通知されるか確認。
問題なく通知されたらフロッピーアイコンをクリックして保存する。
有効にするには左下のトグルをクリックしてOnにする。デフォルトでは15分おきにイベントを取得してTeamsに通知する。