# Company OVAC Schedule (`query`)
Esta operación permite consultar la disponibilidad y el estado global de la agenda de una entidad para un mes específico. Devuelve una estructura mapeada e indexada por los días del mes, lo que facilita enormemente la representación visual de los días libres y ocupados en componentes de tipo calendario o selectores de fechas en el frontend.
### Autenticación
> **Tipo:** API Key**
Header:** `x-jwt-token`
**Ubicación:** Header HTTP_
Ejemplo:_ `x-jwt-token: eyJhbGciOiJIUzI1NiIsInR5cCI6...`
## Referencia de la API
### Parámetros de Entrada (Variables)
| Parámetro | Descripción | Requerido | Tipo |
| --- | --- | --- | --- |
| companyId | Identificador único de la entidad en OVAC donde se busca la disponibilidad. | SI | Integer |
| statuteId | Identificador interno en OVAC asociado al trámite específico. | NO | Integer |
| month | Mes objeto de la consulta utilizando el formato estricto MM-AAAA (ej. 05-2026) | SI | String |
| reservedMode | `true` -> Muestra/aísla los tramos reservados por profesionales. <br>`false` -> Muestra el horario de atención al público habitual (Valor por defecto). | NO | Boolean |
### Campos de Respuesta (Payload)
La consulta devuelve un objeto `companyOVACSchedule` con el desglose del almanaque y las reglas de negocio de las citas:
| Parámetro | Descripción | Tipo |
| --- | --- | --- |
| companyOVACSchedule | Objeto contenedor con el resumen de disponibilidad mensual. | Object |
| companyOVACSchedule.monthSchedule | Mapa dinámico donde cada clave representa el día del mes ("1", "2", ...) y su valor el estado de la agenda. | Object |
| companyOVACSchedule.monthSchedule\[día\] | Estado del día: 0 (Sin agenda disponible), 1 (Huecos disponibles), 2 (Agenda completa). | Integer |
| companyOVACSchedule.monthSchedule.timeStart | Hora de inicio general de la actividad de la agenda para el mes consultado. | Integer |
| companyOVACSchedule.monthSchedule.timeEnd | Hora de finalización general de la actividad de la agenda. | Integer |
| companyOVACSchedule.monthSchedule.appointmentDuration | Duración base de cada intervalo o hueco de cita expresada en minutos. | Integer |
## Ejemplos de Código y Peticiones
### 1\. Consulta GraphQL
``` graphql
query CompanyOVACSchedule (
$companyId: ID!,
$statuteId: ID,
$month: String!,
$reservedMode: Boolean
){
companyOVACSchedule(
companyId: $companyId,
statuteId: $statuteId,
month: $month,
reservedMode: $reservedMode
)
}
```
### 2\. Variables de la Petición (JSON Payload)
``` json
{
"companyId": "2191",
"statuteId": "",
"month": "05-2026",
"reservedMode": false
}
```
### 3\. Ejemplo de comando cURL
``` bash
curl --location "https://api.ovac.pre.councilbox.com/graphql" \
--header "Content-Type: application/json" \
--header "x-jwt-token: {{token}}" \
--data '{"query":"query CompanyOVACSchedule ($companyId: ID!, $statuteId: ID, $month: String!, $reservedMode: Boolean){ companyOVACSchedule(companyId: $companyId, statuteId: $statuteId, month: $month, reservedMode: $reservedMode) }","variables":{"companyId":"2191","statuteId":"","month":"05-2026","reservedMode":false}}'
```
### 4\. Respuesta Esperada (200 OK)
``` json
{
"data": {
"companyOVACSchedule": {
"monthSchedule": {
"1": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 0,
"7": 0,
"8": 0,
"9": 0,
"10": 0,
"11": 0,
"12": 0,
"13": 0,
"14": 0,
"15": 0,
"16": 0,
"17": 0,
"18": 1,
"19": 1,
"20": 1,
"21": 1,
"22": 1,
"23": 1,
"24": 1,
"25": 1,
"26": 1,
"27": 1,
"28": 1,
"29": 1,
"30": 1,
"31": 1
},
"timeStart": 8,
"timeEnd": 20,
"appointmentDuration": 30
}
}
}
```
EndFragment
> **Nota OpenAPI/Fern:** esta operación GraphQL se documenta como `/graphql/companyovacschedule` para que Fern pueda mostrarla como operación independiente. La ruta técnica real de ejecución es `POST /graphql`.
Authentication
x-jwt-tokenstring
JWT token obtained from Login.
Request
This endpoint expects an object.
querystringRequired
GraphQL operation
variablesobjectOptional
GraphQL variables
Response
Successful response. GraphQL business errors may be returned inside the JSON errors field while transport status remains HTTP 200.