Inspiration
Making plans with friends is harder than it should be. Everyone’s calendar is busy, the group chat fills up with “when are you free?”, and the plan dies before anyone commits. We wanted to take the coordination work off people so they can just show up. If everyone had a personal agent that knew their schedule and preferences, those agents could do the back-and-forth and hand you a plan that already works for everyone.
What it does
Mutual is a social scheduling app where each user gets a personal AI agent. You connect your Google account, and your agent reads your calendar availability. When you want to meet up with friends, the agents negotiate with each other to find a time that works for everyone, then put the event on the calendars. You see the result instead of sitting through the thread. Because the agents run on a local model, your schedule stays on your device instead of being shipped off to a third-party AI service.
How we built it
We built Mutual with React, TypeScript, and Vite, backed by Python, FastAPI, Pydantic, and SQLite. Google OAuth connects accounts, Google Calendar handles availability and scheduling, and a local model powers the personal agents.
Challenges we ran into
Splitting frontend, backend, agent logic, and integrations meant agreeing on API contracts early so we weren’t blocked on each other.
Accomplishments that we're proud of
Keeping agent reasoning on-device instead of falling back to a cloud API. A working end-to-end flow: sign in with Google, connect a calendar, and have agents arrive at a scheduled event.
What we learned
How to design agents around constrained, validated outputs instead of trusting free-form model text. Why contract-first development (shared schemas between frontend and backend) saves a team so much time under a deadline. The real-world messiness of calendar data: time zones, recurring events, and overlapping availability.
What's next for Mutual
Support for larger groups and smarter preference learning, so agents learn when and how you like to hang out. A mobile app, with the model running fully on the phone.
Built With
- fastapi
- pydantic
- python
- react
- sqlite
- typescript
- vite