Created
April 25, 2017 13:31
-
-
Save toshiaki-h/9a765fe589dfc36d4c53a6ae22dfba39 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* 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