Appointment Scheduling
Appointment Scheduling in Salesforce is the capability to book, manage, and track customer appointments with a specific person, location, or asset in a defined time slot.
Definition
Appointment Scheduling in Salesforce is the capability to book, manage, and track customer appointments with a specific person, location, or asset in a defined time slot. The platform feature that delivers it is Salesforce Scheduler, formerly called Lightning Scheduler. It is available in Enterprise and Unlimited editions in Lightning Experience, and it lets a business schedule appointments in person, by phone, or by video, with the right person at the right place and time.
Salesforce Scheduler builds on a small set of objects: Service Appointment (the booked appointment), Service Resource (the person or asset being booked), Service Territory (the location or organisational unit), Work Type (the kind of appointment, with a default duration and required skills), and Operating Hours (when appointments can be scheduled). It supports two booking patterns. Inbound scheduling lets customers book their own slot through an Experience Cloud site or your website. Outbound scheduling lets an internal user book on the customer's behalf from the Service Console. Both patterns run through the same scheduling engine, which finds open slots by reading availability, skills, and existing bookings.
How Salesforce Scheduler books an appointment
The objects behind a booking
Every appointment in Salesforce Scheduler is a Service Appointment record. It links the customer to the people and resources doing the work. A Service Resource represents an appointment attendee, usually an employee, and carries that person's skills and territory memberships. A Service Territory represents a branch, region, or virtual location that scopes which resources a customer can book. Work Type acts as the appointment template. It defines the estimated duration, the buffer time before and after, and the skills a resource needs to deliver that service. Operating Hours describe the windows when appointments can be scheduled, and they attach to service territories, territory members, and work types. The Assigned Resource object connects a specific resource to a specific appointment, which is what makes multi-person bookings possible. Understanding this object chain matters because most scheduling problems are really data problems. When a customer sees no available times, the cause is almost always a gap or conflict somewhere in this set of records, not a defect in the scheduling engine itself.
How the engine finds open slots
The scheduling engine calculates available slots by intersecting several constraints. Without shifts, it overlaps the operating hours of the service territory, the service territory member, the work type, and the account. With shifts enabled, it can use a resource's shifts instead of, or combined with, territory operating hours. On top of that intersection it removes time taken by existing service appointments, resource absences, calendar events marked Busy or Out of Office, and holidays. The Work Type controls the shape of each slot through its estimated duration, block time before and block time after the appointment, and the appointment start time interval. Scheduling policy options refine the result further. The engine can check the Salesforce calendar for resource availability, check external systems, and enforce the account's visiting hours. The practical takeaway is that a slot only appears when every one of these layers agrees a resource is free. A single misaligned operating hours record, or one missing skill, can quietly empty the list a customer sees.
A worked slot calculation
Salesforce documents a clear example worth memorising. Suppose Monday operating hours run 8:30 AM to 6:00 PM. The work type has an estimated duration of 120 minutes, a block time before of 45 minutes, a block time after of 15 minutes, and an appointment start time interval of 60 minutes. The engine returns six slots: 10:00 AM to 12:00 PM, 11:00 AM to 1:00 PM, 12:00 PM to 2:00 PM, 1:00 PM to 3:00 PM, 2:00 PM to 4:00 PM, and 3:00 PM to 5:00 PM. The first slot does not start at 8:30 because the block time before and the start time interval push it later. Now book a 12:00 PM to 2:00 PM appointment with concurrent scheduling off. Only the 3:00 PM to 5:00 PM slot survives, because every earlier slot would overlap the booked time once you add the 45 minute before-buffer and 15 minute after-buffer. Seeing how buffers and intervals interact explains why a seemingly open afternoon can show just one bookable window.
Inbound versus outbound scheduling
Salesforce Scheduler ships two booking channels. Inbound scheduling is when a customer books an appointment with the organisation themselves. It runs as a flow you place on an Experience Cloud site or your public website, and it can serve authenticated members or guest users. The customer picks a topic, the engine returns matching slots, and a Service Appointment is created when they confirm. Retail banking new-account openings and primary-care intake are common inbound cases. Outbound scheduling is when an internal user books on the customer's behalf. A wealth advisor, claims handler, or mortgage specialist opens the flow from a record in the Service Console, selects the customer and work type, then picks a time. Both channels use the same underlying engine and the same constraint logic, so a slot that is unavailable inbound is also unavailable outbound. The difference is who drives the booking and where the flow lives. You can embed either flow into standard records like leads, referrals, opportunities, and accounts, which keeps scheduling inside the rep's normal workflow.
Work types, work type groups, and skills
Work Type is the template for a single kind of appointment, such as Mortgage Review or Annual Physical. It sets the default duration, the before and after buffers, and the skills a resource must hold to qualify. Work Type Groups sit one level up and represent appointment topics that a customer chooses from, grouping related work types together. Skills are the link between what an appointment needs and which resources can serve it. When a work type requires a skill, only resources who hold that skill at the required level appear as candidates during slot calculation. This is powerful, and it is also the most common source of an empty slot list for new admins. Define the skill too narrowly, or forget to assign it to otherwise-qualified resources, and the engine filters everyone out. A sensible approach is to start with broad skill requirements, confirm appointments are bookable, then tighten the matching once the basic flow works. Scheduling policies decide whether skill matching is enforced for a given booking experience.
Scheduling policies and advanced options
A scheduling policy is the set of rules the engine applies when it builds a slot list. Policy options include whether to check the Salesforce calendar for resource availability, whether to check external systems, whether to enforce the account's visiting hours, and a default appointment start time interval used when a work type does not set its own. Policies let one org support several booking experiences with different strictness, for example a relaxed guest-facing flow and a tighter internal one. Beyond policies, Scheduler offers advanced patterns. Multi-resource scheduling books more than one person into a single appointment, which suits cases that need an advisor plus a specialist. Concurrent scheduling lets one resource handle several appointments in the same window, useful for group sessions or short overlapping visits. Appointment distribution spreads bookings across eligible resources rather than always filling the first one. Resource appointment sharing automatically grants a resource access to the appointments assigned to them. Each option changes how slots are produced or who can see a booking, so enable them deliberately rather than all at once.
Common rollout pitfalls
Most go-live problems with appointment scheduling trace back to a short list of causes, and nearly all of them surface as a slot list showing zero availability. The first is misconfigured operating hours. If the territory, the territory member, or the work type has hours that do not overlap, the intersection is empty and no slots appear. The second is over-narrow work type skills, where the required skill filters out resources who could legitimately serve the appointment. The third is a missing service territory assignment, which hides a resource from customer-facing search even though that person is otherwise free. A fourth, easy to miss, is testing only as an internal user. The inbound guest experience on an Experience Cloud site can behave differently from an authenticated internal session, so test the public path as a real guest before launch. When availability looks wrong, walk the constraint chain in order: operating hours, then skills and work type, then territory membership, then existing appointments and calendar conflicts. The discipline of checking each layer turns a confusing empty list into a quick fix.
Set up Salesforce Scheduler
Salesforce Scheduler is enabled and configured in Setup, then exposed to users through flows. These are the core steps to get a first bookable appointment working in an Enterprise or Unlimited edition org.
- Enable Scheduler and assign access
In Setup, open the Salesforce Scheduler Setup App and enable Scheduler. Assign the relevant Scheduler permission set licenses and permission sets to internal users, and configure guest access if you plan to offer inbound booking on a public site.
- Build the business data
Create Service Resources for your appointment attendees, set up Service Territories for your locations, and define Operating Hours so the engine knows when each territory and resource is available. Add the skills each resource holds.
- Define what can be booked
Create Work Type Groups as the topics customers choose from, then Work Types under them. Set each work type's estimated duration, block time before and after, and required skills so the slot calculation produces the right windows.
- Set scheduling policy rules
Configure a scheduling policy to control how slots are found. Choose whether to check the Salesforce calendar, enforce the account's visiting hours, and which appointment start time interval applies when a work type does not set one.
- Expose the booking flow
Add the outbound scheduling flow to record pages in the Service Console for assisted booking, and place the inbound flow on an Experience Cloud site or your website for self-service. Test both paths end to end.
Books more than one service resource into a single appointment, for cases that need several people present.
Lets one resource handle multiple appointments in the same window, useful for group or short overlapping sessions.
Spreads new bookings across eligible resources instead of always filling the first available one.
Automatically gives a service resource record access to the appointments assigned to them.
- An empty slot list almost always means an operating hours, skill, or territory gap, not a product bug. Walk the constraint chain before raising a case.
- Test inbound booking as a real guest user, not just an internal user, because the public Experience Cloud path can behave differently.
- Salesforce Scheduler needs Enterprise or Unlimited edition and the right permission set licenses. Confirm licensing before you design the rollout.
Prefer this walkthrough as its own page? How to Appointment Scheduling in Salesforce, step by step
Trust & references
Cross-checked against the following references.
Straight from the source - Salesforce's reference material on Appointment Scheduling.
Hands-on resources to go deeper on Appointment Scheduling.
About the Author
Dipojjal Chakrabarti is a B2C Solution Architect with 29 Salesforce certifications and over 13 years in the Salesforce ecosystem. He runs salesforcedictionary.com to help admins, developers, architects, and cert/interview candidates sharpen their fundamentals. More about Dipojjal.
Test your knowledge
Q1. Salesforce Appointment Scheduling has been marketed under which product name(s)?
Q2. Which object is part of the Salesforce Scheduler data model used to find available appointment windows?
Q3. Which Appointment Scheduling pattern lets customers pick their own slot without an internal user booking for them?
Discussion
Loading discussion…