> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt ## Resource: About Service Types ## Article: About Service Types ## Article Link: https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-types.md ## Article Content: # About Service Types: Appointments, Classes and Courses Wix Bookings supports 3 types of services: appointment-based, classes, and courses. Depending on business needs, you can set up services for all or only the relevant types. ## Appointments Appointments allow customers to book services at their preferred time during the business hours. For example, a hair salon might offer different appointment-based hair cutting and styling services. Appointments appear in the booking calendar once they're booked by a customer. Not-yet-booked times during the business hours are displayed as available slots to potential customers while booking. ### Varied service durations You can use the [Service Options And Variants API](https://dev.wix.com/docs/rest/business-solutions/bookings/services/service-options-and-variants/introduction.md) to set different session durations for the same appointment-based service. For example, 30, 45, or 60-minute shiatsu massages. You can find a service's complete list of supported session durations in the [Services V2 API](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/introduction.md) as `service.schedule.availabilityConstraints.sessionDurations`. ### Staff members You can allow customers to select their preferred staff member when booking an appointment-based service. Use the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction.md) to manage staff and their working schedules. Appointment services require at least one staff member when [creating](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/create-service.md) them. Pass the staff members' resource IDs in the `staffMemberIds` array. These are `staffMember.resourceId` values, not `staffMember.id`. [Query staff members](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/query-staff-members.md) with the `RESOURCE_DETAILS` field set to retrieve the `resourceId`. Check service and staff member availability with the [Time Slots V2 API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/introduction.md). Specify a filter based on the slots's `startDate`, `endDate`, `serviceId`, and staff member's `resourceId`. ### Customer locations You can allow customers to choose their appointment location, for example their home or office. When calling [Create Service](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/create-service.md), include a location with `{"type": "customer"}`. ### Buffers between sessions You can configure a service so that it ensures buffer times between appointments. For example, you can specify a 10-minute buffer between appointments for a hair coloring service. Call [Create Service](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/create-service.md), and specify `schedule.availabilityConstraints.timeBetweenSessions`. ### Appointment policies Manage booking, rescheduling, cancellation, and other rules using the [Booking Policies API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/policies/booking-policies/introduction.md). In the [Services V2 API](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/create-service.md) you can check whether customers are allowed to: - reschedule their appointments (check `service.bookingPolicy.reschedulePolicy`). - cancel their appointments and/or limit the time frame for cancellations (check `service.bookingPolicy.cancellationPolicy`). ## Classes A class is a single event or a series of recurring events that multiple customers can book. For example, a yoga studio might offer a twice-weekly vinyasa flow class. Classes may have a set end date or continue indefinitely. If a class includes more than a single event, customers can sign up for 1, several, or all of the events. Upon creation, classes are listed immediately in the booking calendar. ### Class policies Manage booking, rescheduling, cancellation, and other rules using the [Booking Policies API](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/update-service.md). In the [Services V2 API](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/create-service.md) you can check whether customers are allowed to sign up for a waiting list when a class is fully booked (check `service.bookingPolicy.waitlistPolicy`). ## Courses A course starts and ends on pre-defined dates with a limited number of events that multiple customers can book. For example, a yoga studio might offer a teacher training course with 5 events. In contrast to classes, customers must book the entire course. Upon creation, courses are displayed immediately in the booking calendar. In the [Services V2 API](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/create-service.md) you can check a course's start and end in `service.schedule.firstSessionStart` and `service.schedule.lastSessionEnd`. ### Course policies Manage booking, rescheduling, cancellation, and other rules using the [Booking Policies API](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/update-service.md). In the [Services V2 API](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/create-service.md) you can check whether customers can continue to sign up for a course after its first session has begun (check `service.bookingPolicy.bookAfterStart`). ## Update a service type You can update a service's `type` if there are no upcoming events with participants, but it's recommended to create a new service instead. Changing a service type by calling [Update Service](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/update-service.md) deletes the service’s existing schedule and creates a new one.