Landscapt (CRM)

Sales Meetings

Booking appointments per sales rep, the double-booking warning, and the split between a rep's direct reminder and the client-facing automation trigger.

Where it is

CRM → Sales Meetings. The page is a single calendar, one column per sales rep, that a manager or the reps themselves use to book and track sales appointments — estimate walkthroughs, follow-up calls, video demos — separately from the operational Dispatch Board, which only ever shows service visits.

Sales reps: who shows up on the calendar

The calendar only ever shows employees explicitly flagged as a sales rep. That flag lives on the employee record, not on their user role — mark someone as a sales rep (and confirm they're marked active) in Team → Employees before they'll appear as a column here. If no employee is flagged yet, the page shows a message pointing you to that same setting instead of an empty calendar.

A rep's color on the calendar is the same map-icon color assigned to them elsewhere in the app (e.g. the Dispatch Board), so a rep who's already color-coded there will look consistent here too.

Day, Week, and Month views

Three view modes, switched with the toggle next to the date picker:

  • Day — one column per rep, hours 7 AM–7 PM down the side. Meetings are positioned and sized by their actual start time and duration. Click any empty slot to book a meeting for that rep at that hour.
  • Week — one row per rep, one column per day (Sun–Sat). Each cell lists every meeting that rep has that day, time-sorted. Click an empty part of a cell to book for that rep on that day.
  • Month — a standard 6-week grid (no rep breakdown). Each day shows up to 3 meetings before collapsing into a "+N more" — click a day to jump straight into Day view for it.

Whichever view is active, its date range is exactly what gets fetched — Day view queries a single day, Week the visible Sun–Sat span, Month the full 42-cell grid — so switching views doesn't pull the whole calendar's history into memory at once.

Booking and editing a meeting

Clicking Book Meeting (or an empty calendar slot) opens the same dialog used for editing — the only difference is whether a meeting was passed in. Clicking an existing meeting opens it pre-filled for editing, including a Cancel Meeting action (a soft delete — canceled meetings still show on the calendar, struck through, until they age out of view).

FieldNotes
Sales Rep *Required. Only employees flagged as a sales rep (and active) appear in this list.
Client / Lead NameEither pick an existing client, or leave it unset and type a free-text lead name for a prospect who isn't in the system yet. A meeting can't have both — picking a client hides the lead-name field.
Title *Free text, e.g. "Estimate walkthrough".
Meeting TypeIn Person, Phone, or Video — label only, doesn't change any behavior.
Date / Time / Duration *Duration is in minutes (5-minute increments). Together with the start time, this defines the window used for the double-booking check.
LocationFree text — an address or a video-call link, whichever fits the meeting type.
Link to Estimate / Link to TicketOnly shown once a client is picked. Each is scoped to that client's own estimates/tickets.
NotesFree text, staff-only.

The double-booking warning

Right before saving, the dialog checks whether the picked sales rep already has another non-canceled meeting whose time window overlaps the one you just set — same rep, overlapping start/end times, computed from each meeting's start time plus its duration. The check is scoped to just the picked day, so it stays a light query rather than re-fetching the whole calendar on every keystroke.

This is a warning, not a block. If a conflict is found, you still see a toast naming the conflicting meeting and its time — but the save goes through regardless. This mirrors the same-class overlap warning on the Dispatch Board: sales reps sometimes deliberately double-book (a quick call squeezed into a longer walkthrough), so the app flags it for a second look instead of refusing to save.

Editing a meeting excludes that same meeting from its own conflict check — moving a meeting 15 minutes later won't falsely warn that it conflicts with itself.

Meeting status

StatusMeaning
ScheduledThe default state for a newly booked meeting. Shown in brand color on the calendar.
CompletedThe meeting happened. Set from the meeting's status dropdown after the fact — nothing advances it automatically.
CanceledThe meeting was called off. Shown struck through on the calendar, and excluded from the double-booking check.
No ShowThe client/lead didn't show. Purely informational — doesn't affect reminders or automations.

Reminders: rep vs. client

Two independent things happen 60 minutes before a scheduled meeting, run by a background job every 15 minutes:

  1. The rep's own reminder — always fires. The assigned sales rep gets an in-app notification and an email (each can be turned off individually in Settings → Notifications) regardless of whether the meeting has a client, a lead, or any automation configured. A rep should always know their day is coming up.
  2. The client-facing automation trigger — opt-in, client-only. If the meeting has a linked client, a Sales Meeting → Meeting is coming up trigger becomes available in the Automations builder. Build a sequence on that trigger to send the client their own reminder email or text. It only fires within that automation's own configured lead time (in minutes), which doesn't have to match the rep's fixed 60-minute window. A meeting with no client — a new-lead meeting — can't be enrolled in this automation at all, since Automations is entirely client-scoped; the rep still gets notified directly either way.
Both paths dedupe against the same 15-minute cadence so a meeting doesn't get re-notified on every tick within its reminder window — see the reschedule note below for the one case that intentionally re-arms it.

Rescheduling and the reminder reset

Once a meeting's reminder has fired, it's marked so the background job won't send it again. If you then change the date or time, that mark is cleared so the reminder can fire again for the new time. Editing anything else on an already-reminded meeting — notes, title, the linked estimate — leaves the mark alone, so a reminder that already went out for the correct time doesn't get needlessly resent just because someone added a note.

See also

Meetings created here can link to an existing estimate for the same client — see the Estimates & the Budget Engine guide for how an estimate itself is built and priced. For the client-facing reminder sequence itself, see the Communication Automations guide for how triggers, sequences, and enrollment generally work.

More in Landscapt (CRM)

Clients, Properties & Leads
Client accounts, commercial hierarchies, service properties, and the activity timeline that ties it all together.
Estimates & the Budget Engine
How an estimate is built, how its numbers are actually calculated, and how it becomes a job.
Jobs & Packages
The six job types, how a job's status differs from a visit's status, and how a Package template turns into a billed job.
Services & Pricing
The service catalog, bulk catalog price changes, and Price Adjustment runs — which prices seed new work and which ones actually bill.
The Dispatch Board
The daily scheduling screen crews and dispatchers live in — visits, crews, status, and how actual hours get calculated.
The Crew App
What a crew sees on their phone — the day's stops, clocking on and off, breaks, photos, and sending work back to the office.
The Waiting List
Jobs with a date range instead of a date, held for opportunistic scheduling — and how to actually get them dispatched.
Snow Jobs & Storm Dispatch
Storm events, priority dispatch, and the invoicing flow built specifically for snow.
Invoicing & Payments
How an invoice is born, how its status moves, and where the client's own PO number actually goes.
Contracts
Ongoing billing agreements — monthly amounts, seasonal overrides, sub-properties, and how signing and invoicing actually work.
Communication Automations
How sequences, triggers, and events work — and how Automations differ from Sales Campaigns.
Forms & Lead Capture
Building, publishing, and sharing public forms — and what happens to a submission once it lands.
Tickets
Support and service tickets — where they come from, how they're worked, and how they connect to the rest of a client's record.
Damage Cases
Tracking property damage and warranty claims tied to a job — what a case captures, how cost rolls up, and a real current limitation in how it connects to a client record.
Job Photos
Field photo documentation, annotation, and before/after comparisons — attached to a job site, not a person.
Online Payments & Stripe
How a client actually pays an invoice online, how Stripe Connect keeps every org's money in their own account, and how the platform takes zero cut.
Browse all guides
© 2026 Landscapt. All rights reserved.