GoogleCalendar
GoogleAppsScript
gas
Slack
便利

今日のスケジュールを毎朝教えてほしい

はじめに

最近予定を忘れやすい・・・

これじゃあいかんということで
きちんと管理することにした。

更に、毎朝その日のスケジュールを通知して
絶対に忘れないようにする。


さてどうする

予定はGoogleカレンダーを使うことにした。

Googleカレンダー自体に通知機能はあるが
その日の予定をまとめて通知してくれる機能はあるのか・・・??

良く分からなかったので別の方法を検討。

GASでSlackに連携して通知することにした。


流れ

予定はGoogleカレンダーで自分で管理。

GASでカレンダーを読み取って
全部まとめてからSlackに通知。

それを毎朝AM07:00にセットしておけば
必ず通知を見るので忘れる心配なし!!

(※今回は「カレンダーに入れ忘れる」という
残念な忘れ方については対象外とした。)


早速やってみよう

GASの基本的な操作とスケジューリングは
こちらのページを参考にした。

https://www.sakana.tech/entry/make-cron-use-googleappsscript

あとはscriptでカレンダーから取って
まとめてSlackに投げる部分を作ればOK。


実際のコード

フォーマットや書き方はダサいが
とりあえず実用性重視ということで・・・

function mySchedule() {
  var calendar = CalendarApp.getCalendarById('{GoogleカレンダーID}');
  var schedule = calendar.getEventsForDay(new Date());
  var message = '@{Slackで付けたいメンション}\n本日の予定:' + Utilities.formatDate(new Date(), 'JST', 'yyyy/MM/dd') + '\n';
  for(var i=0; i<schedule.length; i++) {
    var title = schedule[i].getTitle();
    var start = Utilities.formatDate(schedule[i].getStartTime(), 'JST', 'HH:mm');
    var end = Utilities.formatDate(schedule[i].getEndTime(), 'JST', 'HH:mm');
    message = message + start + ' - ' + end + ' ' + title + '\n';
  }

  var slackApp = SlackApp.create('{SlackのToken}');
  slackApp.postMessage('#{Slackで通知するチャネル}', message, {
    username : '{通知する時の名前}'
  });
}

実行したら

こんな感じで予定が通知されました。

image.png

スマホにもSlackを入れているので
目を覚ましたらすぐにでも確認できる感じです。


最後に

GASもSlack連携も初めてだったので
色々やれてよかったです。

でも・・・全部終わったあとに
標準のSlack連携でもできるのかと調べてみたら
普通にできちゃいました💦

【参考記事】
https://get.slack.help/hc/ja/articles/206329808-Slack-%E3%81%A8-Google-%E3%82%AB%E3%83%AC%E3%83%B3%E3%83%80%E3%83%BC%E3%82%92%E9%80%A3%E6%90%BA%E3%81%95%E3%81%9B%E3%82%8B

やりたかったことはこれで十分なので
今回の記事は「はじめてのGAS」程度で見てださい (^▽^;)