Case study
Automated schedule scrape → website sync
We keep a public WordPress schedule in lockstep with a booking platform that has no API
Project overview
Our client's public website had to mirror a live class schedule held in a booking platform with no feed or API — so every week, someone copied sessions across by hand, and the site still drifted out of date. We built a pipeline that scrapes the calendar on a schedule, transforms it into clean rows, and publishes it to WordPress automatically. The public schedule now stays current on its own, removing around five hours of manual updates every month and the customer mix-ups that came with a stale site.
The challenge
Problem: With no API to pull from, keeping the public schedule current meant manually copying sessions out of the booking system every week. It was tedious and the site drifted out of date — risking customers booking sessions that had changed or filled up.
How it works
No API, no problem: the calendar is scraped via headless browser, staged in a sheet, and published to WordPress on a schedule.
Technical implementation
Headless Scraping of a No-API Source
The booking platform exposes no schedule API, so a Browserless headless browser renders its calendar and the workflow scrapes the available sessions directly from the page — turning a closed system into structured data.
Date Generation & Batching
JavaScript generates the date range to check, and the workflow loops over it in batches so the calendar is scraped reliably without overloading the source.
Sheet as a Staging Layer
Results are transformed into clean rows; the staging Google Sheet is cleared and repopulated each run, giving a predictable, always-fresh dataset for downstream publishing.
Hands-Off WordPress Publishing
WP All Import reads the staging sheet and updates the live WordPress schedule, so the public site always reflects current availability with zero manual edits.
Key features
- Runs on a schedule — no manual trigger needed
- Generates the date range to check automatically
- Scrapes the booking calendar via headless browser
- Transforms results into clean, structured rows
- Refreshes a staging Google Sheet each run
- Updates the live WordPress schedule via WP All Import
- Keeps the public site accurate without human edits
Need a system like this?
Tell us where work gets stuck — in one call you'll hear what it takes to remove it.
Impact
Technologies used
Business value
- Public schedule is always accurate
- No weekly copy-paste from the booking system
- Fewer customer mix-ups over availability
- Better try-out conversion from a trustworthy site