---
title: "Service Appointment"
space: "Frappoint"
url: "https://docs.navari.co.ke/service-appointments"
updated: "2026-08-04"
---

Service Appointments represent a **confirmed commitment** between a customer and a service provider for a specific service and time.

A service appointment is the only entity in Frappoint that:

- Consumes slots
- Locks service units
- Triggers notifications
- Can be cancelled or rescheduled

Everything else exists to make service appointments safe and predictable.


## What is a Service Appointment?

A **Service Appointment** is a transactional record that links:

- A Customer
- A Service Type
- A Service Provider
- One or more Service Provider Slots
- Optional Service Unit

Once created, a service appointment becomes the source of truth for that appointment.



## Why Service Appointments Are Central

They allow Frappoint to:

- Prevent double booking
- Enforce service duration and buffers
- Track status changes
- Integrate with ERPNext documents
- Maintain a clean audit trail

Slots are availability.  
Bookings are commitments.


## Core Service Appointment Fields

| Field | Description | Notes / Rules |
| :--- | :--- | :--- |
| **Customer** | The person receiving the service. | Can be a lead, customer, or standalone contact. |
| **Service** | The specific service being booked. | Determines required duration, buffer times, and service units. |
| **Provider** | The professional performing the service. | Must offer the service, have consecutive availability, and be on shift. |
| **Start & End Time** | The appointment window. | Derived from the first and last consumed slot; **not directly editable**. |
| **Slots** | List of time slots consumed by the booking. | **Immutable** after confirmation. |



## Service Appointment Status Lifecycle

Service Appointments move through a controlled set of statuses.

| Status | Description | Notes & ERPNext Triggers |
| :--- | :--- | :--- |
| **Open** | Slots are temporarily reserved and validation is in progress. | Hidden from other customers during this phase. |
| **Confirmed** | Slots are permanently consumed and service units are locked. | Triggers: **Sales Order**; notifications may be sent. |
| **Completed** | Service has been delivered to the customer. | Triggers: **Sales Invoice**, stock consumption, and commissions. |
| **Cancelled** | The booking is void and the time is freed up. | Slots are released; specific cancellation rules apply. |
| **No Show** | (Optional) The customer failed to arrive. | Slots remain consumed; used for analytics and penalties. |


## Service Appointment Creation Flow

1. Customer selects service
2. Available slots are fetched
3. Provider and time are selected
4. Required slots are reserved
5. Service units are validated
6. Appointment is confirmed

If any step fails, all reservations are rolled back.


## Validation Rules

A service appointment is only valid if:

- Required consecutive slots exist
- Provider is on shift
- Service buffers fit within shift
- Required service units are available
- Appointment respects advance and lead-time rules

All validations occur server-side.


## Cancellation & Rescheduling

### Cancellation
- Allowed based on system rules
- Releases slots
- Can trigger notifications


### Rescheduling
- Implemented as:
  - Cancel existing appointment
  - Create a new appointment
- Ensures slot integrity


## Service Appointment and ERPNext Integration

Depending on settings, a service appointment may:

- Create or link a Sales Order
- Generate a Sales Invoice
- Consume stock items
- Sync to calendars

Service Appointments are ERPNext-aware but not ERPNext-dependent.



<!--## Best Practices-->

<!--- Never manually edit slots on a appointment-->
<!--- Always cancel before rescheduling-->
<!--- Avoid hard-deleting appointments-->
<!--- Use status transitions, not overrides-->
