Implement the booking server: API v0 (legacy)

  • This page outlines how to set up a booking server using API v0 for the Actions Center to create appointments, bookings, or reservations.

  • API v0 uses a gRPC interface and is not recommended for new integrations; users should refer to the latest version for new implementations.

  • Implementing the booking server involves familiarizing oneself with Lease and Booking resource types and implementing CreateLease, CreateBooking, and UpdateBooking API methods.

  • The BookingService manages slot leases and bookings, requiring the implementation of RPC methods for creating leases and bookings, and updating existing bookings.

Setting up a Booking server on your end will allow the Actions Center to create appointments / bookings / reservations with you on behalf of the user.

Implement an API interface based on gRPC

API v0 is not to be used for new integrations.

Download the service definition in proto format below to get started with the API implementation.

Download the service definition

Please familiarize yourself with the following resource types that will be utilized in this implementation:

  • Lease: temporary hold on a slot in the schedule, required before making a booking
  • Booking: final reservation of a slot in the schedule

Additionally, the following API methods have to be implemented on your end for the gRPC server:

The following provides a complete BookingService definition using the 3 methods above:

// Manages slot leases and bookings for an inventory of appointments
service BookingService {
// Creates a new lease
rpc CreateLease(CreateLeaseRequest) returns (CreateLeaseResponse) {}

// Creates a booking for which a lease exists
rpc CreateBooking(CreateBookingRequest) returns (CreateBookingResponse) {}

// Updates an existing booking
rpc UpdateBooking(UpdateBookingRequest) returns (UpdateBookingResponse) {}
}

The methods should return on of the gRPC status codes.

Have questions?

Be sure to check out our FAQs.

Other versions

For documentation for other versions of the API, see the following pages: