Google Calendar is extremely useful for most college students. With how many obligations we all have, ranging from classes to activities to interviews, it's impossible to keep everything straight without a good organizational structure. Many students don't use Google Calendar because of the nontrivial amount of time involved in navigating to the calendar to either add events or see what they have scheduled. Calcium aims to solve these problems by speeding up calendar use so everyone can get their life organized!
What it does
Calcium has two main points of user interaction. The first keyboard shortcut (Ctrl+Shift+L) pulls up a prompt where the user can enter event details (Ex: dinner with varun 3-5pm on Friday) and just press to add the event to their calendar. The second keyboard shortcut (Ctrl+Shift+K) pulls up a popup window which has two view modes: a list of the 10 next events the user has, and a weekly view which shows which actual times are free or busy.
How I built it
We made a Flask+Python webserver which sends requests to the Google Calendar API, and formats results accordingly for the Chrome extension (built in JS/HTML/CSS) provides the user interface for inputting events and displaying upcoming events.
Challenges I ran into
By far, the biggest challenge was getting the Google Calendar API working properly. This relies on some pretty annoying credential sharing, which was very difficult to resolve with communication between the Chrome extension and the Flask app.
Accomplishments that I'm proud of
We were all pretty satisfied as a team with how we divided up work. We were able to each find a module of the project to focus on, which played to our strengths and helped us effectively use our time.
I'm also proud of the fact that we made something I'd actually find useful in my daily workflow.
What I learned
I learned a lot about how Chrome extensions tend to be structured. This is not a medium I've really coded on before, and I definitely feel like it has a lot of potential for productivity tools.
I also learned how difficult using even well polished APIs can be. Any projects utilizing APIs have to coordinate a lot of moving parts to actually function properly.
What's next for Calcium
Next, we want to add a variety of other features users can use to customize their use of Calcium to best fit their schedules. For example, we want to add the ability to modify and delete events, as well as more viewing modes and customization.