Product spotlights
Shop Scheduling Software That Never Double-Books

The short version
- Service VIN's calendar — month, week, and map views — lets you drag jobs to reschedule, optimistically, in your shop's own timezone.
- A single-capacity bay literally cannot be booked twice at the same time. It's enforced by a database exclusion constraint, not a warning popup you can click past.
- Service categories are color-coded, and an unscheduled tray holds accepted jobs that don't have a slot yet, so nothing falls through the cracks.
- Two-way Google Calendar sync keeps the schedule you promise and the one your crew sees identical.
- Calendar and bay scheduling are in the core product from the Essentials plan ($79/mo CAD), and every plan starts with a 14-day free trial.
The double-booking problem nobody admits to
Nothing kills a Saturday faster than two cars showing up for the same bay because someone wrote the appointment on a sticky note and someone else wrote it in the group chat. Both customers cleared their morning. Both are standing in your lobby at nine. One of them is about to have a bad experience through no fault of their own, and you get to be the one who explains it. I built my calendar so that can't physically happen — the bay conflict is stopped by a database rule, not by anyone's memory.
Here's the thing owners don't like to say out loud: the double-book is almost never one person being careless. It's the system. You've got a phone booking, a walk-in your installer promised to "squeeze in," a text from a repeat customer, and a shared spreadsheet nobody updates in real time. Four inputs, one bay, and no single place that's actually the truth. When those inputs disagree, the calendar doesn't catch it. A person does — usually the person standing in front of two annoyed customers.
And the cost isn't just that awkward morning. It's the reschedule that pushes a full front install into your already-packed Tuesday. It's the customer who quietly decides you're disorganized and books the next job somewhere else. Trust is the whole game in this trade — people are handing you a car worth more than most of their furniture — and a double-book spends trust you can't easily earn back. We're all installers before we're business owners, so we tolerate scheduling chaos as a fact of life. It isn't. It's a solvable software problem, and it's the first thing I fixed.
Drag-and-drop rescheduling that feels instant
Start with the part that's table stakes, because everyone claims it: you drag a job to move it. On the week grid, each bay is a lane and each booking is a chip. Grab the chip, drop it on Wednesday at nine, and it's there. The move saves optimistically — the calendar updates the instant you let go instead of making you watch a spinner — and if the save fails, the chip snaps back and tells you why. The job keeps its duration and its time-of-day when you drag it, so a two-hour ceramic booking stays a two-hour block. You're rearranging real work, not retyping it.
Two small things make the board readable at a glance, and they matter more than they sound. First, color. Bookings are colored by service category, so a week of PPF, tint, and detail work reads like a chart instead of a wall of identical gray rectangles — you can see the shape of your day without reading a single label. Second, timezone. Everything renders in your shop's timezone, so checking the board from a trade show two provinces over doesn't quietly shift your Tuesday by two hours. Sounds obvious; plenty of tools get it wrong.
Month view is for the overview — is next week slammed or open? Week view is where you actually plan the days. The point of all of it is that the calendar becomes the single source of truth I was complaining about a minute ago. One board. When a booking moves, it moves everywhere. You can read the details of how the whole thing hangs together on the calendar and bay scheduling feature page, but the short version is: stop keeping the schedule in four places and it stops disagreeing with itself.
The bay guard: a rule, not a hope
This is the part I actually care about, and it's the difference between software that helps you avoid double-books and software that makes them impossible. A single-capacity bay in Service VIN cannot hold two overlapping jobs. Not "shouldn't." Cannot. It's enforced by a database exclusion constraint — the data layer itself refuses to store two bookings that overlap in the same bay. If you try to drop a job onto a slot that's already taken, the move is rejected, the chip reverts, and you get told the reason.
Compare that to how most tools handle it: a warning popup. "This bay looks busy — are you sure?" You know exactly what happens to that popup at 4:55 on a Friday when the phone's ringing and there's a squeegee in your other hand. You click past it. A warning is a suggestion you can dismiss, and busy people dismiss suggestions. A constraint is a wall. The whole value is that it holds when you're rushed, distracted, or letting someone new book jobs — which is exactly when double-books used to happen.
Why do it at the database level instead of in the interface? Because the interface isn't the only door into your data. You've got the week grid, sure, but you've also got your online booking storefront taking jobs at midnight, a Google Calendar sync folding changes back in, and whatever gets booked from a phone. If the "no overlaps" rule lived only in one screen, every other door could still walk a conflict right in. Putting it in the database means every path — the grid, the storefront, the sync, an import — hits the same wall. There's one rule, and it's the last word. That's the load-bearing promise of the whole calendar: the schedule you promise a customer is a schedule you can actually keep.
| Item | Paper calendar (/mo) | Bay-aware scheduling (/mo) |
|---|---|---|
| Scheduling clashes | 6/mo | 0/mo |
- 1
Request lands
A booking arrives (online or by phone) and sits in the unscheduled tray.
- 2
Drag to a bay
You drop it on an open bay in the week grid; the color tells you the service at a glance.
- 3
Bay guard checks
The database refuses any overlap on a single-capacity bay — no double-book is even possible.
- 4
Crew + Google sync
The job appears on the crew's board and in your synced Google Calendar.
- 5
Reschedule freely
Cars run long. Drag it later; the guard re-checks and everyone's view updates.
Illustrative flow of a single booking through the calendar.
The unscheduled tray and the map view
Real shops don't book every job the second it comes in. A customer says yes, but you're waiting on a film roll, or you want to group it with the other truck coming Thursday, or you just haven't decided where it fits. In most calendars that job either gets a fake placeholder slot — which then collides with real work — or it gets written on a note and forgotten. Service VIN gives accepted-but-unslotted work its own home: an unscheduled tray at the edge of the grid. The job waits there, visible, until a bay actually opens up. Then you drag it in. Nothing lives on a sticky note, and nothing gets a slot it can't keep.
Then there's the map view, which is for the shops that don't wait for the car to come to them. If you run mobile — a detailer doing driveways, an installer doing fleet work on-site — mark a booking as mobile with a service address and it becomes a stop on the day's map. Service VIN plots your booked stops, measures the route, and when a tighter running order exists, it suggests one with a nearest-neighbour pass and spells out the kilometers saved. You stay in charge: you can drag bookings to re-order the day yourself, then send the whole route to your maps app in a tap. It's the same schedule as the grid, just drawn on a map instead of a timeline — because a mobile day is a routing problem as much as a scheduling one.
Keeping crew, customers, and Google Calendar in sync
A schedule is only worth anything if everyone's looking at the same one. The classic failure is the office running one calendar and the crew checking their phones on another, and the two slowly drift until someone shows up for a job that moved yesterday. Service VIN does two-way Google Calendar sync to kill that drift. Bookings push out to your Google Calendar, and a reschedule made in Google folds back onto the job. Most tools push one direction and call it a sync — this one pulls changes back too, so the calendar on your installer's phone and the calendar running your shop can't quietly disagree.
That's the point of a single board that everything feeds. Your storefront drops new jobs straight onto it. Reminders go out against the same schedule, so a customer's "see you Saturday at 10" text is reading from the same 10 o'clock your crew sees. When the truth lives in one place and syncs outward, the office, the bay, and the customer are never working off three different versions of the day. That's not a luxury — it's the difference between a schedule and a rumor.
Wiring capacity to skills and profit
Once the schedule is trustworthy, you can build smarter things on top of it — and this is where I'll be honest about what's where. The calendar and the bay guard are the foundation, and they're in the core product. On top of that foundation, Service VIN offers profit-ranked AI scheduling: instead of just showing open slots, it can propose booking times that are aware of which bay and which installer's skills the job needs, ranked by what actually pencils out for your shop. That's a higher-tier feature, not an Essentials one — I'm not going to pretend otherwise — but it's worth knowing the ceiling exists.
The reason it can work at all is the same reason the bay guard works: the schedule underneath it is real. A profit ranking is only as good as the capacity it's ranking against. If your calendar tolerates double-books and phantom slots, any "smart" layer is guessing on top of bad data. Get the foundation honest first — one board, a hard constraint, everyone in sync — and the fancier scheduling has something solid to stand on. Foundation before features. Boring, but it's the order that actually works.
Try to break it on purpose
The fastest way to trust the bay guard is to attack it. Load a real week into a trial, then deliberately try to drop two jobs into the same single-capacity bay at the same time. Watch it refuse you, snap the chip back, and tell you why. That thirty-second test tells you more than any feature list — including this one.
What it costs and how to switch
Scheduling isn't a bolt-on you buy later. The calendar, the bay guard, the unscheduled tray, and the map view are in the core product from the Essentials plan at $79/mo CAD. Two-way Google Calendar sync rides along with the rest of the integrations on the Growth plan — I'd rather tell you that up front than have you find it at checkout. Every plan starts with a 14-day free trial that runs on the full product, so you don't have to take my word on any of this — you can load your own week and run the day on it before a card ever touches the account. You can compare the tiers on the pricing page.
Switching over is less painful than the chaos you're switching away from. Bring your customers and history in, put your bays and services on the board, and start dragging real jobs onto real slots. The gravel highways and rock chips keep our paint-protection bays full, and a booked-solid winter is exactly when a double-book hurts most, so this is the kind of thing worth sorting before your next busy stretch, not during it. Get the schedule honest, and you get to go back to being an installer who happens to run a business that doesn't collapse on a Saturday.
Frequently asked questions
Can Service VIN actually stop a bay from being double-booked?
Yes. Single-capacity bays are protected by a database exclusion constraint, so two jobs cannot occupy the same bay at the same time. It's enforced at the data layer, not as a dismissible warning, so the schedule you promise is one you can keep.
Does the calendar work for mobile crews, not just a fixed shop?
It does. Besides month and week views there's a map view that plots your mobile stops and suggests a nearest-neighbour route order, so a mobile detailer or installer can sequence a day of on-site jobs from the same calendar.
Will it sync with the Google Calendar my team already uses?
Yes, there's two-way Google Calendar sync. Changes made in Service VIN show up in Google Calendar and vice versa, so your crew doesn't have to check two places to know what the day looks like.
Which plan includes scheduling?
Calendar and bay scheduling are part of the core product from the Essentials plan at $79/mo CAD. Every plan starts with a 14-day free trial, so you can load a real week and test the bay guard before you pay. (Profit-ranked AI Scheduling is a higher-tier add-on built on the same calendar.)
Gabriel, who runs a working PPF and detailing shop in Canada
Runs a working PPF and detailing shop in Canada · builder of Service VIN
Gabriel runs a working PPF and detailing shop in Canada and built Service VIN. He got his start detailing and wrapping his own car, taught himself color PPF, and spent his day job in digital marketing and SEO before building the shop software he could never find. Six years in, he writes to help other owners get out of the bay and actually run their business.
Keep reading
The newsletter
Get the next one in your inbox
Pricing, quoting, hiring and margin — written from the bay and the books. We send new posts and nothing else.
Run your shop on Service VIN
Quote for margin, book without double-booking, and put your follow-up on autopilot. Try every feature free for 14 days — no credit card required.