2018年07月04日

1447.Google Calendarの予定をLine Notifyで連絡する

Google Apps Scriptの第2弾として、本日、明日、明後日のGoogleカレンダーに書かれた予定を、決められた時間にLINE Notifyに送るスクリプトを紹介します。本人のみならず、食事の要不要などの連絡に大変便利です。残念ながら、Google Calender にも IFTTTにも、決められた時間に通知を発行する機能はありません。Google Apps Scriptを利用すれば、簡単に実現できますので、紹介します。

参考にしたページ
Googleカレンダーの予定を毎朝LINEに通知する

 参考にしたページには、本日の予定のみを送るようになっておりますが、食事の用意を考えるとすくなくとも明後日までの予定は通知するひつようがあります。また、予定がない場合は「なし」と標記し、わかりやすいように日付ではなく曜日を記載するようにしています。

実際の通知
[Line Notify]本日の予定(水)
13:30 - 15:00 税務

明日の予定(木)なし

明後日の予定(金)
14:30 - 16:30 取引先打ち合わせ
19:00 - 21:00  会合


実際のスクリプト
var lineToken = " LINE TOKEN をここに書く";

function main() {
var Tdate = get_date(0);
var text = "本日の予定(" + GetDayOfWeek( Tdate ) + ")";
text += get_yotei( Tdate );

var Tdate = get_date(1);
text += "\n\n明日の予定(" + GetDayOfWeek( Tdate ) + ")";
text += get_yotei( Tdate );

Tdate = get_date(2);
text += "\n\n明後日の予定(" + GetDayOfWeek( Tdate ) + ")";
text += get_yotei( Tdate );

sendToLine( text) ;
}

function sendToLine(text){
var token = lineToken;
var options =
{
"method" : "post",
"payload" : "message=" + text,
"headers" : {"Authorization" : "Bearer "+ token}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}

function toTime(str){
return Utilities.formatDate(str, 'JST', 'HH:mm');
}


function get_date(dif) {
var add_day = dif;
var now = new Date();
var year_now = now.getFullYear();
var month_now = now.getMonth();
var date_now = now.getDate();
var new_date = new Date(year_now, month_now, date_now + add_day);
var result = Utilities.formatDate(new_date, 'Asia/Tokyo', 'yyyy/MM/dd');
return new_date;
}

function GetDayOfWeek(date) {
//var date = new Date();
var dayOfWeek = date.getDay();
var dayOfWeekStr = [ "日", "月", "火", "水", "木", "金", "土" ][dayOfWeek];
Logger.log(dayOfWeekStr);
return dayOfWeekStr;
}

function get_yotei( g_date ) {
var calendars = CalendarApp.getAllCalendars();
var text ="" ;
for(i in calendars) {
var calendar = calendars[i];
var events = calendar.getEventsForDay(g_date);


for(j in events) {
var event = events[j];
var title = event.getTitle();
var start = toTime(event.getStartTime());
var end = toTime(event.getEndTime());
text += "\n" + start + ' - ' + end + " " + title ;
}
}
if(text.length < 1){
text = "なし";
}
return text;
}


Tdate = get_date(2);
text += "\n\n明後日の予定(" + GetDayOfWeek( Tdate ) + ")";
text += get_yotei( Tdate );

get_date() 内の数字を変更すれば、何日先でも予定を通知することも可能です。このスクリプトを使うようになってから、予定をGoogle Calendarに入力するようになりました。お試しください

タグ:Google Calendar
posted by いんちょう at 20:12| Comment(0) | IT
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。