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.

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.
A toggleable 'Minimize Gaps' setting that clusters online bookings around existing appointments, giving providers control over their schedule density with a single configuration.
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.
This is costing me so much time and money. It doesn't help to have clients book online if I have to go in and adjust the appt times to avoid gaps in my schedule.
THIS 100x YES PLEASE. My team has to constantly put awkward blocks in their schedules to force appointments to be set in particular spots which is a LOT to stay on top of. Jane App has this implemented and its incredible.
There needs to be a way to cluster appointments instead of spreading them out. Otherwise, I have to text the client to offer them other times and it really takes away from the experience of online booking.
Please add this feature. Currently I am creating personal tasks to realize an optimized schedule. This directly impacts income.
Currently at 510 votes and years have gone by without this feature. This will be the #1 reason I leave to use another software company.
We need this! Other systems do this and I've thought about leaving just because this feature is so valuable.
We are seriously already looking at other scheduling platforms with smart scheduling. It doesn't matter if we choose 15, 30, 45, or 60 min increments. Vagaro doesn't have smart scheduling.
Minimize gaps, show online books only before and after booked appointments. I'm getting ready to change providers. We need this now!
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
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.
What Do Users Want?
Reading 245 user requests revealed two distinct needs:
Avoid Large Gaps
Hours of dead time
Avoid Small Gaps
Slots too short to fill
How each gap type looks in practice
Large gaps of unused time
Small gaps of unused time
Interactive Prototype — Lovable
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.
“Simplify the experience, the flow feels overly complex for end users”
Stakeholder feedback“The cognitive load for this seems to be too high”
Stakeholder feedback“Focus on a fast, low-scope launch; can expand in Phase 2”
Stakeholder feedbackStakeholder feedback pushed for a simpler first release
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.

System Considerations
Two system interactions that shaped the design
Minimize Gaps doesn't operate in isolation. It intersects with two existing systems (the Appointment Search Limit and the Automated Wait List) in ways that required deliberate design decisions.
Interaction 01
Appointment Search Limit
Appointment Search Limit (ASL)
The maximum number of bookable timeslots customers can see at a time on the listing page.
Minimize Gaps determines which slots are eligible. ASL then controls how many of those eligible slots are shown.
When settings interact
ASL ≥ Minimize Gaps
Minimize Gaps takes precedence
ASL < Minimize Gaps
ASL takes precedence, truncates the pool to the next available slots
Slot visibility with ASL = 4
Settings: Appointment Duration 30 min · Avoid Gaps Longer Than 1 Hour · ASL 4
Interaction 02
Minimize Gaps and the Automated Wait List
Minimize Gaps Enabled
Reduces the number of visible slots shown to customers online
Fewer slots visible
Downstream Impact
Automated Wait List has fewer slots available to match against
Reduced fill opportunities
Design Consideration
Tradeoff acknowledged
Accepted: The efficiency gains outweigh the reduced fill rate
Impact
3,000+ businesses enabled the feature in the first week
93% of surveyed users said it meets their needs.
User Satisfaction
93% of surveyed users rated the feature positively and said it meets their scheduling needs.
Projected idle time reduction
Projected 15-20% reduction in idle time between appointments for providers who enable the setting.
Projected churn impact
Projected reduction in churn among providers who cited scheduling gaps as their top reason to leave.
Businesses enabled the feature in the first week
Across Vagaro's 220,000+ service provider base, adoption in the first week alone signaled strong product-market fit for the scheduling improvement.
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.