Scheduler v2 automatic email messages
Nylas by default automatically sends emails to all parties for confirming and cancelling bookings.
Confirmation emails to organizers use the same language as the organizer's browser configuration. For attendees, the emails use English as the default language.
Deactivate automantic emails using the confirmation_emails_to_host
and confirmation_emails_to_guests
booking configuration options. This guide goes over building custom email workflows on top of Scheduler after deactivating default email notifications.
Deactivating Automatic Emails
Use Scheduler configurations as well as the API to deactivate automatic emails. These apply to any connected Scheduling Page. The configuration options for confirmation_emails_to_host
and confirmation_emails_to_guests
are boolean data types. These default to true
.
Scheduler Configuration Method
The configuration options in the code below within the booking
object display the deactivated confirmation emails.
nylas.scheduler.show({
auth: {
accessToken: "<ACCESS_TOKEN>"
},
style: {
tintColor: "#32325d",
backgroundColor: "white"
},
defaults: {
event: {
title: "30-min Coffee Meeting",
duration: 30
}
},
booking: {
confirmation_emails_to_host: false,
confirmation_emails_to_guests: false
},
reminders: [{
delivery_method: "webhook",
delivery_recipient: "both",
webhook_url: "https://your-server.com/webhook",
time_before_event: 20160
}]
});
API Method
In this curl
request, the example shows the deactivated confirmation emails in the two configuration options.
curl --location --request PUT 'https://api.schedule.nylas.com/manage/pages/{page_id}' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"access_tokens": [
"<ACCESS_TOKEN>"
],
"config": {
"booking": {
"confirmation_emails_to_guests": false,
"confirmation_emails_to_host": false,
"confirmation_method": "automatic",
"scheduling_method": "round-robin-maximize-fairness"
},
"calendar_ids": {
"<ACCOUNT_ID>": {
"availability": [
"<CALENDAR_ID>"
],
"booking": "<CALENDAR_ID>"
}
},
"event": {
"duration": 30,
"location": "Virtual",
"title": "30 Minute Coffee Meeting"
}
}
}'
Custom Thank You Page Booking Flow
After configuring a Scheduling Page with a custom thank you page, the query string parameters from the booking flow help to customize, build, and send your own booking confirmation email.
In the link example below, the reschedule and cancel booking links use the same formatting.
https://{domain}/{page_slug}/reschedule/{edit_hash}
https://{domain}/{page_slug}/cancel/{edit_hash}
Best Practices
Save the Nylas Event ID (event_id
) associated with the booking in addition to sending your own configuration email using the data from a custom thank you redirect.
Webhooks
In the Nylas Dashboard, you can configure your application to receive event.updated
and event.deleted
Webhook events. When you receive an event change, follow the steps below.
- Match the modified
event_id
to an existing booking. Ignore it if it's not the same. - Retrieve the most recent copy of the event object using the Nylas
GET /events/{id}
API. - Send a cancellation email for the booking if the event
status
iscancelled
or if eachevent.participants[].status
isno
.
Keep in Mind
Check for cancellations using the Nylas API as bookings can be cancelled using the Scheduling Page as well as the booking's cancellation URL.
Participants can also remove the events from their calendars to cancel. In this case, there is no delivery notification using the thank_you_redirect
booking configuration. See the Managing Cancellations section for more.
Custom Confirmation Emails
With automatic emails set to false
, use a Custom Thank You Page Booking Flow or Sending Notifications to Participants Webhooks to configure notifications for Scheduler events.
If both the organizer and participants have automatic confirmation emails set to false
, only the organizer will have the event booked in their calendar. Participants must receive an ICS file for information about the event.
The thank_you_redirect
configuration creates a booking flow for your users. Users are redirected to your configured URL with additional query parameters included.
Scheduler webhook reminders trigger at a set time after a booking. Use a time_before_event
value greater than the available_days_in_future
to trigger as soon as the booking occurs.
Confirmation emails must contain the two items below. Use these in custom emails to notify participants with your own solutions and needs.
ICS Files
Use the Generate ICS File endpoint to share event information to participants. For rescheduled events, Nylas creates a new event on the organizer's calendar and removes the former event. The two strategies below are for notifying participants.
- Generate two separate ICS files
- One creates new event information, one cancels the former event
- Update the original ICS file
- Display updated information
- Nylas API currently doesn't support incrementing sequence numbers, so the recipient's provider may not be able to process the update
- Display updated information
Cancel and Reschedule Links
Using a thank_you_redirect
includes query string parameters. The booking flow help you send your own booking confirmation email. The example below shows cancel and reschedule booking links with the same formatting.
https://schedule.nylas.com/{page_slug}/reschedule/{edit_hash}
https://schedule.nylas.com/{page_slug}/cancel/{edit_hash}
You can render iframe
content with a location pointing to the appropriate Scheduling Page as needed.
The thank_you_redirect
links are included in the description of created events; however, modifying the description for an already created event is currently not supported.
Managing Cancellations
If an event is cancelled, the Custom Thank You Page Booking Flow and Scheduler Webhook configurations don't trigger. Use the solutions below to monitor and manage cancelled events.
- Custom Cancellation Page
- Use the Delete an Event endpoint to trigger the notification workflow
- Send an ICS file with the cancelled event information
- Use
event.updated
Nylas webhooks- Check internal data store to match for correct
<EVENT_ID>
values - Check the status of the event with the Return An Event endpoint
- Trigger the cancellation workflow if the event status is
cancelled
or the response is404 Not Found
- Check internal data store to match for correct