> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ovac.councilbox.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ovac.councilbox.com/_mcp/server.

# Create Appointment Representation Guests

POST https://api.ovac.pre.councilbox.com/graphql/createappointment-2
Content-Type: application/json

# Create Appointment with Guest Representation (`createAppointment`)

Esta variante avanzada de la mutación permite registrar una cita modelando escenarios complejos en una única petición. Es ideal para flujos donde el participante principal asiste con acompañantes o invitados adicionales (`guests`), y donde alguno de estos últimos actúa como representante legal de un tercero a través del subbloque anidado `representedParticipant`.

### Autenticación

> **Tipo:** API Key**  
Header:** `x-jwt-token`  
**Ubicación:** Header HTTP_  
Ejemplo:_ `x-jwt-token: eyJhbGciOiJIUzI1NiIsInR5cCI6...` 
  

## Mapeo de roles (`type`)

En los bloques de asistentes (`guests` y `representedParticipant`), se utiliza el campo numérico `type` para dictaminar el rol funcional de cada usuario dentro del encuentro:

- **`0`** → Participante sencillo
    
- **`1`** → Invitado
    
- **`2`** → Representante
    
- **`3`** → Representado
    

## Referencia de la API

### Variables globales de entrada

| Parámetro | Descripción | Requerido | Tipo |
| --- | --- | --- | --- |
| $notifyCreation | `true`: Envía una notificación automática de confirmación al ciudadano.  <br>`false`: Registra la cita silenciosamente.  <br>Por defecto: `true` | NO | Boolean |
| $checkAgenda | `true`: Valida la disponibilidad horaria del agente antes de insertar.  <br>`false`: Omite la comprobación y fuerza la inserción. | SI | Boolean |
| $councilOptions.**notificationType** | Selecciona el método de notificación de la cita/gestión:  <br>`-1`: Sin notificación  <br>`0`: email  <br>`1`: SMS  <br>`2`: WhatsApp  <br>  <br>Si no se selecciona el bloque, se emplea el método por defecto configurado en el trámite. | NO | Integer |
| $council | Configuración técnica, fechas y taxonomía de la cita (Ver desglose abajo). | SI | Object |
| $participant | Datos de identidad y contacto del participante (Ver desglose abajo). | SI | Object |
| $representation | Datos del Representado. (Solo se rellena en flujos de representación legal). | NO | Object |
| $guests | Lista de participantes invitados adicionales (\[ParticipantInput\]). | NO | Array |

### Desglose del objeto `council` (`CouncilInput`)

| Parámetro | Descripción | Requerido | Tipo |
| --- | --- | --- | --- |
| name | Título o nombre asignado al trámite de la cita. | SI | String |
| companyId | ID numérico interno de la entidad en la plataforma OVAC. | SI | Integer |
| statuteId | ID numérico interno del trámite en la plataforma. | SI | Integer |
| councilType | Canal de atención:  <br>`5` (Videoatención)  <br>`6` (Gestión desatendida)  <br>`7` (Presencial). | SI | Integer |
| dateStart | Fecha y hora programada en formato UTC bajo el estándar ISO 8601 (YYYY-MM-DDTHH:mmZ). | SI | String |
| tag | Identificador de origen: "`ADMIN`" (gestores)  <br>"`KIOSK`" (tótems)  <br>"`INMEDIATE`" (urgente)  <br>"`URGENT`" (huecos reservados). | SI | String |
| readOnly | Restricción de edición: `0` (permite modificaciones desde el portal)  <br>`1` (bloqueada, solo vía API). | SI | Integer |
| language | Idioma base en el que se configurará la cita(ej. "es"). Por defecto, se emplea el idioma configurado en la organización.  <br>Consultar método '`Languages`'. | NO | String |
| contactEmail | Correo electrónico de soporte o contacto de la entidad. Por defecto se usa el parametrizado en la entidad/organización. | NO | String |
| externalId | Identificador propio o ID único de la cita en el sistema del cliente. | NO | String |
| conveneText | Texto o cuerpo opcional para la convocatoria de la reunión. | NO | String |
| observations | Comentarios u observaciones generales de la cita. | NO | String |
| internalNotes | Notas internas dirigidas al agente (no son visibles por el ciudadano). | NO | String |
| comment | Comentarios adicionales sobre el registro. | NO | String |

### Desglose del objeto `participant` (`ParticipantInput` - Principal)

| Parámetro | Descripción | Requerido | Tipo |
| --- | --- | --- | --- |
| name | Nombre de pila del participante. | SI | String |
| surname | Apellidos completos del participante. | SI | Integer |
| idCardType | Tipo de documento de identidad. Valores admitidos: "`dni`", "`nif`", "`passport`", "`nie`", "`codiceFiscale`" (Identificador Italia), "`otherIDCards`" (cualquier documento de identificación), "`driversLicence`" (Licencia de conducir EEUU), "`europeanDocument`" (documento europeo, solo válido para los documentos de los países de europa) | SI | String |
| dni | Número del documento de identidad o identificación fiscal. | SI | String |
| idCardCountry | Código de país del documento en formato ISO 3166-1 alfa-2 (ej. "ES"). | SI | String |
| email | Dirección de correo electrónico donde el ciudadano recibirá las notificaciones. | SI | String |
| phone | Teléfono móvil de contacto con prefijo internacional (ej. "+34600000000"). | SI | String |
| language | Idioma en el que el ciudadano visualizará la interfaz de OVAC (ej. "es"). Por defecto, se obtiene el de la entidad/ogranización.  <br>Consultar método '`Languages`'. | NO | String |
| zipcode | Código postal de residencia del participante. | NO | String |

### Desglose de objetos dentro del Array `guests` (`[ParticipantInput]`)

Cada elemento del listado de invitados comparte la estructura base de `ParticipantInput` pero añade capacidades de tipado dinámico y anidación:

| Parámetro | Descripción | Requerido | Tipo |
| --- | --- | --- | --- |
| name | Nombre de pila del participante. | SI | String |
| surname | Apellidos completos del participante. | SI | Integer |
| idCardType | Tipo de documento de identidad. Valores admitidos: "`dni`", "`nif`", "`passport`", "`nie`", "`codiceFiscale`" (Identificador Italia), "`otherIDCards`" (cualquier documento de identificación), "`driversLicence`" (Licencia de conducir EEUU), "`europeanDocument`" (documento europeo, solo válido para los documentos de los países de europa) | SI | String |
| dni | Número del documento de identidad o identificación fiscal. | SI | String |
| idCardCountry | Código de país del documento en formato ISO 3166-1 alfa-2 (ej. "ES"). | SI | String |
| type | `0` → Participante sencillo  <br>`1` → Invitado  <br>`2` → Representante  <br>`3` -> Representado | SI | Integer |
| email | Dirección de correo electrónico donde el ciudadano recibirá las notificaciones. | SI | String |
| phone | Teléfono móvil de contacto con prefijo internacional (ej. "+34600000000"). | SI | String |
| language | Idioma en el que el ciudadano visualizará la interfaz de OVAC (ej. "es"). Por defecto, se obtiene el de la entidad/ogranización.  <br>Consultar método '`Languages`'. | NO | String |
| zipcode | Código postal de residencia del participante. | NO | String |
| representedParticipant | Subbloque opcional. Contiene los datos de la persona física o jurídica a la que el invitado representa. | NO | Object |

### Desglose de objetos dentro del Array `guests` (`[representedParticipant]`)

| Parámetro | Descripción | Requerido | Tipo |
| --- | --- | --- | --- |
| name | Nombre de pila del participante. | SI | String |
| surname | Apellidos completos del participante. | SI | Integer |
| idCardType | Tipo de documento de identidad. Valores admitidos: "`dni`", "`nif`", "`passport`", "`nie`", "`codiceFiscale`" (Identificador Italia), "`otherIDCards`" (cualquier documento de identificación), "`driversLicence`" (Licencia de conducir EEUU), "`europeanDocument`" (documento europeo, solo válido para los documentos de los países de europa) | SI | String |
| dni | Número del documento de identidad o identificación fiscal. | SI | String |
| idCardCountry | Código de país del documento en formato ISO 3166-1 alfa-2 (ej. "ES"). | SI | String |
| type | `0` → Participante sencillo  <br>`1` → Invitado  <br>`2` → Representante  <br>`3` -> Representado | SI | Integer |
| email | Dirección de correo electrónico donde el ciudadano recibirá las notificaciones. | SI | String |
| phone | Teléfono móvil de contacto con prefijo internacional (ej. "+34600000000"). | SI | String |
| language | Idioma en el que el ciudadano visualizará la interfaz de OVAC (ej. "es"). Por defecto, se obtiene el de la entidad/ogranización.  <br>Consultar método '`Languages`'. | NO | String |
| zipcode | Código postal de residencia del participante. | NO | String |

### Campos de Respuesta (Payload)

| Parámetro | Descripción | Tipo |
| --- | --- | --- |
| createOneOnOneCouncil | Objeto raíz con los datos de la cita generada. | Object |
| createOneOnOneCouncil.**id** | Identificador, interno de OVAC, único de la cita generada. | Integer |
| createOneOnOneCouncil.**accessLink** | Enlace único de acceso directo para auditar la cita. | String |
| createOneOnOneCouncil.**creatorId** | Identificador, interno de OVAC, único del usuario que ha creado la cita. | Integer |

## Ejemplos de Código y Peticiones

### 1\. Mutación GraphQL

``` graphql
mutation createAppointment(
    $council: CouncilInput,
    $participant: ParticipantInput,
    $representation: ParticipantInput,
    $notifyCreation: Boolean,
    $checkAgenda: Boolean,
    $guests: [ParticipantInput],
    $councilOptions: CouncilOptions
    )
    {
        createAppointment
            (
            council: $council,
            participant: $participant,
            representation: $representation,
            notifyCreation: $notifyCreation,
            checkAgenda: $checkAgenda,
            guests: $guests,
            councilOptions: $councilOptions
            )
        {
            id
            accessLink
            creatorId
        }
    }

 ```

### 2\. Variables de la Petición (JSON Payload con Anidación)

``` json
{
    "council": {
        "name": "test creación cita",
        "companyId": 2191,
        "statuteId": 4685,
        "councilType": 5,
        "externalId" : "",
        "contactEmail": "",
        "dateStart": "2026-05-22T09:30Z",
        "conveneText": "",
        "observations": "Estas son observaciones",
        "internalNotes": "Estas son notas internas",
        "comment": "Opcional - Información visible mail de creación de cita",
        "readOnly": 0,
        "tag": "ADMIN"
    },
    "participant": {
        "name": "Name of participant",
        "surname": "Surname of participant",
        "idCardType": "dni",
        "dni" : "11111111H",
        "idCardCountry": "ES",
        "email": "participant_email@domain.com",
        "phone": "+34600000000",
        "language":"es",
        "zipcode": "00000"
   },
    "guests": [{
        "name": "Name of participant",
        "surname": "Surname of participant",
        "idCardType": "passport",
        "dni" : "fake_passport_2",
        "idCardCountry": "ES",
        "type": 2,
        "email": "participant_email+2@domain.com",
        "phone": "+34600000000",
        "language":"es",
        "zipcode": "00000",
        "representedParticipant": {
            "name": "Name of participant",
            "surname": "Surname of participant",
            "idCardType": "passport",
            "dni" : "fake_passport_3",
            "idCardCountry": "ES",
            "type": 3,
            "email": "representedParticipant_1+@domain.com",
            "phone": "+34600000000",
            "language":"es",
            "zipcode": "00000"
        }
    }],
    "notifyCreation": true,
    "checkAgenda": true,
    "councilOptions": 
        { 
        "notificationType": 0 
        }
}

 ```

### 3\. Ejemplo de comando cURL

``` bash
curl --location --globoff 'https://api.ovac.pre.councilbox.com/graphql' \
--header 'Content-Type: application/json' \
--header 'x-jwt-token: {{token}}' \
--data-raw '{"query":"mutation createAppointment($council: CouncilInput, $participant: ParticipantInput, $representation: ParticipantInput, $notifyCreation: Boolean, $checkAgenda: Boolean, $guests: [ParticipantInput]){ createOneOnOneCouncil(council: $council, participant: $participant, representation: $representation, notifyCreation: $notifyCreation, checkAgenda: $checkAgenda, guests: $guests) { id accessLink creatorId } }","variables":{"council":{"name":"test creación cita","companyId":2191,"statuteId":4685,"councilType":5,"externalId":"","companyExternalId":"","statuteExternalId":"","contactEmail":"","dateStart":"2026-05-22T09:30Z","conveneText":"","observations":"Estas son observaciones","internalNotes":"Estas son notas internas","comment":"Opcional - Información visible mail de creación de cita","readOnly":0,"tag":"ADMIN"},"participant":{"name":"Name of participant","surname":"Surname of participant","idCardType":"dni","dni":"11111111H","idCardCountry":"ES","email":"participant_email@domain.com","phone":"+34600000000","language":"es","zipcode":"00000"},"guests":[{"name":"Name of participant","surname":"Surname of participant","idCardType":"passport","dni":"fake_passport_2","idCardCountry":"ES","type":2,"email":"participant_email+2@domain.com","phone":"+34600000000","language":"es","zipcode":"00000","representedParticipant":{"name":"Name of participant","surname":"Surname of participant","idCardType":"passport","dni":"fake_passport_3","idCardCountry":"ES","type":3,"email":"representedParticipant_1+@domain.com","phone":"+34600000000","language":"es","zipcode":"00000"}}],"notifyCreation":true,"checkAgenda":true}}'

 ```

### 4\. Respuesta Esperada (200 OK)

``` json
{
    "data": {
        "createAppointment": {
            "id": 64919,
            "accessLink": "https://apitest.ovac.pre.councilbox.com/attendance/token/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb3VuY2lsUGFydGljaXBhbnRJZCI6MjQ5MDE5LCJpZCI6MjQ5MDE5LCJpYXQiOjE3NzkzNjQ0MTZ9.AeUze049RfMUrY3SzgcAF9O7dfCrylpGPf1kpFK2FLU",
            "creatorId": 3476
        }
    }
}

 ```

> **Nota OpenAPI/Fern:** esta operación GraphQL se documenta como `/graphql/createappointment-2` para que Fern pueda mostrarla como operación independiente. La ruta técnica real de ejecución es `POST /graphql`.


Reference: https://docs.ovac.councilbox.com/metodos-api/02-create-appointments/create-appointment-2

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: ovac
  version: 1.0.0
paths:
  /graphql/createappointment-2:
    post:
      operationId: create-appointment-2
      summary: Create Appointment Representation Guests
      description: >
        # Create Appointment with Guest Representation (`createAppointment`)


        Esta variante avanzada de la mutación permite registrar una cita
        modelando escenarios complejos en una única petición. Es ideal para
        flujos donde el participante principal asiste con acompañantes o
        invitados adicionales (`guests`), y donde alguno de estos últimos actúa
        como representante legal de un tercero a través del subbloque anidado
        `representedParticipant`.


        ### Autenticación


        > **Tipo:** API Key**  

        Header:** `x-jwt-token`  

        **Ubicación:** Header HTTP_  

        Ejemplo:_ `x-jwt-token: eyJhbGciOiJIUzI1NiIsInR5cCI6...` 
          

        ## Mapeo de roles (`type`)


        En los bloques de asistentes (`guests` y `representedParticipant`), se
        utiliza el campo numérico `type` para dictaminar el rol funcional de
        cada usuario dentro del encuentro:


        - **`0`** → Participante sencillo
            
        - **`1`** → Invitado
            
        - **`2`** → Representante
            
        - **`3`** → Representado
            

        ## Referencia de la API


        ### Variables globales de entrada


        | Parámetro | Descripción | Requerido | Tipo |

        | --- | --- | --- | --- |

        | $notifyCreation | `true`: Envía una notificación automática de
        confirmación al ciudadano.  <br>`false`: Registra la cita
        silenciosamente.  <br>Por defecto: `true` | NO | Boolean |

        | $checkAgenda | `true`: Valida la disponibilidad horaria del agente
        antes de insertar.  <br>`false`: Omite la comprobación y fuerza la
        inserción. | SI | Boolean |

        | $councilOptions.**notificationType** | Selecciona el método de
        notificación de la cita/gestión:  <br>`-1`: Sin notificación  <br>`0`:
        email  <br>`1`: SMS  <br>`2`: WhatsApp  <br>  <br>Si no se selecciona el
        bloque, se emplea el método por defecto configurado en el trámite. | NO
        | Integer |

        | $council | Configuración técnica, fechas y taxonomía de la cita (Ver
        desglose abajo). | SI | Object |

        | $participant | Datos de identidad y contacto del participante (Ver
        desglose abajo). | SI | Object |

        | $representation | Datos del Representado. (Solo se rellena en flujos
        de representación legal). | NO | Object |

        | $guests | Lista de participantes invitados adicionales
        (\[ParticipantInput\]). | NO | Array |


        ### Desglose del objeto `council` (`CouncilInput`)


        | Parámetro | Descripción | Requerido | Tipo |

        | --- | --- | --- | --- |

        | name | Título o nombre asignado al trámite de la cita. | SI | String |

        | companyId | ID numérico interno de la entidad en la plataforma OVAC. |
        SI | Integer |

        | statuteId | ID numérico interno del trámite en la plataforma. | SI |
        Integer |

        | councilType | Canal de atención:  <br>`5` (Videoatención)  <br>`6`
        (Gestión desatendida)  <br>`7` (Presencial). | SI | Integer |

        | dateStart | Fecha y hora programada en formato UTC bajo el estándar
        ISO 8601 (YYYY-MM-DDTHH:mmZ). | SI | String |

        | tag | Identificador de origen: "`ADMIN`" (gestores)  <br>"`KIOSK`"
        (tótems)  <br>"`INMEDIATE`" (urgente)  <br>"`URGENT`" (huecos
        reservados). | SI | String |

        | readOnly | Restricción de edición: `0` (permite modificaciones desde
        el portal)  <br>`1` (bloqueada, solo vía API). | SI | Integer |

        | language | Idioma base en el que se configurará la cita(ej. "es"). Por
        defecto, se emplea el idioma configurado en la organización. 
        <br>Consultar método '`Languages`'. | NO | String |

        | contactEmail | Correo electrónico de soporte o contacto de la entidad.
        Por defecto se usa el parametrizado en la entidad/organización. | NO |
        String |

        | externalId | Identificador propio o ID único de la cita en el sistema
        del cliente. | NO | String |

        | conveneText | Texto o cuerpo opcional para la convocatoria de la
        reunión. | NO | String |

        | observations | Comentarios u observaciones generales de la cita. | NO
        | String |

        | internalNotes | Notas internas dirigidas al agente (no son visibles
        por el ciudadano). | NO | String |

        | comment | Comentarios adicionales sobre el registro. | NO | String |


        ### Desglose del objeto `participant` (`ParticipantInput` - Principal)


        | Parámetro | Descripción | Requerido | Tipo |

        | --- | --- | --- | --- |

        | name | Nombre de pila del participante. | SI | String |

        | surname | Apellidos completos del participante. | SI | Integer |

        | idCardType | Tipo de documento de identidad. Valores admitidos:
        "`dni`", "`nif`", "`passport`", "`nie`", "`codiceFiscale`"
        (Identificador Italia), "`otherIDCards`" (cualquier documento de
        identificación), "`driversLicence`" (Licencia de conducir EEUU),
        "`europeanDocument`" (documento europeo, solo válido para los documentos
        de los países de europa) | SI | String |

        | dni | Número del documento de identidad o identificación fiscal. | SI
        | String |

        | idCardCountry | Código de país del documento en formato ISO 3166-1
        alfa-2 (ej. "ES"). | SI | String |

        | email | Dirección de correo electrónico donde el ciudadano recibirá
        las notificaciones. | SI | String |

        | phone | Teléfono móvil de contacto con prefijo internacional (ej.
        "+34600000000"). | SI | String |

        | language | Idioma en el que el ciudadano visualizará la interfaz de
        OVAC (ej. "es"). Por defecto, se obtiene el de la entidad/ogranización. 
        <br>Consultar método '`Languages`'. | NO | String |

        | zipcode | Código postal de residencia del participante. | NO | String
        |


        ### Desglose de objetos dentro del Array `guests` (`[ParticipantInput]`)


        Cada elemento del listado de invitados comparte la estructura base de
        `ParticipantInput` pero añade capacidades de tipado dinámico y
        anidación:


        | Parámetro | Descripción | Requerido | Tipo |

        | --- | --- | --- | --- |

        | name | Nombre de pila del participante. | SI | String |

        | surname | Apellidos completos del participante. | SI | Integer |

        | idCardType | Tipo de documento de identidad. Valores admitidos:
        "`dni`", "`nif`", "`passport`", "`nie`", "`codiceFiscale`"
        (Identificador Italia), "`otherIDCards`" (cualquier documento de
        identificación), "`driversLicence`" (Licencia de conducir EEUU),
        "`europeanDocument`" (documento europeo, solo válido para los documentos
        de los países de europa) | SI | String |

        | dni | Número del documento de identidad o identificación fiscal. | SI
        | String |

        | idCardCountry | Código de país del documento en formato ISO 3166-1
        alfa-2 (ej. "ES"). | SI | String |

        | type | `0` → Participante sencillo  <br>`1` → Invitado  <br>`2` →
        Representante  <br>`3` -> Representado | SI | Integer |

        | email | Dirección de correo electrónico donde el ciudadano recibirá
        las notificaciones. | SI | String |

        | phone | Teléfono móvil de contacto con prefijo internacional (ej.
        "+34600000000"). | SI | String |

        | language | Idioma en el que el ciudadano visualizará la interfaz de
        OVAC (ej. "es"). Por defecto, se obtiene el de la entidad/ogranización. 
        <br>Consultar método '`Languages`'. | NO | String |

        | zipcode | Código postal de residencia del participante. | NO | String
        |

        | representedParticipant | Subbloque opcional. Contiene los datos de la
        persona física o jurídica a la que el invitado representa. | NO | Object
        |


        ### Desglose de objetos dentro del Array `guests`
        (`[representedParticipant]`)


        | Parámetro | Descripción | Requerido | Tipo |

        | --- | --- | --- | --- |

        | name | Nombre de pila del participante. | SI | String |

        | surname | Apellidos completos del participante. | SI | Integer |

        | idCardType | Tipo de documento de identidad. Valores admitidos:
        "`dni`", "`nif`", "`passport`", "`nie`", "`codiceFiscale`"
        (Identificador Italia), "`otherIDCards`" (cualquier documento de
        identificación), "`driversLicence`" (Licencia de conducir EEUU),
        "`europeanDocument`" (documento europeo, solo válido para los documentos
        de los países de europa) | SI | String |

        | dni | Número del documento de identidad o identificación fiscal. | SI
        | String |

        | idCardCountry | Código de país del documento en formato ISO 3166-1
        alfa-2 (ej. "ES"). | SI | String |

        | type | `0` → Participante sencillo  <br>`1` → Invitado  <br>`2` →
        Representante  <br>`3` -> Representado | SI | Integer |

        | email | Dirección de correo electrónico donde el ciudadano recibirá
        las notificaciones. | SI | String |

        | phone | Teléfono móvil de contacto con prefijo internacional (ej.
        "+34600000000"). | SI | String |

        | language | Idioma en el que el ciudadano visualizará la interfaz de
        OVAC (ej. "es"). Por defecto, se obtiene el de la entidad/ogranización. 
        <br>Consultar método '`Languages`'. | NO | String |

        | zipcode | Código postal de residencia del participante. | NO | String
        |


        ### Campos de Respuesta (Payload)


        | Parámetro | Descripción | Tipo |

        | --- | --- | --- |

        | createOneOnOneCouncil | Objeto raíz con los datos de la cita generada.
        | Object |

        | createOneOnOneCouncil.**id** | Identificador, interno de OVAC, único
        de la cita generada. | Integer |

        | createOneOnOneCouncil.**accessLink** | Enlace único de acceso directo
        para auditar la cita. | String |

        | createOneOnOneCouncil.**creatorId** | Identificador, interno de OVAC,
        único del usuario que ha creado la cita. | Integer |


        ## Ejemplos de Código y Peticiones


        ### 1\. Mutación GraphQL


        ``` graphql

        mutation createAppointment(
            $council: CouncilInput,
            $participant: ParticipantInput,
            $representation: ParticipantInput,
            $notifyCreation: Boolean,
            $checkAgenda: Boolean,
            $guests: [ParticipantInput],
            $councilOptions: CouncilOptions
            )
            {
                createAppointment
                    (
                    council: $council,
                    participant: $participant,
                    representation: $representation,
                    notifyCreation: $notifyCreation,
                    checkAgenda: $checkAgenda,
                    guests: $guests,
                    councilOptions: $councilOptions
                    )
                {
                    id
                    accessLink
                    creatorId
                }
            }

         ```

        ### 2\. Variables de la Petición (JSON Payload con Anidación)


        ``` json

        {
            "council": {
                "name": "test creación cita",
                "companyId": 2191,
                "statuteId": 4685,
                "councilType": 5,
                "externalId" : "",
                "contactEmail": "",
                "dateStart": "2026-05-22T09:30Z",
                "conveneText": "",
                "observations": "Estas son observaciones",
                "internalNotes": "Estas son notas internas",
                "comment": "Opcional - Información visible mail de creación de cita",
                "readOnly": 0,
                "tag": "ADMIN"
            },
            "participant": {
                "name": "Name of participant",
                "surname": "Surname of participant",
                "idCardType": "dni",
                "dni" : "11111111H",
                "idCardCountry": "ES",
                "email": "participant_email@domain.com",
                "phone": "+34600000000",
                "language":"es",
                "zipcode": "00000"
           },
            "guests": [{
                "name": "Name of participant",
                "surname": "Surname of participant",
                "idCardType": "passport",
                "dni" : "fake_passport_2",
                "idCardCountry": "ES",
                "type": 2,
                "email": "participant_email+2@domain.com",
                "phone": "+34600000000",
                "language":"es",
                "zipcode": "00000",
                "representedParticipant": {
                    "name": "Name of participant",
                    "surname": "Surname of participant",
                    "idCardType": "passport",
                    "dni" : "fake_passport_3",
                    "idCardCountry": "ES",
                    "type": 3,
                    "email": "representedParticipant_1+@domain.com",
                    "phone": "+34600000000",
                    "language":"es",
                    "zipcode": "00000"
                }
            }],
            "notifyCreation": true,
            "checkAgenda": true,
            "councilOptions": 
                { 
                "notificationType": 0 
                }
        }

         ```

        ### 3\. Ejemplo de comando cURL


        ``` bash

        curl --location --globoff 'https://api.ovac.pre.councilbox.com/graphql'
        \

        --header 'Content-Type: application/json' \

        --header 'x-jwt-token: {{token}}' \

        --data-raw '{"query":"mutation createAppointment($council: CouncilInput,
        $participant: ParticipantInput, $representation: ParticipantInput,
        $notifyCreation: Boolean, $checkAgenda: Boolean, $guests:
        [ParticipantInput]){ createOneOnOneCouncil(council: $council,
        participant: $participant, representation: $representation,
        notifyCreation: $notifyCreation, checkAgenda: $checkAgenda, guests:
        $guests) { id accessLink creatorId }
        }","variables":{"council":{"name":"test creación
        cita","companyId":2191,"statuteId":4685,"councilType":5,"externalId":"","companyExternalId":"","statuteExternalId":"","contactEmail":"","dateStart":"2026-05-22T09:30Z","conveneText":"","observations":"Estas
        son observaciones","internalNotes":"Estas son notas
        internas","comment":"Opcional - Información visible mail de creación de
        cita","readOnly":0,"tag":"ADMIN"},"participant":{"name":"Name of
        participant","surname":"Surname of
        participant","idCardType":"dni","dni":"11111111H","idCardCountry":"ES","email":"participant_email@domain.com","phone":"+34600000000","language":"es","zipcode":"00000"},"guests":[{"name":"Name
        of participant","surname":"Surname of
        participant","idCardType":"passport","dni":"fake_passport_2","idCardCountry":"ES","type":2,"email":"participant_email+2@domain.com","phone":"+34600000000","language":"es","zipcode":"00000","representedParticipant":{"name":"Name
        of participant","surname":"Surname of
        participant","idCardType":"passport","dni":"fake_passport_3","idCardCountry":"ES","type":3,"email":"representedParticipant_1+@domain.com","phone":"+34600000000","language":"es","zipcode":"00000"}}],"notifyCreation":true,"checkAgenda":true}}'

         ```

        ### 4\. Respuesta Esperada (200 OK)


        ``` json

        {
            "data": {
                "createAppointment": {
                    "id": 64919,
                    "accessLink": "https://apitest.ovac.pre.councilbox.com/attendance/token/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb3VuY2lsUGFydGljaXBhbnRJZCI6MjQ5MDE5LCJpZCI6MjQ5MDE5LCJpYXQiOjE3NzkzNjQ0MTZ9.AeUze049RfMUrY3SzgcAF9O7dfCrylpGPf1kpFK2FLU",
                    "creatorId": 3476
                }
            }
        }

         ```

        > **Nota OpenAPI/Fern:** esta operación GraphQL se documenta como
        `/graphql/createappointment-2` para que Fern pueda mostrarla como
        operación independiente. La ruta técnica real de ejecución es `POST
        /graphql`.
      tags:
        - subpackage_02CreateAppointments
      parameters:
        - name: x-jwt-token
          in: header
          description: JWT token obtained from Login.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: >-
            Successful response. GraphQL business errors may be returned inside
            the JSON `errors` field while transport status remains HTTP 200.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/02createAppointments_createAppointment_2_Response_200
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                  description: GraphQL operation
                variables:
                  $ref: >-
                    #/components/schemas/GraphqlCreateappointment2PostRequestBodyContentApplicationJsonSchemaVariables
                  description: GraphQL variables
              required:
                - query
servers:
  - url: https://api.ovac.pre.councilbox.com
    description: Pre-production
  - url: https://api.ovac.councilbox.com
    description: Production
components:
  schemas:
    GraphqlCreateappointment2PostRequestBodyContentApplicationJsonSchemaVariables:
      type: object
      properties: {}
      description: GraphQL variables
      title: >-
        GraphqlCreateappointment2PostRequestBodyContentApplicationJsonSchemaVariables
    02createAppointments_createAppointment_2_Response_200:
      type: object
      properties: {}
      title: 02createAppointments_createAppointment_2_Response_200
  securitySchemes:
    JwtToken:
      type: apiKey
      in: header
      name: x-jwt-token
      description: JWT token obtained from Login.

```

## Examples



**Request**

```json
{
  "query": "mutation createAppointment(\r\n    $council: CouncilInput,\r\n    $participant: ParticipantInput,\r\n    $representation: ParticipantInput,\r\n    $notifyCreation: Boolean,\r\n    $checkAgenda: Boolean,\r\n    $guests: [ParticipantInput],\r\n    $councilOptions: CouncilOptions\r\n    )\r\n    {\r\n        createAppointment\r\n            (\r\n            council: $council,\r\n            participant: $participant,\r\n            representation: $representation,\r\n            notifyCreation: $notifyCreation,\r\n            checkAgenda: $checkAgenda,\r\n            guests: $guests,\r\n            councilOptions: $councilOptions\r\n            )\r\n        {\r\n            id\r\n            accessLink\r\n            creatorId\r\n        }\r\n    }",
  "variables": {
    "council": {
      "name": "",
      "companyId": 0,
      "statuteId": 0,
      "councilType": 5,
      "externalId": "",
      "contactEmail": "",
      "dateStart": "2026-05-20T09:30Z",
      "conveneText": "",
      "observations": "",
      "internalNotes": "E",
      "comment": "",
      "readOnly": 0,
      "tag": "ADMIN"
    },
    "participant": {
      "name": "",
      "surname": "",
      "idCardType": "dni",
      "dni": "11111111H",
      "idCardCountry": "ES",
      "email": "",
      "phone": "+34600000000",
      "language": "es",
      "zipcode": "00000"
    },
    "guests": [
      {
        "name": "",
        "surname": "",
        "idCardType": "passport",
        "dni": "00000000",
        "idCardCountry": "ES",
        "type": 2,
        "email": "",
        "phone": "+34600000000",
        "language": "es",
        "zipcode": "00000",
        "representedParticipant": {
          "name": "",
          "surname": "",
          "idCardType": "passport",
          "dni": "111111",
          "idCardCountry": "ES",
          "type": 3,
          "email": "",
          "phone": "+34600000000",
          "language": "es",
          "zipcode": "00000"
        }
      }
    ],
    "notifyCreation": true,
    "checkAgenda": true,
    "councilOptions": {
      "notificationType": 0
    }
  }
}
```

**Response**

```json
{
  "data": {
    "createAppointment": {
      "id": 64919,
      "accessLink": "https://apitest.ovac.pre.councilbox.com/attendance/token/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb3VuY2lsUGFydGljaXBhbnRJZCI6MjQ5MDE5LCJpZCI6MjQ5MDE5LCJpYXQiOjE3NzkzNjQ0MTZ9.AeUze049RfMUrY3SzgcAF9O7dfCrylpGPf1kpFK2FLU",
      "creatorId": 3476
    }
  }
}
```

**SDK Code**

```python Create Appointment Representation Guests
import requests

url = "https://api.ovac.pre.councilbox.com/graphql/createappointment-2"

payload = {
    "query": "mutation createAppointment(
    $council: CouncilInput,
    $participant: ParticipantInput,
    $representation: ParticipantInput,
    $notifyCreation: Boolean,
    $checkAgenda: Boolean,
    $guests: [ParticipantInput],
    $councilOptions: CouncilOptions
    )
    {
        createAppointment
            (
            council: $council,
            participant: $participant,
            representation: $representation,
            notifyCreation: $notifyCreation,
            checkAgenda: $checkAgenda,
            guests: $guests,
            councilOptions: $councilOptions
            )
        {
            id
            accessLink
            creatorId
        }
    }",
    "variables": {
        "council": {
            "name": "",
            "companyId": 0,
            "statuteId": 0,
            "councilType": 5,
            "externalId": "",
            "contactEmail": "",
            "dateStart": "2026-05-20T09:30Z",
            "conveneText": "",
            "observations": "",
            "internalNotes": "E",
            "comment": "",
            "readOnly": 0,
            "tag": "ADMIN"
        },
        "participant": {
            "name": "",
            "surname": "",
            "idCardType": "dni",
            "dni": "11111111H",
            "idCardCountry": "ES",
            "email": "",
            "phone": "+34600000000",
            "language": "es",
            "zipcode": "00000"
        },
        "guests": [
            {
                "name": "",
                "surname": "",
                "idCardType": "passport",
                "dni": "00000000",
                "idCardCountry": "ES",
                "type": 2,
                "email": "",
                "phone": "+34600000000",
                "language": "es",
                "zipcode": "00000",
                "representedParticipant": {
                    "name": "",
                    "surname": "",
                    "idCardType": "passport",
                    "dni": "111111",
                    "idCardCountry": "ES",
                    "type": 3,
                    "email": "",
                    "phone": "+34600000000",
                    "language": "es",
                    "zipcode": "00000"
                }
            }
        ],
        "notifyCreation": True,
        "checkAgenda": True,
        "councilOptions": { "notificationType": 0 }
    }
}
headers = {
    "x-jwt-token": "<apiKey>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Create Appointment Representation Guests
const url = 'https://api.ovac.pre.councilbox.com/graphql/createappointment-2';
const options = {
  method: 'POST',
  headers: {'x-jwt-token': '<apiKey>', 'Content-Type': 'application/json'},
  body: '{"query":"mutation createAppointment(\r\n    $council: CouncilInput,\r\n    $participant: ParticipantInput,\r\n    $representation: ParticipantInput,\r\n    $notifyCreation: Boolean,\r\n    $checkAgenda: Boolean,\r\n    $guests: [ParticipantInput],\r\n    $councilOptions: CouncilOptions\r\n    )\r\n    {\r\n        createAppointment\r\n            (\r\n            council: $council,\r\n            participant: $participant,\r\n            representation: $representation,\r\n            notifyCreation: $notifyCreation,\r\n            checkAgenda: $checkAgenda,\r\n            guests: $guests,\r\n            councilOptions: $councilOptions\r\n            )\r\n        {\r\n            id\r\n            accessLink\r\n            creatorId\r\n        }\r\n    }","variables":{"council":{"name":"","companyId":0,"statuteId":0,"councilType":5,"externalId":"","contactEmail":"","dateStart":"2026-05-20T09:30Z","conveneText":"","observations":"","internalNotes":"E","comment":"","readOnly":0,"tag":"ADMIN"},"participant":{"name":"","surname":"","idCardType":"dni","dni":"11111111H","idCardCountry":"ES","email":"","phone":"+34600000000","language":"es","zipcode":"00000"},"guests":[{"name":"","surname":"","idCardType":"passport","dni":"00000000","idCardCountry":"ES","type":2,"email":"","phone":"+34600000000","language":"es","zipcode":"00000","representedParticipant":{"name":"","surname":"","idCardType":"passport","dni":"111111","idCardCountry":"ES","type":3,"email":"","phone":"+34600000000","language":"es","zipcode":"00000"}}],"notifyCreation":true,"checkAgenda":true,"councilOptions":{"notificationType":0}}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Create Appointment Representation Guests
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.ovac.pre.councilbox.com/graphql/createappointment-2"

	payload := strings.NewReader("{\n  \"query\": \"mutation createAppointment(\\r\\n    $council: CouncilInput,\\r\\n    $participant: ParticipantInput,\\r\\n    $representation: ParticipantInput,\\r\\n    $notifyCreation: Boolean,\\r\\n    $checkAgenda: Boolean,\\r\\n    $guests: [ParticipantInput],\\r\\n    $councilOptions: CouncilOptions\\r\\n    )\\r\\n    {\\r\\n        createAppointment\\r\\n            (\\r\\n            council: $council,\\r\\n            participant: $participant,\\r\\n            representation: $representation,\\r\\n            notifyCreation: $notifyCreation,\\r\\n            checkAgenda: $checkAgenda,\\r\\n            guests: $guests,\\r\\n            councilOptions: $councilOptions\\r\\n            )\\r\\n        {\\r\\n            id\\r\\n            accessLink\\r\\n            creatorId\\r\\n        }\\r\\n    }\",\n  \"variables\": {\n    \"council\": {\n      \"name\": \"\",\n      \"companyId\": 0,\n      \"statuteId\": 0,\n      \"councilType\": 5,\n      \"externalId\": \"\",\n      \"contactEmail\": \"\",\n      \"dateStart\": \"2026-05-20T09:30Z\",\n      \"conveneText\": \"\",\n      \"observations\": \"\",\n      \"internalNotes\": \"E\",\n      \"comment\": \"\",\n      \"readOnly\": 0,\n      \"tag\": \"ADMIN\"\n    },\n    \"participant\": {\n      \"name\": \"\",\n      \"surname\": \"\",\n      \"idCardType\": \"dni\",\n      \"dni\": \"11111111H\",\n      \"idCardCountry\": \"ES\",\n      \"email\": \"\",\n      \"phone\": \"+34600000000\",\n      \"language\": \"es\",\n      \"zipcode\": \"00000\"\n    },\n    \"guests\": [\n      {\n        \"name\": \"\",\n        \"surname\": \"\",\n        \"idCardType\": \"passport\",\n        \"dni\": \"00000000\",\n        \"idCardCountry\": \"ES\",\n        \"type\": 2,\n        \"email\": \"\",\n        \"phone\": \"+34600000000\",\n        \"language\": \"es\",\n        \"zipcode\": \"00000\",\n        \"representedParticipant\": {\n          \"name\": \"\",\n          \"surname\": \"\",\n          \"idCardType\": \"passport\",\n          \"dni\": \"111111\",\n          \"idCardCountry\": \"ES\",\n          \"type\": 3,\n          \"email\": \"\",\n          \"phone\": \"+34600000000\",\n          \"language\": \"es\",\n          \"zipcode\": \"00000\"\n        }\n      }\n    ],\n    \"notifyCreation\": true,\n    \"checkAgenda\": true,\n    \"councilOptions\": {\n      \"notificationType\": 0\n    }\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("x-jwt-token", "<apiKey>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Create Appointment Representation Guests
require 'uri'
require 'net/http'

url = URI("https://api.ovac.pre.councilbox.com/graphql/createappointment-2")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["x-jwt-token"] = '<apiKey>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"query\": \"mutation createAppointment(\\r\\n    $council: CouncilInput,\\r\\n    $participant: ParticipantInput,\\r\\n    $representation: ParticipantInput,\\r\\n    $notifyCreation: Boolean,\\r\\n    $checkAgenda: Boolean,\\r\\n    $guests: [ParticipantInput],\\r\\n    $councilOptions: CouncilOptions\\r\\n    )\\r\\n    {\\r\\n        createAppointment\\r\\n            (\\r\\n            council: $council,\\r\\n            participant: $participant,\\r\\n            representation: $representation,\\r\\n            notifyCreation: $notifyCreation,\\r\\n            checkAgenda: $checkAgenda,\\r\\n            guests: $guests,\\r\\n            councilOptions: $councilOptions\\r\\n            )\\r\\n        {\\r\\n            id\\r\\n            accessLink\\r\\n            creatorId\\r\\n        }\\r\\n    }\",\n  \"variables\": {\n    \"council\": {\n      \"name\": \"\",\n      \"companyId\": 0,\n      \"statuteId\": 0,\n      \"councilType\": 5,\n      \"externalId\": \"\",\n      \"contactEmail\": \"\",\n      \"dateStart\": \"2026-05-20T09:30Z\",\n      \"conveneText\": \"\",\n      \"observations\": \"\",\n      \"internalNotes\": \"E\",\n      \"comment\": \"\",\n      \"readOnly\": 0,\n      \"tag\": \"ADMIN\"\n    },\n    \"participant\": {\n      \"name\": \"\",\n      \"surname\": \"\",\n      \"idCardType\": \"dni\",\n      \"dni\": \"11111111H\",\n      \"idCardCountry\": \"ES\",\n      \"email\": \"\",\n      \"phone\": \"+34600000000\",\n      \"language\": \"es\",\n      \"zipcode\": \"00000\"\n    },\n    \"guests\": [\n      {\n        \"name\": \"\",\n        \"surname\": \"\",\n        \"idCardType\": \"passport\",\n        \"dni\": \"00000000\",\n        \"idCardCountry\": \"ES\",\n        \"type\": 2,\n        \"email\": \"\",\n        \"phone\": \"+34600000000\",\n        \"language\": \"es\",\n        \"zipcode\": \"00000\",\n        \"representedParticipant\": {\n          \"name\": \"\",\n          \"surname\": \"\",\n          \"idCardType\": \"passport\",\n          \"dni\": \"111111\",\n          \"idCardCountry\": \"ES\",\n          \"type\": 3,\n          \"email\": \"\",\n          \"phone\": \"+34600000000\",\n          \"language\": \"es\",\n          \"zipcode\": \"00000\"\n        }\n      }\n    ],\n    \"notifyCreation\": true,\n    \"checkAgenda\": true,\n    \"councilOptions\": {\n      \"notificationType\": 0\n    }\n  }\n}"

response = http.request(request)
puts response.read_body
```

```java Create Appointment Representation Guests
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.ovac.pre.councilbox.com/graphql/createappointment-2")
  .header("x-jwt-token", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"query\": \"mutation createAppointment(\\r\\n    $council: CouncilInput,\\r\\n    $participant: ParticipantInput,\\r\\n    $representation: ParticipantInput,\\r\\n    $notifyCreation: Boolean,\\r\\n    $checkAgenda: Boolean,\\r\\n    $guests: [ParticipantInput],\\r\\n    $councilOptions: CouncilOptions\\r\\n    )\\r\\n    {\\r\\n        createAppointment\\r\\n            (\\r\\n            council: $council,\\r\\n            participant: $participant,\\r\\n            representation: $representation,\\r\\n            notifyCreation: $notifyCreation,\\r\\n            checkAgenda: $checkAgenda,\\r\\n            guests: $guests,\\r\\n            councilOptions: $councilOptions\\r\\n            )\\r\\n        {\\r\\n            id\\r\\n            accessLink\\r\\n            creatorId\\r\\n        }\\r\\n    }\",\n  \"variables\": {\n    \"council\": {\n      \"name\": \"\",\n      \"companyId\": 0,\n      \"statuteId\": 0,\n      \"councilType\": 5,\n      \"externalId\": \"\",\n      \"contactEmail\": \"\",\n      \"dateStart\": \"2026-05-20T09:30Z\",\n      \"conveneText\": \"\",\n      \"observations\": \"\",\n      \"internalNotes\": \"E\",\n      \"comment\": \"\",\n      \"readOnly\": 0,\n      \"tag\": \"ADMIN\"\n    },\n    \"participant\": {\n      \"name\": \"\",\n      \"surname\": \"\",\n      \"idCardType\": \"dni\",\n      \"dni\": \"11111111H\",\n      \"idCardCountry\": \"ES\",\n      \"email\": \"\",\n      \"phone\": \"+34600000000\",\n      \"language\": \"es\",\n      \"zipcode\": \"00000\"\n    },\n    \"guests\": [\n      {\n        \"name\": \"\",\n        \"surname\": \"\",\n        \"idCardType\": \"passport\",\n        \"dni\": \"00000000\",\n        \"idCardCountry\": \"ES\",\n        \"type\": 2,\n        \"email\": \"\",\n        \"phone\": \"+34600000000\",\n        \"language\": \"es\",\n        \"zipcode\": \"00000\",\n        \"representedParticipant\": {\n          \"name\": \"\",\n          \"surname\": \"\",\n          \"idCardType\": \"passport\",\n          \"dni\": \"111111\",\n          \"idCardCountry\": \"ES\",\n          \"type\": 3,\n          \"email\": \"\",\n          \"phone\": \"+34600000000\",\n          \"language\": \"es\",\n          \"zipcode\": \"00000\"\n        }\n      }\n    ],\n    \"notifyCreation\": true,\n    \"checkAgenda\": true,\n    \"councilOptions\": {\n      \"notificationType\": 0\n    }\n  }\n}")
  .asString();
```

```php Create Appointment Representation Guests
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.ovac.pre.councilbox.com/graphql/createappointment-2', [
  'body' => '{
  "query": "mutation createAppointment(\\r\\n    $council: CouncilInput,\\r\\n    $participant: ParticipantInput,\\r\\n    $representation: ParticipantInput,\\r\\n    $notifyCreation: Boolean,\\r\\n    $checkAgenda: Boolean,\\r\\n    $guests: [ParticipantInput],\\r\\n    $councilOptions: CouncilOptions\\r\\n    )\\r\\n    {\\r\\n        createAppointment\\r\\n            (\\r\\n            council: $council,\\r\\n            participant: $participant,\\r\\n            representation: $representation,\\r\\n            notifyCreation: $notifyCreation,\\r\\n            checkAgenda: $checkAgenda,\\r\\n            guests: $guests,\\r\\n            councilOptions: $councilOptions\\r\\n            )\\r\\n        {\\r\\n            id\\r\\n            accessLink\\r\\n            creatorId\\r\\n        }\\r\\n    }",
  "variables": {
    "council": {
      "name": "",
      "companyId": 0,
      "statuteId": 0,
      "councilType": 5,
      "externalId": "",
      "contactEmail": "",
      "dateStart": "2026-05-20T09:30Z",
      "conveneText": "",
      "observations": "",
      "internalNotes": "E",
      "comment": "",
      "readOnly": 0,
      "tag": "ADMIN"
    },
    "participant": {
      "name": "",
      "surname": "",
      "idCardType": "dni",
      "dni": "11111111H",
      "idCardCountry": "ES",
      "email": "",
      "phone": "+34600000000",
      "language": "es",
      "zipcode": "00000"
    },
    "guests": [
      {
        "name": "",
        "surname": "",
        "idCardType": "passport",
        "dni": "00000000",
        "idCardCountry": "ES",
        "type": 2,
        "email": "",
        "phone": "+34600000000",
        "language": "es",
        "zipcode": "00000",
        "representedParticipant": {
          "name": "",
          "surname": "",
          "idCardType": "passport",
          "dni": "111111",
          "idCardCountry": "ES",
          "type": 3,
          "email": "",
          "phone": "+34600000000",
          "language": "es",
          "zipcode": "00000"
        }
      }
    ],
    "notifyCreation": true,
    "checkAgenda": true,
    "councilOptions": {
      "notificationType": 0
    }
  }
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'x-jwt-token' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp Create Appointment Representation Guests
using RestSharp;

var client = new RestClient("https://api.ovac.pre.councilbox.com/graphql/createappointment-2");
var request = new RestRequest(Method.POST);
request.AddHeader("x-jwt-token", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"query\": \"mutation createAppointment(\\r\\n    $council: CouncilInput,\\r\\n    $participant: ParticipantInput,\\r\\n    $representation: ParticipantInput,\\r\\n    $notifyCreation: Boolean,\\r\\n    $checkAgenda: Boolean,\\r\\n    $guests: [ParticipantInput],\\r\\n    $councilOptions: CouncilOptions\\r\\n    )\\r\\n    {\\r\\n        createAppointment\\r\\n            (\\r\\n            council: $council,\\r\\n            participant: $participant,\\r\\n            representation: $representation,\\r\\n            notifyCreation: $notifyCreation,\\r\\n            checkAgenda: $checkAgenda,\\r\\n            guests: $guests,\\r\\n            councilOptions: $councilOptions\\r\\n            )\\r\\n        {\\r\\n            id\\r\\n            accessLink\\r\\n            creatorId\\r\\n        }\\r\\n    }\",\n  \"variables\": {\n    \"council\": {\n      \"name\": \"\",\n      \"companyId\": 0,\n      \"statuteId\": 0,\n      \"councilType\": 5,\n      \"externalId\": \"\",\n      \"contactEmail\": \"\",\n      \"dateStart\": \"2026-05-20T09:30Z\",\n      \"conveneText\": \"\",\n      \"observations\": \"\",\n      \"internalNotes\": \"E\",\n      \"comment\": \"\",\n      \"readOnly\": 0,\n      \"tag\": \"ADMIN\"\n    },\n    \"participant\": {\n      \"name\": \"\",\n      \"surname\": \"\",\n      \"idCardType\": \"dni\",\n      \"dni\": \"11111111H\",\n      \"idCardCountry\": \"ES\",\n      \"email\": \"\",\n      \"phone\": \"+34600000000\",\n      \"language\": \"es\",\n      \"zipcode\": \"00000\"\n    },\n    \"guests\": [\n      {\n        \"name\": \"\",\n        \"surname\": \"\",\n        \"idCardType\": \"passport\",\n        \"dni\": \"00000000\",\n        \"idCardCountry\": \"ES\",\n        \"type\": 2,\n        \"email\": \"\",\n        \"phone\": \"+34600000000\",\n        \"language\": \"es\",\n        \"zipcode\": \"00000\",\n        \"representedParticipant\": {\n          \"name\": \"\",\n          \"surname\": \"\",\n          \"idCardType\": \"passport\",\n          \"dni\": \"111111\",\n          \"idCardCountry\": \"ES\",\n          \"type\": 3,\n          \"email\": \"\",\n          \"phone\": \"+34600000000\",\n          \"language\": \"es\",\n          \"zipcode\": \"00000\"\n        }\n      }\n    ],\n    \"notifyCreation\": true,\n    \"checkAgenda\": true,\n    \"councilOptions\": {\n      \"notificationType\": 0\n    }\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Create Appointment Representation Guests
import Foundation

let headers = [
  "x-jwt-token": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = [
  "query": "mutation createAppointment(
    $council: CouncilInput,
    $participant: ParticipantInput,
    $representation: ParticipantInput,
    $notifyCreation: Boolean,
    $checkAgenda: Boolean,
    $guests: [ParticipantInput],
    $councilOptions: CouncilOptions
    )
    {
        createAppointment
            (
            council: $council,
            participant: $participant,
            representation: $representation,
            notifyCreation: $notifyCreation,
            checkAgenda: $checkAgenda,
            guests: $guests,
            councilOptions: $councilOptions
            )
        {
            id
            accessLink
            creatorId
        }
    }",
  "variables": [
    "council": [
      "name": "",
      "companyId": 0,
      "statuteId": 0,
      "councilType": 5,
      "externalId": "",
      "contactEmail": "",
      "dateStart": "2026-05-20T09:30Z",
      "conveneText": "",
      "observations": "",
      "internalNotes": "E",
      "comment": "",
      "readOnly": 0,
      "tag": "ADMIN"
    ],
    "participant": [
      "name": "",
      "surname": "",
      "idCardType": "dni",
      "dni": "11111111H",
      "idCardCountry": "ES",
      "email": "",
      "phone": "+34600000000",
      "language": "es",
      "zipcode": "00000"
    ],
    "guests": [
      [
        "name": "",
        "surname": "",
        "idCardType": "passport",
        "dni": "00000000",
        "idCardCountry": "ES",
        "type": 2,
        "email": "",
        "phone": "+34600000000",
        "language": "es",
        "zipcode": "00000",
        "representedParticipant": [
          "name": "",
          "surname": "",
          "idCardType": "passport",
          "dni": "111111",
          "idCardCountry": "ES",
          "type": 3,
          "email": "",
          "phone": "+34600000000",
          "language": "es",
          "zipcode": "00000"
        ]
      ]
    ],
    "notifyCreation": true,
    "checkAgenda": true,
    "councilOptions": ["notificationType": 0]
  ]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.ovac.pre.councilbox.com/graphql/createappointment-2")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```