5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GASを使ってGoogleカレンダーの内容をLINEに送る方法(今日の予定編)

Last updated at Posted at 2019-05-19

#用途
今日の予定を手軽に確認するために、LINE notifyを使ってユーザに通知する

#用意するもの
LINEアカウント
Googleアカウント

#1:LINE notifyでトークンをメモっておく
https://qiita.com/iitenkida7/items/576a8226ba6584864d95

#2:GoogleカレンダーのIDをメモっておく
http://www.sukicomi.net/2018/07/google-calendarid.html

#3:Google Apps Scriptでコーディング

send.gs
function myFunction(){
 var myCal = CalendarApp.getCalendarById("ここにGoogleカレンダーのIDを入れてね");
 
 //今日の予定一式がここで取れるよ
 var myEvents = myCal.getEventsForDay(new Date());
  
 //予定が見つからなかったら何もせず処理を終えるよ
  if(myEvents.length == 0){
    return;
  }
 
 //sendTextに文字列が加筆されていくようにする
 var sendText = "今日の予定だよ\n";
  for(var i = 0; i < myEvents.length; i++){
    var title = myEvents[i].getTitle();
    var startTime = Utilities.formatDate(myEvents[i].getStartTime(),'JST','HH:mm');
    var endTime = Utilities.formatDate(myEvents[i].getEndTime(),'JST','HH:mm');
  
    if(startTime != endTime){

   //開始時刻と終了時刻が決まっていれば「10:00~12:00:○○をする」
      sendText += startTime + "~" + endTime +":" + title + "\n";

    }else if(startTime != "00:00"){

   //開始時刻だけ決まっていれば「10:00~:○○をする」
      sendText += startTime + "~:" + title + "\n";

    }else{
   
   //開始時刻がなければ「○○をする」(タイトルだけ)
      sendText += title + "\n";
    }
  }

 var token = "ここにLINE notifyトークンを入れてね";
  var opt = {
    "method" : "POST",
    "payload" : "message=" + sendText,
    "headers" : { 
      "Authorization" : "Bearer " + token
    }
  };
  UrlFetchApp.fetch("https://notify-api.line.me/api/notify", opt);
}

#4:試してみよう

qiita4.jpg

qiita5.jpg

できたね。

#5:定刻発信できるように設定する
https://vba-gas.info/gas-trigger

#備考:iCal形式のURLを登録したカレンダーも通知可能
セクション2で取ってくるIDのパターンが違うだけ。「○○○@import.calendar.google.com」となってるはず。

#終わりに:コーディングの発端と今後の可能性
私が所属する会社が自前でスケジュールソフトを作った。リマインダー機能もあるんだが、リマインドメールの送り先が会社のアドレスとなっていた。
どうにかして手持ち環境へ送れんものかと考えたのが始まり。
そのスケジュールソフト、iCal連携OKになっていたのでいろいろ調べ回りながらコーディングしてみたらあっさりできた。といっても40分くらいかかったけどね(一番時間かかったのは、LINE通知のヘッダー定義で誤字を見つけるのに15分くらい)

今は日時バッチ化してる都合上スケジュール確認は1回しかしない。まだうっかり忘れの可能性が残ってるので、「ちゃんとしたリマインダー(10分前通知)」とかできるようにしようと思う。

※ リマインダーできたので記事作成中・・・ ※
できたよ
https://qiita.com/watarimaycry2/items/3f977321434f2749ad87

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?