There are different types of bookings that projects can support, the common ones being 1:1 bookings and group bookings where multiple customers can sign up for the same event.

Projects can also employ different graphs. This article focuses on the confirm_decline graph and the instant graph:

  • instant graph: When a customer chooses a booking, it is instantly confirmed and sent to both the resource and customer.
  • confirm_decline graph: When a customer chooses a booking, the resource is sent an email stating the customer has requested a meeting at this time. The booking appears as “tentative” but not “confirmed” when shown in the resource’s personal calendar. The resource can then choose to accept or decline the request, resulting in the customer receiving an email stating it has been confirmed or declined.

For the more technical aspects of booking graphs view the graph documentation.

Tentative slots are related to the confirm_decline graph. In this graph, there’s a period of time where the booking is in a state where the customer has asked for a time, but the resource hasn’t accepted it yet.

Note: When a slot is tentative, it’s still available for other customers to choose.

Benefits of tentative slots is that it provides flexibility for both the resource and the customers: Resources can choose if they want to accept a meeting, and customers can choose multiple slots without committing to them all.

Can you block tentative slots?

No, you can’t block tentative slots because it maps to the standard concept of a tentative booking in external calendars to which Timekit connects. There are some alternatives that might better suit your needs:

Change to an instant graph

One option is to change your project to an instant graph (automatic confirmation).

Using the API, update the project data using a PUT request.

curl --request PUT \
--url https://api.timekit.io/v2/projects/<id> \
--header 'Content-Type: application/json' \
--user :test_api_key_nvHfRSlhvsnlg4rS7Wt28Ty47qdgegwSu3YK7hPW \
--data '{
"booking": {
"graph": "instant"
}}'

You can also do this on the Admin Panel: Navigate to Projects > Your Project > Booking Flow and underneath “How should new bookings be handled?” select Automatic. This will enable the instant booking graph for this project.

In this model, appointments will default to being confirmed. To reject the meeting and free up the timeslot, the resource can cancel and resend a link to the customer to reschedule.

Play with webhooks

If you’d like to handle tentative slots in your own way, you can use webhooks. Webhooks work by observing the state of an object, and when the state is achieved it sends a request across the web to a link you define.

On the Admin Panel, navigate to API Settings > Webhooks > Create Webhook and set Booking Graph to confirm_decline and Booking State to tentative.

If you want to block tentative states, use the data you received to then make a POST request, changing the resources availability using the blocked_period attribute.

curl --request PUT \ 
--url https://api.timekit.io/v2/resources/d187d6e0-d6cb-409a-ae60-45a8fd0ec879 \
--header 'Content-Type: application/json' \
--user :live_api_key_7nzvc7wsBQQISLeFSVhROys9V1bUJ1z7 \
--data '{
"availability_constraints": [
{"block_period": {"start": "2021-03-09T01:00:00-05:00",
"end": "2021-03-09T02:30:00-05:00"}}
]}'

Related Resources

Did this answer your question?