6 min to read
The Evolution of CakeMail: From Google Sheets to People API

๐ง It All Started with a Sheet…
Back in 2019, I was learning Google Apps Script โ and I wanted to build something actually useful. Something that would keep running quietly in the background and make someone smile.
So I made CakeMail โ a tiny script that read names and birthdays from a Google Sheet and sent them an email on their special day.
No fancy UI. No database. Just a script, a sheet, and a sprinkle of automation magic.
๐ From Sheets to Bots โ The CakeMail Timeline
Over the years, the project slowly grew with me.
๐ฃ v1 (2019): The Basic Cake
- ๐ Google Sheets as the database
- ๐งพ Google Docs for email templates
- ๐ง Sent plain emails on birthday mornings
It worked. Kinda. The emails looked… like they came from 2010, but it was a start.
๐ง v2 (2020): Some Frosting
- โจ Added HTML email templates
- ๐ Basic open tracking
- โ Status updates in the Sheet
Now the emails actually looked like they belonged in the current decade. Open tracking was janky, but fun to build.
๐ v3 (2023): Smarter and Social
- ๐ค Integrated with Google Contacts
- ๐ฌ Sent WhatsApp reminders (because… why not?)
- ๐ Added support for multiple templates
This version started feeling more like a real product. I even used it for close friends and family.
๐ v4 (2025): Time to Grow Up
Then… Google deprecated ContactsApp
.
When I reopened the code this year, it was full of strikethroughs โ a graveyard of outdated methods. So I did what any dev with coffee and free time on a Sunday would do: rewrite the whole thing using the Google People API.
๐ What’s New in v4?
- ๐ Migrated to Google People API
- ๐ฌ Telegram bot integration for real-time updates
- ๐ฌ Clean, mobile-friendly email templates
- ๐ Secure credential handling using
PropertiesService
- ๐งพ Birthday wish status gets saved as a note on the contact
And yes, the open tracking still works. Now it tells me when the birthday email is opened โ so I can pretend I totally didnโt forget.

๐ค Why Telegram?
I wanted a simple, no-friction way to get notified. Telegram is fast, has a great bot API, and I was already using it for a bunch of personal tools.
Now, every time an email is sent (or opened), I get a friendly ping from my bot โ along with any upcoming birthdays for the next day.
๐ง Technical Notes (for Nerds Like Me)
- Written entirely in Google Apps Script
- Uses OAuth2 for Google People API access
- Stores config data securely with
PropertiesService
- Templates are written in plain HTML with inline CSS
- Telegram bot is just a simple webhook POST using
UrlFetchApp
- Email tracking uses a sneaky 1ร1 image + open-logging


๐ง Things I Learned (Or Relearned)
- APIs get deprecated. Always.
- Modular code = easier migrations.
- Donโt overbuild. Start tiny, then grow slowly.
- Even silly little side projects can teach you a LOT over time.
- Personal automation is extremely satisfying.
๐ฃ๏ธ Whatโs Next?
No promises, but I might:
- ๐ง Add AI-powered personalized birthday wishes (GPT + templates)
- ๐ Build a tiny analytics dashboard
- ๐ ๏ธ Let users edit templates from a front-end UI
- ๐จ Add support for other platforms like Signal or Discord
Repo
Letโs see how far CakeMail wants to go before retiring.
๐ฌ Final Thoughts
CakeMail isnโt a startup. Itโs not โenterprise-ready.โ Itโs not even meant for public release (though youโre welcome to fork it on GitHub).
Itโs just a little automation script that grew with me โ from a Sheets script to a bot-powered notifier that still makes someoneโs birthday a little nicer.
And that feels like a win to me.
Thanks for reading! Got any old projects youโve revived recently? Iโd love to hear about them.
Good