# Bridge Agenda mediante MCP

Esta referencia describe las tools de la nueva Agenda-calendario de Bridge. El esquema devuelto por `tools/list` es siempre la fuente autoritativa para el cliente autenticado.

## Comportamiento conversacional

Una petición como «dame de alta una reunión» expresa una intención, pero todavía no contiene todos los datos necesarios. El asistente debe conservar lo ya indicado y preguntar de forma natural por lo que falte. Para crear un evento necesita como mínimo título, fecha y hora de comienzo, y hora de fin o duración.

Zona horaria, asistentes, lugar, videollamada, descripción, recordatorios y vínculos con cliente, proveedor o proyecto son opcionales. Nunca se deben inventar valores ni presentar como fallida una operación que aún está recopilando datos.

## Contrato de tools

| Tool                             | Entrada obligatoria                               | Salida principal         |
| -------------------------------- | ------------------------------------------------- | ------------------------ |
| `bridge_list_agenda_events`      | `start`, `end`                                    | `events[]`               |
| `bridge_get_agenda_event`        | `eventId`                                         | `event`                  |
| `bridge_get_agenda_integrations` | ninguna                                           | `integrations[]`, `mail` |
| `bridge_create_agenda_event`     | `title`, `startsAt`, `endsAt` o `durationMinutes` | `success`, `event`       |
| `bridge_update_agenda_event`     | `eventId` y al menos el campo que cambia          | `success`, `event`       |
| `bridge_cancel_agenda_event`     | `eventId`                                         | `success`                |

Los rangos y momentos deben enviarse preferentemente en ISO 8601 con zona u offset. `durationMinutes` admite de 1 a 10.080 minutos y Bridge deriva `endsAt`.

Creación y actualización aceptan además:

- `description`, `allDay`, `timezone`, `color`, `location` y `videoUrl`.
- `category`: `meeting`, `call`, `crm`, `personal`, `task` u `other`.
- `visibility`: `company` o `private`.
- `clientId`, `supplierId` y `projectId` para relaciones de negocio.
- `attendeeEmails[]` y `reminderMinutes[]`.

Al actualizar, el asistente debe leer primero el evento. Bridge conserva los campos opcionales omitidos en el `PATCH`. La cancelación es lógica y detiene avisos pendientes.

## Google Calendar y notificaciones

Bridge ejecuta la sincronización en el propio endpoint. Si Google Calendar está conectado, crear, modificar o cancelar un evento actualiza también el calendario externo; `externalEventUrl` aparece cuando Google lo proporciona. Las invitaciones y recordatorios configurados se recalculan en el mismo flujo.

`bridge_get_agenda_integrations` permite comprobar conexión, calendario seleccionado, última sincronización y último error sin revelar credenciales.

## Permisos

Las consultas requieren `bridge.read`; crear, modificar y cancelar requieren `bridge.write`. Bridge vuelve a validar empresa, usuario, suscripción y permisos. Las escrituras son idempotentes y pueden activar la confirmación publicada por su nivel de riesgo.
