mongolyyのブログ

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

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

背景

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

コード

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

  • 6行目 GoogleカレンダーID, slackのuser_idの配列を実際の値に書き換える
  • 70行目 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
    ・イベントのソースを選択:時間主導型
    ・時間ベースのトリガーのタイプを選択:日付ベースのタイマー
    ・時刻を選択:(任意の時間を設定)
    ・エラー通知設定:(任意)