毎日特定の日時ちょうどに実行するトリガーを作る
とほぼ同じですが、毎日ではなく毎週設定したい場合のコードを別途書きました
この例では、毎週月曜日に実行するため以下のように設定します
.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;
}
}
}
|
関連記事