Skip to main content

Scheduling

~30%
no-show rate without confirmations
Service businesses without automated reminders see roughly 1 in 3 booked appointments missed — every no-show is a half-day of crew time burned
2 hrs/day
wasted on manual dispatch
Dispatchers without route-aware scheduling spend ~2 hours daily rebuilding routes after every new booking or cancellation
24h before
is the reminder sweet spot
Reminders sent 24 hours before reduce no-shows ~40%; a second reminder at 1 hour adds another ~15%
Customer-led
booking lifts conversion
Letting customers pick their own slot via portal/link converts 2-3× higher than a phone tag — the friction of finding a mutual time kills opportunities

The Scheduling module is the calendar at the heart of the operation. Every site visit, estimate appointment, install day, recurring service, and follow-up lives here. It links opportunities, projects, contacts, and crew availability into a single dispatch view. When an opportunity converts, the scheduler is where the appointment lands. When a project starts, the install dates show up. When a recurring plan triggers, the next visit auto-creates.

DayWeekMonthDispatch
Week of May 20 · 18 appointments
Crew
8AM
9
10
11
12P
1
2
3
Mike R.
Lead
Garcia · Site Visit
Patel · Install Day 1
Travel
Sarah L.
Tech
Wilson · Tune-up
Nguyen · Estimate
Chen · Install Day 2
Jose M.
Tech
Johnson · Repair
Holt · Recurring
Unassigned
Pool
Wood · Site Visit ⚠

Appointment Types

The calendar handles distinct appointment types — each carries its own duration default, color, required fields, and downstream side effects.

TypeDefault DurationColorTriggers
Site Visit1 hourSteel blueOpportunity → Qualified stage; estimate often created during visit
Estimate Appointment45 minAmberEstimate doc auto-prefilled; sent to customer post-visit
Install DayVariable (multi-day)GreenLinked to project; crew + materials reserved
Repair / Service Call1.5 hoursSteel blueLinked to existing contact's project history
Recurring Service45 minPurpleAuto-generated from recurring service plan
Follow-up30 minGrayPost-job check-in; triggers review request automation
Internal (training, meeting)VariableSlateNo customer-facing notification

Booking an Appointment

Appointments can be created from four entry points:

1. From an Opportunity

Drag an opportunity card onto a calendar slot, or click "Schedule" on the opportunity card and pick a time. The opportunity advances to Appt Pending until the customer confirms, then Appt Booked.

2. From the Customer Portal (self-service)

Customer opens their portal, sees available slots filtered by service type and crew availability, picks one. The slot is held for 10 minutes while they confirm contact details.

Tradesmen-website embeds a public booking widget. Customer picks a service, picks a slot, enters details — opportunity is created and appointment is booked in one step.

4. Manual (Dispatcher)

Dispatcher creates an appointment directly from the calendar — useful for phone-call bookings or internal scheduling.


Drag-to-Reschedule

The dispatch view supports drag-and-drop rescheduling across both time and crew. Dropping an appointment onto a different time slot triggers:

  1. Conflict check — System verifies no double-booking
  2. Travel time recalculation — Distance and drive time updated between the new slot and adjacent appointments
  3. Customer notification — Optional SMS/email asking the customer to confirm the new time
  4. Crew notification — Push notification to the affected crew member(s)
  5. Audit log — Reschedule logged with timestamp, dispatcher, and reason

Drag-and-drop is also crew-aware: dragging from "Mike R." to "Sarah L." reassigns the appointment and notifies both.


Crew Auto-Assignment

When an appointment is booked without a specific crew assignment, the system suggests an assignment based on:

  • Skill match — Crew certifications and service-type training
  • Geographic proximity — Distance from preceding/following appointments on that crew's day
  • Load balance — Current week's appointment count per crew
  • Customer preference — If the customer has a preferred technician on file
  • Availability windows — Working hours, PTO, time-off requests

The suggestion is shown as a draft assignment with a one-click accept. The dispatcher can override at any time.


Customer Confirmation Flow

Every customer-facing appointment triggers a confirmation sequence:

TimeChannelAction
Immediately after bookingSMS + EmailConfirmation with appointment details, calendar link (.ics), and reschedule link
24 hours beforeSMSReminder with "Reply Y to confirm or N to reschedule"
1 hour beforeSMSFinal reminder with technician ETA and live tracking link
Tech en routeSMS"Mike is on the way — track here" with live GPS link
10 min before arrivalSMS"Mike is 10 minutes out"

Failed customer confirmations (e.g., "N" reply or no response by T-24h) surface in the dispatcher's "Needs Attention" queue.


Recurring Service Plans

For customers on recurring contracts (e.g., quarterly maintenance, monthly cleanings, annual tune-ups), the scheduler auto-generates the next appointment when the previous one is marked complete.

Recurring plan configuration:

FieldExample
CadenceQuarterly / Monthly / Custom (every N days)
Service templateAuto-pre-fills line items from the recurring plan
Preferred day/time"Tuesdays, mornings" — used as a soft constraint
Auto-confirmCustomer is notified but does not need to manually approve
Pause condition"Skip during December" / customer paused

Recurring appointments appear on the calendar in purple and are flagged with a circular arrow icon.


Schedule Health Indicators

The dispatch view surfaces operational risks in real-time:

  • 🔴 Unconfirmed — Customer hasn't replied to confirmation request
  • 🟠 Travel conflict — Drive time between back-to-back appointments doesn't fit
  • 🟡 Material not ready — Required materials still on order
  • 🟣 Permit pending — Job blocked on permit approval
  • Crew assigned not certified — Skill mismatch flagged

Hovering a flag shows the explanation and a one-click resolution path.


Multi-Day Jobs

Install jobs spanning multiple days are scheduled as a single project but appear as linked appointment blocks across the calendar:

  • Day 1, Day 2, Day 3... each shown as its own block
  • Crew assignment can vary per day
  • Hours-budget tracked across the multi-day span
  • Material delivery scheduled to Day 1 by default
  • Customer notification consolidates (one "your install begins May 22" message, not three daily reminders)

Calendar Sync

The CRM calendar can sync to external calendars in two directions:

  • Push to external — Crew members see their appointments in Google Calendar / Apple Calendar / Outlook
  • Pull from external — Personal blocks (doctor appointments, PTO) appear as busy time, preventing double-booking

Sync is per-user and opt-in. Push uses one-way iCal feeds; pull uses CalDAV or OAuth (Google).


Access Control (RBAC)

PermissionOwnerManagerDispatcherTechnicianBookkeeper
View all appointmentsOwn only
Create appointment
Reassign crew
RescheduleOwn (request only)
Cancel appointment
Edit recurring plan
Configure templates