Inspiration

Every group chat has a “we should hang out” message that never becomes a plan. Finding a time, choosing an activity, and balancing everyone’s budget often takes more effort than the hangout itself. We built Huddle to make that process easier.

What it does

Huddle turns a group’s availability and preferences into activity suggestions. Friends join through a shared link, connect Google Calendar or choose available time blocks, and share their interests, budget, and needs. A shared calendar gives each person a distinct color and shows when they’re unavailable without revealing event details. Huddle finds overlapping free time and uses OpenAI to suggest three activities that fit the group. Plans can be viewed on the website and through our iMessage extension.

How we built it

We built the web interface with React and Vite, supported by a Node.js backend. Google OAuth connects participants’ accounts, and the Google Calendar API retrieves free/busy information across their connected calendars. The backend calculates shared availability before sending preferences and eligible time slots to OpenAI. Structured responses keep suggestions consistent and tied to valid times and budgets. We also built a Swift iMessage extension that connects to the same backend.

Challenges we ran into

Google Calendar integration involved more than getting sign-in to work. We had to handle API enablement, OAuth permissions, test users, and reconnecting accounts. Coordinating multiple participants introduced another challenge: suggestions must reflect everyone’s latest preferences. We added checks for incomplete responses, unavailable calendars, and membership changes. We also expanded our original weekend-only planner into dated time blocks across all seven days.

Accomplishments that we're proud of

We connected group invites, preferences, shared availability, and AI suggestions into a working demo. We’re especially proud of the shared calendar: it makes scheduling conflicts visible while keeping event details private. The demo also successfully generated activities using the group’s selected time blocks and preferences.

What we learned

A useful AI planner starts with reliable scheduling logic. Calculating shared availability before asking for suggestions makes the results more practical. We also learned how much clear connection states matter. A calendar that cannot be checked should appear as unknown, not as free time.

What's next for Huddle

Next, we want to deploy Huddle so friends can join from their own devices, complete Google’s verification process, and improve connection persistence. We also want to add group voting, more flexible activity durations, and an option to add the chosen plan to everyone’s calendar. Our goal is to make Huddle a natural next step when someone says, “Let’s hang out.”

Share this project:

Updates

Submission history