# Rescheduling (/docs/bookings/rescheduling)



When a customer needs to change their booking date or time, Resytech makes rescheduling safe and easy with built-in conflict detection.

Reschedule Modes [#reschedule-modes]

Resytech offers two ways to reschedule a booking:

Time Slot Reschedule [#time-slot-reschedule]

The standard reschedule flow uses available time slots:

1. Open the booking you want to reschedule
2. Navigate to the **Reschedule** tab
3. Select the new **date** from the reschedule calendar
4. Choose from available **time slots** for that date
5. Resytech checks for conflicts automatically
6. Review the changes and confirm

This mode respects the activity's scheduling rules and only offers time slots that are configured and available.

Manual Reschedule [#manual-reschedule]

For special situations, you can manually set the exact date and time:

| Field                | Description                                                          |
| -------------------- | -------------------------------------------------------------------- |
| **Start date**       | The new start date for the booking                                   |
| **Start time**       | The new start time                                                   |
| **End date**         | The new end date (can differ from start date for multi-day bookings) |
| **End time**         | The new end time                                                     |
| **Custom price**     | Optionally override the booking price during reschedule              |
| **Force reschedule** | Bypass conflict warnings and proceed anyway                          |

Manual reschedule is useful for bookings that fall outside normal scheduling rules, such as private tours or custom arrangements.

Reschedule Options [#reschedule-options]

Both reschedule modes support the following options:

| Option                         | Default | Description                                                                                                                                |
| ------------------------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| **Skip pricing recalculation** | Off     | When enabled, keeps the original pricing regardless of the new date. When disabled, pricing is recalculated based on the new date's rates. |
| **Auto refund**                | Off     | Automatically process a refund if the new price is lower than the original.                                                                |
| **Notes**                      | Empty   | Add an internal note explaining the reason for the reschedule. This is recorded in the audit trail.                                        |

Conflict Detection [#conflict-detection]

During rescheduling, Resytech runs a conflict check against the new date and time. Each conflict returned includes:

* **Conflict type** — the category of conflict (equipment, facilitator, capacity, blackout)
* **Conflicting booking** — confirmation code, customer name, and time of the overlapping booking
* **Activity** — the activity involved in the conflict

Specific conflict types:

* **Equipment conflicts** — the equipment is already booked at the new time
* **Facilitator conflicts** — the assigned facilitator is unavailable at the new time
* **Capacity limits** — the new time slot has reached its participant capacity
* **Blackout periods** — the new date is blocked by an activity or location blackout

If conflicts are found, they are displayed before you confirm. You can choose a different time, resolve the conflict, or use **Force reschedule** in manual mode to proceed anyway.

The conflict check also reports a `canProceed` flag — if all conflicts are advisory (warnings rather than hard blocks), you can proceed despite them.

Pricing Recalculation [#pricing-recalculation]

When rescheduling, pricing behavior depends on the **Skip pricing recalculation** toggle:

* **Recalculate pricing** (default) — the booking total is recalculated based on the new date's pricing rules. This accounts for seasonal rates, weekend pricing, time-of-day modifiers, and any other pricing logic. The reschedule event records the old total, new total, and price difference.
* **Keep original pricing** — the booking total stays the same regardless of the new date. Useful when you want to honor the original price as a courtesy.

If auto-refund is enabled and the new total is lower than the original, the difference is refunded automatically through the original payment method.

Customer Self-Service Rescheduling [#customer-self-service-rescheduling]

If enabled in your [customer booking management settings](/docs/settings), customers can reschedule their own bookings through the customer-facing booking management portal. Self-service rescheduling respects the following settings:

| Setting                       | Description                                                                                                                                                                             |
| ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Allow rescheduling**        | Master toggle for customer self-service rescheduling                                                                                                                                    |
| **Reschedule window (hours)** | Minimum number of hours before the booking start time that rescheduling is allowed. For example, setting this to 24 means customers cannot reschedule within 24 hours of their booking. |

Notifications [#notifications]

After rescheduling, you can optionally send the customer a notification (email or SMS) with the updated booking details. This uses your configured communication templates.

Audit Trail [#audit-trail]

All rescheduling actions are logged in the booking's event log as a `booking.rescheduled` event. The log captures:

* **Original date and time** — the old start and end times
* **New date and time** — the updated start and end times
* **Old total and new total** — pricing before and after the reschedule
* **Price difference** — the delta between old and new totals
* **Auto refunded** — whether an automatic refund was processed
* **Skipped pricing** — whether pricing recalculation was skipped
* **Rescheduled by** — the user ID of the staff member who performed the reschedule
* **Notes** — any notes provided during the reschedule

Related How-To Guides [#related-how-to-guides]

* [Reschedule a Booking](/how-to/bookings/reschedule-a-booking)
* [Check Availability](/how-to/bookings/check-availability)
* [Use the Booking Calendar](/how-to/bookings/use-the-booking-calendar)
