mongolyyのブログ

開発(Javascript, Typescript, React, Next.js)や開発手法(スクラム, アジャイル)、勉強したことについて色々書ければと。

Googleカレンダーで休業日に出勤予定を入れている人にメンション付きでメッセージを送るSlackbotをGoogle Apps Scriptで書いてみた

https://mongolyy.hatenablog.com/entry/2020/01/09/013713 の記事の第二弾です。

背景

現在所属する会社で、アルバイトの方はGoogleカレンダーに予め出勤予定を入力することになっているのですが、会社の休日が多いこともあり、休日に出勤予定入れてしまっている人がいます。社員がいちいち指摘するのも面倒&忘れるので、出勤がある日に自動でチェックし、一ヶ月後までの予定が入っていないようであれば、Slackでメンション付きのメッセージを送るGoogle Apps Scriptを書きました。

コード

以下の部分を修正してください

  • 6行目 GoogleカレンダーID, slackのuser_idの配列を実際の値に書き換える
  • 11行目 会社全体のカレンダー
  • 13行目 会社全体のカレンダーで休みを識別できる文字列
  • 127行目 urlを実際のwebhookのURLに書き換える

使い方

  1. SlackでIncoming WebHooksを有効にし、Webhook URLを取得
  2. Google Apps Scriptを作ったことない人は)chromeのウェブストアからGoogle Apps Scriptのアプリをインストールし、Google driveGoogle Apps Scriptを保存できるようにする
    https://chrome.google.com/webstore/detail/google-apps-script/eoieeedlomnegifmaghhjnghhmcldobl?hl=ja
  3. コードを貼って、GoogleカレンダーID, slackのuser_id, webhookのURLの修正を行い、保存する
  4. Google Apps Scriptの編集画面のツールバーの時計アイコンをクリックし、トリガー設定画面に遷移する
    f:id:mongolyy:20200109013116p:plain

  5. トリガー設定画面で右下の[+ トリガーを追加]ボタンをクリック。以下の設定をする
    ・実行する関数:main
    ・実行するデプロイを選択:Head
    ・イベントのソースを選択:時間主導型
    ・時間ベースのトリガーのタイプを選択:日付ベースのタイマー
    ・時刻を選択:(任意の時間を設定)
    ・エラー通知設定:(任意)