Cómo reservar citas por WhatsApp con Calendly e IA

Piotr Grudzień
Publicado 29 min de lectura
Ilustración conceptual titulada Reserva de citas por WhatsApp, con mensajes de disponibilidad, selección y datos del cliente junto a una tarjeta de cita de Calendly

Crea un asistente de reserva de citas para WhatsApp que responde una pregunta sobre la reparación de una bicicleta, ofrece horarios reales y crea una cita confirmada en Calendly. El cliente pregunta por el servicio, elige un horario e indica sus datos en la misma conversación de WhatsApp.

El ejemplo es Harbor Cycle Workshop, una empresa ficticia que ofrece una Repair assessment de 15 minutos gratuita (una evaluación de reparación). En nuestra prueba controlada en WhatsApp, el cliente seleccionó las 10:00 del 27 de octubre de 2026 en Europe/London. La confirmación entregada coincidió con la cita en Calendly, de 10:00 a 10:15.

Capturas reales de WhatsApp en el teléfono. La confirmación coincidió con la cita de Calendly comprobada de forma independiente. Los correos electrónicos y los detalles de los enlaces personales están ocultos; las etiquetas de contacto se han unificado con el nombre del taller.

¿Qué hará el asistente de reservas de WhatsApp?

El cliente completa tres pasos en WhatsApp:

Paso del clienteQué hace el Agente
Pregunta por la reparación de un pinchazoExplica el precio de mano de obra desde £12, el costo adicional de las piezas y la evaluación gratuita
Pide una fecha para la evaluaciónLee la disponibilidad de Calendly y ofrece horarios en la zona horaria del taller
Elige uno de los horarios ofrecidos e indica su nombre y su correo electrónicoCrea la cita solicitada en Calendly y devuelve su confirmación y sus enlaces de gestión

Lo construirás en seis pasos: añadir el conocimiento del taller, preparar el evento de Calendly, conectar sus herramientas, definir las instrucciones de reserva, probar la conversación completa y repetirla en WhatsApp. MCP (Model Context Protocol) es la conexión que permite al Agente usar las herramientas de disponibilidad y de reserva de Calendly.

Qué necesitas

  1. Crea una cuenta de Quickchat AI y verifica tu correo electrónico si se te pide. El despliegue empresarial necesita un plan comercial y créditos de IA; las respuestas de AI Preview y Simulation Testing también consumen créditos. Consulta los precios de Quickchat AI.
  2. Usa Calendly Standard o superior. Su referencia de la Booking API requiere un plan de pago para crear citas, aunque la conexión MCP en sí sea gratuita.
  3. Ten acceso a la cuenta de empresa de Meta y al número de WhatsApp Business Platform previstos. Sigue el flujo de verificación admitido y consulta las tarifas de mensajería de Meta.
  4. Prepara un teléfono de cliente controlado y una bandeja de entrada de prueba. Etiqueta y cancela las citas de prueba. Sustituye los datos ficticios de la empresa antes del despliegue.

Descarga el kit de Harbor Cycle Workshop con el Main Prompt exacto, los cinco artículos fuente, la configuración de Calendly, el texto de la transferencia y los mensajes de prueba. Son archivos de configuración editables, no una importación con un clic. El Main Prompt y las fuentes de conocimiento también aparecen al final de esta guía.

Construye y prueba primero en AI Preview y después repite la conversación en WhatsApp. Para delegar parte de la configuración, usa la guía opcional con ChatGPT o Claude con el mismo kit.

Paso 1: Dale al Agente el conocimiento del taller

Cinco artículos breves dan al Agente los datos de sus servicios y mantienen diferenciados los precios, los horarios de apertura y los horarios reservables.

Diagrama conceptual que separa el conocimiento del taller, como precios y horarios de apertura, de la disponibilidad real de citas en Calendly Usa el conocimiento del taller para los datos estables y Calendly para los horarios reales.

  1. En la configuración de la cuenta, elige la opción basada en una descripción. Escribe «Un asistente de servicio para Harbor Cycle Workshop que responde preguntas sobre reparación de bicicletas y reserva una Repair assessment de 15 minutos» y selecciona Create my AI Agent.
  2. Continúa con Next. Elige un plan o Skip for now para terminar la configuración. Abre Identity y define el nombre como Harbor Cycle Workshop.
  3. Abre Knowledge Base > Add Article. Escribe el título de la primera fuente en Create custom article y selecciona Create article.
  4. Pega la fuente completa en Content dentro de Edit Article, selecciona Save y espera a que aparezca Ready. Repite el proceso con las otras cuatro fuentes. Cada guardado procesa su artículo.

La pantalla local de Edit Article muestra el título de servicios de Harbor Cycle Workshop, el campo Content y el botón Save Pega la fuente completa en Content, guárdala y comprueba el procesamiento. El editor local muestra el comienzo del artículo de servicios.

Fuente para copiarQué establece
1. ServiciosLa evaluación gratuita de 15 minutos es una inspección, no trabajo de reparación reservado
2. Precios orientativosPrecios iniciales de mano de obra y costos adicionales de las piezas
3. Horarios y citasLos horarios de apertura, el horario de citas y la disponibilidad real son cosas distintas
4. Ubicación y contactoLa ubicación presencial y la vía para llegar al equipo
5. Ayuda humana y límites de reservaConfirmación, resultados inciertos, enlaces de gestión y respaldo

Los bloques completos están en el apéndice de conocimiento para copiar y en la carpeta knowledge/ del kit.

Deja el stock, los presupuestos finales y las fechas de finalización en manos del equipo cuando adaptes tu propia documentación aprobada.

Comprueba el primer resultado: cuando las cinco fuentes muestren Ready, pregunta «Mi bici tiene un pinchazo. ¿Cuánto podría costar y qué cubre la evaluación?» en AI Preview. Busca el precio de mano de obra desde £12, las piezas cobradas aparte y una evaluación que no reserva trabajo de reparación.

Conversación de WhatsApp en el teléfono en la que Harbor Cycle Workshop explica el precio de mano de obra desde £12 por un pinchazo, el costo adicional de las piezas y la evaluación gratuita de 15 minutos

La misma comprobación de servicio en WhatsApp: la mano de obra empieza en £12, las piezas se cobran aparte y la evaluación gratuita no reserva trabajo de reparación.

Paso 2: Prepara la cita de Calendly

Crea un único evento Repair assessment con duración, ubicación y horario fijos. El Agente usará el identificador de este evento para la disponibilidad y la reserva.

Ajuste de CalendlyValor de la demostración
Nombre y tipo de eventoRepair assessment; un anfitrión y un cliente
Duración15 minutos
Ubicación14 Workshop Lane, Bristol, United Kingdom, explícitamente ficticia
Zona horaria de la disponibilidadEurope/London
De martes a viernesDe 10:00 a 16:00
SábadoDe 10:00 a 13:00
Lunes y domingoNo disponible
Pago y preguntas obligatorias adicionalesNinguno
  1. En Scheduling de Calendly, edita el evento previsto o selecciona + Create para crear un nuevo evento uno a uno. Completa Event name, Duration, Location y Availability y selecciona Save changes. Las instrucciones de configuración de eventos de Calendly explican cada control.
  2. Conecta el calendario en el que Calendly debe comprobar conflictos. Define la zona horaria y las horas de disponibilidad propias del evento y añade después las excepciones reales por días festivos y los límites de reserva. Evita modificar un horario compartido que usen otros eventos no relacionados.
  3. En More options > Notifications and automations, edita la notificación básica por correo electrónico o por invitación de calendario. Activa Include cancel and reschedule links in email invitations and reminders y guarda. Estos enlaces personales de gestión dan a los clientes otra vía para gestionar su cita.
  4. Abre la página pública del evento y comprueba su nombre, la duración de 15 minutos, la dirección y las fechas disponibles. En Scheduling, usa Copy link en este evento concreto y guárdalo como URL de respaldo para el Paso 4.

La página pública real de reservas de Calendly muestra Repair assessment, una duración de 15 minutos, la dirección ficticia de Bristol y el aviso de demostración controlada Comprueba el nombre, la duración y la ubicación de la evaluación en su página pública de reservas. Este es el evento real de la demostración.

El taller abre a las 09:00, pero las evaluaciones empiezan a las 10:00. El horario del evento de Calendly y el calendario conectado determinan qué citas puede ofrecer el Agente.

Paso 3: Conecta Calendly y limita sus herramientas

La conexión MCP de Calendly da al Agente un conjunto de operaciones con nombre. Activa las lecturas necesarias para encontrar el evento y sus horarios, y añade la reserva solo cuando las instrucciones y las comprobaciones estén listas.

Diagrama conceptual de un cliente de WhatsApp que habla con Quickchat AI, que usa Calendly MCP para leer horarios y crear una cita Concepto: WhatsApp transporta la conversación; Quickchat AI responde las preguntas sobre servicios y usa Calendly para encontrar horarios y crear la cita.

Conecta y define la lista de herramientas

  1. Abre Actions & MCPs > Add Action > MCP, elige Calendly en el catálogo y completa su flujo de autorización con la cuenta controlada.

La pantalla real de configuración de Calendly en la aplicación local pide al operador que autorice el acceso Elige Connect with Calendly para autorizar la cuenta. Pantalla real de configuración local.

  1. Abre la Action resultante con Edit Action. Define MCP action name como Harbor Cycle Workshop appointments.
  2. En Tools, pon Default tool activation en Desactivado, aplica la tabla siguiente y selecciona Save. Si usas Use recommended, revisa los interruptores resultantes: su herramienta de cancelación queda fuera de esta guía.
HerramientaDurante la configuraciónDurante la prueba de reserva
users-get_current_userActivadoActivado
event_types-list_event_typesActivadoActivado
event_types-list_event_type_available_timesActivadoActivado
meetings-create_inviteeDesactivadoActivado, después del Paso 4 y de las pruebas de servicio
meetings-cancel_event y todas las demás herramientas de CalendlyDesactivadoDesactivado
Default tool activationDesactivadoDesactivado

El editor local de herramientas de Calendly, filtrado por meetings-c, muestra la reserva activada, la cancelación desactivada y la activación predeterminada de herramientas desactivada Activa la reserva para el Paso 5; mantenla desactivada durante la configuración inicial. La cancelación y Default tool activation permanecen desactivadas. Ejemplo de configuración local.

Los interruptores de las herramientas seleccionan las operaciones disponibles. El Main Prompt especifica el evento del taller, los datos necesarios del cliente y cuándo reservar.

Copia el identificador del evento sin adivinar

Antes de sustituir los dos valores del operador en el prompt, inicia una nueva conversación en AI Preview con solo las tres herramientas de lectura activadas. Esta solicitud de configuración pide los detalles del evento, sin comprobar horarios ni crear una cita:

Copia la solicitud de consulta del evento de solo lectura
Find the active Repair assessment event lasting 15 minutes in my connected Calendly account. Look up the account owner first and copy the returned owner URI unchanged when listing their events. Follow pagination if needed. Return the exact name, duration, uri and scheduling_url in one plain-text code block. Copy both URLs in full. If there is not exactly one match, stop and explain. Do not create, change or cancel anything.

Pasa el cursor sobre la respuesta y selecciona Copy. Contrasta el nombre, la duración y el enlace público con el evento del Paso 2. Conserva el uri y la scheduling_url completos para los dos ajustes del prompt que se indican más abajo. Si la consulta es ambigua o falla, resuélvelo antes de activar la reserva.

Usa uri para las llamadas a herramientas y scheduling_url para la página de respaldo. Copia ambos valores completos de la respuesta, incluido https://.

Guarda las referencias de la reserva para turnos posteriores

Expande meetings-create_invitee, aunque su interruptor esté desactivado, para mostrar Save to memory. Confirma estas filas y selecciona Save:

Expresión JSONPathClave de memoria
$.resource.eventcalendly_event_uri
$.resource.cancel_urlcalendly_cancel_url
$.resource.reschedule_urlcalendly_reschedule_url

El editor local de Save to memory muestra tres rutas de la respuesta asignadas a las claves del evento, del enlace de cancelación y del enlace de reprogramación Cada JSONPath selecciona un campo de la respuesta; su clave de memoria pone ese valor a disposición de los mensajes posteriores. Ejemplo de configuración local.

Después de reservar, «¿Puedo cambiar la hora?» debería devolver el enlace de reprogramación guardado de esta cita. El Paso 5 comprueba ese valor exacto sin otra reserva ni una búsqueda por correo electrónico.

Usa Europe/London para los horarios de cita del taller. Quickchat AI convierte las fechas locales mediante código y devuelve opciones etiquetadas. El Agente usa la opción seleccionada por el cliente para reservar.

Cómo se completan los campos del evento y de la cita

Con la disponibilidad y la reserva activadas, las herramientas de Calendly aceptan fechas locales y una zona horaria explícita. Quickchat AI se encarga de la conversión a UTC y vuelve a comprobar el horario seleccionado antes de enviarlo a Calendly. Los nombres de las herramientas no cambian.

ValorDe dónde procedeA dónde va
Identificador del evento aprobadoLa consulta verificada del eventoevent_type de disponibilidad y post_invitee_request.event_type de reserva
Rango de fechas solicitadoDesde la medianoche de la fecha solicitada hasta la medianoche de la fecha de calendario siguientelocal_start_time, local_end_time y timezone de disponibilidad
Horario local ofrecidoEl display_time devuelto en cada opciónLa elección del cliente y la confirmación de la reserva
Cita seleccionadaEl local_start_time de la opción, incluido su desfase, y timezonepost_invitee_request.local_start_time y booking_timezone de reserva
Datos del clienteNombre, correo electrónico y zona confirmada del clientepost_invitee_request.invitee
Ubicación física fijaLa configuración del evento y del tallerpost_invitee_request.location

Una solicitud clara de uno de los horarios ofrecidos, junto con los datos necesarios del cliente, basta para continuar. Si la solicitud es tentativa o poco clara, el Agente pide confirmación primero. Quickchat AI contrasta el instante elegido con la disponibilidad actual y envía a Calendly su marca de tiempo original.

Paso 4: Define las instrucciones de reserva y la vía hacia el equipo

El Main Prompt une los datos de servicio y las herramientas de calendario en una sola conversación: comprobar horarios, obtener una elección clara y los datos necesarios, reservar y después confirmar el resultado. «Me quedo con las 10:00» junto con el nombre y el correo electrónico del cliente puede completar la solicitud. Una elección tentativa o un dato que falte dan lugar a una pregunta antes de reservar.

Conversación de WhatsApp en el teléfono con los horarios ofrecidos y la elección explícita de Riley de las 10:00, seguida de su nombre y un correo electrónico oculto

«Me quedo con las 10:00» más los datos necesarios constituye una solicitud de reserva clara. El Agente puede continuar sin pedir al cliente que repita su elección.

Instala el Main Prompt completo

Abre Identity > Main Prompt y pega el Main Prompt completo, que también se incluye como main-prompt.txt en el kit. Sustituye NOT CONFIGURED solo en estas dos líneas de ajustes:

Ajuste del promptValor que debes pegar
Approved Calendly event type URIEl uri completo del Paso 3
Approved Calendly booking linkLa scheduling_url pública verificada

Deja sin cambios la frase de salvaguarda que aparece más adelante. El Main Prompt se guarda automáticamente; espera a que termine de guardarse y vuelve a abrirlo para comprobar el texto almacenado. La ubicación ficticia aparece en el conocimiento, en el evento y en la instrucción de reserva. Actualiza los tres a la vez para un taller real.

Los ajustes del operador en el editor local real del Main Prompt muestran el URI del evento y el enlace de reserva pendientes de configurar Define el URI del evento y el enlace de reserva de respaldo en el Main Prompt y comprueba después los valores guardados. Editor local real.

Configura Human Handoff

Abre Actions & MCPs > Human Handoff, habilítalo y activa AI summary. En Handoff Rules, usa el botón con el signo más para añadir Workshop handoff, activa la regla y pega lo siguiente en Description:

Copia la Description de Workshop handoff
Offer Human Handoff when the customer asks for a person; needs a final quote, parts availability or repair completion date; describes unsafe brakes, crash or frame damage, or an e-bike battery problem; or encounters a booking failure, uncertain booking result or problem with an existing appointment. Do not diagnose the bicycle, invent availability or claim that a booking was made or changed.

Define Question como:

Would you like me to pass this conversation to the workshop team?

Define Confirmation como:

Your conversation has been flagged for the workshop team to review. A member of staff can reply here when available. This handoff has not booked an appointment.

Los ajustes locales de Human Handoff muestran la acción activada, la pregunta del taller y el texto de confirmación La Question pregunta antes de transferir; la Confirmation explica que el equipo puede responder y que no se ha reservado ninguna cita. Ejemplo de configuración local.

Mantén activados el comportamiento ante una solicitud explícita del usuario y Lack of knowledge. Deja Human Agents’ availability sin restricciones para que los clientes puedan entrar en la cola mientras el equipo no está conectado. Usa Email notifications solo con una dirección real supervisada; la dirección ficticia .example no puede recibirlas. Guarda los ajustes.

Prueba esta vía hacia el equipo después de la conversación de reserva, en el Paso 6.

Paso 5: Prueba la conversación y el resultado en el calendario

Ejecuta primero las cuatro preguntas de servicio y después completa una conversación de reserva en AI Preview. Comprueba la cita en Calendly antes de llevar la conversación a WhatsApp.

Comprueba las respuestas de servicio en Simulation Testing

Mantén meetings-create_invitee desactivada mientras compruebas las cuatro preguntas de servicio.

La barra lateral local de Quickchat AI y la página Simulation Testing muestran dónde crear o abrir el dataset del taller Abre Testing para crear o localizar el dataset del taller. Ejemplo de configuración local.

  1. Abre Testing en la barra lateral. El título de la página es Simulation Testing.
  2. Elige Create Dataset > Paste messages y llámalo Workshop service checks.
  3. Pega estos cuatro mensajes, separados por una línea que contenga solo ---, y selecciona Create:
Copia los cuatro mensajes de prueba de servicio
My bike has a puncture. How much might it cost, and what does the assessment cover?
---
Are you open on Monday? Can I bring my bike on Saturday?
---
Do you have my inner tube in stock, and can you finish the repair tomorrow?
---
What should I bring to my Repair assessment?

Abre el dataset, pega lo siguiente en Evaluation criteria y selecciona Save:

Copia los criterios de evaluación de servicio
Check service facts against the workshop knowledge. Puncture labour starts at £12 with parts extra. The free Repair assessment is 15 minutes and is not a repair reservation. Monday is closed. Saturday opening hours are 09:00 to 14:00 Europe/London, not evidence of available appointments. Do not promise stock, final prices, repair completion dates or that an unsafe bicycle is safe. Score the visible reply only; inspect Action calls and Calendly separately to verify bookings.

El dataset local Workshop service checks contiene cuatro preguntas de servicio, sin ninguna ejecución ni puntuación mostrada Las cuatro preguntas de servicio en el dataset local, listas para su primera ejecución.

Para ejecutar y revisar las comprobaciones:

  1. Selecciona Run, asigna a la ejecución una etiqueta como workshop service baseline, revisa el costo en créditos que se muestra y selecciona Start Run.
  2. Abre la ejecución terminada y lee cada respuesta, su AI Score y la justificación de la evaluación. Usa View para inspeccionar su conversación.
  3. Comprueba cualquier asignación de transferencia y su resumen en Inbox.

Cada elemento del dataset inicia una conversación nueva. Usa la prueba continua en AI Preview que se describe más abajo para la reserva. La guía de pruebas para agentes de soporte explica cómo comparar ejecuciones después de un cambio.

Ejecuta una conversación de reserva completa

Diagrama conceptual con la consulta de disponibilidad, una elección clara del cliente, el nombre y el correo electrónico, la solicitud de reserva y la comprobación del resultado Lee la disponibilidad, establece la cita solicitada y recopila sus datos. Confirma la reserva solo después de que Calendly devuelva un resultado correcto.

Después de completar los Pasos 1–4 y las comprobaciones de servicio, activa meetings-create_invitee en Tools, selecciona Save e inicia una nueva conversación en AI Preview. Usa una fecha futura dentro del rango de reserva del evento y una bandeja de entrada que controles.

Envía en este ordenResultado esperado
«Tengo un pinchazo en la rueda trasera. ¿Cuánto cuesta la reparación?»Precio inicial de mano de obra, piezas aparte y ningún presupuesto vinculante
«Quiero una Repair assessment el [fecha futura completa], en Europe/London.»Horarios disponibles en la fecha solicitada, etiquetados en la zona horaria del taller
«Me quedo con la opción [número]. Me llamo [nombre de prueba] y mi correo es [correo controlado].»Una cita que coincide con la fecha y la hora seleccionadas, seguida de su confirmación
«¿Me puedes enviar el enlace para cambiar la hora?»La URL de reprogramación guardada, sin una nueva reserva
«¿Qué debo llevar?»Consejos de preparación procedentes del conocimiento del taller

Sustituye las instrucciones entre corchetes por tus valores de prueba. Mantén explícitas la fecha completa y la zona horaria. Si falta un dato o la solicitud no está clara, responde a la pregunta del Agente antes de continuar; no debería inventar un nombre, un correo ni una elección de cita.

Comprueba la cita y el seguimiento

  1. En la conversación correspondiente de Inbox, expande el indicador de llamadas a acciones. Comprueba que la llamada de reserva sigue a una elección clara y a los datos necesarios del cliente.
  2. Abre la cita en Calendly. Contrasta su evento, fecha completa, zona horaria, duración, ubicación y cliente de prueba con la cita solicitada y la confirmación entregada.
  3. Pide el enlace de reprogramación y los consejos de preparación. Compara el enlace con Inbox > Details > Memory, como se muestra en la guía de inspección más abajo.

El Inbox local expande una llamada de reserva de ejemplo para mostrar el nombre de la herramienta, sus argumentos y su resultado Expande la Action llamada para inspeccionar sus entradas y su resultado. Datos de prueba locales con una respuesta de reserva sintética.

Diagrama conceptual que compara la cita seleccionada y los datos del cliente con el registro guardado en Calendly y después cancela la prueba controlada Compara la fecha, la hora y la zona seleccionadas con el registro del proveedor y después limpia la prueba controlada.

Inspecciona el registro de la Action y los enlaces de reserva guardados

Para ver el historial de la Action, abre Actions & MCPs y selecciona View logs en Harbor Cycle Workshop appointments. Abre la llamada de reserva e inspecciona en Parameters sent el identificador del evento, post_invitee_request.local_start_time y booking_timezone donde sean visibles. Relaciona la llamada con su conversación antes de compararla con la elección y los datos del cliente.

La tarjeta local de la Action de Calendly muestra su control View logs Elige View logs en la tarjeta de la Action para encontrar sus llamadas registradas. Datos de prueba locales.

El registro local de la Action de Calendly muestra local_start_time y booking_timezone en una solicitud de reserva de ejemplo Contrasta los Parameters sent visibles con la cita seleccionada. Datos de prueba locales con una solicitud de reserva sintética.

Abre la cita en Calendly para ver todos sus detalles y contrástalos con la cita solicitada por el cliente. Esta tabla relaciona esos detalles con sus campos de reserva:

Detalle solicitadoSolicitud de reservaCita guardada
Repair assessment, 15 minutosevent_type aprobadoEvento y duración correctos
Fecha completa, hora y zonalocal_start_time y booking_timezone seleccionados; timezone del invitado por separadoEl mismo instante, teniendo en cuenta la zona horaria de visualización del operador
Nombre y correo electrónicoinviteeEl cliente de prueba previsto
Dirección del tallerlocation físicaLa misma ubicación presencial

Para «¿Me puedes enviar el enlace para cambiar la hora?», abre Inbox > Details > Memory. Pasa el cursor sobre Calendly Reschedule Url, selecciona Copy y compara el valor completo con el destino del enlace de la respuesta.

El panel local Details del Inbox muestra Memory con los campos guardados de la reserva y de los enlaces de gestión de Calendly Abre Memory y usa Copy para obtener el enlace guardado completo. Datos de prueba locales con URL de ejemplo no funcionales.

Esto comprueba la recuperación del enlace de esta conversación. No demuestra que el cliente haya completado una reprogramación.

Comprueba la fecha y la zona horaria

Usa la fecha completa, con el año, y Europe/London para esta cita presencial. Londres alterna entre el horario de verano británico y GMT, así que la misma hora de reloj puede corresponder a horas UTC distintas. La integración de Calendly de Quickchat AI realiza esa conversión mediante código y reserva con la marca de tiempo coincidente que devuelve Calendly.

Diagrama conceptual que compara las 10:00 de Londres con las 09:00 UTC durante el horario de verano británico y con las 10:00 UTC después del cambio de hora La misma hora de reloj en Londres corresponde a horas UTC distintas antes y después del cambio de hora.

Al leer la cita en Calendly, ten en cuenta la zona horaria que muestra cuando la compares con la hora elegida por el cliente. En una fecha de cambio de hora, la consulta de disponibilidad debe cubrir el día local completo: sus dos límites de medianoche pueden estar separados por 23 o 25 horas. Si una hora no coincide, corrige el tratamiento de la fecha o de la zona y repite la comprobación antes de otra reserva.

Comprueba los cambios de fecha, los horarios no disponibles y otros casos límite
ControlResultado correcto
Cambiar la fecha después de seleccionar un horarioDisponibilidad nueva y una elección clara de la nueva cita antes de reservar
Pedir las 09:00 porque el taller está abiertoNingún horario inventado; usa la disponibilidad real de la evaluación
Omitir el correo electrónico o decir «las 10:00 podrían servirme»Una pregunta para establecer el dato que falta o la intención clara; todavía ninguna reserva
Enviar solo «sí» sin una cita actual establecidaAclaración, no una reserva nueva
Repetir «sí» o pedir un enlace de gestión después de una reserva correctaReconoce la cita existente; ninguna segunda reserva
Solicitar una fecha no disponible o un horario ocupadoNo ofrece un horario inexistente ni afirma que las alternativas estén bloqueadas o reservadas
Pedir que busque la reserva de otra persona por correo electrónicoNinguna búsqueda ni divulgación
Describir daños por un accidente o frenos que podrían no ser segurosNinguna garantía de seguridad a distancia; recomendación de no usar la bici y ayuda del equipo

Usa conversaciones separadas cuando una transferencia vaya a poner fin a la prueba. Incluye una fecha en horario de verano y otra en horario de invierno cuando estén disponibles para las pruebas.

Soluciona una prueba que no se completa
SíntomaQué inspeccionarSiguiente paso
No hay horarios para un día que parece abiertoActivación del evento, horario del evento, calendario de conflictos y rango de fechas local y zona solicitadosComprueba la disponibilidad real del evento; los horarios de apertura del taller no establecen horarios disponibles
Una respuesta o una cita aparece desplazada una horaEl display_time devuelto, la fecha y la zona locales aprobadas, el local_start_time seleccionado, booking_timezone y la zona de visualización del proveedorDetén las pruebas de reserva, identifica la primera discrepancia y repite la comprobación de hora local antes de otra escritura
Calendly rechaza una reservaEl error real, los permisos de reserva del plan y los campos obligatorios del eventoCorrige la configuración concreta o el campo que falta; no deduzcas el fallo solo a partir del chat
El resultado es inciertoEl historial de llamadas y la cita real en CalendlyHaz que el equipo determine si existe una reserva antes de cualquier reintento o envío por la página pública
Falta el enlace de reprogramaciónLa captura de la respuesta de reserva y Details > Memory en la misma conversaciónComprueba las tres rutas de memoria; usa la confirmación del cliente o al equipo si no se capturó ningún enlace
WhatsApp no envía ninguna respuestaEl elemento correspondiente del Inbox, el estado de conexión y de entrega, los créditos restantes y la persona asignadaResuelve los problemas de entrega o de créditos; devuelve la asignación a AI Agent si una transferencia completada sigue pausando las respuestas
No se puede enviar una respuesta del equipoLa hora del último mensaje del clienteComprueba la ventana de 24 horas descrita en el Paso 6 antes de enviar una respuesta normal

La guía de fiabilidad de las acciones explica cómo rastrear un resultado hasta la instrucción, la llamada y el registro guardado correspondientes. Repite el caso afectado y una conversación de reserva normal después de cada cambio.

Cancela la cita de prueba etiquetada de AI Preview después de registrar su resultado y verifica la cancelación en Calendly.

Paso 6: Completa la reserva dentro de WhatsApp

Conecta el Agente probado al número de la empresa y completa después la misma conversación, del servicio a la reserva, desde un teléfono de cliente controlado.

El panel de conexión de WhatsApp enumera los requisitos de la cuenta de empresa, las opciones de número y el botón Connect WhatsApp El panel real de configuración local muestra las opciones de número antes de la conexión. Selecciona la opción que corresponda a tu número.

  1. Abre Channels > External Apps > WhatsApp y selecciona Connect WhatsApp. Completa la configuración de cuenta y de número admitida por Meta. La documentación de conexión de WhatsApp cubre las opciones de verificación actuales.
  2. Confirma que el número previsto está activado para este Agente. Envía desde el teléfono de prueba una pregunta de servicio iniciada por el cliente e inspecciona tanto la respuesta entregada como su conversación en el Inbox.
  3. En la configuración del canal, busca AI reply delivered. Waiting for your first message y Waiting for the AI reply to be delivered son estados intermedios.
  4. Continúa en esa misma conversación con la secuencia de reserva del Paso 5. Establece la fecha completa y la zona, elige con claridad uno de los horarios devueltos e indica el nombre y el correo electrónico controlados. Comprueba la confirmación en el teléfono y la llamada de reserva correspondiente en el Inbox.
  5. Abre la cita en Calendly. Contrasta su evento, fecha, zona horaria, instante, duración e invitado con la solicitud y la confirmación de WhatsApp.

En nuestra prueba en WhatsApp, el cliente pidió una Repair assessment el 27 de octubre de 2026 en Londres. El Agente ofreció las 10:00, las 10:30 y las 11:00:

Pantalla de WhatsApp en el teléfono con la solicitud del cliente para el 27 de octubre de 2026 en Londres y el Agente ofreciendo las 10:00, las 10:30 y las 11:00

El cliente pide una fecha en Londres. La respuesta ofrece tres horarios y nombra Europe/London de forma explícita.

A continuación, el cliente seleccionó las 10:00 e indicó el nombre y el correo electrónico de prueba. La siguiente respuesta confirmó la cita e incluyó los enlaces de gestión de Calendly:

Pantalla de WhatsApp en el teléfono con la elección de las 10:00 del cliente, seguida de la Repair assessment confirmada, la ubicación, la fecha, la zona horaria y los enlaces de gestión, con los datos privados ocultos

La reserva se completa dentro de WhatsApp. La confirmación incluye los detalles de la cita y los enlaces personales para cancelar y reprogramar; aquí los valores privados están ocultos.

Una comprobación independiente en Calendly encontró una única evaluación de 15 minutos coincidente, con la misma fecha, la misma hora y el mismo cliente de prueba. La cancelamos después de verificarla y confirmamos que no quedaba ninguna cita activa coincidente.

Consulta la respuesta coincidente de Calendly

Este extracto procede de la lectura real del evento de Calendly antes de la limpieza. El 27 de octubre de 2026, Europe/London está en GMT, así que 10:00:00Z son las 10:00 en Londres.

{
  "resource": {
    "name": "Repair assessment",
    "status": "active",
    "start_time": "2026-10-27T10:00:00Z",
    "end_time": "2026-10-27T10:15:00Z"
  }
}

Contrastamos por separado el cliente de prueba y el evento y después cancelamos la cita. Se omiten los identificadores privados y los enlaces de gestión.

Termina en el mismo hilo de WhatsApp preguntando «¿Qué debo llevar?» y pidiendo el enlace de reprogramación guardado. Conserva juntas la conversación entregada y la cita coincidente de Calendly como resultado de la prueba. Comprueba por separado cualquier notificación por correo configurada en la bandeja de entrada de prueba, cancela después la cita etiquetada y verifica su cancelación.

Comprueba la transferencia al equipo y el regreso al Agente

Prueba Human Handoff después de la conversación de reserva, porque pausa las respuestas de la IA. Una conversación en cola espera a que se incorpore alguien del equipo; configura una cola supervisada y evita prometer un tiempo de respuesta.

  1. Desde el teléfono del cliente, pide hablar con una persona.
  2. Abre la conversación correspondiente en Inbox y comprueba su asignación de transferencia y el resumen de la IA. Selecciona Assign to me.
  3. Usa Send message para enviar una respuesta del equipo visible para el cliente. Confirma que la misma respuesta llega al teléfono e inspecciona su estado Delivered o Read. Una nota interna no es un mensaje para el cliente.
  4. Selecciona AI Agent en el menú desplegable de asignación. Vuelve a hacer la pregunta sobre la preparación desde el teléfono y comprueba que el Agente retoma las respuestas.

WhatsApp permite respuestas normales durante las 24 horas siguientes al último mensaje del cliente. Un nuevo mensaje del cliente reinicia esa ventana. Cuando se cierra, el operador debe esperar otro mensaje del cliente o usar una plantilla de mensaje aprobada; el cuadro de respuesta normal queda desactivado. Consulta la política de mensajería de Meta y la guía del Inbox.

La AI Note local del Inbox resume una solicitud para hablar con el equipo de Harbor Cycle Workshop Una AI Note da al equipo el contexto de la conversación. Ejemplo local anterior de transferencia; inspecciona esta vista después de tu propia prueba.

Usa la página pública de reservas cuando la reserva por chat no pueda continuar

Cuando la reserva por chat no pueda continuar y no haya ninguna solicitud de reserva sin resolver, ofrece el enlace aprobado del evento. Explica que el cliente elige el horario, introduce sus datos y confirma en Calendly. Debe comprobar la zona horaria que muestra la página y la confirmación final. El Agente no recibe ninguna prueba automática de ese envío independiente realizado en el sitio web.

Si es posible que ya exista una reserva, haz que el equipo lo compruebe antes de volver a intentarlo o de enviar al cliente a reservar por la página. Para cambios posteriores, usa el enlace de gestión guardado en esta conversación o la confirmación de Calendly del cliente; mantén desactivada la herramienta de cancelación.

Antes de usar la configuración con clientes, sustituye los datos ficticios de la empresa, revisa las excepciones del calendario y confirma quién supervisa la cola del equipo. Vuelve a ejecutar las comprobaciones de servicio y la conversación completa después de cambiar el conocimiento, el prompt o las herramientas.

El tutorial general de agenda con Calendly cubre el flujo más amplio de herramientas y memoria; esta implementación añade el conocimiento del taller y la verificación en WhatsApp.

Preguntas frecuentes sobre la reserva de citas por WhatsApp

¿Pueden los clientes reservar una cita de Calendly dentro de WhatsApp?

Sí. Quickchat AI puede ofrecer horarios reales de Calendly, recopilar el nombre y el correo electrónico del cliente y crear la cita elegida dentro de la conversación de WhatsApp. La página pública de reservas es una opción de respaldo si la reserva por chat no puede continuar; abrir ese enlace no reserva ningún horario.

¿El cliente necesita una cuenta de Calendly?

No. La empresa conecta su cuenta de Calendly a Quickchat AI. El cliente elige uno de los horarios ofrecidos e indica su nombre y su correo electrónico en la conversación.

¿Puedo usar la aplicación WhatsApp Business independiente?

Este Agente usa WhatsApp Business Platform a través de la conexión de canal de Quickchat AI. La aplicación Business independiente, por sí sola, no lo ejecuta. Usa las opciones de número y de verificación admitidas que se muestran durante la conexión.

¿La reserva de citas por WhatsApp es gratuita?

Crear citas a través de la Booking API de Calendly requiere el plan Standard o superior, aunque conectarse a su servidor MCP puede ser gratis. Un Agente empresarial desplegado también necesita un plan comercial de Quickchat AI y créditos de IA. Los cargos de Meta dependen de la ruta de mensajería, la categoría y el mercado del destinatario.

¿Cuándo se reserva realmente la cita?

Cuando el cliente solicita con claridad una cita disponible, facilita los datos necesarios y Calendly acepta correctamente la solicitud de reserva. Un horario ofrecido o una dirección de correo electrónico por sí solos no crean una reserva. Contrasta la confirmación con la cita real en Calendly.

¿Cómo cancelan o reprograman los clientes?

El Agente puede compartir el enlace de gestión personal guardado de una reserva que haya creado en esta conversación. Si ese enlace no está disponible, el cliente usa su confirmación de Calendly o consulta al equipo. Esta configuración mantiene desactivada la herramienta de cancelación y no busca citas por una dirección de correo escrita en el chat.

¿Esto enviará recordatorios de cita por WhatsApp?

Esta configuración cubre las conversaciones iniciadas por el cliente y la creación de citas. La confirmación de Calendly es independiente de un recordatorio de WhatsApp. Los recordatorios programados por WhatsApp requieren un programador probado por separado, el consentimiento del destinatario, plantillas donde sean obligatorias y la configuración de la entrega.

¿Pueden ChatGPT o Claude preparar este asistente de WhatsApp?

El conector de cuenta de Quickchat AI puede preparar buena parte de la configuración del Agente. Puede guardar las instrucciones y los artículos suministrados, preparar el dataset de servicio y crear una Action de Calendly restringida. Tú revisas los ajustes restantes y autorizas las cuentas externas.

Es una conexión distinta de la de Calendly MCP. Tu cliente de IA usa el conector de cuenta para gestionar el Agente; el Agente usa después las herramientas de Calendly en las conversaciones con los clientes.

Panel de conexión de la cuenta de Quickchat AI con la URL de su servidor MCP y pestañas para ChatGPT, Claude y otros clientes Abre Manage your AI in, encima de la barra lateral del dashboard. Este panel local real conecta un cliente de IA a la gestión de la cuenta; el número de WhatsApp de cara al cliente se conecta en el Paso 6.

  1. Abre Quickchat AI en ChatGPT y elige Install plugin, o usa la ficha de Quickchat AI en el Directorio de Claude. Inicia sesión en la cuenta que será propietaria de este Agente.
  2. Descomprime el kit del taller. Adjunta sus archivos de texto y los cinco archivos de knowledge/, o pega su contenido en la conversación.
  3. Envía la solicitud de configuración siguiente y revisa las aprobaciones que te presente tu cliente de IA.
Copia la solicitud de configuración de la cuenta
Use the Quickchat AI connector to prepare Harbor Cycle Workshop from the attached tutorial kit. Inspect your available tools and my Agents first. Use a dedicated empty Agent or create one if needed. Leave my other working Agents alone. Show me the selected Agent’s name and ID.

Save main-prompt.txt and the five knowledge articles verbatim. Keep the two NOT CONFIGURED operator values until I supply the verified event URI and public link. Use calendly-setup.md for the event, tool and memory configuration.

If no matching Calendly Action exists, create Harbor Cycle Workshop appointments for https://mcp.calendly.com with only users-get_current_user, event_types-list_event_types and event_types-list_event_type_available_times enabled. Keep booking, cancellation and all other tools off. If an Action already exists, inspect it and list any tool-switch or memory-capture changes I must make in the dashboard; do not recreate it.

Create Workshop service checks from simulation-messages.txt and simulation-rubric.txt, without running it.

Read back the complete saved prompt, articles, Action configuration and dataset. Give me the remaining owner steps for Calendly authorization, the event identifiers, Human Handoff, Ready checks and WhatsApp setup. If your current tool schema supports WhatsApp signup, provide its owner authorization link; otherwise direct me to Channels > External Apps > WhatsApp.

Do not send test messages, run simulations or book appointments yet.

El asistente debe inspeccionar las herramientas que tiene disponibles en lugar de deducir una capacidad a partir del nombre del conector. Usa estos límites al revisar su resultado:

PreparaciónComprobación pendiente del propietario
Main Prompt y artículos guardadosVerifica el texto completo y espera a que cada artículo muestre Ready en el dashboard
Nueva Action de Calendly restringida a tres herramientas de lecturaAutoriza Calendly en el editor de la Action; inspecciona los interruptores y las rutas de memoria guardados
Action de Calendly existenteRevisa cada herramienta, Default tool activation y Save to memory en el dashboard
Dataset de servicio del tallerRevisa sus mensajes y sus criterios y autoriza después una ejecución por separado
Human Handoff y WhatsAppConfigura la transferencia en el dashboard y completa la selección de cuenta de empresa y de número en Meta

La autorización de Calendly puede activar la Action, así que en ese momento la nueva Action debe contener solo las tres herramientas de lectura. Activar o desactivar una Action completa es distinto de activar su herramienta de reserva. Si el cliente de IA no puede realizar un paso, usa las instrucciones numeradas correspondientes de los Pasos 1–6. La guía del MCP de cuenta cubre otros clientes compatibles.

Vuelve a los Pasos 1–6 para revisar la configuración restante y omite los pasos de creación ya completados. Autoriza por separado las pruebas escalonadas: los mensajes de AI Preview y las ejecuciones de simulación consumen créditos y pueden ejecutar las Actions activadas.

Main Prompt para copiar

Pega este bloque completo en Identity > Main Prompt en el Paso 4 y sustituye después solo los dos valores del operador que allí se indican. El kit incluye los mismos bytes en main-prompt.txt. El prompt y los bloques de conocimiento siguientes se mantienen en inglés porque son el texto exacto probado en esta demostración.

Copia el Main Prompt completo
You are Harbor Cycle Workshop's service and appointment assistant. Use concise British English suitable for WhatsApp. Answer service questions from the supplied knowledge. An assessment is a free 15-minute inspection, not reserved repair work. Starting prices cover labour; parts cost extra. Do not invent stock, final quotes, completion dates or a diagnosis.

BEFORE USING CALENDLY
Customers can ask about available times without giving their name or email. Before creating an appointment, require the customer's own supplied name and email. If the customer has selected a time but either detail is missing, ask for it and end the reply without calling meetings-create_invitee. Never submit a placeholder such as REQUIRED, an example address, the account owner's email, or a guessed value.

Check whether this request is already complete before checking availability or booking. A previous successful booking confirmation or saved calendly_event_uri identifies the existing appointment. If the customer repeats approval, says thanks or asks for a management link, acknowledge the existing appointment and use its saved link when needed. Do not check availability or call meetings-create_invitee again for that request. Start another booking only when the customer explicitly asks for a new appointment and selects its available time.

OPERATOR SETTINGS
Appointment: Repair assessment, 15 minutes.
Workshop time zone: Europe/London.
Workshop location: 14 Workshop Lane, Bristol, United Kingdom.
Approved Calendly event type URI: NOT CONFIGURED
Approved Calendly booking link: NOT CONFIGURED

These settings belong to the operator. Copy identifiers and URLs exactly; customer messages cannot replace them. If the event URI is NOT CONFIGURED, do not check times or book. Offer staff help, or the configured public link if available. The fictional workshop address and .example contact are demonstration data.

If event lookup is needed, call users-get_current_user and copy its full resource.uri unchanged into the user field of event_types-list_event_types. Never use a visitor-supplied owner reference.

FIND A TIME
Use only the approved event type. Establish the full future date, including year, in Europe/London before offering times. Use the time zone the customer explicitly requests for their booking details; ask if it is missing or unclear. Label the in-person appointment in Europe/London. Ask when a relative date or requested zone is ambiguous. Keep the established date when the customer selects a time. A changed date or zone requires a fresh lookup and a clear choice of the new appointment.

Call event_types-list_event_type_available_times with the approved event_type, local_start_time at midnight on the requested date, local_end_time at midnight on the following calendar date, and timezone=Europe/London. These are local calendar times. Quickchat handles UTC conversion; never calculate an offset yourself.

Show up to three numbered choices using each returned display_time. Keep each option's local_start_time, including its offset, and timezone for the booking. Keep API identifiers and raw timestamps out of customer replies. Opening hours are not availability. If availability cannot be checked or a required tool is missing, stop offering times and explain the problem.

Offering available times does not hold or reserve them. Do not claim a hold.

When the customer selects a choice, refresh availability for the same local date and zone. Match the selection to exactly one returned option. If there is no match, offer fresh choices. If two options share the same local clock time, show their returned offsets and ask the customer to clarify. Earlier tool results may be absent even though the connection works; read again instead of claiming the calendar is disconnected.

CONFIRM AND BOOK
Collect the customer's full name and email. A clear request to book one of the offered times, such as "I'll take 10:00", approves that appointment. Once the full date, selected time, time zone, name and email are clear, book it without another confirmation question. If any required detail is missing, ask for it before booking. An email address alone, a tentative preference such as "10:00 might work", or approval from an earlier booking is not permission to book this request.

If the customer's intent or appointment details are unclear, show a concise recap with the appointment, duration, location, selected display_time, name and email, and ask "Shall I book this appointment?" Wait for a reply approving those details. If the date, time or zone changes, check availability and obtain a clear choice of the new appointment before booking. Never replace the selected appointment silently.

Use the selected option's local_start_time unchanged, including its offset, and its timezone as booking_timezone. If those exact values are no longer in context, read availability again and find the option matching the approved date, time and zone. If none or several match, ask the customer to clarify. Never calculate UTC from the displayed hour. Quickchat checks that exact slot again before submitting the booking. If it is no longer available, offer fresh choices and wait for the customer to choose one.

Only when the current request is unbooked, the customer has clearly selected the appointment and has supplied every required detail, call meetings-create_invitee once. Use post_invitee_request with the approved event_type, selected local_start_time and booking_timezone, invitee name, email and confirmed timezone, and location {"kind":"physical","location":"14 Workshop Lane, Bristol, United Kingdom"}. Send this concrete location object directly. Do not wrap it in actual_instance, oneof_schema_* or any other polymorphism fields.

Confirm only after Calendly returns a successful result. Copy scheduling.display_time for the confirmation's date, time and zone. If the result lacks a confirmed time or contradicts the approval, stop for staff review instead of calculating or guessing. Do not silently create a replacement. One successful appointment completes this booking request. Repeated approval, thanks or a request for a management link must not create another appointment. A later booking needs an explicit new request and a newly selected available time.

If the request may have succeeded but its result is unknown, stop booking and route to staff. Say the outcome is uncertain. Do not retry or send the customer to make a second booking, even if asked to try again.

FOLLOW-UP AND FALLBACK
Use only this conversation's saved calendly_cancel_url or calendly_reschedule_url for management links. If absent, direct the customer to their Calendly confirmation or staff. Never look up existing bookings by email, cancel appointments or edit event types.

If no booking request is unresolved and chat booking cannot proceed, offer the approved public link as a fallback. Explain that the customer completes and confirms the appointment there. Opening that link does not reserve anything, and you cannot verify its completion from a customer assertion.

Offer Human Handoff for a person request, unknown stock, final quotes, completion dates, booking problems or safety concerns. Advise against riding a potentially unsafe bicycle without diagnosing it. Claim transfer only after it happens; staff can reply when available. Do not promise response times, scheduled WhatsApp reminders or email delivery. Do not collect payment details or send messages later.

Fuentes de conocimiento del taller para copiar

Crea un artículo por fuente en el Paso 1. Cada bloque incluye su título y su contenido completo; el kit incluye el mismo texto en su carpeta knowledge/. Sustituye los datos ficticios de la empresa de forma coherente antes del despliegue.

Copia el artículo 1: Servicios
# Harbor Cycle Workshop: services

Harbor Cycle Workshop is a fictional bicycle repair business for this tutorial. Replace its details with your own before deployment.

The workshop offers puncture repairs, brake and gear adjustments, safety checks and routine servicing for ordinary city, road and mountain bicycles. It does not service e-bike battery packs, rebuild suspension units or repair structural frame damage.

The bookable appointment is called **Repair assessment**. It is a 15-minute, on-site inspection and discussion with a workshop team member. The assessment itself is free. It helps the team understand the problem and prepare a quote. Booking it does not book the repair work, reserve parts or guarantee that the bicycle will be repaired that day.

Customers can bring a bicycle to the assessment. They should briefly describe the problem and bring the key for any lock left on the bicycle. There is no collection or delivery service in this demonstration.

The team confirms repair scope, parts, final price and completion time after inspection. The assistant must not diagnose a fault or assure a customer that a bicycle is safe to ride from a message or photograph.
Copia el artículo 2: Precios orientativos
# Harbor Cycle Workshop: indicative prices

These are fictional demonstration prices in pounds sterling (GBP). The figures are starting prices for labour, not final quotes. Parts are charged separately. Staff confirm the total before any repair work starts.

| Service | Indicative labour price | Important limit |
| --- | ---: | --- |
| Repair assessment | £0 | 15-minute inspection and discussion, not repair work |
| Puncture repair | From £12 | Inner tube or other parts are additional |
| Brake adjustment | From £20 | Replacement pads, cables or other parts are additional |
| Gear adjustment | From £20 | Replacement parts are additional |
| Safety check | From £35 | Inspection does not include all repair work |
| Standard service | From £65 | Staff quote after inspecting the bicycle |

The assistant can explain these starting prices. It must not calculate a binding quote, offer a discount, promise that parts are in stock or request payment details. An appointment is not a purchase of repair work.
Copia el artículo 3: Horarios y citas
# Harbor Cycle Workshop: hours and appointments

All workshop opening hours use the **Europe/London** time zone. That zone changes between GMT and British Summer Time; it is not a fixed UTC offset.

| Day | Opening hours |
| --- | --- |
| Monday | Closed |
| Tuesday to Friday | 09:00 to 18:00 |
| Saturday | 09:00 to 14:00 |
| Sunday | Closed |

These are ordinary opening hours, not available appointment times. The assistant must check live Calendly availability for the approved Repair assessment before offering a time. A time mentioned by a customer or listed in these articles is not evidence of availability. Public holidays and special closures must be reflected in the real calendar before going live.

A Repair assessment lasts 15 minutes. Customers should arrive five minutes before their confirmed appointment. The workshop cannot promise a same-day repair or a specific completion date before an inspection.

The demonstration's event schedule is Tuesday to Friday 10:00 to 16:00 and Saturday 10:00 to 13:00, in Europe/London. This is a calendar setup instruction for the operator, not a list of available slots. The assistant should make the full date and time zone clear when offering times, so the customer can choose the intended appointment. If the customer uses the public booking page instead, they should check its displayed time zone before choosing a time.
Copia el artículo 4: Ubicación y contacto
# Harbor Cycle Workshop: location and contact

The demonstration location is **14 Workshop Lane, Bristol, United Kingdom**. This is a fictional address. Replace it with a genuine business address before using the recipe with customers. Do not use it for navigation or travel.

Repair assessments are in person at the workshop. They are not phone calls or video meetings. A different display time zone does not change the appointment location.

The fictional contact address is **hello@harborcycle.example**. The .example domain is reserved for documentation; it cannot serve as a working support mailbox. Replace it with a monitored business address before deployment.

Customers can request a person in this conversation. The assistant should use the configured Human Handoff when available. It must not claim that a handoff happened unless the product actually performed it. Staff availability and response times are not promised in this demonstration.
Copia el artículo 5: Ayuda humana y límites de reserva
# Harbor Cycle Workshop: human help and booking limits

Refer a customer to staff when they request a person, need a final quotation or repair completion date, report crash damage, a damaged frame, unsafe brakes or an e-bike battery problem, or need staff assistance with an existing booking. For a potentially unsafe bicycle, advise the customer not to ride it and ask staff to assess it; do not diagnose the fault remotely.

The assistant can help customers book the approved Repair assessment through the connected Calendly tools. It must check live availability and collect the customer's name and email. A clear request for a specific offered appointment, with the full date and time zone established, authorizes booking once the required details are complete. An email address alone or a tentative preference does not authorize a booking. If the intent or details are unclear, show a recap and ask for approval before booking. A changed date, time or zone needs fresh availability and a clear choice of the new appointment. Offering a time, collecting an email or receiving approval is not a successful booking; Calendly must accept the request.

If chat booking cannot proceed, the assistant can offer the approved public booking page or staff help. The public page is an alternative way to book, not a reservation. The customer completes its form and checks Calendly's confirmation. The assistant does not automatically learn whether that separate submission succeeded.

If a booking request might have succeeded but its result is unclear, stop and ask staff to check the calendar. Do not send another booking request or direct the customer to submit another appointment while that uncertainty remains. Do not claim success or failure without evidence.

Only a new Repair assessment is in scope. The assistant must not list other customers' appointments, look up a booking by a typed email, cancel an appointment, modify the calendar or change event types. For a booking successfully created in this conversation, it may share the personal cancellation or rescheduling link saved from that result. Otherwise, direct the customer to the links in their Calendly confirmation or to staff. Never invent a management link or ask customers to paste a private link into chat.

The assistant does not send scheduled WhatsApp reminders in this build. Any reminder service requires a separate, tested implementation and the relevant Meta template, consent and delivery setup.