Place a Hold on an Event

Is it possible to bypass the confirmation email if we want to temporarily hold a time slot for a client? Alternatively, is there a way to book an event with a “PENDING” status? Our goal is to allow a client to book a time with the organizer of the event, hold that time for about 10 minutes, and then release it if payment isn’t received. Do you have any suggestions or current methods within the software to achieve this?

Yes, we offer pre-build bookings, this is outlined in this documentation.

There is also a workaround, which you can use following these instructions:

Nylas Scheduler v3 has a built-in solution for this exact use case through the organizer-confirmation booking type.PENDING Status Bookings
When you set the booking_type to organizer-confirmation, Nylas creates an event marked “Pending” in the organizer’s calendar and sends a confirmation request email to the organizer. The booking entry is created with the pending status.

json
{
  "event_booking": {
    "booking_type": "organizer-confirmation"
  }
}

How the Flow Works

The booking flow for organizer-confirmation performs these steps:

  1. Validates the provided session ID and uses it to retrieve the related Configuration object
  2. Confirms if the selected time slot is still available
  3. Retrieves the booking participant’s grant_id, using the list of participants’ email addresses in the Configuration object
  4. Creates a placeholder event in the organizer’s calendar
  5. Creates a booking entry with the pending status
  6. Nylas creates a booking reference based on the configuration ID and the booking ID
  7. Emits a pending booking (booking.pending) webhook

Managing Pending Bookings

You can use the PUT /v3/scheduling/bookings/{booking_id} request to allow the organizer to confirm or cancel a pending booking. This gives you programmatic control over finalizing or releasing the time slot.

Bypassing Confirmation Emails

If you want to bypass confirmation emails entirely, you can set disable_emails to true in your configuration:

json
{
  "event_booking": {
    "disable_emails": true
  }
}

This approach with organizer-confirmation booking type gives you the temporary hold functionality you’re looking for, with the ability to programmatically confirm or cancel based on your payment processing workflow.

Additional documentation:

Thanks for the quick reply. The the flow you have outlined doesn’t work because when I set

{
  "event_booking": {
    "booking_type": "organizer-confirmation"
  }
}

The configuration for the scheduler requires the organizer confirmation url.

I don’t want the organizer to have to confirm the pending booking. I want to be able to just confirm it automatically when a payment is received.

I still want the confirmation and reschedule emails to be sent to the participants when the booking is actually booked so I don’t want to set disable emails.

When you receive a notification that the payment is successful, can you make the PUT call to confirm it? I believe that may meet your use case, considering you do not want the organizer to have to confirm the pending booking, you should be able to use this API:
Confirm a booking

Would the organizer still get an email to confirm? I know I can confirm through the API, I guess the question is, does the organizer have to get an email to ask them to confirm because according to the docs they do, here: Customizing Scheduler booking flows | Docs

Hello Jonathan,

Thanks for the follow-up question. Let me clarify how the emails work with the organizer-confirmation booking type.

To directly answer your question:

Yes, with booking_type: "organizer-confirmation" and disable_emails: false, the organizer will receive an initial “Booking requested” email when the pending booking is created. This email includes the confirmation link. However, you don’t need to wait for the organizer to click that link—you can confirm the booking programmatically via the API.

Here’s what happens in each stage:

1. When the pending booking is created:

  • Organizer receives a “Booking requested on [date]” email with confirmation link

  • Guest receives NO email yet

2. When you call the Confirm Booking API after payment succeeds:

  • :white_check_mark: Organizer receives a “Booking confirmed” email

  • :white_check_mark: Guest receives a “Booking confirmed” email with reschedule/cancel links

  • :white_check_mark: The pending event is replaced with the confirmed booking

Workaround for your use case:

Since the organizer_confirmation_url is required when using booking_type: “organizer-confirmation”, you can set a placeholder URL that satisfies the validation requirement:

{
  "event_booking": {
    "booking_type": "organizer-confirmation"
  },
  "scheduler": {
    "organizer_confirmation_url": "https://yourdomain.com/confirmation/:booking_ref"
  }
}

You won’t actually direct the organizer to use this URL since you’ll handle confirmation programmatically. The initial organizer email will still be sent, but you can think of it as a notification that a booking request was made rather than an action item.

If you absolutely cannot have the organizer receive that initial email:

Your only option is to set disable_emails: true and manage all email notifications yourself using a separate email service. With this approach:

  • No emails are sent when the pending booking is created

  • No emails are sent when you confirm via API

  • You would need to send your own confirmation/reschedule emails to both organizer and guests after payment

Let me know if you’d like help implementing either approach, or if you have any other questions!

Best regards,
Samuel R.
Support Engineer, Nylas