Obtener intervalos de disponibilidad por servicio

Este endpoint permite consultar los diferentes intervalos de disponibilidad definidos para los empleados de un servicio en un periodo de tiempo no superior a 31 días.

GET /api/v1/businesses/{businessId}/service/{serviceId}/disponibility?from={yyyy-MM-dd}&to={yyyy-MM-dd}

Si los datos incluidos en la petición son correctos —tanto el businessId como el serviceId—, la respuesta contendrá los intervalos de disponibilidad definidos para todos los empleados del servicio, detallando la siguiente información:

  • serviceId: identificador externo del servicio.

  • from: fecha de inicio especificada en la petición.

  • to: fecha de fin especificada en la petición.

  • disponibilityIntervals: conjunto de intervalos de disponibilidad definidos dentro del periodo de tiempo consultado.

    • from: fecha de inicio del intervalo de disponibilidad.

    • to: fecha de fin del intervalo de disponibilidad, si se ha definido.

    • type: método de definición de la disponibilidad para este intervalo. Los posibles valores son DAY_TYPE (tipo de día), SHIFT_PATTERN (patrones de turnos) y CALENDAR (calendario de asignaciones).

    • personId: identificador externo del empleado al que corresponde el intervalo de disponibilidad.

A continuación, se muestra un ejemplo de la petición:

GET /api/v1/businesses/BUSINESSID/service/SERVICEID/disponibility?from=2025-03-01&to=2025-03-20
{
    "serviceId": "SERVICEID",
    "from": "2025-03-01",
    "to": "2025-03-20",
    "disponibilityIntervals": [
        {
            "from": "2016-02-29",
            "type": "DAY_TYPE",
            "personId": "1006348"
        },
        {
            "from": "2021-10-01",
            "to": "2025-03-10",
            "type": "DAY_TYPE",
            "personId": "1006356"
        },
        {
            "from": "2025-03-11",
            "type": "SHIFT_PATTERN",
            "personId": "1006356"
        }

    ]
}

Tal y como se aprecia en el ejemplo, si un empleado tiene varios intervalos de disponibilidad definidos para el rango especificado en la URL, la petición devolverá las especificaciones de cada uno de ellos.

Aspectos que tener en cuenta

Si el servicio especificado en la URL no existe en el negocio, la petición devolverá un error 404 Not Found indicando not exits.

Si el intervalo de tiempo indicado en la URL es superior a 31 días, la petición devolverá un error 400 Bad Request, especificando en el mensaje The request exceded the maximum number of days allowed (31 days max).

Si no hay intervalos de disponibilidad definidos para el servicio o para el rango de fechas de la petición, el campo disponibilityIntervals contendrá un array vacío [].

Enlaces de interés