Table of contents
Want to add it to your Google Calendar?
GitHub Repo & Setup Steps - https://github.com/Minerva18/project-chameleon
Why did I build it?
Planning tasks and time has always been a balancing act for me. I’m a huge fan of to-do lists, but over time I’ve realized that tasks only get done when you put a date and time on them. This is where timeboxing comes in—dedicating specific blocks of time to specific tasks. It’s an incredible way to enhance focus and productivity.
However, I faced a significant challenge: my to-dos were scattered across apps like Wunderlist or Trello, while my schedule was on Google Calendar. Integrating these tools was cumbersome. I eventually switched to Google Tasks for its drag-and-drop scheduling feature, but it had limitations—every task defaulted to a 30-minute duration, which didn’t work for tasks needing more time or less precision.
I also tried creating calendar events for tasks instead, but my schedule became cluttered. It was difficult to differentiate tasks from meetings, leading to missed appointments. Manually color-coding events was tedious, so I thought: what if my calendar could handle this automatically?
Enter Project Chameleon. This project is my solution to seamlessly integrate task management into Google Calendar while maintaining clarity and usability.
What does it do?
It’s an automation built on Google Calendar that helps me timebox better. It color-codes events and tasks automatically, differentiating between meetings and personal to-dos at a glance.
When I create a task, the script:
Color-codes tasks differently from meetings for instant recognition.
Adds an emoji to the title for quick visual identification.
Improves notifications, making it easier to stay on track.
With these features, tasks and meetings are clearly differentiated, notifications are more intuitive, no more confusion, no more missed meetings — just a beautifully organized calendar.
How does it work?
Using Google Apps Script, Project Chameleon listens to event creation and updates on my Google Calendar (via the Calendar API). If it’s a task (an event with no attendees), it automatically assigns a distinct color and even adds an emoji to the title.
This functionality is powered by Google Apps Script, a cloud-based JavaScript platform. Using the Google Calendar API, the script:
Monitors event creation and updates via a sync token.
Identifies events without attendees.
Automatically applies the task-specific color and updates the title with an emoji.
Because the script runs in the cloud, it works on any device. This makes my calendar intuitive and visually organized across all my devices.
Design Choices
Platform: Google Apps Script
Initially, I considered building a web app that ran a scheduled script every minute to review and update my calendar. This approach, however, was resource-intensive, requiring custom authentication and significant development effort to integrate with the Google Calendar API.
Upon further research, I discovered Google Apps Script. This platform offered several advantages:
Seamless integration with Google products, eliminating the need for custom authentication.
Event listeners for creation, update, and deletion of calendar events, allowing real-time updates without constant polling.
Efficiency, as the platform handles much of the groundwork, enabling me to focus on implementing my logic.
Device Agnostic, works with google calendar mobile/tablet/desktop app right out of the box, no need to write any separate logic.
Color-Coding and Emojis
Why Color-Coding? Tasks and meetings serve distinct purposes, and visually separating them improves calendar usability. Color-coding tasks ensures quick recognition.
Why Emojis? Google Calendar notifications are not color-coded, which makes it hard to differentiate between task and meeting reminders. Adding an emoji to task titles makes notifications instantly recognizable, even outside the calendar interface.
Sync Token Optimization
Using the sync token from the Google Calendar API minimizes redundant processing by only fetching updated events. This ensures efficiency and reduces unnecessary API calls.
Challenges and Solutions
Challenge: Cluttered Notifications
Manually managing event titles and colors led to missed meetings and disorganized notifications.
Solution: Automating title updates and color-coding resolved this issue, ensuring every task and meeting is easily distinguishable.
Challenge: Choosing the Right Platform
Building a standalone app with continuous polling was resource-intensive and complex.
Solution: Adopting Google Apps Script allowed for real-time updates with minimal setup.
Conclusion
Project Chameleon bridges the gap between task management and scheduling, transforming Google Calendar into a more powerful and user-friendly tool. By automating tedious processes like color-coding and title editing, this project saves time and ensures better productivity.
Whether you’re juggling work tasks, meetings, or personal goals, Project Chameleon simplifies your schedule, allowing you to focus on what matters most.