Skip to content

Instantly share code, notes, and snippets.

@toshiaki-h
Created April 25, 2017 13:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save toshiaki-h/9a765fe589dfc36d4c53a6ae22dfba39 to your computer and use it in GitHub Desktop.
Save toshiaki-h/9a765fe589dfc36d4c53a6ae22dfba39 to your computer and use it in GitHub Desktop.
/*
* QQ Englishのスケジュールを登録する
*/
var CALENDAR_NAME = 'YOUR CALENDAR NAME';
var SEARCH_QUERY = 'is:unread subject:"【QQEnglish】レッスン予約完了"';
var REMIND_MINUTES_BEFORE = 10;
function registQQEnglishCalendar() {
// 指定したカレンダーを取得
var calendars = CalendarApp.getCalendarsByName(CALENDAR_NAME);
var calendar;
if (calendars.length === 0) {
Logger.log(CALENDAR_NAME + "カレンダーが見つかりません");
return;
} else {
calendar = calendars[0];
}
var threads = GmailApp.search(SEARCH_QUERY, 0, 1);
if (threads.length === 0) {
Logger.log("メールが見つかりません");
return;
}
var thread = threads[0];
var messages = thread.getMessages();
for (var idx in messages) {
var message = messages[idx];
var body = message.getBody();
body = body.replace(/<br \/>/g, "");
// Logger.log("message body: " + body);
var teacher = null;
var teacherName = null;
var reservedDate = null;
var startAt = null;
var date = null;
var startTime = null;
var endTime = null;
var rows = body.split("\n");
for (var i in rows) {
var row = rows[i];
if (row.indexOf("教師:") === 0) {
teacher = row;
teacherName = teacher.replace("教師:", "");
Logger.log(teacherName);
} else if (row.indexOf("日付:") === 0) {
reservedDate = row;
date = row.replace("日付:", "");
date = date.replace(/\-/g, "/");
} else if (row.indexOf('時間:') === 0) {
startAt = row;
var timeRange = startAt.replace("時間:", "");
var times = timeRange.split("-");
startTime = times[0];
endTime = times[1];
}
}
var startDateStr = date + " " + startTime;
var endDateStr = date + " " + endTime;
var startDate = new Date(startDateStr);
var endDate = new Date(endDateStr);
Logger.log("startDate: " + startDate);
Logger.log("endDate: " + endDate);
if (teacher && reservedDate && startAt && date) {
var title = "QQEnglish " + teacherName + "先生";
var contents = [teacher, reservedDate, startAt];
var content = contents.join("\n");
Logger.log(title);
Logger.log(content);
// カレンダーに追加
var event = calendar.createEvent(title, startDate, endDate, {description: content});
event.addPopupReminder(REMIND_MINUTES_BEFORE);
thread.markRead();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment