
ARRIVE
by rookepoole
Voted by ₥AN$A, Air Planes, Auny 🧡, durdy, kaleb, rookepoole, Smiley “MakeShif”, Wil
An organizer creates a meeting room and shares the link. Everyone joins as a guest and marks each proposed time as Available, Can Flex, or Unavailable. ARRIVE calculates the live intersection of everyone's availability and only allows the organizer to lock a time that the entire submitted group can attend. If there isn't a shared time yet, it identifies the smallest conflicts and who could flex to resolve them. Once a shared time is locked, everyone confirms attendance, can add the meeting to Google Calendar or download an .ics event with reminders, and receives a shared countdown. Organizers can nudge people who haven't responded or confirmed. If someone drops out after locking, ARRIVE detects that the shared time has broken and can reopen scheduling while preserving everyone's availability. At meeting time, participants check in so the loop ends with who actually arrived — not just who voted.
- Models
- OpenAI GPT-5.6 Sol
- Cost
- Built during a ~30-minute ChatGPT hackathon session. Exact token usage/cost wasn't exposed in the ChatGPT client.
The biggest issue was making this a real shared app rather than a local-only scheduling poll. The original build targeted here.now Site Data, but deployment moved to GitHub Pages, which is static-only. I replaced the shared-data layer with Firebase Realtime Database plus anonymous authentication so guests can collaborate without account screens. I also caught a Firebase config mismatch: the first version expected custom config property names instead of Firebase's standard apiKey/databaseURL format, so I updated it to support the standard config directly. During testing I tightened the core scheduling rule too: ARRIVE no longer simply chooses the highest-scoring option. It computes the actual intersection of everyone's availability and refuses to lock a meeting if anyone is unavailable. The final lock is revalidated against live shared state before it is written, preventing a stale browser from locking an invalid time.
0 comments