JSFiddle - React, Tailwind, and code Playground

JavaScript

function agendar(data, tempo, func, cond, intervalo) {
  var aryData   = data.split('/'),
      dia       = parseInt(aryData[0]),
      mes       = parseInt(aryData[1]),
      ano       = parseInt(aryData[2]);
  var aryTempo  = tempo.split(':'),
      hora      = parseInt(aryTempo[0]),
      minuto    = parseInt(aryTempo[1]);
      console.log("Necessario Data: "+dia+"/"+mes+"/"+ano+" Tempo: "+hora+":"+minuto);
  var agora     = new Date();
  var diaAtual  = agora.getDate(),
      mesAtual  = (agora.getMonth()+1),
      anoAtual  = agora.getFullYear(),
      horaAtual = agora.getHours(),
      minAtual  = agora.getMinutes();
      console.log("Atual Data: "+diaAtual+"/"+mesAtual+"/"+anoAtual+" Tempo: "+horaAtual+":"+minAtual);
  if (ano == anoAtual && mes == mesAtual && dia == diaAtual && hora == horaAtual && minuto == minAtual) {
    func();
  } else if (cond) {
    cond = false;
    return setTimeout(scheduler, intervalo, data, tempo, func, cond, intervalo);
  }
}

function scheduler(data, tempo, func, cond, intervalo) {
  return setTimeout(agendar, 0, data, tempo, func, true, intervalo);
}

agendar('11/02/2014', '14:55', function() { alert("Está na hora!"); }, true, 5000);