Inspiration
As 2nd year students, we are burdened with uni lectures, coursework deadlines, applications, society meetings, leetcode study plans and a multitude of other tasks that we have to do like taking showers. Despite having all these commitments, some of us just work better under time pressure, turning on hyper-productivity mode in the last minute.
However, sometimes these commitments overwhelm and get the better of us. While going all in on a task, we lose sight of another which spirals quickly. A todo list barely captures the complexity of these tasks, where some can be deferred and split across multiple days. We want a dynamic and constantly evolving schedule manager that not only rearranges our schedule based on short term priorities but also constantly fetches data for upcoming tasks proactively.
What it does
Deadline Edger asks for a user's preferences, priorities and habits to determine the best way to schedule their deadlines so that they can (sometimes just barely) finish all their tasks before their deadline. For example, you can ask the scheduler to scrape a job board website daily to find new openings and add it to your schedule. You can also link it to your email to get updates on coursework deadlines and application progressions. Even weekly/daily chores like laundry and working out can be added.
The agent will continuously fetch data from these sources, and also use user-specific context from user input and chat messages to schedule the user's life to maximize their utility. It can also provide general advice on whether a user should prioritize certain tasks over another or whether or not they can take on yet another commitment.
How we built it
We used AI SDK in python for the main agent that will orchestrate the tool calls for fetching data and reordering the user's schedule. Fetching web data uses Firecrawl and Email uses the Gmail API. Then we gave the agent access to the user's Google Calendar.
Every commitment that the user adds to their life is assigned as a task for the agent that is run after a user-defined interval. When these tasks are ran, the agent not only gets data from new events from external sources, but also user's preferences, context from most recent chats, user behaviors and user's current commitments and schedule. Then it uses all this context to provide the best schedule for the user.
Challenges we ran into
The main challenge that we faced was integrating Gmail and Google Calendar API into our project since there is a lack of well known documentation. We were blocked on this issue for a significant amount of time. Another challenge was finding a good model that is not only quick but can also process a lot of context that we provide it. We had to find the perfect tradeoff between speed and quality.
Accomplishments that we're proud of
After finally putting it all together, having a coherent system that could understand and manage the hectic schedule of a student made us feel accomplished. Especially after the whole shebang with Google API, having it all finally fall into place and seeing it rescheduling our day in real time felt like a dream come true.
What we learned
Integrating third party API is such a pain and we have to be super careful and specific when writing a system prompt so that it doesn't disregard all previous contexts.
What's next for Deadline Edger
The orchestration LLM can be more polished and user specific to tailor to the user's specific habits, behaviors and mindset. Integration with more third party platforms is also crucial to centralize deadlines like integrating with Canvas/Blackboard for university deadline tracking
Built With
- ai-sdk
- fastapi
- firecrawl
- gmail
- google-calendar
- google-gmail-oauth
- nextjs
- openrouter
- python
- supabase
Log in or sign up for Devpost to join the conversation.