毎日特定の日時ちょうどに実行するトリガーを作る
とほぼ同じですが、毎日ではなく毎週設定したい場合のコードを別途書きました
この例では、毎週月曜日に実行するため以下のように設定します
.everyWeeks(1)
.onWeekDay(ScriptApp.WeekDay.MONDAY)
やりたいこと
- 毎週月曜日の18時ちょうどに send_mail を実行したい(自動で)
コード.gs
function set_project_trigger(){ ScriptApp.newTrigger("add_temp_trigger") .timeBased() .everyWeeks(1) .onWeekDay(ScriptApp.WeekDay.MONDAY) .atHour(6) .create(); } function add_temp_trigger() { delete_temp_trigger(); var date = new Date(); date.setHours(18); date.setMinutes(00); var trigger = ScriptApp.newTrigger("send_mail") .timeBased() .at(date) .create(); } function send_mail(){ var mail_address = Session.getActiveUser().getEmail(); MailApp.sendEmail(mail_address, "実行したスクリプトID", ScriptApp.getScriptId()); } function delete_temp_trigger() { var allTriggers = ScriptApp.getProjectTriggers(); for (var i = 0; i < allTriggers.length; i++) { if (allTriggers[i].getHandlerFunction() == "send_mail") { ScriptApp.deleteTrigger(allTriggers[i]); break; } } } |
関連記事