Skip to main content
An EventRsvp records a single user’s response to an event. There is at most one RSVP per user per event (enforced by a unique (eventId, userId) constraint). Setting, changing, or withdrawing an RSVP keeps the event’s denormalized rsvpCounts in sync. Individual RSVP records are returned by the named guest-list endpoint (Fetch Event RSVPs). The aggregate rsvpCounts are always available directly on the Event, and the caller’s own status can be surfaced as userRsvp via the userRsvp include.

EventRsvp

RsvpStatus

The set of valid RSVP values, which also map to the keys of Event.rsvpCounts:

Lifecycle

  • Set / changePOST /events/:eventId/rsvp with a status. Creating or switching to going is capacity-checked under a row lock.
  • WithdrawDELETE /events/:eventId/rsvp deletes the RSVP row and decrements the corresponding count.
  • Removed on invite revoke — if a host removes an invitee from an invite-only event, that user’s RSVP is deleted and the count decremented.
  • Removed on user deletion — deleting a user removes all their RSVPs and decrements affected events’ counts.