Paulo Silva

March 14, 2025

Reserve with Google and the transition to Google Appointments

For a few years, sheerME had an integration with Reserve with Google, allowing users to book beauty and wellness services directly from Google Search and Google Maps. This integration, built using Ruby on Rails, enabled a seamless booking experience without leaving Google's ecosystem. However, Google eventually deprecated this integration, forcing us to migrate to their new Google Appointments model. This post details how we built the original integration, how it functioned, and how we transitioned to the new model.


The Reserve with Google Integration

The original Reserve with Google integration required a three-step approach:

1. Generating and Transmitting Feed Files
To keep Google updated with the latest data, we needed to create JSON feed files containing:

  • Merchants (beauty salons, spas, etc.)

  • Services (haircuts, massages, manicures, etc.)

  • Availability (available time slots)

These files were generated every 24 hours and transmitted via FTP using a Heroku Scheduler job running a Rake task.


2. Handling Booking Requests from Google
Once Google had the feed data, users could book appointments directly within Google Search and Maps. Our system needed to support Google's API by exposing endpoints for:

  • Creating a booking
  • Updating a booking
  • Fetching a booking
  • Canceling a booking

These endpoints allowed Google to communicate with our system in real time to manage appointments.


3. Real-Time Updates
While the daily feed ensured a baseline of accurate data, bookings could change dynamically. Any time a user modified their reservation on sheerME, we needed to notify Google immediately. This was done by calling Google's API to update the date/time of the appointment, ensuring Google always displayed the correct information.

This integration functioned well for a couple of years until Google announced the sunset of Reserve with Google, replacing it with Google Appointments.


Migrating to Google Appointments

The transition to Google Appointments brought significant changes to how sheerME's booking system interacted with Google.

Key Differences from Reserve with Google:

  1. No Booking API Endpoints Required
    Unlike Reserve with Google, we no longer needed to create booking-related endpoints on our side. Google no longer managed reservations directly.

  2. No Real-Time Updates
    Since Google was no longer handling bookings, we didn’t have to push real-time updates when users modified appointments.

  3. Simplified Feed Structure
    We still needed to generate feed files for:

    • Merchants (business listings)
    • Services (available offerings)
    • Actions (click-out links to sheerME)

  4. However, the availability feed was no longer required.

  5. Redirecting Users to sheerME
    Instead of completing the reservation on Google, users clicking “Book Now” would be redirected to sheerME's web app to finalize their booking.


Implementation

The new integration still relied on daily feed file generation, but with fewer requirements. We adapted our existing feed generation logic, removing availability and modifying the format to match Google's new specifications. The click-out action ensured that sheerME remained the primary platform for bookings, improving direct user engagement.


Lessons Learned

1. Be Ready for Change
Third-party integrations, especially with tech giants like Google, can change at any time. Having modular and flexible architectures helps in adapting quickly.

2. Ownership of User Experience Matters
While Reserve with Google offered convenience, it meant users didn’t directly interact with sheerME until after their booking. With Google Appointments, we regained control of the booking flow, allowing for better branding, upselling, and customer engagement.

3. Automate Where Possible
From daily feed file generation to scheduled tasks, automation played a crucial role in both integrations. Using Heroku Scheduler and Rake tasks allowed us to ensure data consistency with minimal manual effort.


Final Thoughts

Migrating from Reserve with Google to Google Appointments was a major shift, but it ultimately streamlined our operations and improved direct engagement with users. While we lost the seamless booking experience inside Google, we gained better control over our customer journey.

If you’re integrating with external platforms, always consider how changes in their policies or APIs might affect your system—and be ready to adapt quickly.

About Paulo Silva

Software Engineer specialized in product development with Ruby on Rails. I help companies turn bright ideas into amazing digital products — I've worked on InvoiceXpress, ClanHR, Today and currently sheerME.