Obtener disponibilidad efectiva por empleado

Este endpoint permite consultar la disponibilidad efectiva de un empleado en un periodo de tiempo no superior a 31 días.

GET /api/v1/businesses/{businessId}/people/{employeeId}/effectiveDisponibilities?from={yyyy-MM-dd}&to={yyyy-MM-dd}

Si los datos incluidos en la petición son correctos —tanto el businessId como el employeeId—, la respuesta contendrá la disponibilidad del empleado, detallando la siguiente información:

  • day: día de la disponibilidad.

  • type: tipo de disponibilidad definido para este día. Los posibles valores son DAY_TYPE (tipo de día), SHIFT_PATTERN (patrones de turnos), AVAILABILITY_PATTERN (patrón de disponibilidad) y CALENDAR (calendario de asignaciones).

  • personId: identificador externo del empleado al que corresponde la disponibilidad.

  • free: si se trata de un día libre (true) o no (false).

  • intervals: intervalos de la disponibilidad.

    • from: fecha y hora de inicio de la disponibilidad.

    • to: fecha y hora de fin de la disponibilidad.

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

GET /api/v1/businesses/BUSINESSID/people/XX1/effectiveDisponibilities?from=2025-05-02&to=2025-05-05

Respuesta:

[
    {
        "day": "2025-05-02",
        "type": "DAY_TYPE",
        "personId": "XX1",
        "free": false,
        "intervals": [
            {
                "from": "2025-05-02T08:00:00.000Z",
                "to": "2025-05-02T13:00:00.000Z"
            }
        ]
    },
    {
        "day": "2025-05-03",
        "type": "AVAILABILITY_PATTERN",
        "personId": "XX1",
        "free": false,
        "intervals": [
            {
                "from": "2025-05-03T16:00:00.000Z",
                "to": "2025-05-03T22:00:00.000Z"
            }
        ]
    },
    {
        "day": "2025-05-04",
        "type": "AVAILABILITY_PATTERN",
        "personId": "XX1",
        "free": false,
        "intervals": [
            {
                "from": "2025-05-04T16:00:00.000Z",
                "to": "2025-05-04T22:00:00.000Z"
            }
        ]
    },
    {
        "day": "2025-05-05",
        "type": "SHIFT_PATTERN",
        "personId": "XX1",
        "free": true,
        "intervals": []
    }
]

Tal y como se aprecia en el ejemplo, la petición devolverá la disponibilidad efectiva del empleado para cada uno de los días del periodo indicado en la URL.

Aspectos que tener en cuenta

Si el identificador de empleado especificado en la URL no existe en el negocio, la petición devolverá un error indicando Person not found for business.

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 maximum days to calculate must be 31 days.

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

Enlaces de interés