Building My First Custom Appointment App (Calendly + Brevo + Bolt)
Alright — here's one of those projects that started simple and turned into a full-on rabbit hole.
I needed a way for one member of my team to book appointments on behalf of someone else, using Calendly. Sounds easy, right? But I wanted it to go a bit further — automatically detect the client's timezone, adjust the available time slots, and send out a clean, branded confirmation email that didn't look like it was spat out of a robot.
So here's what I did.
Step 1: The Email Template
I first wrote the email using ChatGPT (of course). It had to look professional but still sound human — something that fits our style at Sentra Capital. Once I was happy with that, I moved on to the fun part.
Step 2: Building the App in Bolt
I built the whole interface in Bolt, which let me connect to the Calendly and Brevo APIs. The person doing the booking just:
- Selects the client's timezone (for example, "Kuala Lumpur" or "London").
- Chooses how many days ahead to look.
- Loads the available slots directly from Calendly.
- Fills in the client's name, email, and phone number.
- Previews the email.
- Sends it via Brevo (cc'ing the advisor taking the meeting).
It's smooth, quick, and removes a ton of room for human error.
Step 3: API Headaches (a.k.a. The Struggle)
The hardest part was getting Calendly and Brevo to talk properly. The APIs love to throw errors when you least expect it — and Brevo especially likes to suspend new accounts just for fun.
At one point, I thought I'd broken everything, but eventually it started behaving again. It's running fine now (touch wood).
Step 4: The Result
Here's what it looks like so far:

It's clean, dark-themed, and ADHD-friendly — no clutter, just the essentials. The person booking can do everything in one place without bouncing between tabs or time zone converters.
Final Thoughts
It's been a lot of "trial and error", but that's the fun of building tools like this. You start with an idea, fight through a few API meltdowns, and end up with something that actually saves everyone time.
Next up, I'll probably integrate live timezone detection and maybe even build a dashboard that tracks all appointments across brokers in real time.