ME
Case study
Zoe Mazzanti Make Up
Online Booking Web App
A full-stack booking web application built for a professional makeup artist, enabling clients to self-schedule appointments seamlessly based on dynamic Google Calendar availability.

Overview
About the project
This custom booking web app was built for makeup artist Zoe Mazzanti to replace a slow, manual scheduling routine with a clean, fully automated self-service experience.
Instead of relying on rigid, costly third-party platforms, the application acts as a smart layer on top of her everyday tools—Google Calendar and Google Sheets. It gives clients an intuitive, mobile-first interface to book available slots in under a minute without back-and-forth messaging.
The problem
Friction in manual appointment scheduling
Coordinating appointments over WhatsApp and Instagram direct messages created persistent operational bottlenecks: frequent availability queries with delayed replies, high risks of schedule clashes, and the repetitive hassle of manually confirming bank transfer deposits before blocking calendar dates.
The solution
Real-time calendar sync & client self-booking
I engineered a lightweight web app that connects directly to Google Calendar as the single source of truth for availability, using Google Sheets as a zero-maintenance CMS. The system analyzes live schedule blocks labeled "Disponible", verifies conflicts against existing events, computes start times according to each service's duration, and collects deposit slips directly during booking.
The app is deployed on Vercel with an iframe wrapper that removes third-party branding, giving the artist a fast, professional, and branded link for her social profiles.
Key features
- Live calendar syncBlocks marked "Disponible" in Google Calendar immediately surface as bookable slots.
- Conflict & overlap preventionExisting events and blocked hours are cross-referenced in real time to rule out double bookings.
- Dynamic duration calculationsAppointment start intervals automatically adjust based on the selected makeup service.
- Integrated deposit verificationClients upload their bank transfer receipts directly during the checkout flow.
- Google Sheets CMSAllows the artist to edit service names, descriptions, prices, and durations with zero code.
- Mobile-first booking flowA responsive, fast-loading experience built specifically for clients booking via Instagram bio links.





Engineering
Technical highlights
The availability engine
The Google Apps Script backend executes a two-stage filter: it fetches active schedule windows, discards slots colliding with existing busy calendar events, and maps valid appointment intervals matching the selected service duration.
Iframe masking & UX
A custom Vercel wrapper masks standard Google Apps Script interface elements, preserving full client functionality within a clean, custom-domain branded layout.
// Overlap detection logic
var isBusy = ocupados.some(function(o) {
return (current < o.getEndTime() && slotEnd > o.getStartTime());
});.iframe-wrapper {
position: absolute;
top: -55px;
width: 100%;
height: calc(100% + 55px);
}Serverless receipt handling
Payment screenshots are converted to Base64 on the client side, rebuilt as Blobs in Apps Script, and dispatched directly to the artist's inbox using MailApp alongside booking metadata.
Connected productivity tools
Google Sheets acts as an effortless database for service rates and details, while Google Calendar automatically keeps scheduling aligned with the artist's real day-to-day agenda.
Result
Impact
The application replaced repetitive 15-minute message exchanges with a 30-second automated booking experience. It completely eliminated double-booking errors and lifted the administrative weight of manual transfer reconciliation.
For clients, it turned booking into a modern, immediate self-service interaction. Architecturally, it proves that everyday business tools can power a high-performance scheduling platform with zero monthly software subscription overhead.
Takeaways
Skills demonstrated
Future improvements
- Automated appointment reminders via WhatsApp or SMS.
- Client booking history lookup and saved details.
- Direct integration with local checkout and payment gateways.
