# Attendee availability

`GET /v1/calendar/accessibility` · **Bitrix24 API:** `calendar.accessibility.get` · **Scope:** `calendar`

## Parameters

| Parameter | Type | Required | Description |
|---|---|---|---|
| userIds | string | Yes | Comma-separated employee IDs from [users](/docs/entities/users). |
| from | ISO date | Yes | Range start. |
| to | ISO date | Yes | Range end. |

## Examples

```bash
curl -X GET "https://vibecode.bitrix24.com/v1/calendar/accessibility?userIds=1373&from=2026-10-02&to=2026-10-03" -H "X-Api-Key: $VIBE_API_KEY"
```

```bash
curl -X GET "https://vibecode.bitrix24.com/v1/calendar/accessibility?userIds=1373&from=2026-10-02&to=2026-10-03" -H "X-Api-Key: $VIBE_API_KEY" -H "Authorization: Bearer $VIBE_USER_TOKEN"
```

```javascript
const response = await fetch('https://vibecode.bitrix24.com/v1/calendar/accessibility?userIds=1373&from=2026-10-02&to=2026-10-03', {
  method: 'GET',
  headers: { 'X-Api-Key': apiKey }
});
console.log(await response.json());
```

```javascript
const response = await fetch('https://vibecode.bitrix24.com/v1/calendar/accessibility?userIds=1373&from=2026-10-02&to=2026-10-03', {
  method: 'GET',
  headers: { 'X-Api-Key': apiKey , 'Authorization': `Bearer ${userToken}` }
});
console.log(await response.json());
```

## Response

```json
{
  "success": true,
  "data": {
    "1373": []
  }
}
```

## Response fields

| Field | Type | Description |
|---|---|---|
| success | boolean | True on success. |
| data | object | Employee ID keys, each with an array of busy intervals. Intervals expose id, name, from, to, timezoneFrom, timezoneTo, skipTime, accessibility, importance, eventType and fromHr where present. Dates are ISO-8601; B24 masks private titles. Empty array means no visible busy intervals. |

## Errors

| HTTP | Code | Condition |
|---|---|---|
| 400 | INVALID_PARAMS | Invalid IDs, dates or status. |
| 400 | MISSING_REQUIRED_FIELDS | Required values are absent. |
| 401 | TOKEN_MISSING | The key has no usable B24 credentials. |
| 403 | SCOPE_DENIED | calendar scope is missing. |
| 403 | WRITE_BLOCKED_READONLY_KEY | The key forbids a write. |
| 403 | BITRIX_ACCESS_DENIED | Bitrix24 denied access. |
| 422 | BITRIX_ERROR | B24 refused the operation or did not persist the write. |
| 429 | RATE_LIMITED | Request limit exceeded. |
| 502 | BITRIX_UNAVAILABLE | Invalid or unavailable B24 response. |
| 503 | BITRIX_TIMEOUT | B24 timed out. |

Invalid input returns an error instead of an empty result:

```json
{"success":false,"error":{"code":"INVALID_PARAMS","message":"Invalid calendar parameters"}}
```

[All errors](/docs/errors)

## See also

- [Calendar](/docs/calendar)
- [Calendar resources](/docs/entities/calendar-resources)
- [Calendar events](/docs/entities/calendar-events)

When skipTime=true, from/to are ISO-8601 civil dates without a timezone; to includes the final day. Bitrix24 omits the timezone for these events. Other intervals use ISO datetimes with an offset.
