var triggered = false; function delayed(method) { (function loop() { var now = new Date(); // here the method will be triggered at 20:28, you can change them as per your need if (!triggered && now.getHours() === 20 && now.getMinutes() === 28) { method(); triggered = true; } console.log('Now: ' + now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds()); setTimeout(loop, 200); })(); }