> ## Documentation Index
> Fetch the complete documentation index at: https://docs.revem.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Editar reunión

> Edita una ocurrencia (scope=one), esta y las siguientes (future), o todas las futuras no canceladas (all). Envía solo los campos que deseas cambiar. Con all usa seriesTime (HH:mm en la zona de la serie) y durationMinutes; startTime/endTime se admiten solo con one.



## OpenAPI

````yaml /openapi.json patch /meetings/public/v1/{id}
openapi: 3.1.0
info:
  title: Revem API
  version: 1.0.0
  description: >-
    La API pública de Revem para integraciones de servidor a servidor:
    contactos, organizaciones, tickets, reuniones y el canal de webchat. Se
    autentica con la API key de tu organización.
  contact:
    name: Soporte Revem
    email: soporte@revem.ai
    url: https://revem.ai
servers:
  - url: https://api.revem.ai
    description: Producción
security:
  - apiKey: []
tags:
  - name: Organizaciones
    description: >-
      Sincroniza empresas por identificador tributario, con atributos
      personalizados por nombre.
  - name: Contactos
    description: >-
      Sincroniza tu base de clientes con Revem. Los contactos se identifican por
      teléfono al crearlos y por id después.
  - name: Tickets
    description: Lee y actualiza los tickets de tu embudo desde tu sistema de gestión.
  - name: Webchat
    description: >-
      Conecta el chat de tu sitio con Revem: registra lo que escribe el
      visitante y lee las respuestas del equipo o del agente.
  - name: Reuniones
    description: >-
      Requiere el módulo meetings. Reuniones independientes de las citas
      médicas, con responsable, capacidad y reservas por contacto y ocurrencia.
paths:
  /meetings/public/v1/{id}:
    patch:
      tags:
        - Reuniones
      summary: Editar reunión
      description: >-
        Edita una ocurrencia (scope=one), esta y las siguientes (future), o
        todas las futuras no canceladas (all). Envía solo los campos que deseas
        cambiar. Con all usa seriesTime (HH:mm en la zona de la serie) y
        durationMinutes; startTime/endTime se admiten solo con one.
      operationId: updateMeeting
      parameters:
        - name: id
          in: path
          required: true
          description: ID de la reunión.
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeetingUpdate'
      responses:
        '200':
          description: Operación completada.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeetingCreateResult'
        '400':
          description: Datos inválidos.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeetingError'
        '401':
          description: Sin credencial, o la API key no existe o fue revocada.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthError'
              example:
                error: Unauthorized
                message: Invalid API key
        '403':
          description: Módulo no habilitado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeetingError'
        '404':
          description: Recurso no encontrado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeetingError'
        '409':
          description: Sin cupos o reunión no disponible.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeetingError'
        '429':
          description: >-
            La key superó su límite de solicitudes por minuto. El header
            `retry-after` indica cuánto esperar.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
              example:
                ok: false
                error: Too many requests. Retry in 1 minute.
          headers:
            retry-after:
              description: Segundos que esperar antes de reintentar.
              schema:
                type: integer
            x-ratelimit-limit:
              description: Solicitudes permitidas por minuto.
              schema:
                type: integer
            x-ratelimit-remaining:
              description: Solicitudes que quedan en la ventana actual.
              schema:
                type: integer
            x-ratelimit-reset:
              description: Segundos hasta que la ventana se reinicia.
              schema:
                type: integer
components:
  schemas:
    MeetingUpdate:
      type: object
      properties:
        title:
          type: string
          minLength: 1
          maxLength: 200
          description: Nombre visible de la reunión.
        startTime:
          type: string
          format: date-time
          description: Inicio ISO 8601 con zona horaria; debe estar en el futuro al crear.
        endTime:
          type: string
          format: date-time
          description: Fin posterior al inicio; duración máxima 24 horas.
        assigneeId:
          type: string
          format: uuid
          description: UUID de un miembro activo del tenant.
        capacity:
          type: integer
          minimum: 1
          maximum: 10000
          description: Cantidad máxima de contactos, entre 1 y 10000.
        scope:
          default: one
          type: string
          enum:
            - one
            - future
            - all
        seriesTime:
          type: string
          pattern: ^([01]\d|2[0-3]):[0-5]\d$
        durationMinutes:
          type: integer
          minimum: 1
          maximum: 1440
      additionalProperties: false
      example:
        scope: all
        seriesTime: '11:30'
        durationMinutes: 60
    MeetingCreateResult:
      type: object
      properties:
        meetings:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
              title:
                type: string
              startTime:
                type: string
              endTime:
                type: string
              assigneeId:
                type: string
                format: uuid
              assigneeName:
                type: string
              capacity:
                type: number
              booked:
                type: number
              availablePlaces:
                type: number
              cancelledAt:
                anyOf:
                  - type: string
                  - type: 'null'
              seriesId:
                anyOf:
                  - type: string
                    format: uuid
                  - type: 'null'
            required:
              - id
              - title
              - startTime
              - endTime
              - assigneeId
              - assigneeName
              - capacity
              - booked
              - availablePlaces
              - cancelledAt
              - seriesId
            additionalProperties: false
      required:
        - meetings
      additionalProperties: false
    MeetingError:
      type: object
      properties:
        error:
          type: string
      required:
        - error
      additionalProperties: false
    AuthError:
      type: object
      properties:
        ok:
          type: boolean
          const: false
          description: Presente sólo en el `403`.
        error:
          type: string
        message:
          type: string
      required:
        - error
        - message
    RateLimitError:
      type: object
      properties:
        ok:
          type: boolean
          const: false
        error:
          type: string
          description: Incluye cuánto esperar antes de reintentar.
      required:
        - ok
        - error
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: >-
        La API key de tu organización, con la forma `rvm_<prefijo>.<secreto>`,
        enviada como `Authorization: Bearer rvm_…`. Revem la emite y sólo se
        muestra una vez; si la pierdes se reemplaza, no se recupera.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.