Enviar email com tempo 1h antes do compromisso

Boa tarde.

Tenho um script feito por uma de nossas colegas q me ajudou bastante, só que recebo email direto em minha caixa postal, não no período q gostaria.

Queria pedir ajuda para ajustar e ver oq esta saindo de errado neste script.

A ideia é a seguinte:
Quando um agendamento é feito no meu calendário ele vai para uma grid e a mesma informa o agendamento de um compromisso:

No onRecord da grid tenho este código:

//-----------------------------------------------------//
//setando o time zone porque o horário do teu servidor está errado
date_default_timezone_set(‘America/Sao_Paulo’);

//pego os periodos que quero comparar
$periodo_inicial = date(“Y-m-d H:i:s”);
$periodo_final = {dataini}." ".{horaini};

//capturo a diferença de tempo
$retorno = sc_time_diff($periodo_final, “yyyy-mm-dd hh:ii:ss”, $periodo_inicial, “yyyy-mm-dd hh:ii:ss”);

//se a diferença de tempo for menor que 24 horas
if($retorno[0] < “24”) {

//concateno o retorno da diferença de tempo pra montar a hora
$diferenca = strtotime($retorno[0].":".$retorno[1].":".$retorno[2]);

//aqui vai o tempo que você notificar a pessoa
$tempo = strtotime("01:00:00");

//se o retorno do período for menor ou igual ao tempo que você informou, ativa o sino e envia o e-mail
if($diferenca <= $tempo) {

	{icone} = '<i class="fas fa-bell fa-2x animated infinite pulse" style="color: #FD2D2D;"></i> ';

	//arrumo os horários pra sair certinho no e-mail
	$hora = (strlen($retorno[0]) == 1) ? "0".$retorno[0] : $retorno[0];
	$minuto = (strlen($retorno[1]) == 1) ? "0".$retorno[1] : $retorno[1];
	$segundo = (strlen($retorno[2]) == 1) ? "0".$retorno[2] : $retorno[2];
	$falta = $hora.":".$minuto.":".$segundo;
	
	//envia o e-mail para a pessoa
	send_mail_alert($falta);

//caso contrário mostra o sino simples, mas você pode ocultar o sino se preferir
} else {
	{icone} = '<i class="far fa-bell fa-2x" style="color: #8492a6;"></i>';
}

} else {
{icone} = ‘’;
}

e no Método php tenho este código q dispara o email:

sc_select(ds_confemail,“select email_confemail, dominio_confemail, login_confemail, senha_confemail from confemail where id_confemail = 1”);

$emailc = $ds_confemail->fields[0];
$loginc = $ds_confemail->fields[2];
$dominioc = $ds_confemail->fields[1];
$senhac = $ds_confemail->fields[3];

sc_select(ds_empresa,“select nome_fantasia, logo from empresa_principal where id_empresa = 1”);
$empresa = $ds_empresa->fields[0];
//------------------------------------//

sc_select(ds_cliente,“SELECT nome FROM clienteswb WHERE idcli = ‘{idcli}’”);
$cliente = $ds_cliente->fields[0];

//------------------------------------//

sc_lookup(dataset,“select assunto from assunto where assunto = ‘{assunto}’”);
//sc_lookup(dataset,“select assunto from calendario where assunto = '” . {assunto} ."’");

if ({dataset} === false or empty({dataset})){
echo "Erro de acesso. Mensagem = " . {dataset_erro};
}
else
{
{assunto} = {dataset[0][0]};
}

//se não tiver e-mail da erro na tela e não envia o e-mail
if(!empty([usr_email]))
{
$assunto1 = "Alerta - Gestão Advs /Próximo Compromisso: ".{assunto};
$mensagem = “Olá, “.{resp}.”!


Você tem um Compromisso na Agenda hoje: <<< “.$tempo.” >>>, e o assunto é: “.{assunto}.”


Processo Nº “.{numproc}.”


Cliente: $cliente


Adverso: “.{adverso_new}.”.



Att.



$empresa
”;

	sc_mail_send($dominioc, $emailc, $senhac,
         $loginc, [usr_email],$assunto1,
         $mensagem, "H", "" , "", "465", "S", "");
} 

else
{
sc_alert(“Este usuário não possui e-mail para recebimento de notificações.”);
}

Desta forma o email é disparado 1 hora antes do compromisso, só que eu recebo inúmeros emails ate chegar a hora do evento.

So neste teste recebi 26 mensagens até agora e isso enche qq caixa postal. Esta disparando email com períodos aleatórios q variam de 2 2, 3, 4… minutos entre os mesmos.

Oq posso fazer neste caso para enviar 1 email 1h antes e mais nada?

Obrigado e aguardo ajuda pq não sei resolver.