- Shipped
- August 10, 2026 at 8:10 PM UTC
- Author
- Kamo
- Commit
- c141e3e
The dialog could show who was already on an event but never add or remove anyone; the only guest operation was re-notifying people who were somehow already there. Events now accept a guest list, replaced wholesale on save. Replace rather than merge, because the dialog owns the list — a guest removed there has to disappear here. A null list means "not supplied" and leaves the guests alone, which is what a client editing only a title sends. Two things a client does not get to assert, so neither is read off the request: the RSVP, which is the guest's to give, and the organiser flag, which records who called the meeting. Both survive an edit — recreating rows instead of updating them would reset every reply and strip the one person allowed to cancel the event. Guests come back batched. A month view returns a hundred events, and asking per event is a query per row. Deleting an event now removes its guests first. They carry a non-null foreign key back to it, so the delete either orphaned them or failed once the database enforced the reference.