| Event CRUD + publish/cancel/archive | 🟢 | packages/backend-server/convex/events/mutations.ts | Standard pattern; easy-helper Phase 4 builds evEvents |
| Public + admin listing | 🟢 | events/queries.ts (listActiveForUser, listByYear, getBySlug) | Cross-year query uses overlap: endDate >= rangeStart AND startDate < rangeEnd. Reuse |
| Calendar views (month + year) | 🟢 | events/queries.ts (listByMonthForUser), apps/easy-rich/src/app/(public)/events/ | Hero UI Calendar.Cell uses CSS Grid (not table) — needs !aspect-auto + pointer-events-auto overrides |
| RSVP w/ waitlist + auto-promote | 🟢 | events/rsvps.ts (create, cancel, adminApprove) | 8+ states; hybrid cascade: inline 1000 + scheduled cascadeCancelRsvps |
| Admin RSVP batch actions | 🟢 | events/rsvps.ts | batchAssignGroups, batchAssignRoles |
| QR check-in (self, admin scan, manual) | 🟢 | events/attendance.ts, utils/checkinToken.ts | HMAC-SHA256 signed user tokens, 10-min TTL, frontend auto-refresh. Needs CHECKIN_TOKEN_SECRET env |
| Event delegates (V2-only) | 🟢 | events/delegates.ts | convex-authz expiring grants replaced V1 eventDelegates table |
| Event suspend/resume + hard delete + bulk check-in + self check-in (V2-only) | 🟢 | events/mutations.ts, events/attendance.ts | New surfaces over V1 |
| Event groups (simplified) | 🟡 | events/groups.ts (batchUpsertGroups, listByEvent); admin UI missing | V1 had per-member roles inside groups; V2 dropped that. easy-helper Phase 4 reuses simplified shape |
| Attendance report + check-in time distribution | 🔴 | (V1 had getAttendanceReport, getCheckInTimeDistribution) | Add when admin needs analytics |
| Undo check-in | 🔴 | (V1 undoCheckIn) | Re-add if support workflow needs it |
| Stale waitlist expiry cron | 🔴 | (V1 cron expireStaleWaitlistEntries) | Re-introduce in easy-helper — waitlist fills without promotion otherwise |
| EventJoinProgress multi-step workflow | ⛔ | (cut from V2) | V1 had full subsystem with kanban admin board. easy-helper Phase 4: reuse fqForms for pre-join steps instead of rebuilding |
eventParticipantRoles | ⛔ | (cut from V2) | groups simplified — per-member role concept dropped |
packages/calendar (6-view package) | ⛔ | (V1 package deleted) | Rebuild with Hero UI if multi-view returns |