Inspiration
IdkUp2U was inspired by a group of King's students in their respective final years, but their final years differ because some of them did a placement year! As a result, planning any hangouts is extremely difficult with their differing schedules. We wanted to make it easy to find a time when everyone was free, which is why we created this very useful web application.
What it does
Our project is made up of several components, which will be explained below:
1) Your Calendar
A view just for you! You can import an existing .ics file, and add 'busy' periods of time for that week. Easy to keep up to date, so hangout times are as accurate as possible.
2) Group Availability
A view for you AND your friends! A weekly view showing everyone's availability with a number (i.e. how many of you are free on that day/time). You can toggle each person on/off if you don't want to see their availability.
3) Propose A Hangout
A section to create a hangout proposal. After selecting the friends you want to invite, let Gemini API take care of the rest! It will suggest a time and a place to meet. Then, after submitting, the RSVP gets sent straight to your friends. Your friends are able to add input to Gemini, stating the issues they have with the time/place, and Gemini will intelligently adapt to their needs, changing anything that needs to be changed.
4) Group Invitations
A section where you can see proposals that have already been sent, and you can RSVP yes/no and give suggestions to the AI on what to change. It will then regenerate the location/time for you to review.
How we built it
We built IdkUp2U in one day as a team of three, using TypeScript and Next.js so that the frontend and backend shared a single codebase. Before writing any features, we agreed on the shared data shapes (users, busy blocks, proposals, beliefs and agent steps), so each of us could work in parallel. The frontend, built with Tailwind CSS, started on mock data and typed fixtures and was swapped over to the real backend later. We used Gemini API: it uses function calling to pick tools such as free-slot lookup, RSVP history and belief updates, then returns structured JSON that the UI displays. We kept the date and free-slot maths in plain code, so Gemini handles only the messy human input, how much to trust each calendar, and explaining its changes. Calendar data, RSVP events and every belief revision are stored in Tiger Data, a time-series Postgres database, and the app is deployed with Vultr.
Challenges we ran into
We ran into an issue with SSL certificate verification when connecting our Next.js backend to Tiger Data’s PostgreSQL database. Despite following the documentation, testing different connection configurations, and restarting the database service, we continued receiving a SELF_SIGNED_CERT_IN_CHAIN error. Due to the time constraints of the hackathon, we temporarily disabled certificate verification to unblock development but we recognise that a trusted certificate would be needed for a secure production deployment in the future. Relying on the Gemini API during a one-day hackathon meant living with limits we couldn’t control. At peak times the API was overloaded and returned “model busy” errors, which stalled the agent loop in the middle of a run. We also ran out of free-tier tokens and credits while testing, so we had to switch to a different model partway through the build.
Accomplishments that we're proud of
In a single day, we built an AI agent that does more than schedule: it states what it assumed, notices when new evidence proves it wrong, and explains how it changed its mind. We’re proud that this revision is visible. As three students building a tool for a problem we’ve all had in first term, we got the frontend, agent and backend working together by agreeing on a shared contract early.
What we learned
We learned that the hard part of building an agent is not the API call but deciding where it adds real value. Working in parallel taught us to agree on data shapes before writing features, to build the UI against mock data so nobody is blocked, and to commit often.
What's next for IdkUp2U
We would want to add login functionality - unfortunately we didn't have the time to implement it fully, and had to rely on seeded data. Longer term, we’d weather suggestions so that outdoor activities aren't suggested when its forecast to rain for example, so IdkUp2U can help new students not only find a time to meet but also decide what to do.
Built With
- css
- gemini-api
- javascript
- node.js
- tiger-data
- typescript
- vultr