Back to Appointments Guides

This guide applies to:

  • Basic Edition
  • Plus Edition
  • Pro Edition
  • Business Edition

Introduction

SSA doesn’t have any functionality to support the admin to accept or deny requested time slots. All the appointments are automatically ‘confirmed’.

But we have seen some customers who work around this by tailoring the text phrasing and the notifications.

This gives the customer an impression that the time slot is a request. Then, if you can’t accept the booking, you can either cancel or reschedule and the cancellation notification can explain what the customer can do next.

You’ll need to make changes to the following areas –

  1. Change booking calendar phrasing
  2. Re-write notifications

Payments – This workaround is not fool-proof. If someone books an appointment using our payment feature, you must manually issue the refund if you cannot accept the appointment.

Admin-View – There’s no way to separate requested appointments vs confirmed and denied ones. You’ll need to manually keep track of this.


Change the Booking Calendar Phrasing

To start, your customer will need to understand that they’re submitting a request for a given time slot.

By changing the phrasing in the user-facing booking calendar, we can get rid of any confusion later down the line with the notifications.

We’re going to be following the instructions from this guide – Change Text Phrasing.

In this guide, I’m going to give you a PHP snippet that will do all the hard work for you. But, you’re welcome to make these changes on your own to further customize this experience.

Add the following PHP code to your functions.php file. Click here for help Accessing the functions.php File.

add_filter( 'gettext', 'customize_ssa_button_text', 100, 3 );
  function customize_ssa_button_text( $translated_text, $text, $domain ) 
  {
      if ( $domain !== 'simply-schedule-appointments' ) 
      {
          return $translated_text;
      }
 $translated_text = str_ireplace('book', 'request', $translated_text); 
 $translated_text = str_ireplace('booking', 'requesting', $translated_text); 
 if ( $text === 'Schedule a new appointment') {     
 return 'Request a new appointment'; 
 } 
 if ( $text === 'Reschedule') {     
 return 'Reschedule this request'; 
 } 
 if ( $text === 'Appointment Rescheduled') {     
 return 'Request Rescheduled'; 
 } 
 if ( $text === 'Cancel Appointment') {     
 return 'Cancel this request'; 
 } 
 if ( $text === 'Cancel this appointment?') {     
 return 'Cancel this request?'; 
 } 
 if ( $text === 'Cancel this appointment') {     
 return 'Cancel this request?'; 
 } 
 if ( $text === 'Appointment Canceled') {     
 return 'Request Canceled'; 
 } 
 if ( $text === 'This appointment has been canceled') {     
 return 'This request has been canceled'; 
 } 
 if ( $text === 'Update this appointment') {     
 return 'Update this request'; 
 } 
 return $translated_text;
 }

Re-Write Notifications

Now, this is where it can get a bit tricky. Since we don’t have a true Accept and Deny system set up, we’ll need to use the notification triggers to help us keep up with this workaround.

This is how we’re going to use the triggers:

  • ‘booked’ trigger to confirm the customer’s request
  • ‘canceled’ trigger to outright deny the requested time and ask the customer to choose another time
  • time of appointment‘ trigger to confirm the actual appointment

So the booking flow would look like the following diagram. Note that the appointment is accepted only if the admin does nothing. This is because this will allow the ‘Time of appointment’ notification to send out and accept the booking.

When using theTime of Appointment’ trigger, you must make sure that you set up the Uptime Robot service to make sure these notifications are sent out.

Notification Templates to Accept or Deny Appointments

‘Booked’ Notification for Customer

Request for {{Appointment.AppointmentType.title }} Submitted
Hello {{customer_name }},

We wanted to let you know that your request for an appointment was sent to {{booking_url}}
The time chosen was {{ Appointment.start_date | date("F d, Y g:ia (T)", Appointment.customer_timezone) }} for the {{Appointment.AppointmentType.title}}


{% if Appointment.AppointmentType.instructions %}
Instructions: {{ Appointment.AppointmentType.instructions|raw }} 
{% endif %}


Your details: 
{{ Appointment.customer_information_summary }}


If you need to cancel or change your requested time, you can do so by visiting this link: 
{{ Appointment.public_edit_url }}

‘Canceled’ Notification for Customer

Request Canceled for {{Appointment.AppointmentType.title }}
Hello {{customer_name }},

We wanted to let you know that your request for an appointment on {{booking_url}} was canceled.
The time chosen was {{ Appointment.start_date | date("F d, Y g:ia (T)", Appointment.customer_timezone) }} for the {{Appointment.AppointmentType.title}}

Please find another time that suits you here - {{booking_url}}

‘Time of Appointment’ Notification for Customer

Request Accepted for {{Appointment.AppointmentType.title }}
Hello {{customer_name }},

We wanted to let you know that your request for an appointment on {{booking_url}} was accepted.
The time chosen was {{ Appointment.start_date | date("F d, Y g:ia (T)", Appointment.customer_timezone) }} for the {{Appointment.AppointmentType.title}}

{% if Appointment.AppointmentType.instructions %}
Instructions: {{ Appointment.AppointmentType.instructions|raw }} 
{% endif %}


Your details: 
{{ Appointment.customer_information_summary }}


If you need to cancel or change your requested time, you can do so by visiting this link: 
{{ Appointment.public_edit_url }}

Helpful Tips – Please Read!

Remember this is a loose workaround, we know it’s not perfect. To make things run a little smoother, please consider the following suggestions.

Choosing a ‘Time of Appointment’ trigger

Please give your customers enough time to see their request acceptance email. If you choose something like ‘1 hour before the Time of Appointment’ to send out the acceptance email, your customers are likely to miss it.

Try a day before, or perhaps even send 2 or 3 acceptance emails at different intervals to make sure they get that message.

Multiple Day’s Notice

Please give yourself enough time to see new requests and for the time-triggered emails to send out. To do this use the Notice setting under the Scheduling Options tab.

You do not want last-minute bookings in this scenario – it’s only going to cause a mess and some definite confusion with your customer.

Our team personally suggests a week’s notice if you’re planning to use this workaround.


Still stuck?

File a support ticket with our five-star support team to get more help.

File a ticket

  • Please provide any information that will be helpful in helping you get your issue fixed. What have you tried already? What results did you expect? What did you get instead?
  • This field is for validation purposes and should be left unchanged.

Related Guides