# Meeting RSVP

`GET /v1/calendar-events/:id/meeting-status` · `PUT /v1/calendar-events/:id/meeting-status`

**Bitrix24 API:** `calendar.meeting.status.get / calendar.meeting.status.set` · **Scope:** `calendar`

Read or change the CURRENT credential owner RSVP. To write, use `PUT` on the same path with `{"status":"declined"}`. The event and participation are read before mutation; non-participation returns a B24 refusal before writing.

## Parameters

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | Yes | Event ID from [calendar events](/docs/entities/calendar-events). |
| status | string | PUT only | accepted, declined or invited. Applies only to the current credential owner. |

## Examples

```bash
curl -X GET "https://vibecode.bitrix24.com/v1/calendar-events/12/meeting-status" -H "X-Api-Key: $VIBE_API_KEY"
```

```bash
curl -X GET "https://vibecode.bitrix24.com/v1/calendar-events/12/meeting-status" -H "X-Api-Key: $VIBE_API_KEY" -H "Authorization: Bearer $VIBE_USER_TOKEN"
```

```javascript
const response = await fetch('https://vibecode.bitrix24.com/v1/calendar-events/12/meeting-status', {
  method: 'GET',
  headers: { 'X-Api-Key': apiKey }
});
console.log(await response.json());
```

```javascript
const response = await fetch('https://vibecode.bitrix24.com/v1/calendar-events/12/meeting-status', {
  method: 'GET',
  headers: { 'X-Api-Key': apiKey , 'Authorization': `Bearer ${userToken}` }
});
console.log(await response.json());
```

## Response

```json
{
  "success": true,
  "data": {
    "status": "invited"
  }
}
```

## Response fields

| Field | Type | Description |
|---|---|---|
| success | boolean | True on success. |
| data.status | string | accepted, declined, invited or host (organizer). PUT returns the re-read status. host is read-only. |

## 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. |
| 404 | ENTITY_NOT_FOUND | Resource or event is absent. |
| 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)

## Change RSVP

```bash
curl -X PUT "https://vibecode.bitrix24.com/v1/calendar-events/12/meeting-status" -H "X-Api-Key: $VIBE_API_KEY" -H "Content-Type: application/json" -d '{"status":"declined"}'
```
