📅 Configuración de Google Calendar
Guía completa para integrar Google Calendar con AI4CALL: crea citas automáticas, verifica disponibilidad de espacios, gestiona el calendario empresarial directamente durante las llamadas
Ve a "MARKET" → "Marketplace Plugin" y haz clic en Comprar en "Google Calendar" → FREE
Ve a "MARKET" → "Mis Plugins" y haz clic en Configurar en "Google Calendar"
🚀 Navegación rápida:
⚠️ Servicios de terceros
Las integraciones descritas se refieren a servicios de terceros.
Los límites de tasa, métodos de autenticación, configuraciones técnicas, costes y políticas son definidos exclusivamente por los respectivos proveedores y pueden cambiar con el tiempo.
Los costes de los servicios externos son asumidos directamente por el usuario final a los proveedores de los servicios mismos y de ninguna manera son gestionados o intermediados por nuestro portal (por ejemplo, Meta u otros proveedores para WhatsApp, Zapier, Calendly, etc.).
📖 Qué es la integración de Google Calendar y cómo funciona
La integración de Google Calendar permite al asistente AI4CALL interactuar directamente con calendarios de Google: crear eventos, verificar disponibilidad, eliminar eventos, todo durante la llamada.
→ crea nueva cita en Google Calendar
→ especifica: título, fecha/hora inicio/fin, ubicación, participantes
→ Google envía invitaciones por email automáticas a participantes
→ el evento aparece inmediatamente en Google Calendar web/app/móvil
2. Verificación de disponibilidad (calendar_check_availability):
→ verifica si un espacio de tiempo está libre u ocupado
→ consulta rango de fechas: "del 15 al 20 de marzo, horas 9-18"
→ devuelve: busy (ocupado) o free (libre) para cada espacio
→ usa para proponer horarios disponibles al cliente
3. Lista de eventos (calendar_list):
→ recupera eventos existentes en un rango temporal
→ filtra por: fecha, título, ubicación, participantes
→ usa para: resumen de citas, búsqueda de evento específico
4. Creación condicional (calendar_create_if_free):
→ crea evento SOLO si el espacio está libre
→ evita superposiciones automáticamente
→ si está ocupado: devuelve error, la IA propone espacios alternativos
5. Eliminación de eventos (calendar_delete):
→ cancela cita existente
→ Google envía email de cancelación a participantes
→ evento eliminado de todos los calendarios
[Cliente llama a agencia/estudio]
↓
[Asistente AI4CALL responde]
↓
[Cliente: "Quisiera reservar una cita"]
↓
[IA pregunta: "¿Qué día prefiere?"]
↓
[Cliente: "El martes por la mañana"]
↓
[IA invoca: calendar_check_availability]
↓
[Rango: martes 9:00-13:00, intervalos de 30 min]
↓
[Google Calendar devuelve: 10:00 FREE, 10:30 BUSY, 11:00 FREE...]
↓
[IA: "Disponible el martes a las 10:00 o 11:00"]
↓
[Cliente: "10:00 está bien"]
↓
[IA invoca: calendar_create_if_free]
↓
[Google crea evento, envía invitación por email al cliente]
↓
[IA confirma: "Cita confirmada martes 15 de marzo a las 10:00"]
↓
[IA (opcional): envía confirmación por WhatsApp/SMS]Ventaja: el cliente reserva cita instantáneamente por teléfono sin esperar a un operador humano o acceder a una reserva web.
- ❌ NO modificar eventos existentes (debes eliminar + recrear)
- ❌ NO eventos recurrentes nativos (debes crear series manualmente)
- ❌ NO gestión automática de tiempo buffer entre citas (implementa en prompt)
- ❌ NO límites máximos de citas/día automáticos (implementa lógica custom)
- ❌ NO asignación round-robin automática de equipo (usa Calendly para esto)
Solución alternativa: estas limitaciones se superan con ingeniería de prompt inteligente. Ejemplo tiempo buffer: instruye a la IA a buscar espacios con +15min antes/después de ocupados.
🔐 Autoriza cuenta de Google mediante OAuth
Para permitir a AI4CALL acceder a Google Calendar, debes autorizar la cuenta de Google mediante un procedimiento OAuth seguro.
- Selecciona "Google Calendar" de la lista de tus Plugins:
→ verás banner rojo: "Ningún email de Google autorizado" - Añade email de Google a autorizar:
- Campo "Participantes": ingresa el email de la cuenta de Google (ej. agencia@gmail.com)
- Haz clic en el botón "+" (más)
- El email aparece debajo con una etiqueta gris + botón "AUTH"
- Inicia autorización OAuth:
- Haz clic en "AUTH" junto al email
- Aparece banner naranja: "Algunos emails necesitan autorización OAuth"
- El sistema envía un email a la dirección especificada
- Asunto del email: algo como "Autoriza AI4CALL para Google Calendar"
- Completa autorización (lado del usuario):
- Abre el email recibido (revisa spam si no llega)
- Haz clic en el enlace de autorización del email
- Se abre un popup/página de OAuth de Google
- Selecciona la cuenta de Google a autorizar
- Google muestra permisos solicitados: "Gestiona tu calendario de Google"
- Haz clic en "Permitir" o "Allow"
- Página de confirmación: "Autorización completada"
- Verifica autorización (vuelve a AI4CALL):
- Panel AI4CALL: haz clic en "VERIFICAR"
- El sistema verifica si Google ha confirmado la autorización
- Si OK: el email se vuelve VERDE con ✅
- Banner verde: "Emails de Google disponibles para el calendario: [email]"
- Haz clic en "GUARDAR HERRAMIENTA" para finalizar
- ✅ Autorización completada - ¡las herramientas de Google Calendar ahora funcionan!
- ✅ AI4CALL tiene acceso completo a Google Calendar
- ✅ puede crear/leer/eliminar eventos
- ✅ autorización permanente (hasta revocación manual)
- ✅ herramientas disponibles para uso del asistente
Importante: la autorización es válida para la cuenta específica de Google. Para gestionar múltiples calendarios (equipo): autoriza la cuenta propietaria de los calendarios compartidos.
- → revisa carpeta spam/correo no deseado
- → verifica email de Google correcto (sin errores tipográficos)
- → espera 5-10 minutos (retraso en envío de email)
- → reintenta: elimina email + agrega de nuevo + AUTH
El popup de OAuth no se abre:
- → el navegador bloquea popups - habilita popups para AI4CALL
- → clic derecho en el enlace del email → "Abrir en nueva pestaña"
Google niega la autorización:
- → cuenta Google Workspace: el administrador debe autorizar apps de terceros
- → 2FA problemático: completa verificación de 2 factores
- → verifica que la cuenta de Google no esté suspendida/limitada
La VERIFICACIÓN falla (el email se mantiene gris):
- → autorización OAuth no completada - repite clic en el enlace del email
- → espera 30 segundos después de "Allow" en Google, luego VERIFICA
- → enlace del email caducado (>24h) - solicita nuevo AUTH
👥 Añade emails de participantes autorizados
Configura qué cuentas de Google pueden ser usadas por el asistente para gestionar calendarios.
→ lista de cuentas de Google autorizadas para operar en calendarios
→ cada email = una cuenta de Google con calendarios accesibles
→ AI4CALL puede usar SOLO emails presentes y autorizados (verdes)
Casos de uso típicos:
1. Calendario empresarial centralizado:
→ agrega 1 email: agencia@gmail.com
→ todas las citas en el calendario primario de esta cuenta
→ configuración más simple - recomendado para empezar
2. Calendarios múltiples de equipo:
→ agrega emails de miembros del equipo: medico1@clinic.com, medico2@clinic.com
→ la IA puede crear citas en el calendario específico del médico
→ instruye el prompt: "si el cliente pide Dr. Rossi, usa medico1@clinic.com"
3. Calendarios compartidos de Google Workspace:
→ agrega email del propietario del calendario compartido: booking@empresa.com
→ la cuenta tiene acceso a calendarios team@..., sala-reuniones@... etc.
→ especifica calendarId en la herramienta para seleccionar qué calendario
Añadir email:
- Campo "email@domain.com": ingresa dirección Gmail o Google Workspace
- Haz clic "+" (más) → email aparece debajo en lista gris
- Haz clic "AUTH" → sigue el procedimiento OAuth (paso 2)
- Después de autorización: email se vuelve verde ✅
- Repite para cada cuenta de Google a autorizar
Eliminar email:
→ haz clic en el icono de basura junto al email
→ confirma eliminación
→ autorización revocada, las herramientas ya no pueden usar esta cuenta
OPCIÓN A - Calendario centralizado (simple):
→ crea cuenta de Google dedicada: booking@tuagencia.com
→ usa el calendario primario para todas las citas
→ comparte el calendario con el equipo (Google Calendar sharing)
→ autoriza solo esta cuenta en AI4CALL
✅ pro: gestión simple, una sola cuenta
⚠️ contra: todos los eventos en el mismo calendario
OPCIÓN B - Calendarios individuales de equipo (flexible):
→ cada miembro del equipo tiene cuenta de Google personal
→ autoriza todas las cuentas en AI4CALL
→ instruye a la IA a seleccionar el calendario correcto basado en la solicitud
→ ejemplo: "cita con Dr. Rossi" → usa medico1@clinic.com
✅ pro: calendarios separados, máxima flexibilidad
⚠️ contra: gestión múltiple, más complejo
La elección depende de: tamaño del equipo, tipo de negocio, complejidad de programación requerida
- ✅ emails de cuentas de Google añadidas
- ✅ etiqueta VERDE para emails autorizados
- ✅ banner verde: "Emails de Google disponibles para el calendario"
- ✅ botón "GUARDAR HERRAMIENTA" habilitado
¡Ahora puedes proceder con la selección de herramientas del calendario a habilitar!
🛠️ Selecciona las herramientas de Google Calendar a habilitar
Elige qué operaciones del calendario poner a disposición del asistente mediante los checkbox de "Plugins configurados".
→ crea un nuevo evento en Google Calendar
→ parámetros: email, calendarId, summary, description, startTime, endTime, location, attendees
→ crea SIEMPRE evento incluso si el espacio está ocupado (posibles superposiciones)
→ usa para: eventos multi-participante, reuniones flexibles, citas donde la superposición está OK
2. calendar_list ☑️
→ lista eventos del calendario de Google
→ parámetros: email, calendarId, timeMin, timeMax, maxResults, search (filtra por título/descripción/ubicación)
→ devuelve: array de eventos con todos los detalles (id, título, fecha, participantes, etc.)
→ usa para: resumen de citas del cliente, búsqueda de evento específico, lista de la semana
3. calendar_check_availability ☑️
→ verifica disponibilidad de un espacio de tiempo
→ parámetros: email, calendarId, startTime, endTime
→ devuelve: busy (ocupado) o free (libre)
→ usa para: encontrar espacios disponibles antes de proponer al cliente
→ recomendación: SIEMPRE habilitada - fundamental para evitar conflictos
4. calendar_create_if_free ☑️
→ crea evento solo si el espacio está libre
→ parámetros: idénticos a calendar_create
→ flujo de trabajo: (1) check availability interno, (2) si free: crea, (3) si busy: error
→ usa para: citas exclusivas (médico, peluquería, consultorías 1-to-1)
→ recomendación: PREFIERE esta vs calendar_create para evitar dobles reservas
5. calendar_delete ☑️
→ elimina un evento del calendario
→ parámetros: email, calendarId, eventId
→ Google envía email de cancelación a todos los participantes
→ usa para: cancelaciones de citas a solicitud del cliente
→ atención: acción irreversible - instruye a la IA a pedir confirmación
✅ calendar_create
✅ calendar_list
✅ calendar_check_availability
✅ calendar_create_if_free
✅ calendar_delete
→ asistente autónomo completo: crea, consulta, elimina de forma inteligente
Setup SOLO RESERVAS (solo reservas):
❌ calendar_create (deshabilitado por seguridad)
✅ calendar_list
✅ calendar_check_availability
✅ calendar_create_if_free (ÚNICA herramienta de creación habilitada)
❌ calendar_delete (requiere operador humano)
→ solo reservas seguras sin riesgo de conflictos/cancelaciones accidentales
Setup SOLO LECTURA (solo consulta):
❌ calendar_create
✅ calendar_list
✅ calendar_check_availability
❌ calendar_create_if_free
❌ calendar_delete
→ asistente proporciona solo información de citas, sin modificaciones del calendario
Usa calendar_create_if_free cuando:
- ✅ citas 1-to-1 exclusivas (médico, consultor, peluquería)
- ✅ espacios no superponibles (recurso único: sala, técnico, etc.)
- ✅ el cliente espera confirmación inmediata o propuesta alternativa
- ✅ el negocio se penaliza por dobles reservas
Usa calendar_create cuando:
- ✅ eventos multi-participante (reuniones, meetings de equipo)
- ✅ recordatorios personales (sin conflictos)
- ✅ eventos informativos (webinars, eventos públicos)
- ✅ quieres máxima flexibilidad (aceptas superposiciones controladas)
Mejor práctica: para el 99% de los casos de uso de reservas de clientes, usa calendar_create_if_free. Deshabilita calendar_create si es posible por seguridad.
🤖 Instruye al asistente para el flujo de trabajo de Google Calendar
Configura el prompt del asistente para utilizar correctamente las herramientas de Google Calendar y gestionar reservas de forma inteligente.
"Cuando el cliente pida una cita: (1) pregunta preferencia de día/horario, (2) usa calendar_check_availability para un rango (ej. mañana = 9-13), (3) identifica los primeros 2-3 espacios libres, (4) propón: 'Disponible martes 10:00, 11:00 o miércoles 9:30', (5) el cliente elige, (6) calendar_create_if_free, (7) si éxito: confirma verbalmente + envía WhatsApp/Email con detalles, (8) si el espacio se ocupó mientras tanto: propón el siguiente espacio disponible."
2. Resumen de citas del cliente:
"Si el cliente pregunta '¿qué citas tengo?': (1) calendar_list desde hoy hasta +30 días, (2) filtra eventos con email/nombre del cliente en attendees, (3) enumera cronológicamente: 'Tiene 3 citas: martes 15 a las 10, jueves 20 a las 15, lunes 25 a las 11'. Si no hay citas: 'No tengo citas registradas para usted'. NO mencionar eventos de otros clientes (privacidad)."
3. Cancelación de cita segura:
"Para cancelación: (1) calendar_list para encontrar el evento, (2) confirma con el cliente: '¿Quiere cancelar la cita del [día] a las [hora]?', (3) si confirma: calendar_delete(eventId), (4) confirma cancelación: 'Cita cancelada, recibirá un email de confirmación de Google', (5) opcional: notifica al operador via Telegram. SIEMPRE pedir confirmación antes de delete - acción irreversible."
4. Gestión de espacio ocupado (fallback inteligente):
"Si calendar_create_if_free falla (espacio ocupado): (1) 'Lo siento, ese espacio ya está reservado', (2) calendar_check_availability rango +/- 2 horas, (3) propón alternativas: 'Disponible 1 hora después a las [hora] o mañana a la misma hora', (4) NO comunicar el cliente anterior - privacidad. Continúa hasta que el cliente encuentre un espacio OK o desista."
- Llama al asistente: "Quisiera reservar una cita"
- Sigue la conversación proporcionando: día (ej. "mañana"), horario (ej. "por la mañana"), nombre, email
- Verifica que la IA proponga espacios disponibles (check_availability)
- Elige espacio, verifica creación (create_if_free)
- Comprueba Google Calendar web: el evento aparece correctamente
- Verifica recepción de email de invitación de Google
Prueba 2 - Espacio ocupado (fallback):
- Crea evento manualmente en Google Calendar (ej. mañana 10:00)
- Llama a la IA pidiendo cita "mañana a las 10"
- Verifica que la IA detecte el espacio ocupado
- Verifica que proponga alternativas automáticamente
Prueba 3 - Cancelación:
- Después de la prueba 1, llama: "Necesito cancelar la cita"
- Verifica que la IA encuentre el evento correcto (calendar_list)
- Confirma cancelación
- Comprueba Google Calendar: evento eliminado
- Verifica email de cancelación de Google
🛠️ Referencia de Herramientas de Google Calendar
Especificaciones técnicas de las 5 herramientas MCP de Google Calendar.
calendar_create
Parámetros:
email(obligatorio): cuenta de Google autorizadacalendarId(por defecto: "primary"): ID del calendariosummary(obligatorio): título del eventodescription(opcional): descripción detalladastartTime(obligatorio): fecha/hora de inicio ISO 8601endTime(obligatorio): fecha/hora de fin ISO 8601location(opcional): dirección de la ubicaciónattendees(opcional): array de emails de participantes
Ejemplo:
calendar_create({
email: "booking@studio.com",
summary: "Visita Mario Rossi",
startTime: "2025-03-15T10:00:00+01:00",
endTime: "2025-03-15T10:30:00+01:00",
location: "Via Roma 1, Milán",
attendees: ["mario.rossi@email.com"]
})
calendar_list
Parámetros:
email(obligatorio): cuenta de Google autorizadacalendarId(por defecto: "primary"): ID del calendariotimeMin(obligatorio): fecha/hora mínima ISO 8601timeMax(obligatorio): fecha/hora máxima ISO 8601maxResults(por defecto: 50): máximo de eventos devueltossearch(opcional): texto a buscar (título/descripción/ubicación)
Respuesta: array de eventos
[
{
eventId: "abc123",
summary: "Visita Mario",
start: "2025-03-15T10:00:00+01:00",
end: "2025-03-15T10:30:00+01:00",
attendees: [...]
},
...
]
calendar_check_availability
Parámetros:
email(obligatorio): cuenta de Google autorizadacalendarId(por defecto: "primary"): ID del calendariostartTime(obligatorio): fecha/hora de inicio ISO 8601endTime(obligatorio): fecha/hora de fin ISO 8601
Response:
{
status: "free" // o "busy"
}
Uso típico: loop de verificación de múltiples espacios para encontrar disponibles
calendar_create_if_free
Parámetros: idénticos a calendar_create
Comportamiento:
→ verifica disponibilidad del espacio internamente
→ si FREE: crea evento, response success
→ si BUSY: NO crea, response error "espacio ocupado"
Ventaja: previene condiciones de carrera - verificación y creación en una sola operación atómica
Recomendación: prefiere esta vs calendar_create para citas exclusivas
calendar_delete
Parámetros:
email(obligatorio): cuenta de Google autorizadacalendarId(por defecto: "primary"): ID del calendarioeventId(obligatorio): ID del evento a eliminar (de calendar_list)
Comportamiento:
→ elimina evento permanentemente
→ Google envía email de cancelación a todos los attendees
→ acción irreversible - evento no recuperable
Mejor práctica: SIEMPRE pedir confirmación al cliente antes de delete
Ejemplo de flujo de trabajo:
// 1. Encuentra evento
events = calendar_list(...)
eventId = events[0].eventId
// 2. Confirma con cliente
"¿Confirma cancelación?"
// 3. Delete
calendar_delete(eventId="abc123")
❓ Preguntas frecuentes
Respuestas a las preguntas más comunes sobre la integración de Google Calendar
Procedimiento OAuth: (1) panel AI4CALL → Herramienta Google Calendar → Participantes, (2) ingresa email de la cuenta de Google (ej. agencia@gmail.com), (3) haz clic "+", (4) haz clic "AUTH" junto al email, (5) el sistema envía email con enlace de autorización, (6) abre el email, haz clic en el enlace, (7) popup Google OAuth: selecciona cuenta, (8) acepta permisos "Gestiona calendario", (9) vuelve a AI4CALL, haz clic "VERIFICAR", (10) email se vuelve verde = autorizado. Autorización única - válida hasta revocación.
calendar_create: crea evento SIEMPRE, incluso si el espacio ya está ocupado → puede generar superposiciones/conflictos. Usa para: eventos multi-participante, citas flexibles. calendar_create_if_free: verifica PRIMERO disponibilidad del espacio → crea SOLO si está libre, de lo contrario error. Usa para: citas exclusivas (médico, peluquería) donde las superposiciones son inaceptables. Flujo de calendar_create_if_free: (1) check_availability, (2) si free: crea evento, (3) si busy: propón espacios alternativos.
Google Calendar usa formato ISO 8601 con zona horaria. Ejemplos: "2025-03-15T10:00:00+01:00" (CET Italia), "2025-03-15T10:00:00Z" (UTC). Los parámetros startTime/endTime requieren zona horaria explícita. Mejor práctica: (1) usa zona horaria local del negocio (Europe/Rome para Italia), (2) AI4CALL convierte automáticamente horarios locales del cliente → ISO 8601, (3) Google Calendar muestra eventos en la zona horaria del usuario automáticamente. Evita confusión: especifica siempre la zona horaria en el prompt ("horas 10:00 CET").
Sí. El parámetro "attendees" en calendar_create acepta un array de emails: ["cliente@email.com", "medico@clinic.com"]. Google envía automáticamente invitación por email con: enlace "Añadir al calendario", detalles del evento, opciones Aceptar/Rechazar/Talvez. Los participantes reciben notificaciones de cambios/cancelaciones. Privacidad: usa solo si tienes consentimiento de los participantes. Alternativa: crea evento sin attendees, envía confirmación manual via herramienta Email SMTP.
Sí. El parámetro "calendarId" especifica qué calendario usar. Opciones: (1) "primary" (por defecto): calendario principal de la cuenta de Google, (2) calendarId específico (ej. "team@group.calendar.google.com"): calendario compartido/secundario. Para usar múltiples calendarios: (1) autoriza cuenta de Google propietaria de los calendarios, (2) encuentra calendarId: Google Calendar web → Settings → calendario → Calendar ID, (3) especifica en la herramienta: calendar_create(calendarId="team@...", ...). La cuenta debe tener permisos de escritura en el calendario.
Depende de la herramienta usada. calendar_create: crea evento DE TODAS FORMAS → superposición/conflicto visible en el calendario (eventos superpuestos). calendar_create_if_free: (1) verifica primero con calendar_check_availability, (2) si busy: devuelve error "espacio no disponible", (3) la IA debe gestionar: proponer horarios alternativos. Instruye el prompt: "si el espacio está ocupado, busca los próximos 3 espacios libres y propón al cliente". Evita conflictos: usa SIEMPRE calendar_create_if_free para citas exclusivas.
La privacidad depende de: (1) calendario usado: "primary" = privado del propietario de la cuenta, "shared calendar" = visible para miembros del equipo, (2) visibilidad del evento: "private" (por defecto) = solo propietario/attendees invitados, "public" = todos con enlace al calendario. Eventos AI4CALL: por defecto private, visibles solo para la cuenta de Google autorizada + attendees invitados. Para compartir con el equipo: (1) usa calendario compartido de Google (team@...), (2) todos los miembros ven eventos, o (3) invita al equipo vía parámetro attendees.
Herramienta calendar_delete(email, calendarId, eventId). Flujo de trabajo: (1) cliente llama pidiendo cancelación, (2) la IA usa calendar_list para encontrar el evento (busca por summary/fecha), (3) identifica el eventId correcto, (4) calendar_delete(eventId=...), (5) Google elimina el evento, (6) si tenía attendees: Google envía email de cancelación automático.
No existe una herramienta calendar_update. En caso de modificación, el asistente gestiona automáticamente la operación eliminando el evento existente y creando uno nuevo con los datos actualizados. Los participantes reciben una cancelación y una nueva invitación.
La herramienta calendar_check_availability verifica disponibilidad de un rango temporal. Flujo de trabajo inteligente: (1) cliente pide "cita esta semana", (2) la IA define un rango (ej. hoy → +7 días, lun-vie 9-18), (3) loop: check_availability cada hora/espacio, (4) identifica los primeros 3-5 espacios free, (5) propone al cliente: "disponible martes 10:00, miércoles 14:00, jueves 11:00", (6) cliente elige, (7) calendar_create_if_free. Eficiente: busca solo horarios laborales, evita automáticamente fines de semana/festivos.
Calendario personal (primary): privado de un solo usuario, eventos visibles solo para él + attendees invitados. Calendario compartido (team@group.calendar.google.com): compartido por grupo de usuarios de Google Workspace, todos los miembros ven eventos. Para equipo AI4CALL: (1) crea calendario compartido de Google "Citas AI4CALL", (2) añade miembros del equipo como editores, (3) usa calendarId compartido en la herramienta, (4) todos ven citas creadas por la IA. Ventaja: centralización, respaldo humano si la IA falla.
Solución de problemas: (1) verifica email de Google válido y accesible, (2) revisa spam por email de autorización, (3) haz clic en el enlace de autorización dentro de 24h (caduca), (4) navegador: habilita popups (OAuth abre popup), (5) cuenta de Google: verifica que no tenga 2FA bloqueante o políticas de admin restrictivas, (6) Google Cloud: verifica OAuth consent screen aprobado (si es app de producción), (7) reintenta: panel AI4CALL → elimina email → agrega de nuevo → AUTH. Error persistente: contacta soporte AI4CALL.
Formato obligatorio: ISO 8601 con zona horaria. Ejemplos válidos: "2025-03-15T10:00:00+01:00" (CET), "2025-03-15T09:00:00Z" (UTC), "2025-03-15T10:00:00" (flotante - no recomendado). Componentes: YYYY-MM-DDTHH:MM:SS+TZ. AI4CALL convierte automáticamente del lenguaje natural: "mañana a las 10" → ISO 8601 correcto. Error común: olvidar la zona horaria → el evento aparece con horario incorrecto. Mejor práctica: instruye a la IA a confirmar siempre el horario verbalmente: "confirmo cita martes 15 de marzo a las 10:00".
Flujo de trabajo seguro anti-conflictos: (1) usa SIEMPRE calendar_create_if_free (no calendar_create) para citas exclusivas, (2) verifica disponibilidad ANTES de confirmar al cliente: "momento, verifico disponibilidad...", (3) si el espacio está ocupado: propón alternativas automáticamente, (4) después de crear: confirma verbalmente "cita confirmada martes 15 a las 10", (5) envía confirmación escrita multi-canal (email + WhatsApp), (6) calendario compartido de equipo: todos ven ocupaciones en tiempo real. Evita condiciones de carrera: calendario único centralizado, no calendarios múltiples desconectados.