以前書いたこの記事では
毎日特定の日時ちょうどに実行するトリガーを作る
毎日繰り返すトリガーを設定しました
今回は繰り返さない一度きりのトリガーをコードで書いてみます
コードを使わずに画面でぽちぽちやる方法はこちらに書きました
コード.gs
function run(){
var date = '2018/12/30';
var hour = 15;
var min = 11;
setTrigger(date, hour, min)
}
function setTrigger(date, hour, min) {
var date = new Date(date);
date.setHours(hour);
date.setMinutes(min);
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());
}
|
意訳この機能がやること 実行したい日付を決めて 時間を決めて 分を決めて setTriggerに渡す この機能がやること(日付、時間、分を受け取って) new Dateで日付をJSで扱える形にして 時間を設定して 分を設定して 'send_mail'の新規トリガーを作成して 時間ベースで 設定した日時で トリガーを作成する この機能がやること アクティブユーザのemailを取得して email, 件名, 本文を設定してメールを送信する |
試してみる
run()を実行します
編集 > 現在のプロジェクトのトリガーを開きます
このようなトリガーが登録されています
右端の鉛筆ボタンから編集画面を開くと
指定した日時が設定されています
指定日時になるとこのようなメールが飛んできます
その分(15:11〜15:12)の60秒の間のどこかで実行されるようです
関連記事
参考
Class ClockTriggerBuilder
https://developers.google.com/apps-script/reference/script/clock-trigger-builder



