Skip to content

Instantly share code, notes, and snippets.

@smallfield
Last active October 19, 2022 00:40
Show Gist options
  • Save smallfield/118f2005f0d47b5619a9e2c745bb310d to your computer and use it in GitHub Desktop.
Save smallfield/118f2005f0d47b5619a9e2c745bb310d to your computer and use it in GitHub Desktop.
TOHOシネマズの予約完了メールから、映画の予定をGoogle Calendarのデフォルトカレンダーに登録するGoogle Apps Script
function createTohoEventFromGmail(){
var calendar = CalendarApp.getDefaultCalendar();
var start = 0;
var max = 5;
var event_length = 100; // minutes
var threads = GmailApp.search('from:i-net.ticket@ml.tohotheater.jp',start,max);
for(var i in threads){
var thread = threads[i];
var msgs = thread.getMessages();
for(var j in msgs){
var msg = msgs[j];
var body = msg.getPlainBody();
if (body == "") continue;
// Logger.log("Body: " + body);
var id = body.match(/Confirmation Number\D*(\d{4}).*/)[1];
var date = body.match(/Date\D*(\d+\/\d+\/\d+)\D*(\d+:\d+)/)[1];
var time = body.match(/Date\D*(\d+\/\d+\/\d+)\D*(\d+:\d+)/)[2];
var theater = body.match(/Theater\s*([^ ]+) /)[1];
var name = body.match(/Movie\s*(.*) .*\s\/?/)[1];
Logger.log("ID: " + id);
Logger.log("Date: " + date);
Logger.log("Time: " + time);
Logger.log("Theater: " + theater);
Logger.log("Name: " + name);
var start_date_time = new Date(date+" "+time+":00");
var end_date_time = new Date(date+" "+time+":00");
end_date_time.setMinutes(start_date_time.getMinutes() + event_length);
//既存予定有無確認
var registed_events = calendar.getEvents(start_date_time, end_date_time, {search: "["+id+"]"+name});
if(registed_events.length == 0) {
//Googleカレンダーへの投稿
var event = calendar.createEvent("["+id+"]"+name,
start_date_time,
end_date_time,
{description: body, location: theater});
Logger.log("Calendar Registered: " + event.getId());
} else {
Logger.log("Already registered. (count:"+registed_events.length+") ("+registed_events[0].getTitle()+")");
}
Logger.log("----------------------------------");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment