DMM英会話のレッスン予約をgoogleカレンダーに自動で登録する方法 2020年1月20日動作確認
DMM英会話のレッスン予約をgoogleカレンダーに自動で登録する方法です。
以下の方が書いてくださってる記事を参考にしてください。 blog.shotarok.com
しかしDMM英会話から送られてくるメールのフォーマットが変更されてしまい、記事の通り作業しても正しく動作しません。 そこで2020年1月20日時点で動作確認したメール文章のフォーマットに基いたコードを以下に書くのでGoogle App Scriptにコピペして動かしてみて下さい。
2020年1月20日時点で動いたコード
//gmailでメールを検索するキーワード(dmmのメールの件名が変わった場合変更する必要がある) //2020年1月20日時点で動作確認した時に送られてきたメールはこちら。 //画像で確認できます => https://i.gyazo.com/e95a5664d1ed06d0994ed01b605d7ab5.png var CRITERIA = "from:noreply@eikaiwa.dmm.com subject:レッスン予約 is:unread "; //プロジェクトのトリガーにmainという関数を登録する必要がある function main() { eachMessage(CRITERIA, function (message) { var body = message.getBody(); //本文中からレッスン開始時刻を含むフレーズを抽出する var [phrase] = /様、.*とのレッスン予約が完了しました/.exec(body); //フレーズからレッスン開始時刻を抽出する var [beginAtStr] = phrase.match(/\d{4}\/\d{2}\/\d{2}\ \d{2}\:\d{2}/g); var beginAt = new Date(beginAtStr); var endAt = new Date(beginAt.getTime() + 30 * 60000); createEvent("DMM英会話", beginAt, endAt); }); } function eachMessage(CRITERIA, callback) { GmailApp.search(CRITERIA).forEach(function(thread) { thread.getMessages().forEach(function(message) { callback(message); //処理したメッセージは既読にする。 message.markRead(); }); }); } function createEvent(title, startDate, endDate) { if (!(title && startDate && endDate)) { return; } var cal = CalendarApp.getDefaultCalendar(); var event = cal.createEvent(title, startDate, endDate); Logger.log('Event ID: ' + event.getTitle() + '[' + startDate + '~' + endDate + '] is created'); }
これをgoogle app scriptのエディタに貼り付けてください。
あとはプロジェクトのトリガーにmainという関数を登録すれば完了。
皆さんの快適なイングリッシュライフを!