Erro de UTC Blip para atendimento no Desk

Boa noite.
Aparentemente existe um bug nas configuração do BLIP para horários de atendimento.
Criamos um script no Help center e ajustamos o horário certinho.
Porém retorna como “Fora do Horário” sendo que está dentro do Horário.
Fuso do local: -4

Script:
// Receive the variables as parameters
function run(offset, weekSchedule) {
offset = parseInt(offset);

weekSchedule = JSON.parse(weekSchedule);

let today = nowUTC(offset);

if (isWorkDay(today, weekSchedule)) {
let todaySchedule = getTodaySchedule(weekSchedule, today);
let intervalTime = getIntervalTime(todaySchedule);

return checkTime(intervalTime, today);

}

return false;
}

function getIntervalTime(todaySchedule) {
let intervalTime = [];
for (let i = 0; i < todaySchedule.workTime.length; i++) {
intervalTime.push({
start: utcDate(todaySchedule.workTime[i].start),
end: utcDate(todaySchedule.workTime[i].end)
});
}

return intervalTime;
}

function checkTime(intervalTime, today) {
for (let i = 0; i < intervalTime.length; i++) {
if (today - intervalTime[i].start > 0 && intervalTime[i].end - today > 0)
return true;
}
return false;
}

function getTodaySchedule(weekSchedule, today) {
for (let i = 0; i < weekSchedule.length; i++) {
if (weekSchedule[i].num == today.getDay()) return weekSchedule[i];
}
}

//Get now UTC Date
function nowUTC(offset) {
let now = new Date();
let utc_timestamp = Date.UTC(
now.getUTCFullYear(),
now.getUTCMonth(),
now.getUTCDate(),
now.getUTCHours(),
now.getUTCMinutes(),
now.getUTCSeconds(),
now.getUTCMilliseconds()
);

return new Date(utc_timestamp + offset * 3600 * 1000);
}

//Get UTC Date
function utcDate(timeString) {
let now = new Date();

let hour = getValueByString(“hour”, timeString);
let minutes = getValueByString(“minutes”, timeString);

let utc_timestamp = Date.UTC(
now.getUTCFullYear(),
now.getUTCMonth(),
now.getUTCDate(),
hour,
minutes,
0,
0
);
return new Date(utc_timestamp);
}

//Get hour/minute by string with pattern HH:mm
function getValueByString(type, timeString) {
if (type === “hour”) {
return parseInt(timeString.substring(0, timeString.indexOf(":")));
} else if (type === “minutes”) {
return parseInt(
timeString.substring(timeString.indexOf(":") + 1, timeString.length)
);
}

return 0;
}

//Get if today is a work day
function isWorkDay(today, workDays) {
for (let i = 0; i < workDays.length; i++) {
if (workDays[i].num == today.getDay().toString()) return true;
}
return false;
}

Alguma alma boa consegue resolver? Há tempos vimos relatos e solicitações, inclusive nossas.
Mas aparentemente não está resolvido!
Isso dificulta evolução dos nossos ambientes e até testes de alterações.

Atualização:
Aparentemente isso ocorre apenas em um determinado período.
Ou requer uns minutos para que seja processado pelo sistema?

Olá @Sao_Lucas_Educaciona como vai?

Você está usando apenas o Script gerado neste artigo ou você baixou o template inteiro que ele gera?

Estou assumindo que você gerou o script no artigo abaixo.

Você me passar o intervalo de horários configurados? Saberia me dizer em quais horários está dando problemas?

Acho que vale uma lida em cima desse tópico aqui:

Pode ser essa a solução que você procura.

Abraços

Aparentemente das 20 Às 23h, mas não é 100% das vezes.
Aparentemente a gente muda o fluxo ele demora pra entrar em vigor, sabendo disso a gente não faz mais trocas ou ajustes a noite.
Mas seria interessante descobrir se de fato existe algo que seria legal ser conhecido para contornarmos.
Ex: Uma alteração de horário de atendimento rápida.

Mas conseguimos solucionar momentaneamente se antecipando a eventuais trocas.

Infelizmente não funciona para nós, se seguir a alteração informada ele não reconhece.
Ajustamos o scrip e deu certo, só em alguns momentos que ele trava e não aceita.