After an appointment is booked, circumstances often change. This journey explains how to reschedule an appointment to a new date or time using the RescheduleConfirmDialog, how to cancel an appointment with a reason, and how drag-and-drop works in calendar views. It also covers cancellation fees and bulk operations for managing multiple appointments at once.
Navigate to /appointments using the sidebar. Use the search box or filters to locate the appointment:
| Filter | Purpose |
|---|---|
| From Date / To Date | Filter by date range |
| Status | Filter by Pending, Confirmed, Completed, Cancelled, or No Show |
| Employee | Filter by staff member |
| Service | Filter by service type |
In calendar views (Month, Week, or Day), find the appointment block on the calendar grid. Click any appointment block or row to open its detail page.
What you'll see: In list view, each row shows Date & Time, Client, Service, Employee, Price, and a color-coded Status badge. Click the View action on any row to open the detail page at /appointments/:id.
Click on the appointment (in list view, click View; in calendar view, click the appointment block). This takes you to /appointments/:id.
What you'll see: A header card showing the client's name, service, status badge, appointment ID, total price, and duration. Below the header are four tabs: Overview, Services, Notes, and History. Action buttons appear in the top-right corner of the header and are context-sensitive based on the current status.
To reschedule, click the Edit button in the top-right of the header. This takes you to /appointments/edit/:id, the same form used for booking but pre-filled with the current appointment values.
In the form:
What you'll see: The RescheduleConfirmDialog is presented as part of this flow when a confirmed appointment is being moved. You will be prompted to enter a reason for the change before saving. Once confirmed, the appointment detail page updates to show the new date and time, and the change is recorded in the History tab.
After saving, the client receives an automatic notification of the rescheduled time.
From the appointment detail page at /appointments/:id, click the Cancel button. A browser prompt appears asking:
What you'll see: On success, the status badge changes to a red "Cancelled" badge. The Cancel button disappears because the appointment is now in a terminal state. The cancellation timestamp appears in the Status Timeline on the Overview tab. The client is notified automatically.
In the Week or Day calendar views, you can reschedule by dragging an appointment block to a new time slot.
What you'll see: A confirmation dialog appears before the change is committed, matching the same confirmation flow as the form-based reschedule. If the drop target is unavailable, the appointment snaps back to its original position.
Artie AI enforces per-salon cancellation policies. When you cancel an appointment, the system calculates any applicable fee automatically using calculateCancellationFee.
What you'll see: If a cancellation fee applies, a fee summary is shown before you confirm. Staff with appropriate permissions can click Waive Fee to remove the charge using waiveCancellationFee. Waiving requires a reason.
To cancel or reschedule multiple appointments at once:
/appointments in list view.What you'll see: A confirmation dialog lists the number of appointments affected. Confirm to apply the action to all selected appointments. Each affected client is notified individually.
| Issue | Solution |
|---|---|
| "Cancel" button is not visible | The appointment is already Completed, Cancelled, or No Show. These terminal states cannot be changed. |
| "Edit" takes me to the form but the date is in the past | The form prevents selecting past dates for new bookings but allows editing existing records. The validation warning appears only if you change the date to a past date. |
| Drag-and-drop does not work | Ensure you are in Week or Day view. List and Month views do not support drag-and-drop rescheduling. |
| Cancellation fee appears unexpectedly | Your salon's cancellation policy is active. Review the policy in Settings or contact your manager to waive the fee. |
| Client was not notified after reschedule | Check the notification scheduler status. If the scheduler is not running, notifications queue but may not send immediately. Contact your administrator. |