Walla → GCal Sync
My yoga studio uses Walla for class bookings, but there's no good way to get those classes onto your actual calendar. So I built a script that does it automatically.
Walla is a booking platform used by a lot of yoga, pilates, and fitness studios. It works fine for booking classes, but there's no way to sync your schedule to Google Calendar. You end up checking two places or just forgetting about a class you booked.
This Python script fixes that. It runs quietly on your Mac every 30 minutes, checks your Walla account for upcoming bookings, and creates Google Calendar events for each one. If you cancel a class in Walla, it removes it from your calendar too. It tracks state locally so it won't create duplicates.
It's macOS-only because it uses Keychain for secure credential storage and launchd for scheduling. Setup takes a few minutes — you need to grab your studio's integration ID from their website and set up a Google Cloud project for Calendar API access.
How It Works
Find your studio's integration ID
Open your studio's schedule page, check the Network tab in Dev Tools, and look for the integration-id header in requests to api.hellowalla.com.
Set up Google Calendar API
Create a Google Cloud project, enable the Calendar API, set up OAuth credentials, and download the client JSON file.
Run setup
The setup command asks for your Walla email, password, and integration ID. Your password goes into macOS Keychain, then it opens a browser for Google auth and runs an initial sync.
Install the launchd job
Copy the included plist to ~/Library/LaunchAgents and load it. The script runs every 30 minutes in the background — bookings show up on your calendar automatically.
Features
Background Sync
A launchd job runs the script every 30 minutes. New bookings appear on your Google Calendar automatically — no manual "add to calendar" step needed.
Cancellation Handling
Cancel a class in Walla and it disappears from your Google Calendar. State is tracked locally so it won't create duplicates.
Secure Credentials
Your Walla password is stored in the macOS Keychain — not in a config file. Google auth uses standard OAuth with auto-refreshing tokens.
Rich Calendar Events
Events include the class name, instructor, studio name, full address, and a 1-hour advance reminder.
Requirements
- macOS (uses Keychain for credential storage and launchd for scheduling)
- Python 3.9+
- A Walla account (you book classes at a studio that uses Walla)
- A Google account
Quick Start
$ git clone https://github.com/lizzy-schoen/walla-gcal-sync.git
$ cd walla-gcal-sync
$ python3 -m venv .venv
$ .venv/bin/pip install -r requirements.txt
$ .venv/bin/python3 walla_gcal_sync.py --setup
See the README for full setup instructions, including how to find your studio's integration ID and set up Google Calendar API credentials.