Calendar has "Cancel Event", which operates like an actual delete button and destroys data. This is nonstandard in modern application. Instead:
- Events should have an active vs cancelled state.
- Canceling/closing an event should update this state, not destroy any data or delete the event.
- You should be able to query for cancelled events, etc. -- they're just hidden by default.
- CalendarEvent should implement PhabricatorDestructibleInterface so that administrators can use bin/remove destroy E123 to really destroy events.