Skip to main content
Agendar citas es el caso de uso clásico de un agente de voz: el asistente consulta los huecos libres durante la llamada, ofrece un par de opciones y reserva la que elige quien llama. La plataforma admite esto de dos formas que puedes combinar libremente:
  1. Calendar integrations — conecta un proveedor externo de programación (Acuity Scheduling, Cal.com, Calendly, eTermin, HighLevel) una sola vez, asígnalo a un asistente, y el asistente obtiene automáticamente herramientas de reserva en cada llamada. Google Calendar y Outlook se conectan en el mismo sitio, pero alimentan la sincronización de calendario del motor integrado en lugar de la reserva durante la llamada — consulta la nota debajo de la tabla.
  2. El motor de reservas integrado — define tus propios tipos de evento con disponibilidad semanal y obtén una página de reserva pública e incrustable en /book/{workspace}/{slug}, correos de invitación ICS y una integración native contra la que tus asistentes pueden reservar. No se necesita ninguna cuenta externa. Consulta Calendario integrado para ver el panorama completo.

Proveedores de un vistazo

Google Calendar, Outlook, CalDAV y las fuentes ICS son calendarios del motor de reservas integrado, no proveedores de reserva durante la llamada. Conectarlos pone sus horarios ocupados — y, en Google, Outlook y CalDAV, también la escritura de eventos — a disposición de un tipo de evento nativo. Los asistentes no pueden llamarlos directamente durante una conversación. Para reservar en esos calendarios durante la llamada, asigna Mi calendario de reservas (ese tipo de evento) al asistente, o coloca delante un calendario de Cal.com, Calendly, Acuity o HighLevel.
Modo de enlace de Calendly: la API de programación de Calendly requiere un plan de pago de Calendly. Si tu plan no permite reservar directamente, configura el booking_mode de la integración en link — el asistente entonces acuerda una hora aproximada con quien llama y envía un enlace de programación de un solo uso por SMS o correo (link_channel) en lugar de reservar directamente. Las integraciones que topan con la restricción de plan de pago durante la llamada se marcan con el estado link_mode.

Conectar una integración

Ve a Booking → Integrations y elige la tarjeta de un proveedor:
Integraciones de reservas disponibles

Integraciones de reservas — elige tu calendario o servicio de programación

Pega tu clave de API (Cal.com → Settings → Developer → API Keys) y elige el API endpoint: US (por defecto), EU, o Custom para una instancia de Cal.com autoalojada. Selecciona Load event types para obtener tus eventos por nombre y duración — no hace falta copiar un ID numérico desde la URL. Zona horaria personalizable de forma opcional — asegúrate de que coincida con la del tipo de evento en Cal.com.Las preguntas de reserva y los campos obligatorios del tipo de evento seleccionado se cargan automáticamente. Los asistentes de voz y mensajería recopilan el teléfono y las respuestas personalizadas cuando el tipo de evento los requiere. Para actualizar una conexión existente, ábrela para editarla en Booking → Integrations, revisa Booking questions (o usa Refresh fields tras hacer cambios en Cal.com) y selecciona Save changes.Activa o desactiva Book, Cancel y Reschedule para cada integración. Con Cancel o Reschedule activados, quien llama no necesita un número de reserva: el asistente encuentra su próxima cita por el número de teléfono desde el que llama, o por el correo y el nombre completo usados al reservar.
Toda integración se verifica antes de guardarse. Las credenciales o los ajustes de evento no válidos se rechazan con un error claro. Los valores secretos nunca vuelven a mostrarse después de guardarse. Eliminar la última integración que usa una cuenta de Acuity revoca su token de OAuth mediante el endpoint de desconexión de Acuity y elimina la conexión local. Una cuenta sin uso también puede eliminarse con Disconnect account en el editor de Acuity; las cuentas compartidas no se pueden desconectar hasta que se eliminen sus integraciones restantes. Las integraciones existentes con token de acceso personal siguen funcionando, pero aparecen como Legacy connection — reconnect with Calendly. Reconectar las actualiza a OAuth y elimina el PAT de la integración.

Asignar a un asistente

Ajustes Tools con la sección Calendar integrations y Connect a calendar

Settings del asistente → Tools → Calendar integrations: selecciona Connect a calendar para asignar una integración de reservas a este asistente.

Abre los ajustes del asistente y marca las integraciones que debe usar (o llama a PUT /api/v1/assistants/{id}/integrations). Cada integración asignada añade sus propias herramientas de reserva a cada llamada: Toda integración recibe check_availability y book_appointment. Las herramientas de gestión solo se añaden donde el proveedor las admite: Calendly (buscar y cancelar), Acuity y Cal.com (buscar, cancelar y reprogramar, según los interruptores que hayas definido), y el motor integrado, que añade un conjunto común a todo el espacio de trabajo. Cal.com y el motor integrado identifican a quien llama primero por número de teléfono y recurren al correo más el nombre completo como respaldo; en los eventos de Cal.com con plazas, solo se cancela o mueve la plaza de quien llama. Los calendarios de eTermin y HighLevel por ahora solo ofrecen disponibilidad y reserva — el asistente puede leer huecos y reservar en ellos, pero no buscar, cancelar ni mover una cita existente durante una llamada. Por eso sus ajustes no ofrecen Cancel ni Reschedule. Las mismas herramientas funcionan en conversaciones por chat y correo. Allí, el teléfono, el correo y el nombre del contacto solo cuentan como prueba de identidad si el canal confirma un único remitente, por ejemplo WhatsApp o un correo autenticado. En hilos de correo, tickets y chats de grupo, el asistente pide el correo de la reserva y el nombre completo antes de buscar una cita. Si se asigna más de una integración, los nombres de las herramientas reciben el nombre de la integración como sufijo (por ejemplo, check_availability_sales). Los calendarios externos usan su zona configurada, o la del asistente si no hay un ajuste específico. El motor integrado usa la zona del tipo de evento para disponibilidad, confirmaciones y citas encontradas. Si difiere de la del asistente, las herramientas de voz nombran la ciudad, por ejemplo «Buenos Aires time».

¿Qué zona horaria se aplica?

La zona del espacio de trabajo controla el panel. La del asistente controla la hora actual, variables de tiempo y fechas relativas; una campaña puede sustituir el reloj de la llamada. La del tipo de evento controla disponibilidad semanal y horas locales de las herramientas de reserva por voz. Cada cita encontrada conserva la zona de su tipo de evento. La del invitado se elige en la página pública y se usa en sus correos; las nuevas reservas por voz usan la zona del tipo de evento para los correos. Una reprogramación conserva la zona del invitado ya guardada. El 16 de octubre de 2026, 12:00Z equivale a 09:00 en Buenos Aires y 14:00 en Madrid: el mismo instante. Pasa siempre el valor de inicio exacto devuelto por disponibilidad. La API de búsqueda devuelve la zona del tipo de evento separada de la del invitado. El comando CLI es famulor lookup-bookings --phone "+5491100000000".
Las reservas de Calendly no se pueden reprogramar mediante su API — quien llama y quiere otra hora recibe en su lugar un cancel_appointment y un book_appointment nuevos, o reprograma mediante el enlace de su correo de confirmación de Calendly.
Indica al asistente cuándo reservar en su prompt, por ejemplo: “Antes de ofrecer cualquier hora, llama a check_availability. En cuanto quien llama confirme un hueco, llama a book_appointment con su nombre y correo.”

Reprogramar o cancelar una cita de Cal.com

Requisitos del espacio de trabajo

  1. Conecta Cal.com en Reservas → Integraciones, selecciona el tipo de cita y comprueba la zona horaria.
  2. Activa Cancelar, Reprogramar o ambos en esa conexión. El permiso para reservar es independiente.
  3. Asigna la conexión en Ajustes del asistente → Herramientas → Integraciones de calendario.
  4. Configura el Idioma principal y los Idiomas secundarios que necesites. Las preguntas y confirmaciones siguen el idioma de conversación admitido. Los clientes no necesitan conocer nombres de herramientas ni identificadores de reserva.

Qué necesita la persona que llama

No hace falta ninguna variable de prompt para utilizar automáticamente el teléfono. Activa la pregunta de teléfono del tipo de cita de Cal.com y recoge el número con su prefijo internacional. Hazla obligatoria si tu proceso depende de encontrar citas por teléfono. Un número que solo consta en tu CRM no permite encontrar una reserva de Cal.com si no está guardado también en ella.

Cómo transcurre la conversación

El cliente puede decir simplemente: «Quiero cambiar mi cita». El asistente busca próximas citas del tipo conectado, repite la fecha y la hora y, si encuentra varias, pregunta cuál desea cambiar. Para reprogramar, comprueba los horarios disponibles y pide confirmar la nueva hora. Para cancelar, solicita una confirmación explícita de la cita concreta. El cliente nunca tiene que proporcionar un identificador de reserva. El asistente solo anuncia el éxito después de que Cal.com acepte el cambio. Si no encuentra una cita, solicita el correo y el nombre completo de la reserva sin afirmar que ha cambiado nada. Una cancelación no se puede deshacer. En eventos con plazas individuales, solo se modifica la plaza del participante correspondiente.
Ejemplo de prompt: «Ayuda a los clientes a cambiar o cancelar sus citas existentes. Busca la cita, repite su fecha y hora y pide confirmación. Antes de moverla, ofrece una hora que esté disponible y confirma la nueva hora con el cliente. No menciones referencias técnicas en la conversación».

Preguntas de reserva

Los tipos de evento del motor integrado pueden pedir más que un nombre y un correo electrónico. En el editor de tipo de evento, la sección Preguntas de reserva, debajo de la descripción, permite añadir preguntas personalizadas — texto corto, texto largo, correo electrónico, teléfono, dirección, URL, número, una casilla única, grupo de casillas, grupo de opciones, lista desplegable, selección múltiple, o varias direcciones de correo — cada una con su propia etiqueta, un texto de ejemplo opcional y un interruptor de obligatoriedad. Nombre siempre es obligatorio. Configura Correo y Teléfono como obligatorios u opcionales en las preguntas de reserva. Google Meet y Microsoft Teams siguen exigiendo el correo para la invitación. La página de reservas y el asistente telefónico respetan los mismos requisitos. Cada pregunta recibe un identificador (derivado de su etiqueta, editable) que también sirve como parámetro de URL para precargar la página de reserva pública, por ejemplo ?name=Jane+Doe&email=jane@example.com&company=Acme — repite el parámetro o usa una lista separada por comas para un campo de varios valores. Una pregunta también puede marcarse como Deshabilitar el campo si el identificador viene precargado por URL, con lo que se vuelve de solo lectura mientras ese parámetro esté presente — útil cuando una página que incrusta el formulario ya conoce la respuesta. Los asistentes leen estos requisitos automáticamente, sin necesidad de un prompt adicional: en el motor integrado, check_availability indica en texto llano qué debe recogerse antes de reservar — por ejemplo “To book, collect: full name; email address (user@domain.tld); phone number in E.164 format (e.g. +4915123456789); Company (required, short text)…” (el mensaje continúa con un recordatorio de no confirmar nunca una reserva antes de que la herramienta de reserva tenga éxito) — y book_appointment exige exactamente esos campos, un parámetro por pregunta. Nunca informa de una reserva exitosa a menos que la solicitud subyacente realmente haya tenido éxito. Cal.com siempre requiere el nombre completo; el tipo de evento seleccionado determina si el correo, el teléfono y las respuestas personalizadas son obligatorios. Los demás proveedores externos piden nombre completo y correo electrónico. Las respuestas personalizadas aparecen en el registro de la reserva — en el panel, bajo answers en GET /api/v1/bookings/{id} y las herramientas MCP get_booking/list_bookings, en los correos de confirmación al invitado y al anfitrión, en la invitación ICS y en cada webhook de reserva (creación, cancelación y reprogramación).

Restricción por plan

Tu plan debe incluir Calendar integrations. Si no está incluido, no puedes crear integraciones.

Volver a conectar una conexión caducada

Las conexiones de Google Calendar, Outlook Calendar, Calendly, Acuity Scheduling y HighLevel pueden caducar — la contraseña de la cuenta cambió, se revocó el acceso, o el refresh token almacenado dejó de ser válido. Famulor lo detecta en el momento en que falla una renovación y marca la conexión de inmediato, en lugar de esperar a que falle una reserva.
  • La fila afectada en Booking → Integrations muestra una insignia ámbar Reconnect required con un motivo breve, y un banner en la parte superior de la pestaña cuenta cuántas conexiones necesitan atención.
  • Haz clic en Reconnect (↻) en la fila para volver a iniciar sesión. En Google, Outlook, Calendly y Acuity vuelves a la misma pestaña Booking → Integrations; en HighLevel, el inicio de sesión te devuelve en cambio a Automations → Connections — elige la misma subcuenta que conectaste originalmente, o la reconexión creará una conexión aparte.
  • Los calendarios CalDAV/ICS no tienen un flujo OAuth que reiniciar: pulsa Edit en la fila para actualizar la contraseña de aplicación o la URL del feed.
Los propietarios y administradores del espacio de trabajo reciben un correo en el momento en que una conexión se rompe, y un recordatorio cada 7 días mientras siga rota. A través de la API o MCP, el objeto de integración expone connection_status y needs_reauth, lo que permite supervisar el estado de la conexión de forma programática.

Solución de problemas

Confirma que la clave sigue activa en Cal.com y que pegaste una clave de producción (las claves de producción de Cal.com empiezan por cal_live_), y luego vuelve a seleccionar Load event types. Si obtienes un error de autenticación en lugar de una lista vacía, probablemente elegiste el endpoint de API equivocado — una cuenta de Cal.com en la UE necesita el endpoint EU (o Custom para una instancia autoalojada), no el US por defecto.
book_appointment necesita una dirección de correo válida cuando el tipo de evento de Cal.com seleccionado la establece como obligatoria. Las direcciones dictadas («anna arroba example punto com») y las diéresis alemanas se convierten automáticamente antes de enviar la solicitud, así que la mayoría de direcciones dictadas funcionan; si lo que oyó el asistente sigue sin ser utilizable, se le indica que vuelva a preguntar en lugar de reservar. Cuando el correo sea obligatorio, indícale en el prompt que recoja y confirme la dirección antes de reservar, y que reutilice una dirección que ya tenga como variable de llamada en lugar de preguntarla dos veces.
La única ubicación del tipo de evento en Calendly es un enlace de videoconferencia (Google Meet, Zoom, Teams), y el agente de voz no puede generar enlaces de reunión. En Calendly, edita el tipo de evento y añade Custom o Phone Call → Inbound call como ubicación — Custom es la opción más segura y funciona en todos los casos. Si el tipo de evento termina con más de una ubicación, elige la correcta en Meeting location dentro de la integración.
En una organización de Calendly, las cuentas admin y owner ven los tipos de evento de todos los miembros, incluidos los eventos Round Robin y Collective; una cuenta de miembro normal solo ve los suyos.
Una prueba Web Call se ejecuta sin número de teléfono, así que todo lo que el flujo de reserva deriva del número de quien llama (enviar un enlace de programación por SMS, buscar una cita por teléfono) no puede funcionar igual. Usa Test → Call en la cabecera del asistente para una ejecución realista: el asistente marca un número que introduces tú, o tú marcas su número entrante.
¿Sigues atascado? Contacta con soporte indicando el nombre de la integración, el error mostrado en el editor del asistente y una transcripción de la llamada que no logró reservar.

Plantillas de correos de reservas

La cabecera, el pie, el logotipo y los colores proceden del diseño de correo del espacio o marca blanca. La vista previa muestra solo el asunto y el mensaje editables. En Reservas → Tipos de eventos, crea o edita un tipo y abre Correos de reservas. El editor compacto separa los correos para invitados (confirmación, cancelación, reprogramación y recordatorio) de las notificaciones al anfitrión (nueva reserva, cancelación y reprogramación). El asunto y el mensaje muestran la plantilla estándar real. Consulta el texto en inglés, alemán, francés o español, edítalo, inserta variables en el cursor o abre la Vista previa con datos de ejemplo. Restablecer al estándar restaura el mensaje seleccionado. Los correos estándar siguen el idioma del destinatario; el texto personalizado se envía tal como está escrito. Los campos vacíos usan su valor estándar. Elige una dirección de remitente verificada o el remitente automático. Aplicar cambios vuelve al tipo de evento; Crear o Guardar cambios guarda la configuración. Cancelar en el editor descarta su borrador. Los recordatorios solo se envían si tienen un plazo configurado. Las invitaciones del calendario y sus adjuntos permanecen independientes del texto editable. La API pública y la herramienta MCP get_booking_email_templates devuelven las plantillas y variables sin enviar correos. Las herramientas de creación y actualización de tipos de eventos también permiten guardar textos personalizados.

Formato de hora

Elige 12h o 24h junto a Weekly availability. La selección también se aplica a las variables de hora en las notificaciones del anfitrión y la vista previa del correo. Los invitados conservan el formato elegido en la página pública o integrada para confirmaciones, cancelaciones, cambios y recordatorios. Las reservas anteriores sin preferencia guardada utilizan el formato del tipo de evento. Cambiar el formato no modifica la disponibilidad, las zonas horarias ni los horarios reservados.

API y MCP

Todo lo anterior está disponible en la API REST pública y como herramientas de MCP en https://<your-domain>/mcp: Los objetos de integración incluyen connection_status / needs_reauth. Listar cuentas, tipos de evento, tipos de cita y calendarios de Calendly y Acuity, cargar los tipos de reunión de meetergo y consultar la disponibilidad de meetergo lee cuentas conectadas: una clave API del espacio de trabajo solo necesita integrations:read, mientras que un acceso vinculado a un usuario necesita además el rol de propietario o administrador del espacio de trabajo. Crear, cambiar, eliminar o asignar integraciones de calendario, conectar Calendly o Acuity y reservar con meetergo requiere un acceso vinculado a un usuario con el rol de propietario o administrador del espacio de trabajo; una clave API del espacio de trabajo recibe 403 para estas acciones. Los tipos de evento, las conexiones y los registros de reserva del motor integrado se explican en Calendario integrado.

meetergo

En la App Store, elige Agregar conexión en la tarjeta meetergo para crear otra conexión, o Gestionar conexiones para editar una conexión guardada. En Reservas → Integraciones, elige meetergo. Crea un token personal con acceso a la programación en Integraciones → API de meetergo. Introdúcelo, carga los tipos de reunión y selecciona el tipo y la zona horaria. Solo las claves API de plataforma necesitan un ID del usuario que actúa; deja este campo vacío para tokens personales. Guarda la conexión y asígnala a un asistente. Permitir reservas determina si el asistente puede reservar o solo consultar la disponibilidad. La conexión nativa funciona en llamadas y conversaciones de texto. Devuelve horas realmente reservables, teniendo en cuenta la duración y los márgenes. El asistente solicita el nombre completo y el correo electrónico y vuelve a comprobar la hora antes de reservar. Si falta la confirmación del invitado o anfitrión, la reserva se indica como pendiente. Ante un resultado incierto, comprueba el calendario antes de volver a intentarlo. Para reprogramar o cancelar citas, conecta también meetergo MCP en Apps con tu token personal y selecciona las herramientas necesarias. El punto de acceso de programación es https://mcp.meetergo.com/mcp; el MCP de documentación solo consulta la documentación. Véase la guía oficial de MCP. API pública: POST /api/v1/integrations/meetergo/meeting-types para los tipos de reunión y POST /api/v1/integrations/meetergo/action para disponibilidad y reservas. Herramientas MCP: list_meetergo_meeting_types, get_meetergo_availability y book_meetergo_appointment. Usa los puntos de acceso habituales de integraciones y asistentes para guardar y asignar la conexión.