#用途
今日の予定を手軽に確認するために、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でコーディング
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:試してみよう
↓
できたね。
#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