Inspiration
The inspiration for Urmindr stemmed from a shared challenge our team faced: the cumbersome process of manually adding events to our Google Calendars. We envisioned a more streamlined and conversational way to manage our schedules, moving away from clicking through menus and instead using natural language. The goal was to create an intelligent assistant that could understand our commands and seamlessly integrate with the tools we already use daily. We wanted to build something that would not only be a fun technical challenge but also a practical solution to a common productivity hurdle.
A main selling point for Urmindr, too, is that it allows for people with ADHD to easily structure their days. Manually adding tasks to a calendar can be cumbersome, but if you don't you're easily prone to forgetting. Now, you don't need to make a compromise since our app handles the difficult part for you.
What it does
Urmindr is a web application that allows users to conversationally add events to their Google Calendar. Users interact with a chat interface powered by the Gemini API. They can type natural language requests, such as "Schedule a team meeting for tomorrow at 10 am to discuss the project", "Add an event for when I meet Anna at Starbucks on October 1st at 2pm", or "Add a study session at the library tomorrow from 5 pm to 10pm" and Urmindr will parse the information and create the corresponding event in their Google Calendar. The application handles user authentication to securely connect to their Google account and ensures that the events are added to the correct calendar.
How we built it
We constructed Urmindr using a modern web development stack:
- Frontend: The user interface was built with React, creating a responsive and interactive chat component where users can communicate with the Gemini API.
- Backend: We used Flask, a Python web framework, to create a REST API that handles communication between the frontend, the Gemini API, and the Google Calendar API.
- Authentication and Database: Firebase was leveraged for secure user authentication, allowing users to sign in with their Google accounts. We also used Firestore, a NoSQL database provided by Firebase, to store user information and chat history.
- Language Model and Function Calling: The core of our chat functionality is the Gemini API. We implemented function calling to enable the model to understand the user's intent to create a calendar event and extract key details like the event title, date, and time.
- Google Calendar Integration: We utilized the Google Calendar API and OAuth 2.0 to securely access and add events to the user's calendar on their behalf.
Challenges we ran into
Throughout the hackathon, we encountered several challenges. One of the primary hurdles was implementing a seamless and secure OAuth 2.0 flow for the Google Calendar API within the limited timeframe. Ensuring that we could refresh access tokens and handle different authentication states was complex. Additionally, fine-tuning the prompts and function definitions for the Gemini API to accurately and consistently parse a wide variety of natural language inputs proved to be an iterative process of trial and error.
Accomplishments that we're proud of
We are particularly proud of successfully creating a full-stack application with a seamless end-to-end user experience in just one weekend. Integrating multiple complex APIs (Gemini and Google Calendar) and getting them to work in harmony was a significant achievement. We are also proud of the intuitive and user-friendly chat interface we designed, which makes scheduling events feel natural and effortless. This is all of our first times trying to create a chat app and we are proud of the work we accomplished and the new technologies we tried.
What we learned
This project was a tremendous learning experience for our team. We gained hands-on experience with the Gemini API's function calling capabilities and deepened our understanding of the Google Calendar API's authentication mechanisms. We also learned valuable lessons in rapid prototyping, agile development, and the importance of clear communication and collaboration under pressure.
What's next for Urmindr
We believe Urmindr has the potential to evolve into a more comprehensive personal assistant. In the future, we envision adding features such as:
- The ability to edit and delete calendar events through chat.
- Split long term tasks (like studying 2 weeks before a test) into smaller, granular tasks that can be spread out
- Support for recurring events and reminders.
- Integration with other services like Google Keep for note-taking or to-do list creation.
- Developing a more personalized experience by allowing the model to learn from user habits and preferences.

Log in or sign up for Devpost to join the conversation.