AerScheduler

Booking offerings

Presets over org calendar policy for guest pages and internal slot discovery, plus per-audience calendar visibility settings.

7 endpoints · base URL https://api.aerscheduler.com

get/booking-offerings

List booking offerings

Owners and admins list presets used for guest pages and internal slot discovery.

Query parameters

limitintegerRows to return, 1,1000. Defaults to 1000; a larger value is clamped rather than rejected.
offsetintegerRows to skip, for paging. Defaults to 0.
sortstringField to order by before paging, as a dot path into the row , total, user.firstName. Omit to keep the endpoint's own order. Numbers and ISO timestamps order as numbers and instants, not as text, and empty values always sort last regardless of direction. Ordering happens before the page is cut, so it orders the whole collection rather than the page you are holding.
order"asc" | "desc"asc (default) or desc. Only meaningful with sort.

Responses

200OKThe booking offerings.{ data: BookingOffering[] }
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenAuthenticated, but not allowed to do this.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl https://api.aerscheduler.com/booking-offerings \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"
post/booking-offerings

Create a booking offering

Defines a bookable preset over org calendar policy. Offerings may only tighten org policy.

Request body

The offering to create.

slugrequiredstring
namerequiredstring
reservationTyperequiredstring
assignmentModestring
activeboolean
descriptionstring
locationIdinteger
resourceIdsinteger[]
instructorOrgUserIdsinteger[]
minimumNoticeMinutesinteger
bookingHorizonDaysinteger
fixedReservationMinutesinteger
allowResourceChoiceboolean

Responses

201CreatedSuccess.{ data: BookingOffering }
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenOnly owners and admins may manage offerings.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl -X POST https://api.aerscheduler.com/booking-offerings \
  -H "Authorization: Bearer $AERSCHEDULER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slug":"…","name":"…","reservationType":"…"}'
get/booking-offerings/{id}

Get a booking offering

Returns one offering with eligible resources and instructors.

Path parameters

idrequiredintegerThe booking offering id.

Responses

200OKSuccess.{ data: BookingOffering }
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenAuthenticated, but not allowed to do this.
404Not FoundBooking offering not found.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl https://api.aerscheduler.com/booking-offerings/:id \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"
patch/booking-offerings/{id}

Update a booking offering

Owners and admins change offering settings or eligible resources.

Path parameters

idrequiredintegerThe booking offering id.

Request body

Fields to change.

activeboolean
slugstring
namestring
descriptionstring
reservationTypestring
assignmentModestring
locationIdinteger
resourceIdsinteger[]
instructorOrgUserIdsinteger[]
minimumNoticeMinutesinteger
bookingHorizonDaysinteger
fixedReservationMinutesinteger
bufferBeforeMinutesinteger
bufferAfterMinutesinteger
maxReservationMinutesinteger
allowResourceChoiceboolean
allowInstructorChoiceboolean
allowLocationChoiceboolean
questionsobject

Responses

200OKSuccess.{ data: BookingOffering }
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenOnly owners and admins may manage offerings.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl -X PATCH https://api.aerscheduler.com/booking-offerings/:id \
  -H "Authorization: Bearer $AERSCHEDULER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"active":true,"slug":"…"}'
get/booking-offerings/visibility

Get calendar visibility

Returns per-audience calendar detail levels for the organization.

Responses

200OKSuccess.{ data: OrganizationCalendarVisibility }
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenAuthenticated, but not allowed to do this.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl https://api.aerscheduler.com/booking-offerings/visibility \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"
patch/booking-offerings/visibility

Update calendar visibility

Owners and admins set what each audience tier sees on calendars and slot pickers.

Request body

Audience levels to change.

guestLevelstring
studentLevelstring
renterLevelstring
instructorLevelstring
memberLevelstring

Responses

200OKSuccess.{ data: OrganizationCalendarVisibility }
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenOnly owners and admins may change visibility.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl -X PATCH https://api.aerscheduler.com/booking-offerings/visibility \
  -H "Authorization: Bearer $AERSCHEDULER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"guestLevel":"…","studentLevel":"…"}'
get/booking-offerings/{id}/slots

List offering slots

Computes bookable slots for an offering, projected for the signed-in member's audience tier.

Path parameters

idrequiredintegerThe booking offering id.

Query parameters

startDaterequiredstringWindow start (inclusive).
endDaterequiredstringWindow end (inclusive).
limitintegerRows to return, 1,1000. Defaults to 1000; a larger value is clamped rather than rejected.
offsetintegerRows to skip, for paging. Defaults to 0.
sortstringField to order by before paging, as a dot path into the row , total, user.firstName. Omit to keep the endpoint's own order. Numbers and ISO timestamps order as numbers and instants, not as text, and empty values always sort last regardless of direction. Ordering happens before the page is cut, so it orders the whole collection rather than the page you are holding.
order"asc" | "desc"asc (default) or desc. Only meaningful with sort.

Responses

200OKProjected bookable slots for the caller.{ data: BookableSlot[] }
400Bad RequeststartDate and endDate are required.
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenAuthenticated, but not allowed to do this.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl https://api.aerscheduler.com/booking-offerings/:id/slots?startDate=…&endDate=… \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"