GASで今日のGoogleカレンダーをSlackに通知する! – 2019年版

GASで今日のGoogleカレンダーをSlackに通知する! - 2019年版
GASで今日のGoogleカレンダーをSlackに通知する! - 2019年版
ビジネス

はじめに

今回のビジボットではSlackを効果的に使うため、GoogleAppsScript (GAS)でGoogleカレンダーに登録されている今日の予定をSlackに自動送信するコードを紹介します。
以前、Googleカレンダーの予定を一ヶ月スプレッドシートに取得するコードを紹介しました。メンバーが朝予定をしっかりと登録し、お昼頃に自動配信される設定をしておくと複数人いる部下の行動予定がGoogleカレンダーを開かないでもわかりやすいですね。

GASを使って複数メンバーのGoogleカレンダーをスプレッドシートに取り込む

GASを使って複数メンバーのGoogleカレンダーをスプレッドシートに取り込む★★☆ – ビジボット

2019年2月21日

それでは早速始めていきます!

1.スプレッドシートの作成

POINT

Googleカレンダーで複数人の部下とかカレンダーを確認したいメンバーがいた場合、コードに記述するよりスプレッドシートの方が簡単なのでスプレッドシートを用意してます。

ちなみに以下通知がSlackに届く予定です。

実際のSlack通知
実際のSlack通知

まず、A列にGoogleカレンダーのIDを登録します。
基本はアドレスがそのままIDになっていますが、GoogleカレンダーのID取得方法は以下に記載します。

GoogleカレンダーIDを取得方法

Googleカレンダーで以下画面が表示されている部分に点が3つ縦に並んだ項目があるのでクリックすると「設定と共有」という項目が表示されます。
同様にそちらもクリックすると、設定画面が表示されます。

カレンダーID確認方法
カレンダーID確認方法

表示された設定画面をスクロールしていくと「カレンダーの統合」という項目があり、その下に「カレンダーID」が表示されています。ここに記載されているIDをスプレッドシートに登録する必要があります。

GoogleカレンダーIDの確認方法
GoogleカレンダーIDの確認方法

2.GASコード記述

POINT

今回のGASコードは大きく3つの機能に分けて記述してます。
1つ目:GASでスプレッドシートに登録されたIDを取得
2つ目:GASでIDのGoogleカレンダー情報を取得
3つ目:GASでSlackに送信する
全コードは後ほど記載しますが、まずはスプレッドシートに記載されたIDを取得するコードから紹介していきます。

GASでスプレッドシートに登録されたIDを取得

コメントに記載している通りですが、ざっくり処理の説明をするとスプレッドシートに登録されているGoogleカレンダーIDの登録数を調べ、そのID分処理を実行する記述が書いてあります。

GASコード
GASログ

GASでIDのGoogleカレンダー情報を取得

コメントに記載している通りですが、ざっくり処理の説明をすると引数で渡されたGoogleカレンダーIDに登録されている今日の予定を取得して、中身を取り出します。
その後、取り出した情報をSlackで送信したい形の整形してreturn文で結果を戻します。

GASコード
GASログ

GASでSlackに送信する

コメントに記載している通りですが、ざっくり処理の説明をすると整形したデータを指定したChannelや名前などで通知を行います。
SlackのwebhookURLの取得方法は以下記事でも紹介しているので、参考にしてみてください。

※var ch = “#bzbot”はご自身の環境によって可変ですので注意してください(Slackのチャンネル名をしてください)

[slack版]GASでGoogle フォームの 結果を通知したい!– 2019年版

[slack版]GASでGoogleフォームの結果を通知したい!– 2019年版

2019年4月8日
GASコード
GASログ

GAS全コード

上の記載されていたコードが全部まとまったGASコードを記載します。
ログは省きます。

GASコード

3.GAS実行のトリガーを指定

POINT

トリガーは何度も紹介していますが、毎日を指定して配信時間を指定してGASを実行させたりとかなり便利で、業務を自動化させる上で必ずと言っていいほど必要な処理です。

スクリプトエディタがめんで「編集」 > 「現在のプロジェクトのトリガー」を選択します。

GASのトリガーを追加
GASのトリガーを追加

画面が進むと「G Suite Developer Hub」という画面が表示されるので、右下に表示されている「トリガーを追加」をクリックします。

トリガーはこんな感じでセッティングする事ができます。
実行する関数は「getId」です。これが実行される最初の関数です。
次にイベントソースですが、「時間主導型」を選択肢、時間ベースのトリガーのタイプを選択では「日付ベースのタイマー」を指定。
最後に実行される時刻を大体お昼前後にセット「午前11:00~午後12時」して右下に表示されている「保存」をクリックします。

GASのトリガーをセッティング
GASのトリガーをセッティング

これで時間になって実行されるのを待つだけです。
ちなみに送信される予定は以下です。

Googleカレンダーの配信される予定
Googleカレンダーの配信される予定

これで、冒頭にお見せしたGoogleカレンダーの予定が毎日Slackの通知が届くように設定されました!

最後今回はここまでです!
Slackだけ見てればいいっていうのが以外と楽なので、他のリマインダーやアラート系の通知も全部Slackに集約していきたいと思います。
今度、Googleアラートに設定したワードがGmailを経由してSlackに通知されるとかやってみてもいいなと思いました。
最後までありがとうございました!