RSVP window

Closing the RSVP form

Manual toggle or scheduled cutoff for new submissions.

Controls Owner UI

Manual vs. scheduled close

Every event owner page includes a Close RSVPs switch that instantly hides the RSVP form from the public view and blocks new submissions.

  • Use the toggle when you need a hard stop regardless of capacity (e.g., venue deadlines).
  • Set an optional auto-close timestamp during creation or editing; once the moment passes the backend flips the toggle for you and clears the scheduled time.
  • Times respect the timezone you enter in the UI but save as UTC to keep the cutoff consistent even if the server time differs.
  • Existing guests still have full access via their magic links to edit, hide/unhide, or delete their RSVP.
  • Reopen the form by turning the toggle back off or by scheduling a new date/time.

Closing RSVPs is separate from attendance caps—you can run both simultaneously or use closing alone for simple deadlines.

API & automation details

  • rsvps_closed (bool) and rsvp_close_at (ISO8601 string) live on the Event model.
  • UI forms and the API accept timezone_offset_minutes so local times convert to UTC before storing rsvp_close_at.
  • Whenever events are read (homepage, channels, admin listings, or REST calls) the backend checks pending rsvp_close_at values and toggles them if the timestamp is in the past.
  • Closed events return HTTP 403 with {"error":"RSVPsClosed"} from POST /e/{event_id}/rsvp and /api/v1/events/{event_id}/rsvps; the HTML view shows the same warning instead of the form.
  • Event owners (or root admins) can reopen the form through the UI or by calling PATCH /api/v1/events/{event_id} with {"rsvps_closed": false} and optional new schedule.

Because the close state is part of the event payload, downstream integrations can surface accurate “RSVPs Closed” banners without duplicating logic.