Module Detail
Until now, an agent that needed to change a booking had to create a fresh appointment and leave the old one hanging. The Cancel or Reschedule Appointment module lets the agent either cancel an existing slot or move it to a new time in a single call.Setup
Adding the Module
- Open Modules → GoHighLevel section → Cancel or Reschedule Appointment → Add
- No extra configuration required
- Click Save
Attach to Agent
- Edit your agent
- Add Tool → Module Library → Cancel or Reschedule Appointment
- Leave async OFF (agent needs confirmation response)
- Save
Variables the Tool Expects
action (Required)
Values:cancel or reschedule
Tells the tool whether to cancel the appointment or move it.
appointment_id (Required)
The ID of the appointment you are changing Where to get it:- After booking: Book Appointment tool returns
appointment_id - Later on: Call Get Booked Appointments module to get the ID
new_start_time (Required for reschedule only)
ISO 8601 date-time for the new appointment Format:YYYY-MM-DDTHH:MM:SSExample:
2025-01-16T14:30:00
Note: Only needed when action = reschedule
timezone (Optional, for reschedule)
IANA timezone such asAmerica/New_York
Default: Uses agent’s timezone if omitted
Note: Only needed when rescheduling
Prompt Template
Cancellation
Rescheduling
Conversation Examples
Example 1: Simple Cancellation
Caller: “I need to cancel my appointment” Agent: Runs get_booked_appointments to find the appointment Agent: “I see you have Tuesday, July 16 at 2pm. Want to cancel that one?” Caller: “Yes” Agent: Runs cancel_or_reschedule_appointment with action=“cancel” Agent: “Done! Your appointment has been cancelled. Want to rebook for a different time?”Example 2: Reschedule Same Day
Caller: “I booked 10am next Tuesday but something came up.” Agent: “No worries—would you like to cancel or pick another time?” Caller: “Can we push it to 11am instead?” Agent: Runs module with reschedule, new_start_time, timezone, and appointment_id Agent: “All set. Your appointment is now Tuesday at 11am. See you then!”Example 3: Reschedule Different Day
Caller: “I can’t make my Thursday appointment” Agent: Runs get_booked_appointments Agent: “You’re booked for Thursday at 3pm. What day would work better?” Caller: “How about next Monday?” Agent: Runs fetch_free_slots for Monday Agent: “Monday I have 10am, 2pm, and 4pm open. Which works?” Caller: “2pm” Agent: Runs cancel_or_reschedule_appointment with new Monday 2pm time Agent: “Perfect! You’re now booked for Monday at 2pm instead of Thursday.”Example 4: Cancel and Rebook Later
Caller: “I need to cancel - I’m not sure when I can reschedule yet” Agent: “No problem! I’ve cancelled your Friday appointment. Just give us a call when you’re ready to rebook.” Agent: Runs cancel_or_reschedule_appointment with action=“cancel”Common Use Cases
1. Simple Cancellation
2. Same-Time Different Day
3. Emergency Reschedule
4. Find Better Time
Best Practices
Always Confirm Before Cancelling
Offer Alternative When Cancelling
Verify New Time is Available
Store Appointment ID
Response Handling
Successful Cancel
Successful Reschedule
Error - Appointment Not Found
Advanced Workflows
Cancel + Immediate Rebook
No-Show Follow-up
Proactive Rescheduling
Troubleshooting
Appointment ID Invalid
- Verify ID format from get_booked_appointments
- Check appointment still exists in GoHighLevel
- Ensure not already cancelled or past
New Time Unavailable
- Run fetch_free_slots first to verify availability
- Check calendar working hours
- Verify date is in the future
Timezone Issues
- Always pass timezone explicitly when rescheduling
- Use IANA format: “America/New_York” not “EST”
- Confirm with user: “That’s 2pm your time, correct?”
Permission Errors
- Verify GHL integration is connected
- Check calendar permissions in GoHighLevel
- Ensure agent has access to modify appointments
Integration with Full Appointment Flow
Next Steps
- Use with Get Booked Appointments to find appointment IDs
- Combine with Fetch Free Slots for rescheduling
- Set up Appointment Confirmation Workflows to reduce no-shows

