Events
Status: Proposed 2026-09-24
Events are the Act step of the loop and the reason organizers will adopt the app. An event is time-bound, hosted by a Grove or an organization, and has a public listing with a private attendee list.
Why
Organizers today coordinate over group chats that leak and event pages on platforms that sell attendance data. They need a headcount they trust and a way to reach attendees, and attendees need to say "I'm going" without announcing it to the world.
What ships in v1
- Event types: protest, vigil, outreach, potluck, sanctuary day, screening, meeting, other.
- Public listing: title, type, when, host (Grove or organization), venue name and address, a cover image, description, and the RSVP count. Filter by date range, region, type, and Grove.
- Details after RSVP: an organizer can mark the exact meeting point as visible only to members who have RSVP'd. The listing then shows the region and a time.
- RSVP as going or interested. The organizer of that event sees the handles of attendees; everyone else sees counts.
- Visibility per event:
public,grove(members of the hosting Grove),friends(the creator's friends, for small actions). - Hosting: creating an event requires being an organizer of the hosting Grove or an admin of the hosting organization. Members cannot host as themselves in v1, which keeps the listing curated.
- Calendar export (ICS) and a "remind me" reminder through notifications.
Data and visibility
events, event_rsvps, groves, grove_members, organizations. See the data model and RSVP privacy for the exact rules on who sees what.
API
GET /api/events?from=&to=&area=&groveId=&type=, GET /api/events/:slug, POST /api/events, PATCH /api/events/:id, POST/DELETE /api/events/:id/rsvp, GET /api/events/:id/attendees (organizer only). Listing queries apply visibility server-side using the caller's Grove memberships and friendships.
Screens
Web: /events (list with filters, optional map), /events/[slug]. Mobile: the Events tab (upcoming, mine, by Grove), event sheet with RSVP and "add to calendar", organizer view with attendees and a message-all action.
Relationship to Places
An event may reference a Place (a screening at a vegan cafe, a volunteer day at a sanctuary). The Place page lists upcoming events at it.
Open questions
- Recurring events (weekly outreach). Proposal: v2, with a series id, after seeing how organizers use single events.
- Whether
interestedshould count toward the public number. Proposal: show "going" only. - Safety notes on protests (know your rights link, buddy system). Proposal: a Guide link on the event page for types
protestandvigil.