diff --git a/calendario.html b/calendario.html index aede58e..b407daf 100644 --- a/calendario.html +++ b/calendario.html @@ -226,14 +226,25 @@ return true; }); - const events = filtered.map(s => ({ - id: s.id, - title: `${s.contact_name} ${s.assigned_name ? '('+s.assigned_name.split(' ')[0]+')' : ''}`, - start: s.scheduled_date + (s.scheduled_time ? 'T' + s.scheduled_time : ''), - backgroundColor: colorMap[s.status_color] || '#6b7280', - borderColor: colorMap[s.status_color] || '#6b7280', - extendedProps: { ...s } // Guardamos todo el objeto servicio - })); + // ... dentro de events: async function ... +const events = filtered.map(s => { + // CORRECCIÓN: Aseguramos que la fecha sea solo YYYY-MM-DD + // Si viene como "2026-02-11T00:00:00.000Z", nos quedamos solo con la primera parte. + const cleanDate = s.scheduled_date ? s.scheduled_date.split('T')[0] : null; + + // Si no hay fecha válida, no mostramos el evento para evitar errores + if (!cleanDate) return null; + + return { + id: s.id, + title: `${s.contact_name} ${s.assigned_name ? '('+s.assigned_name.split(' ')[0]+')' : ''}`, + // Ahora concatenamos limpio: "2026-02-11" + "T" + "09:00:00" + start: cleanDate + (s.scheduled_time ? 'T' + s.scheduled_time : ''), + backgroundColor: colorMap[s.status_color] || '#6b7280', + borderColor: colorMap[s.status_color] || '#6b7280', + extendedProps: { ...s } + }; +}).filter(e => e !== null); // Filtramos los nulos por seguridad successCallback(events); } catch(e) { failureCallback(e); }