Figure out if this is even worth doing
Online booking earns its keep when scheduling is actually costing you something: you're playing phone tag with the same customer three times to land a window, or an estimate call comes in at 9pm and sits until you remember it the next afternoon. If you run one truck and know your week by memory, a booking page is just one more screen to check. If someone in the office is retyping the same three sentences into texts all day (what times are open, what's the address, what's the job), that's the tell.
This guide covers two paths that cost nothing to try: a Google Calendar appointment schedule, and Cal.com's free tier. Both let a customer pick an open slot without a phone call. Neither replaces a real field service platform like Housecall Pro or Jobber if you're already dispatching multiple trucks, that's a bigger system and not worth running alongside a second calendar. This is for the shop that just wants a link to send.
Set up a Google Calendar appointment schedule
If your business already runs on a Google account (Gmail, Google Business Profile, or Google Workspace), you have this feature already. Open calendar.google.com, click Create in the top left, and choose Appointment schedule instead of Event. Google Workspace accounts get the full version; a free personal Gmail account gets a slightly older, more limited version called Appointment slots, but both work for this.
Name it something the customer will recognize, like 'Free estimate' or 'Service call.' Set the duration per appointment (30 or 60 minutes covers most estimate visits), and set the date range you want bookable, a rolling two or three weeks is plenty; you don't need to open your whole year.
Under General availability, set the actual hours you take appointments, not your full workday. If you're on job sites from 8 to 4 and only want booking requests to land in a 10am-2pm window so you're not driving across the county twice, set it that way. This one setting does more to keep your day sane than anything else on this page.
Get the buffer rules right, this is the part people skip
A buffer is the gap Google (or Cal.com) automatically leaves around a booked slot so back-to-back appointments don't assume you can teleport. Without one, a customer can book you at 10:00 and another can book 10:30, and now you're explaining why you're late to both.
In Google's appointment schedule settings, look for Booking window and Buffer time (sometimes labeled minimum notice and gap between appointments). Set a gap of at least 30 minutes between bookings if you're driving between houses, more if your county has long stretches between towns. Also set a minimum notice window, like 4 or 12 hours, so nobody books you for 45 minutes from now while you're up on a roof.
Cal.com's free plan gives you the same three dials under Event Type > Limits: buffer time before and after the event, minimum booking notice, and a daily cap on bookings regardless of open slots. That cap matters more than it sounds, it's what stops a slow Tuesday from turning into six estimates you can't actually get to.
Set the buffer for driving time in the real world, not the fantasy version. If jobs run in Delafield, Oconomowoc, and Hartland, 15 minutes between bookings will wreck your afternoon by 2pm.
Turn on text reminders
Google's appointment schedule sends email confirmations and reminders automatically, no setup needed, but plenty of homeowners don't check email between booking and the appointment. Google Calendar itself doesn't text customers, you'd need to add that piece separately (see the guide on missed-call text-back at /guides/missed-call-text-back for how text automation on a business number generally works).
Cal.com's free tier includes email reminders built in. Text reminders are a paid add-on there, priced by credits you buy as you go, worth it once no-shows are actually costing you money. Try the free version first and see how many people miss the email reminder before paying for anything.
Either way, put your cancellation policy in the confirmation message. One line: 'Need to reschedule? Reply to this email or call/text [your number].' That sentence cuts no-shows more than any reminder timing tweak, because it tells people what to do instead of just not showing up.
Put the link where people will actually use it
Once your schedule is built, Google gives you a shareable booking page URL (something like calendar.app.google/xxxx). Cal.com gives you a cleaner one under your username, cal.com/yourbusiness/estimate.
Add that link to your Google Business Profile (there's an appointment link field under Edit profile > Business information), your website's contact page, and your email signature. Most website builders also let you embed the booking widget directly on a page instead of linking out, check your site platform's embed option.
Text it proactively too. When someone calls asking about pricing before they're ready to commit, 'Here's a link to grab a time that works: [link]' moves them off the phone and into your calendar without you touching it again.
Watch it for two weeks before you trust it
The first two weeks are where you catch what you got wrong: a buffer too short, a booking window that includes a day you're actually closed, a service area someone books from that you don't cover. Check the calendar daily at first, a bad default like a forgotten holiday will quietly fill up before you notice.
Block days off explicitly. Both tools let you mark specific dates unavailable, do this for any day you know you're out. An empty-looking calendar reads as open to software and customers alike.
If bookings come in from outside your actual service area, the page probably doesn't say clearly enough where you work. Add your towns to the schedule's description, the same way you'd list them on your Google Business Profile (see the guide on Google Business Profile setup at /guides/google-business-profile-setup for how that service-area list works).