# List permanence users

Returns the users assigned to permanence slots over a period for an agency.
Defaults to the current week when `from`/`to` are omitted.
Requires `SITE_CALENDAR:READ`.

Endpoint: GET /calendar/permanences/timeframe/users
Version: 1.4.0
Security: bearerAuth

## Security:

  - `bearerAuth` (unknown)
    http bearer opaque

## Query parameters:

  - `agency_id` (integer, required)
    Target agency ID. Must be among the agencies the authenticated client can read,
otherwise a 403 is returned.

  - `tz` (string)
    IANA timezone used to format the `start`/`end` datetimes in the response.
Defaults to UTC when omitted.

  - `from` (string)
    Start of the period (local datetime, no timezone suffix, format YYYY-MM-DDTHH:MM:SS).
Defaults to the start of the current week (Monday 00:00 UTC) when omitted.

  - `to` (string)
    End of the period (local datetime, no timezone suffix, format YYYY-MM-DDTHH:MM:SS).
Defaults to the end of the current week (Sunday 23:59 UTC) when omitted.

## Response 200:

  - `200` (unknown)
    List of permanence users

## Response 200 fields (application/json):

  - `data` (array)

  - `data.start` (string)
    Start of the permanence slot, formatted in the requested timezone.
    Example: 2026-01-15T09:00:00+01:00

  - `data.end` (string)
    End of the permanence slot, formatted in the requested timezone.
    Example: 2026-01-15T12:00:00+01:00

  - `data.user_id` (integer | null)
    Identifier of the user assigned to the slot.

## Response 401:

  - `401` (unknown)
    Authentication required

## Response 401 fields (application/json):

  - `error` (object)

  - `error.code` (string, required)

  - `error.message` (string, required)

## Response 403:

  - `403` (unknown)
    Insufficient permissions

## Response 403 fields (application/json):

  - `error` (object)

  - `error.code` (string, required)

  - `error.message` (string, required)

## Response 422:

  - `422` (unknown)
    Validation failed

## Response 422 fields (application/json):

  - `error` (object)

  - `error.code` (string)
    Enum: "VALIDATION_ERROR"

  - `error.message` (string)

  - `error.details` (array)

  - `error.details.field` (string)

  - `error.details.message` (string)

