> For the complete documentation index, see [llms.txt](https://kb.logicerp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kb.logicerp.com/logic-erp-learning-hub-tutorials-and-best-practices/billing/setup-appointments/appointments/appointment-status-and-cancellation.md).

# Appointment Status and Cancellation

**Available on:** Desktop · Web · Phone

Every appointment has a **status** that shows where the client is in their visit. The status decides the appointment's colour in the diary and what you can do with it next.

## The statuses

| Status          | Colour      | Means                                                                        |
| --------------- | ----------- | ---------------------------------------------------------------------------- |
| **Unconfirmed** | Light green | Booked, not yet confirmed with the client. Every new appointment starts here |
| **Confirmed**   | Green       | The client has confirmed they are coming                                     |
| **Lobby**       | Purple      | The client has arrived and is waiting                                        |
| **CheckedIn**   | Yellow      | The service has started — a job slip exists. Walk-ins start here             |
| **Completed**   | Light blue  | The service is finished and billed                                           |
| **Canceled**    | Red         | The appointment will not take place                                          |

## Changing the status

In the Appointment Viewer, right-click an appointment and choose **Set Status As**. The status it has now is ticked, and only the changes allowed from it can be picked:

| From                        | Can be set to                                                                              |
| --------------------------- | ------------------------------------------------------------------------------------------ |
| **Unconfirmed**             | Confirmed, Canceled — and CheckedIn if **Filter Status** in Configuration is *Unconfirmed* |
| **Confirmed**               | Unconfirmed, Lobby, Canceled — and CheckedIn if **Filter Status** is *Confirmed*           |
| **Lobby**                   | Confirmed, CheckedIn, Canceled                                                             |
| **CheckedIn**               | Completed                                                                                  |
| **Completed**, **Canceled** | Nothing further                                                                            |

* With **Allow Completed On Any Status** ticked in Configuration, *Unconfirmed*, *Confirmed* and *Lobby* appointments can also be set straight to **Completed**.
* An appointment whose end time has passed cannot be changed any more, unless it is *CheckedIn*.
* With **Use Employee Wise Attendance** on, nothing can be changed while the stylist is not available (on leave or off shift).
* A grouped appointment's members are changed from the **Grouped Appointment** window — see [Grouped Appointments](/logic-erp-learning-hub-tutorials-and-best-practices/billing/setup-appointments/appointments/grouped-appointments.md).

> **Example — a normal visit.** Riya books a haircut for Friday 5:00 PM — *Unconfirmed*. On Thursday you phone her and she says yes: set it to **Confirmed**. She arrives at 4:55: set **Lobby** (purple), so the stylist knows she is waiting. Anita calls her in: set **CheckedIn** — a job slip is made. When the haircut is done, set **Completed** and bill her.

### **What each change does**

| Set to                                    | What happens                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Confirmed**, **Unconfirmed**, **Lobby** | The status changes; nothing else is asked                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| **CheckedIn**                             | A **job slip** is created for all of the client's services in this appointment that have the same status. If **Show Parameter Values Before Checkin** is ticked, the **Parameter Values** window opens for each service that has parameters. Then, if **Print Job Slip On Checkin** is ticked, you are asked *"Print Job Slip?"*. See [Check-In and Parameter Values](/logic-erp-learning-hub-tutorials-and-best-practices/billing/setup-appointments/appointments/check-in-and-parameter-values.md) |
| **Completed**                             | The bill opens with the client's checked-in services on it — see [Billing Appointments](/logic-erp-learning-hub-tutorials-and-best-practices/billing/setup-appointments/billing-appointments.md). If **Show Parameter Values Before Billing** is ticked, the **Parameter Values** window opens for each service first. If the services were already paid for in a package, no bill is needed — see *Pre-billed package services* below                                                               |
| **Canceled**                              | You are asked for the reason first, unless the appointment already has one — see *Cancelling* below                                                                                                                                                                                                                                                                                                                                                                                                  |

If you complete an appointment that was not yet checked in (allowed with **Allow Completed On Any Status**), it is checked in first — job slip, Parameter Values and *"Print Job Slip?"* as above — and then billed.

When you set a service to *Unconfirmed*, *Confirmed*, *Lobby* or *Canceled* and that status is ticked under **Auto Update All Appointment Service Status** in Configuration (Unconfirmed and Confirmed out of the box), the client's other services in the same appointment that had the same old status change with it. A service cancelled this way does not get the cancellation reason and does not give its package use back — cancel such services one by one if that matters.

### **Pre-billed package services**

If **every** service on the job slip was already paid for in a package, with no extra charge, completing asks *"Mark the selected Pre-Billed Package Appointment as Completed..."* (**No** is the default). Choose **Yes**, type any remarks in **Enter Remarks** and click **OK**: the services are marked completed without a new bill. If **Show Parameter Values Before Billing** is ticked, the **Parameter Values** window opens next. You are then asked *"Print Final Job Slip?"*. Choosing **No**, or **Cancel** in Enter Remarks, completes nothing.

If even one service on the job slip is an ordinary service or carries an extra charge, the bill opens as usual.

## Cancelling

Set the status to **Canceled**. The **Select Cancellation Reason** window opens first — unless the appointment already has a reason:

* Pick a reason from the list — its description (or its name, if it has none) is shown and cannot be edited — or choose **Other ...** and type the reason under **Enter Reason For Cancellation**.
* Click **OK**. The appointment is cancelled and the reason is saved with it. With no reason, you are told *"Invalid cancellation reason!"* and the window stays open.
* Click **Cancel** to leave the appointment as it was.

The reasons in the list are set up in **Cancellation Reasons** (in the menu under **Configuration**). If none are set up, only **Other ...** is offered.

A cancelled appointment disappears from the diary's **Current** view. Click **Canceled** on the toolbar to see cancelled appointments. If it used a package service, that service is given back to the package.

> **Example.** Arjun phones to say he is unwell and cannot come for his 3:00 PM facial. Right-click it › **Set Status As › Canceled**, pick *Client unwell* and click **OK**. The facial turns red and drops out of the Current view; Anita's 3:00 PM slot is free again.

## Deleting instead of cancelling

**Delete** (right-click an appointment) removes it completely, after asking *"Are you sure you want to delete this appointment of … with …?"*. Use it for a booking made by mistake — cancelling keeps a record; deleting does not.

* A **Completed** or **Canceled** appointment cannot be deleted, and nor can a grouped appointment if any member is Completed or Canceled.
* You need the **Delete** right.
* Deleting a package service gives it back to the package.

## On the web

**Set Status As** works the same way on the web. On a computer, right-click the appointment. On a phone, long-press it and pick **Set Status As: …** with the status you want from the list — the current one is ticked. The cancellation reason window opens full screen on a phone.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://kb.logicerp.com/logic-erp-learning-hub-tutorials-and-best-practices/billing/setup-appointments/appointments/appointment-status-and-cancellation.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
