Inspiration
TreeSync was inspired by the need to streamline the organization and synchronization of events from emails directly into a user’s calendar. In our fast-paced world, managing and transferring important dates and times from emails to a calendar can be tedious. We aimed to automate this process, saving time and reducing the risk of missing critical appointments or deadlines.
What it does
TreeSync automatically scans a user's incoming emails for event-related information, determines the importance of each event, color-codes it accordingly, and inserts the event into the user’s Google Calendar. It acts as a personal assistant, ensuring that all essential events from emails are scheduled without manual input.
How we built it
We built TreeSync using Python, leveraging the Gmail API to access and parse emails and the Google Calendar API to manage calendar events. For natural language processing, we integrated Together.ai's LLM (specifically Llama-2-70b-chat), which was instrumental in interpreting the contents of emails and evaluating the significance of each potential event. The powerful AI capabilities provided by Together.ai allowed us to implement sophisticated event detection and classification, enabling our application to understand the nuances of human language in various email formats.
Challenges we ran into
One of the main challenges we faced with TreeSync was implementing a system that could continuously scan emails in the background without user intervention. We used ngrok and Google Cloud's Pub/Sub and mailbox watch to connect Gmail's push notification to ngrok's public website, then using flask and ngrok, we connected the push notification to a local server, which allowed us to call a function to add an event to the calendar every time Google Cloud pushed a notification.
Additionally, crafting an algorithm that could reliably extract dates, times, and event details from the diverse formatting found in emails was non-trivial. To aid in this, we integrated Together.ai's LLM for natural language understanding, which improved our success rate.
Another significant hurdle was handling edge cases such as ambiguous date formats, events happening in a set amount of time as opposed to on a specific date, events scheduled only in the subject, etc. Ensuring that TreeSync could make intelligent decisions in these scenarios was a substantial part of our development efforts.
Finally, we had to figure out how to make this whole experience seamless and easy for new users. We therefore created an application using pyinstaller, enabling new users to just launch the application once and then just forget about it, letting the AI do the work in the background.
Accomplishments that we're proud of
We managed to create a system that works effectively in the background, requiring minimal user setup and providing a high level of automation for email event synchronization. We worked effectively as a team, got closer in the process, and learned a lot!
What we learned
Throughout this project, we've learned about the intricacies of working with APIs, the challenges of natural language processing, and the importance of creating a user-friendly automated system. We've also gained experience in handling JSON data structures and learned more about best practices in Python coding and backend engineering. We also learned how to work effectively in a team given the short timeframe.
What's next for TreeSync
Moving forward, we aim to refine TreeSync’s event-detection algorithms for even greater accuracy. We plan to implement a user interface to allow for individual preference settings and manual override options. Additionally, we will explore expanding TreeSync’s capabilities to other email and calendar platforms, further broadening its usability.
Built With
- flask
- gcloud
- google-cloud
- together-ai
Log in or sign up for Devpost to join the conversation.