
Minimize Gaps: Turning Idle Schedules into Revenue for 220,000+ Service Providers
Designing a smarter scheduling system that clusters online bookings, reduces provider downtime, and directly addresses Vagaro's top retention risk.
Problem: Vagaro's online booking system scattered appointments across the day, leaving providers with hours of idle time they couldn't fill. Users were vocal about it: 1,700+ votes, 245 comments, and explicit threats to switch to competitors who already solved this.
Solution: A toggleable "Minimize Gaps" setting that clusters online bookings around existing appointments, giving providers control over their schedule density with a single configuration.
Result: 3,000+ businesses enabled the feature in the first week. 93% of surveyed users rated it positively. Projected 15-20% reduction in idle time between appointments.
THE BUSINESS OPPORTUNITY
Gaps in the schedule were costing providers real money
Every hour of idle time between appointments is revenue a provider never gets back.
Vagaro serves appointment-heavy industries like hair, nails, medspa, and massage, where income is directly tied to how many clients a provider sees in a day. When online bookings land scattered across the calendar, providers end up with hours of dead time they can't fill.
The workarounds were painful: manually blocking time slots, texting clients to offer different times, creating fake personal tasks to force bookings together. And the churn risk was explicit. Users named competitors and said this missing feature was their top reason to leave.


GOAL
Turn idle hours into bookable time without restricting client flexibility
Give providers control over their schedule density
The goal was to
Reduce idle gaps between appointments for providers who enable the feature.
Preserve client choice so booking doesn't feel restrictive or unavailable.
Keep configuration simple enough that any business owner can set it up without support.
RESEARCH
Reading 245 user comments revealed two distinct problems, not one
Synthesizing feedback and competitor patterns to reframe the problem space before designing.
I categorized all 245 Uservoice comments and found a clear split: 70% wanted to avoid large gaps (hours of dead time), while 30% wanted to avoid small gaps (slots too short to fill). These are different scheduling problems requiring different logic.
Competitor mapping confirmed this. GetTimely and Jane App solve large gaps. Acuity and MassageBook tackle small gaps. No one offered both.
I built an interactive prototype using Lovable to simulate how different gap thresholds affect available time slots. This wasn't for usability testing. It was a decision-making tool that made abstract scheduling logic concrete for stakeholders.
DESIGN JOURNEY
From two modes to one toggle in three iterations
Scoping a competitive advantage into a shippable first release without losing the strategic vision.
Initial design offered both gap types with granular controls
Translating the "offer both" competitive insight into a settings panel.
Based on discovery, I designed a panel with two selectable modes: "Avoid Long Gaps" and "Avoid Short Gaps." It included a gap time threshold, employee selection, a personal task checkbox, and a fallback option to show additional booking times when suggested slots didn't work for clients.
This reflected the full scope of what users were asking for.
Stakeholder feedback pushed for a simpler first release
Industry templates, live preview, and advanced options like formulas and date reminders
Three pieces of feedback reshaped the scope.
"Simplify the experience, the flow feels overly complex for end users."
"Standardizing personal tasks is challenging due to varied use cases."
"Focus on a fast, low-scope launch; can expand in Phase 2."
I used the 70/30 data to make the scope cut defensible: ship the large-gap solution first (70% of demand), protect "Avoid Short Gaps" as Phase 2. This kept the competitive positioning intact as a roadmap story while delivering value fast.
Final design reduced the UI to its essentials
A single toggle backed by smart clustering logic and sensible defaults.
The final design stripped away the dual-mode selection: one toggle, one gap threshold dropdown ("Avoid Gaps Greater Than"), and an employee selector. When enabled, the first client to book on an empty day sees full availability. Once that first appointment lands, subsequent clients only see slots grouped around existing bookings.
For the personal task complexity stakeholders flagged, I defined three default rules instead of building a configuration UI:
Only personal tasks on the calendar? Don't cluster.
Appointment plus personal tasks? Cluster around both.
Personal tasks outside working hours? Ignore.
IMPACT
3,000+ businesses enabled the feature in the first week
93% of surveyed users said it meets their needs.
10,000 businesses adopted custom fields in the first month after launch.
93%
User Satisfaction
15%
Projected idle time reduction
3%
Projected churn impact
REFLECTION
The best product strategy is knowing what to ship now and what to protect for later
Letting user data drive every scope decision across a 2-week timeline.
Building the interactive prototype to simulate scheduling logic was a new use case of AI tooling for me.
The bigger lesson was about prioritization: the 70/30 split gave me a defensible rationale for cutting scope without losing the strategic vision.
Phase 2 already has a clear next step, starting with a way for clients to discover alternative times when their preferred options aren't available.
