---
title: "RSVPs"
description: "RSVPs: available fields, filters, associations, and API operations."
lastModified: "2026-08-21"
---

**Path:** `events/{event_id}/rsvps`  
**Methods:** GET collection/record, POST, PATCH, DELETE.

**GET**

- Fields: `event-id`, `timeslot-id`, `registrant-id`, `checked-in-at`, `created-at`, `updated-at`.  
- Filters: `timeslot_id`, `registrant_id`, `checked_in`, `created_from`, `created_to`, `updated_from`, `updated_to`, `sponsor_id`.  
- Associations:  
  - `timeslot`: `title`, `start-time`, `end-time`;  
  - `registrant`: `first-name`, `last-name`, `email`, `company-name`.  
- Row restriction: named `sponsor`, limiting RSVPs to a sponsor's main- or session-sponsored content.

```
GET .../rsvps?checked_in=true&include=timeslot,registrant
```

**POST inputs:** `timeslot_id`, `registrant_id`. Use PATCH to change check-in state.

```json
{
  "timeslot_id": 5501,
  "registrant_id": 1201
}
```

**PATCH input:** `checked_in_at` only.

```json
{ "checked_in_at": "2026-09-03T09:02:00Z" }
```

Set `checked_in_at` to `null` to remove the check-in timestamp. The timeslot and registrant must belong to the event. Sponsor-restricted scopes can create and manage RSVPs only for sponsored sessions. Create and delete use Brella's attendance-registration services, so capacity and bookmark side effects are preserved.
