Group Lessons, Event Payment Plans, and a Google Calendar Sync We Rebuilt From Scratch
Group lessons and event payment plans are live, cloning finally works for memberships and categories, and support now knows who you are before you type. Underneath that, 134 fixes: a Google Calendar integration rebuilt from the authentication layer up, a long list of sign-in problems closed, and duplicate roster players cleaned out of the facilities that had them.

Our last update was a big one: Reports v3, rebuilt messaging, registration insurance. This stretch is shorter and split in two. A handful of things you've been asking for went live, and behind them we spent most of two weeks on the unglamorous work that decides whether your Tuesday goes smoothly.
Here's both halves.
Group lessons are live
You can now run group lessons in Baseline as their own thing, instead of bending private lessons or events into the shape of one. Facilities running small-group training, position clinics, and skills sessions have been asking for this for a while.
Why we prioritized it
Event payment plans
Families can now split an event across a payment plan at checkout rather than paying the full amount up front. For camps, tournaments, and anything with a number large enough to make a parent hesitate, this removes the reason to hesitate.
It's the same mechanism already running on team registrations and membership enrollments, now pointed at events — with the same failed-payment recovery and card-updater behind it.
Cloning that actually saves time
You can clone memberships and clone categories now. If you've ever built the same membership five times with one field different, you know exactly how much of your week this gives back.
Programming picked up two things
You can adjust all of an athlete's future workouts at once instead of editing them one at a time. Exercise durations no longer come through at unrealistic values.
There's also a new set of note alerts. Admins get notified when a note is created or updated, both in an athlete's stats profile and in post-workout notes, with deduplication so identical notes don't fire the same alert over and over. Workout alerts now go only to the person who prescribed the workout rather than everyone nearby.
Support moved into the platform
We finished the work connecting your session to our support tooling. Your conversation history follows you when you log in, your account context is already there when you start a chat, and you don't have to re-explain who you are and which facility you're calling about.
The grid got faster to work in
Two real improvements. You can switch the grid between 30-minute and 15-minute resolution, and the time range now respects your operational hours instead of showing you a full day you don't use.
Now the other half.
Google Calendar sync, rebuilt
When we last wrote, the Google Calendar rebuild was live in testing with a handful of facilities. It's now running for more than 40, with the rest rolling out behind it.
This was not a patch. We rebuilt the integration from the authentication layer up, across 22 separate releases.
What was broken. Events appeared twice, or half of them didn't appear at all. Invites needed multiple acceptances. Events only synced if at least one attendee had opted into Google invites, so most of your schedule never made it across. Events synced on future changes but not when you first connected, which meant a new connection looked empty. When an admin disconnected their Google account, every event ID tied to that service account got wiped. Duplicating a facility duplicated its service account with it.
What's different now. Bookings create a Google Calendar event automatically and cancellations delete it, with the event verified before every write so we stop creating ghosts. Events use your facility's timezone, not the timezone of whoever happened to be logged in. You can batch-sync existing events from your profile page instead of waiting for them to trickle in. Connection failures write real error codes and update the connection status, so a broken sync shows as broken instead of quietly doing nothing.
We also fixed what happens when Google pushes back. High-volume facilities were hitting quota limits and getting 403s. There's now a proper job queue with per-event rate limiting, custom limits for events with large attendee lists, and a 24-hour cooldown before retrying a blocked account instead of hammering the API.
OAuth got its own pass: a dedicated connection page, callbacks that return connection status, verification that only connected service accounts can trigger calendar calls, and a clean return to Baseline when a setup is cancelled or fails.
Sign-in, again and properly
Sign-in problems are the ones that generate a phone call, so we chased down every report we had.
The login spinner that never resolved is fixed. The CoAlias redirect issues behind inconsistent sign-in behavior are fixed. Sign-in on auth.baselinepro.com is fixed. Users at two facilities who kept getting bounced out of their profile page have a patch in place while we finish the root-cause work.
On mobile, admins at one club can log into the Android app, users at another can sign in from their phones, and we shipped and verified Android build 1.0.3. Admins who belong to a lot of organizations get a searchable list at sign-in instead of a button pushed off the bottom of the screen.
One long-standing edge case is finally closed: if the same person existed in multiple accounts under one phone number but different email addresses, they couldn't sign into their migrated account. They can now.
Teams and rosters
A registration bug at several facilities was creating duplicate and blank players from link registrations. We fixed the cause, then identified every affected facility, backfilled the corrupted records, and sanitized the leftover roster player data. If you saw phantom players on a roster this month, they should be gone.
Team Builder no longer loads blank team data. Roster builder decline messages now include linked users, so a parent declining for one child doesn't leave you guessing about the other.
Waivers and PDFs
Waivers were leaking across tenants in one view. That's closed. Signed waivers no longer appear multiple times in a parent's profile, and the waiver checkbox in registration is no longer preselected and unclickable.
Waiver PDFs sent to the signee were losing their text formatting, because formatting was being stripped before the document was generated. Fixed on both ends. Long PDFs that used to cut off mid-document with no way to scroll to the bottom are paginated now.
Messaging and notifications
Scheduled text messages that showed as sent but never arrived are delivering. Phone numbers no longer flip to “Not Found” in scheduled texts. Twilio verification issues are resolved.
Admin notifications that quietly stopped sending on June 3 are sending again, and the notification box at the bottom of the admin portal works. Admins with signup notifications enabled are getting event signup emails again.
Scheduling correctness
Beyond the new resolution controls, the grid lost a few sharp edges. Click and drag works properly again, and the hours menu no longer overlaps the grid and features tabs.
On the correctness side: the grid was showing trainers and features belonging to other facilities, the public grid was ignoring hidden event information settings, and the public grid facility filter was opening the wrong location. All three are fixed. Unselecting one event in a series no longer removes the whole series, and the lesson booking calendar no longer shows dates a day off.
Around the facility
- Facility settings: insurance no longer appears twice, and you can clear an uploaded image.
- Individual page SEO settings stay put instead of reverting to site-wide values.
- The events page loads results automatically.
- Reporting has a working exit back to the admin portal.
- The user admin page stopped flickering and re-rendering.
- The users joined filter sorts by join date.
- Auto-collection disabled pagination advances past the first page.
- Clicking a membership from an event loads the membership instead of a blank screen.
- Event registration pages no longer go dark after the browser back button.
- Feature pictures stay saved.
- Admins appear in the AI payroll report trainer list.
- Campaign link popup toggles save.
- Athletes exiting a workout no longer land in the backend exercise list.
- Parent contact info loads when switching from an athlete's profile.

The Secrets of Scaling to a $1M Sports Training Facility
Group training and payment plans aren't small features — they're two of the clearest dividing lines between $1M facilities and everyone else. We analyzed what the top 7% run that smaller operations don't.
Read the studyWhat's next
The Google Calendar rollout continues until every facility is on the new sync. The mobile app is through MVP wrap-up and in submission prep. Timezone handling has a temporary patch in place at the facilities that reported problems, and the permanent fix is in progress.
Most of this list started as a bug report
If you're already on Baseline, these updates are live. If you're not, you can see the platform at baselinepro.com or check pricing and packages.
Run your facility. Not your software.
Baseline is the all-in-one operating system for sports facilities, clubs, and travel teams — scheduling, payments, programming, and team management in one platform.
Keep reading

The Secrets of Scaling to a $1M Sports Training Facility
Only 7% of sports training facilities ever reach $1M in annual revenue. Drawing on operator data presented at the ABCA convention, here are the patterns that separate them — and the myths that don't matter.

The State of Youth Team Registrations: What Club Sports Costs, How Parents Say Yes & Where the Money Moves
We analyzed 65,000+ roster spots and $85.7M in team fees across 337 club businesses in 49 states. What a season really costs by age and state, the $300 deposit standard, the ~15-point collection tax on cash-and-check dues, the 3x recollection gap between clubs — and the one screen where families pause on the way to a completed registration.

The Economics of a Sports Facility: How Busy Is Busy, What a Space-Hour Is Worth, and How the Packed Facilities Got That Way
We analyzed 888,000+ bookings, 863k space-hours, and $126M in payments across hundreds of sports facilities. Real utilization benchmarks (facilities are spiky, not empty — 2 in 3 sell out prime hours while averaging ~19% occupancy), rentals vs lessons vs group economics, the true lesson margin after trainer splits, credit-pack accounting, seasonality by category, and the occupancy ladder from quiet to packed.