本記事に記載のコードの中身については、全てを1から私が記載したわけではありません。あくまでも参照元に倣って自分でも作ってみて、一部改造を記録した記事です。
詳細は参照記事をご覧ください。
ゴール・完成形
コード
notify_Today_Schedule.gs
// スクリプトプロパティのオブジェクトを取得
const prop = PropertiesService.getScriptProperties().getProperties();
var LINE_NOTIFY_TOKEN = prop.LINE_TOKEN;
var LINE_NOTIFY_API = "https://notify-api.line.me/api/notify";
function calendarToLine() {
var calendars = CalendarApp.getAllCalendars();
var text = Utilities.formatDate(new Date(), 'JST', 'yyyy/MM/dd') + "\n";
for(i in calendars) {
var calendar = calendars[i];
var events = calendar.getEventsForDay(new Date());
//カレンダー名を取得する
if( events.length > 0 ) {
text += "■ " + calendar.getName() + "\n";
}
//カレンダーの内容を取得する
for(j in events) {
var event = events[j];
var title = event.getTitle();
var start = toTime(event.getStartTime());
var end = toTime(event.getEndTime());
text += start + ' - ' + end + " " + title + '\n';
}
if( events.length > 0 ) {
text += "\n";
}
}
sendToLine(text);//LINEにデータを送信する
}
//LINEにデータを送信する
//text:送信するデータ
function sendToLine(text){
var token = LINE_NOTIFY_TOKEN;
var options =
{
"method" : "post",
"payload" : "message=" + text,
"headers" : {"Authorization" : "Bearer "+ token}
};
UrlFetchApp.fetch(LINE_NOTIFY_API, options);
}
//'HH:mm'に変換する
function toTime(str){
return Utilities.formatDate(str, 'JST', 'HH:mm');
}
感想・今後の展望
- 改造してオリジナリティを出したかったけど、参照先の内容が完成されすぎて、改造ができなかった。
- あ〜、予定の取得だけでなく、予定変更があったときに変更内容をLINEに通知できたらもっと便利かも。
参照