> 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 full documentation content, see https://docs.ovac.councilbox.com/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ovac.councilbox.com/_mcp/server.

# Company Month Schedule

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

# 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`.


Reference: https://docs.ovac.councilbox.com/metodos-api/ovac/company-ovac-schedule

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: ovac
  version: 1.0.0
paths:
  /graphql/companyovacschedule:
    post:
      operationId: company-ovac-schedule
      summary: Company Month Schedule
      description: >
        # 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`.
      tags:
        - subpackage_ovac
      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/OVAC_companyOVACSchedule_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                  description: GraphQL operation
                variables:
                  $ref: >-
                    #/components/schemas/GraphqlCompanyovacschedulePostRequestBodyContentApplicationJsonSchemaVariables
                  description: GraphQL variables
              required:
                - query
servers:
  - url: https://api.ovac.pre.councilbox.com
  - url: https://api.ovac.councilbox.com
components:
  schemas:
    GraphqlCompanyovacschedulePostRequestBodyContentApplicationJsonSchemaVariables:
      type: object
      properties: {}
      description: GraphQL variables
      title: >-
        GraphqlCompanyovacschedulePostRequestBodyContentApplicationJsonSchemaVariables
    OVAC_companyOVACSchedule_Response_200:
      type: object
      properties: {}
      title: OVAC_companyOVACSchedule_Response_200
  securitySchemes:
    JwtToken:
      type: apiKey
      in: header
      name: x-jwt-token
      description: JWT token obtained from Login.

```

## SDK Code Examples

```python Company Month Schedule
import requests

url = "https://api.ovac.pre.councilbox.com/graphql/companyovacschedule"

payload = {
    "query": "query CompanyOVACSchedule (
    $companyId: ID!,
    $statuteId: ID,
    $month: String!,
    $reservedMode: Boolean
){
    companyOVACSchedule(
        companyId: $companyId,
        statuteI",
    "variables": {
        "companyId": "2191",
        "statuteId": "5678",
        "month": "05-2026",
        "reservedMode": False
    }
}
headers = {
    "x-jwt-token": "<apiKey>",
    "Content-Type": "application/json"
}

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

print(response.json())
```

```javascript Company Month Schedule
const url = 'https://api.ovac.pre.councilbox.com/graphql/companyovacschedule';
const options = {
  method: 'POST',
  headers: {'x-jwt-token': '<apiKey>', 'Content-Type': 'application/json'},
  body: '{"query":"query CompanyOVACSchedule (\r\n    $companyId: ID!,\r\n    $statuteId: ID,\r\n    $month: String!,\r\n    $reservedMode: Boolean\r\n){\r\n    companyOVACSchedule(\r\n        companyId: $companyId,\r\n        statuteI","variables":{"companyId":"2191","statuteId":"5678","month":"05-2026","reservedMode":false}}'
};

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

```go Company Month Schedule
package main

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

func main() {

	url := "https://api.ovac.pre.councilbox.com/graphql/companyovacschedule"

	payload := strings.NewReader("{\n  \"query\": \"query CompanyOVACSchedule (\\r\\n    $companyId: ID!,\\r\\n    $statuteId: ID,\\r\\n    $month: String!,\\r\\n    $reservedMode: Boolean\\r\\n){\\r\\n    companyOVACSchedule(\\r\\n        companyId: $companyId,\\r\\n        statuteI\",\n  \"variables\": {\n    \"companyId\": \"2191\",\n    \"statuteId\": \"5678\",\n    \"month\": \"05-2026\",\n    \"reservedMode\": false\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 Company Month Schedule
require 'uri'
require 'net/http'

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

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\": \"query CompanyOVACSchedule (\\r\\n    $companyId: ID!,\\r\\n    $statuteId: ID,\\r\\n    $month: String!,\\r\\n    $reservedMode: Boolean\\r\\n){\\r\\n    companyOVACSchedule(\\r\\n        companyId: $companyId,\\r\\n        statuteI\",\n  \"variables\": {\n    \"companyId\": \"2191\",\n    \"statuteId\": \"5678\",\n    \"month\": \"05-2026\",\n    \"reservedMode\": false\n  }\n}"

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

```java Company Month Schedule
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.ovac.pre.councilbox.com/graphql/companyovacschedule")
  .header("x-jwt-token", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"query\": \"query CompanyOVACSchedule (\\r\\n    $companyId: ID!,\\r\\n    $statuteId: ID,\\r\\n    $month: String!,\\r\\n    $reservedMode: Boolean\\r\\n){\\r\\n    companyOVACSchedule(\\r\\n        companyId: $companyId,\\r\\n        statuteI\",\n  \"variables\": {\n    \"companyId\": \"2191\",\n    \"statuteId\": \"5678\",\n    \"month\": \"05-2026\",\n    \"reservedMode\": false\n  }\n}")
  .asString();
```

```php Company Month Schedule
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.ovac.pre.councilbox.com/graphql/companyovacschedule', [
  'body' => '{
  "query": "query CompanyOVACSchedule (\\r\\n    $companyId: ID!,\\r\\n    $statuteId: ID,\\r\\n    $month: String!,\\r\\n    $reservedMode: Boolean\\r\\n){\\r\\n    companyOVACSchedule(\\r\\n        companyId: $companyId,\\r\\n        statuteI",
  "variables": {
    "companyId": "2191",
    "statuteId": "5678",
    "month": "05-2026",
    "reservedMode": false
  }
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'x-jwt-token' => '<apiKey>',
  ],
]);

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

```csharp Company Month Schedule
using RestSharp;

var client = new RestClient("https://api.ovac.pre.councilbox.com/graphql/companyovacschedule");
var request = new RestRequest(Method.POST);
request.AddHeader("x-jwt-token", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"query\": \"query CompanyOVACSchedule (\\r\\n    $companyId: ID!,\\r\\n    $statuteId: ID,\\r\\n    $month: String!,\\r\\n    $reservedMode: Boolean\\r\\n){\\r\\n    companyOVACSchedule(\\r\\n        companyId: $companyId,\\r\\n        statuteI\",\n  \"variables\": {\n    \"companyId\": \"2191\",\n    \"statuteId\": \"5678\",\n    \"month\": \"05-2026\",\n    \"reservedMode\": false\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Company Month Schedule
import Foundation

let headers = [
  "x-jwt-token": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = [
  "query": "query CompanyOVACSchedule (
    $companyId: ID!,
    $statuteId: ID,
    $month: String!,
    $reservedMode: Boolean
){
    companyOVACSchedule(
        companyId: $companyId,
        statuteI",
  "variables": [
    "companyId": "2191",
    "statuteId": "5678",
    "month": "05-2026",
    "reservedMode": false
  ]
] as [String : Any]

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

let request = NSMutableURLRequest(url: NSURL(string: "https://api.ovac.pre.councilbox.com/graphql/companyovacschedule")! 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()
```