Inspiration
It takes a significant amount of effort just to schedule a hangout or a brief meeting. Current scheduling methods involve typing up when you're available, drafting tedious When2Meets, or comparing calendars. These inefficiencies add unnecessary complexity to our lives, which we can resolve through software and automation.
What it does
IntelliMeet leverages a multitude of technologies to optimize your scheduling experience. From scraping your upcoming events and analyzing the event type and timing details, to calculating importance-scores and maximizing optimality ratings, IntelliMeet streamlines the scheduling experience in the battle of complexity in our busy lives.
How we built it
Using the Google Calendar/Google for Developers API, we establish secure authentication processes in order to retrieve calendar and event information. After filtering/extraction of events and time-zone conversion, we employ two ways to generate importance rankings I for your events (1. Intel Prediction Guard-based LLM ranking based on event summary/details, 2. memoized keyword-based fast ranking for efficiency).
We then determine open time-slots in both parties' schedules that fit certain criteria like start and ending times, duration, and more. For each time slot, we calculate its "distance" D to other events on your schedules, which we use to generate optimality scores, in conjunction with the event importance-scores. Intuitively, we attempt to optimize the optimality scores (min(|I|/D)) in a way that promotes the generation of slots that raise the least conflict with your most important events (events closer to more important events are penalized). We leverage Reflex to integrate queries/hosting with our solution.
Challenges we ran into
Calendar API calls not accounting for timezone changes --> solved by switching/standardizing to a new DateTime object format & by calculating UTC time differences ourselves.
Slow LLM API calls to NeuralChat --> developed alternate memoized version that has similar importance-score outputs as the fully LLM-relied method.
Ways to Sort/Rank Meeting Slots --> chose to pursue generating importance labels 2 ways and event distance labels, which contributed to overall optimality score calculations.
Reflex Forms and Backend Scheduler: need to configure states in async manner that allows backend scheduler to run while Reflex handles state updates.
Accomplishments that we're proud of
Having no experience with APIs & any sort of web-dev, but learning to navigate Calendar APIs, OAuth/POST/GET requests, Intel's Prediction Guard models, Reflex's State and Forms, to pursue bringing an idea to life.
What we learned
There's a lot of value in helping people battle complexity in their lives through scheduling. Although it was hard to prototype without API/web-dev experience, building is an excellent way to start learning.
What's next for IntelliMeet
We'll be troubleshooting our Reflex hosting solutions in order to bring convenience to more people; you'll catch us implementing our own datasets and evaluating our own classification models for importance-ranking and time-slot-optimizing. Less scheduling frustration is something we could all use.
Built With
- google-calendar
- predictionguard
- python
- reflex
Log in or sign up for Devpost to join the conversation.