About PlanPilot
Inspiration
Digital calendars have been a vital tool for people to keep structure in their day. It keeps track of important dates and lets you plan events in advance. With very demanding schedules, it’s easy to forget making time for yourself and often blame it on not having enough time. Faced with these issues, our team thought of ways we can optimize the digital calendar to still schedule your day, but have AI to solve the issue we all face, having no free time. With this in mind, we have developed the cross-platform app, PlanPilot.
With PlanPilot, it offers an innovative way to schedule your day. It transfers data from Google Calendar to create an in-app schedule, then implements GPT4 and APIs (Auth0, Google Maps Platform Places API, FireStore, & Google Calendar API) for the app to find free time in your schedule to suggest personalized activities to do. This way, you can focus on the important things and let PlanPilot take care of the rest.
What we learned
_ Planning _: With the team being relatively new hackers, we found better ways to plan PlanPilot. We found that while initial drawings of GUI are helpful to have, it's something to build off of and expand. Things change as challenges with design and functionality get in the way, demanding for changes. In other words, it is not a finalized idea but rather the beginning of it.
_ GitHub/Github Desktop _: The team’s method of delegating tasks throughout this program provided the team better ways to build the app. Additionally, the usage of it helped the team understand collaboration in programming found in the real world. Further, the remote nature of GitHub allowed all of us to push and pull from the repository throughout the entire hackathon, increasing collaboration.
_ Git _: In addition to the benefits of GitHub, the Git version system also saved us many times when we accidentally deleted our entire project (Oops!). We learned of the importance of consistent, small commits in order to maintain project stability.
_ The Backend _: Backend wise, we learned how to manipulate data relating to databases to our will, including using APIs for not only the information they give, but also in displaying the information in an accessible way. We also learned how to increase security in identifying users and properly allocating the specific data relating to that user based on this information.
_ Authentication _: Using Auth0 as a service taught us a great deal about the inner workings of authenticating users securely into an application or service. Additionally, because of the design of our app we gained experience in linking Auth0 with an IdP (Identity Providing) service to receive a OAuth2ID access token.
_ APIs _: The extensive use of APIs throughout our project help us gain deep knowledge about the inner workings of APIs. In addition to using prior written API libraries, we adapted our own using HTTPS POST and GET requests with authentication tokens and parameters.
How We Built It
PlanPilot is a cross-platform Flutter- based app. The design focused on having the familiarity of scheduling found in Google or Apple Calendar. The GUI contains an interactive interface for users to see the overview of their calendar, with a view of their “day-at-a- glance” along with a polished menu that lets users navigate throughout the app to easily see and generate their free time suggestions using AI.
APIs like Firestore and Auth0 provided a secure way to keep calendars private, but also a way to view your calendar on other devices under the same user. Another thing kept in mind is the popularity of apps like Google and Apple Calendar. The app takes in events already created on Google Calendar and uses that to generate an in-app schedule. This data is what GPT4 and Google Maps Platform Places API use to create suggestions and make sure it is suggesting activities within the area the user is in.
Along with that, there are features that PlanPilot makes available to its users. The app can optimize the current schedule by scoring the schedule’s efficiency. It also lets AI take in user input to display restaurants, outdoor experiences, and basically anything the user is in the mood for. Each display includes dates, locations, and ratings to provide all necessary information needed by the user.
Challenges We Faced
The largest challenges we faced were relating to the database, APIs, and the use of GPT4.
_ APIs and Authentication _ One of the biggest challenges that we faced was the implementation of auth0 as our authentication provider and connecting it with the Google APIs we used. Google APIs utilize the 0auth2 protocol. In order to access these apis, it would have been easiest to use Google’s existing authentication service libraries. We challenged ourselves, however, to make the best use of Auth0. Utilizing Auth0’s social media login for Google, we used the credentials it provided us to make a POST request to and obtain the OAuth2 access token for the authorized user, allowing us to make full use of Google’s APIs. In this way, our application is able to use Auth0 to not only authenticate the user into the app, but also to ensure our API requests are secure.
_ Database _ With the database, we faced challenges for applicability and utilization of the database. We had issues making functions within the database work but we were able to learn through the hackathon how to make it work. We solved this challenge by creating inputs for the data that aren't difficult to apply, allowing data to be easily changed as our ideas would.
_ GPT4 and Optimization _ GPT-4 presented its own unique challenges as the API tended to give output in hard to use formats. We experimented with different prompts until we found a formula to get consistent, accurate, parseable data from the API.
Optimization proved difficult to implement. The idea behind these functions was to provide the user to see what their updated schedule looks like with the AI along with the optimized version of their schedule. Though we completed the logic and scoring system, the application is still encountering issues, with translating this logic into scheduled events.
Given the tight time frame, we were unable to troubleshoot it further, however, this would be something to improve on in the near future. While these are issues within the app, it does not take away the experience of PlanPilot. We plan on continuing this project and making it work properly as these features enhance the app.
Future Plans for PlanPilot There are plans for PlanPilot to be a continued project after ShellHacks. The challenges we faced are issues that can be resolved with a longer timeframe. PlanPilot provides solutions to the modern problem of having no time. Our end goal is to scale the service to allow users to use the app on their own devices. This was a fun project to work on and we are very happy with what we were able to get done!
Built With
- calendar-api
- chat-gpt-api
- dart
- firebase
- firestore
- flutter
- git
- github
- github-desktop
- google-calendar-api
- google-maps
- google-maps.api



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