“I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it.” Bill Gates When Bill Gates talks about choosing a lazy person to do a job, he’s not referring to an irresponsible person not willing to do any work. Instead, there’s a special level […]
“I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it.”
Bill Gates

When Bill Gates talks about choosing a lazy person to do a job, he’s not referring to an irresponsible person not willing to do any work. Instead, there’s a special level of laziness where a person assigned a task is willing to find a more efficient way of doing complex or repetitive tasks. Similar to my Spirit Animal, the sloth, it’s not about how much effort you exert, but putting the energy in all the right places. Side tangent, why haven’t humans domesticated more animals? I would love a domestic pet sloth.
I’ve written about my absolute love of Microsoft’s Power Automate and Power Apps platforms, but using Google’s platform is an entirely new can of worms.
The Problem
At work, we use proprietary software to track our tour leader schedules. It works well enough—for internal use. But lately, I’ve been trying to organize my life better than I have in the last two years. That means seeing everything—work and personal—in one calendar view.
But Google doesn’t make it easy.
Adding irregular, bulk events through its native interface is… tedious. Too many popups, many clicks, and drag-and-drop for a modern age. I’m not a fan of spreadsheets either, but they’re a great launch point when it comes to automation. And when you’re both lazy and busy, automation becomes very attractive.
The Solution
In a perfect world, I’d just pull the schedule data directly from our proprietary system via an API and automate everything server-to-server. But I don’t have that kind of access. Or skills. Yet.
Instead, I found myself exploring Google Apps Script, which turned out to be a surprisingly decent workaround. Rather than adding events one by one, I could write a function to read spreadsheet data and populate the calendar for me in one go.
It felt like unlocking a cheat code.

Before I would have to input all of my calendar using the clumsy google calendar function that has too many popups menus and dialog inputs. Slowing down the batching process
Google Apps Script

This was my first time using Google’s scripting platform. I’ve used Microsoft Power Automate and Power Apps before—honestly, I prefer their block-based system. It’s visual, variables are pre-labeled, and things mostly work out of the box.
Apps Script, by contrast, uses server-side JavaScript. I studied Java in high school, so the syntax was vaguely familiar. But it’s been years, and server-side scripting is a bit of a different beast. Still, the concepts carried over.
And to be fair, learning it is worthwhile. Underneath Microsoft’s prettier UI is still JavaScript doing the heavy lifting. Might as well know what’s going on under the hood.
Tutorial
I do a lot of my learning independently online. I’ve heard that large corporations like to see this initiative, but I wouldn’t know because I’ve never been hired by a large company.
It’s a decent guide, but in my opinion, it’s more complicated than it needs to be. There were extra steps that didn’t really apply to my use case. Still, watching it helped me understand the general idea—even if I ended up writing my own version from scratch.

The fun thing is that although I didn’t understand all of the syntax right away, I was able to understand conceptually what was happening.

In Plain English:
Grab the data.
It reads every row in that range and stores the data in an array that looks like this:
Identify the spreadsheet.
Google is told to recognize my active sheet and look for a named range called "Events".
- [Table Data
- Row 1 Data [Title, Event Type, Date Start, Date End],
- Row 2 Data [Title, Event Type, Date Start, Date End],
- Row 3 Data [Title, Event Type, Date Start, Date End],
- Table data end]
Loop through each event.
For each row in the array, it:
- Identifies the calendar by its ID
- Creates an event using values from each row
e[0]→ Titlee[2]→ Start Datee[3]→ End Date
Run the script.
Hit “Run” and all your events show up in the calendar like magic. Batch created, zero dialog boxes involved.
I did get an error about creating too many events in a short time. Classic me—breaking things by doing them too fast. I’ll probably add a short delay inside the loop next time to fix that.

Office Lunch
That day, I wasn’t in the office long. But I did get to enjoy one of the underrated perks of being there: lunch with coworkers.
I’ve written before about how isolating the tour guide role can feel—sometimes like you’re on your own little island. Funnily enough, I ended up grabbing lunch with coworkers who were literally from island nations. It wasn’t planned, just happened naturally.
We went to Saizeriya, a beloved Japanese family restaurant. Cheap, fast, nostalgic. I ordered the usual, and we talked about everything and nothing. It was nice.
Other Office Tasks
After lunch, I stuck around the office to help with a few random tasks. Nothing major. Just lending a hand.
When I finally got home, I was wiped. Completely out of energy. I had planned to keep researching Apps Script that evening, maybe even clean up the next version of the function—but my brain said no. I passed out instead.
Next Steps
Still, I’m excited. I’ve been getting back into building small tools that make my life easier. It’s weirdly satisfying. And honestly, that “lazy person” mindset? I think it’s starting to work for me.
One simple script. One easier way to see my life coming together. Not bad for a sloth.
