会議をすっぽかすことが多いので、GASで通知させることにした。
目次
1. 概要
サンプルコードはコンソールログ表示させるようにしていますが、
chatbotにpostするようにすれば、怒涛の通知を受け取れます。
2. スクリプト
noticeYourSchedule.js
// ━━━━━━━━━━━━━━━
// 共通
// ━━━━━━━━━━━━━━━
var user = Session.getActiveUser().getUserLoginId()
var cal = CalendarApp.getCalendarById(user);
function getSchedule() {
var currenttime = new Date();
Utilities.formatDate(currenttime, "Asia/Tokyo", "yyyy/MM/dd HH:mm:ss");
var endtime = new Date();
endtime.setHours(23, 59, 59);
Utilities.formatDate(endtime, "Asia/Tokyo", "yyyy/MM/dd HH:mm:ss");
var events = cal.getEvents(currenttime, endtime);
var eventsarr = [];
for (var i of events) {
var title = i.getTitle();
var starttime = i.getStartTime();
Utilities.formatDate(starttime, "Asia/Tokyo", "yyyy/MM/dd HH:mm:ss");
var eventarr = [];
eventarr.push(starttime);
eventarr.push(title);
eventsarr.push(eventarr);
}
return eventsarr;
}
// ━━━━━━━━━━━━━━━
// 今日の残スケジュール
// ━━━━━━━━━━━━━━━
function noticeTodaysLeftSchedule() {
var schedule = getSchedule();
var currenttime = new Date();
var schedule = schedule.filter(data => data[0] > currenttime);
var messagearr = [];
for (var i = 0; i < schedule.length; i++) {
var starttime = schedule[i][0];
var starttime = Utilities.formatDate(starttime, "Asia/Tokyo", "HH:mm");
var title = schedule[i][1];
messagearr.push(starttime + ' ' + title);
}
messagearr.join('\n');
var message = '▼本日の残スケジュール\n━━━━━━━━━━━━━━━\n' + messagearr + '\n━━━━━━━━━━━━━━━'
Logger.log(message);
}
// ━━━━━━━━━━━━━━━
// まもなく始まるスケジュール
// ━━━━━━━━━━━━━━━
function noticeScheduleStartingSoon() {
var schedule = getSchedule();
var currenttime = new Date();
var after10min = new Date();
after10min.setMinutes(after10min.getMinutes(after10min) + 10);
var schedule = schedule.filter(data => data[0] > currenttime);
var schedule = schedule.filter(data => data[0] < after10min);
var messagearr = [];
for (var i = 0; i < schedule.length; i++) {
var starttime = schedule[i][0];
var starttime = Utilities.formatDate(starttime, "Asia/Tokyo", "HH:mm");
var title = schedule[i][1];
messagearr.push(starttime + ' ' + title);
}
messagearr.join('\n');
var message = '▼まもなく始まるスケジュール\n━━━━━━━━━━━━━━━\n' + messagearr + '\n━━━━━━━━━━━━━━━'
Logger.log('も');
Logger.log('う');
Logger.log('す');
Logger.log('ぐ');
Logger.log('会');
Logger.log('議');
Logger.log('が');
Logger.log('始');
Logger.log('ま');
Logger.log('る');
Logger.log('よ');
Logger.log('!');
Logger.log(message);
}