Skip to content

Events (Bookings)

FieldDescription
titleName of the booking.
descriptionLong text for the booking description.
start_dateStart date of the event, most date types supported.
end_dateEnd date of the event, most date types supported.
start_timeStart time of the event (HH:MM).
end_timeEnd time of the event (HH:MM).
booking_typeString. Use to group bookings of a certain type on a calendar.
FieldDescription
locationLocation string, typically building name or place.
location_address_stringLocation address string, use commas to separate multiple lines.
location_postal_codeZip or post code of the location.
location_countryLocation country.
websiteAn external event web site.
external_web_linkAn external event web link to a booking / purchase page.
external_imageAn externally hosted image for the event.
hide_from_self_serviceBoolean to control showing the event with the sheepApp.
member_only_eventBoolean to limit purchase of event tickets to members.
has_available_ticketsBoolean to indicate available tickets.
is_sold_outBoolean to indicate sold out. Use in conjunction with has_available_tickets.
maximum_ticket_priceUpper price for tickets. Used to show price range.
minimum_ticket_priceLower price for tickets. Used to show price range.
start_sales_dateDate when tickets will be available from.
waitlist_availableBoolean to show if a waiting list is available.
eventbrite_idString. The Eventbrite UID for the event (when event is controlled by Eventbrite).
use_access_codeBoolean. Eventbrite control field.
controllerString. Which system is controlling the event, e.g. Eventbrite, Ticketsolve, CraftEvents, sheepCRM.
lifecycle_emailsBoolean. Turn on lifecycle emails for this booking.

The version 2 API is recommended for read access to event listings. Series of events are collapsed into a single record (the most recent within the date range). current is defined as events from the last couple of weeks falling within the next few months. running events are those happening at the time (end date > now > start date).

GET https://api.sheepcrm.com/api/v1/$FLOCK/booking/?sort=-start_date&series_id=S018
Authorization: Bearer $API_KEY
Section titled “Recommended endpoint — using booking definitions”
FieldRequiredDescription
titleYesName of the booking.
start_dateYesStart date of the event.
start_timeYesStart time of the event (HH:MM).
booking_defnYesThe URI of the booking definition.
end_timeNoEnd time of the event (HH:MM).
end_dateNoEnd date of the event.
groupNoThe URI of the group.
POST https://api.sheepcrm.com/api/v1/$FLOCK/events/
Authorization: Bearer $API_KEY
Content-Type: application/json
{
"title": "my new booking",
"start_date": "2022-01-17",
"start_time": "10:23",
"booking_defn": "/example/booking_defn/610d1c5feb69265309cf6cb2/"
}
POST https://api.sheepcrm.com/api/v1/$FLOCK/booking/
Authorization: Bearer $API_KEY
PUT https://api.sheepcrm.com/api/v1/$FLOCK/booking/{uid}/accept/
Authorization: Bearer $API_KEY
PUT https://api.sheepcrm.com/api/v1/$FLOCK/booking/{uid}/reject/
Authorization: Bearer $API_KEY
PUT https://api.sheepcrm.com/api/v1/$FLOCK/booking/{uid}/cancel/
Authorization: Bearer $API_KEY
PUT https://api.sheepcrm.com/api/v1/$FLOCK/booking/{uid}/uncancel/
Authorization: Bearer $API_KEY
PUT https://api.sheepcrm.com/api/v1/example/booking/{uid}/
Authorization: Bearer $API_KEY
Content-Type: application/json
{"ticket_stock_control": true}
GET https://api.sheepcrm.com/api/v1/example/booking/{uid}/ticket_stock/
Authorization: Bearer $API_KEY
HTTP/1.1 200 OK
{
"errors": [],
"skus": {
"/example/ticket_type/56d5c3fb3078f80d1dbd896b/": {
"allocated": 2,
"amount": "12.00",
"available": 18,
"currency": "gbp",
"description": " ",
"name": "Standard",
"number_of_attendees_per_ticket": "1",
"pricing": "full_price",
"reserved": 0,
"single_use": null,
"tags": [],
"tax": "standard"
},
"total_available": 19
}
}
FieldRequiredDescription
ticket_typeYesThe URI of the ticket type.
quantityYesTicket quantity (limited to 250 per API call).
available_from_dateNoStock is only available for use after this date. Default is None.
available_until_dateNoStock is only available until this date. Default is None.
POST https://api.sheepcrm.com/api/v1/example/booking/{uid}/ticket_stock/
Authorization: Bearer $API_KEY
Content-Type: application/json
{
"ticket_type": "/example/ticket_type/56d5c3fb3078f80d1dbd896b/",
"quantity": 25
}
HTTP/1.1 201 OK
{
"errors": [],
"skus": {
"/example/ticket_type/56d5c3fb3078f80d1dbd896b/": {
"allocated": 0,
"available": 25,
"reserved": 0
},
"total_available": 0
}
}
FieldRequiredDescription
ticket_typeYesThe URI of the ticket type.
quantityYesTicket quantity.
DELETE https://api.sheepcrm.com/api/v1/example/booking/{uid}/ticket_stock/
Authorization: Bearer $API_KEY
Content-Type: application/json
{
"ticket_type": "/example/ticket_type/56d5c3fb3078f80d1dbd896b/",
"quantity": 5
}
FieldRequiredDescription
ticket_typeYesThe URI of the ticket type.
buyerYesThe URI of the ticket buyer.
quantityNoTicket quantity. Default = 1.
POST https://api.sheepcrm.com/api/v1/example/booking/{uid}/allocate_ticket_from_stock/
Authorization: Bearer $API_KEY
Content-Type: application/json
{
"ticket_type": "/example/ticket_type/56d5c3fb3078f80d1dbd896b/",
"buyer": "/example/person/5ff0c404cd59d5159d426aed/"
}
HTTP/1.1 200 OK
{
"stock": ["/example/sku/61b9bb27683e8011b976a00a/"],
"ticket": "/example/ticket/61b9c226683e8011bd76a078/"
}
POST https://api.sheepcrm.com/api/v1/example/ticket/{uid}/return_to_stock/
Authorization: Bearer $API_KEY
HTTP/1.1 200 OK
{
"stock": ["/example/sku/61b9bb27683e8011b976a00a/"],
"ticket": "/example/ticket/61b9c226683e8011bd76a078/"
}

Where a series of events is needed, a series can be created.

GET https://api.sheepcrm.com/api/v1/example/booking/{uid}/series/
Authorization: Bearer $API_KEY
HTTP/1.1 200 OK
{
"errors": [],
"series_bookings": [
{
"end_datetime": "2019-02-06T14:30:00",
"series_counter": 1,
"start_datetime": "2019-02-06T13:00:00",
"status": "new",
"title": "--booking--title",
"uri": "/example/booking/5faa709180859e1f88d765e4/"
},
{
"end_datetime": "2019-02-07T14:30:00",
"series_counter": 2,
"start_datetime": "2019-02-07T13:00:00",
"status": "new",
"title": "--booking--title",
"uri": "/example/booking/61bb2b1b9d13ab37fbb93225/"
}
],
"series_id": "bcd0e1c3f3"
}

A series is one base event repeated with different dates. The base event should be fully configured before it can be repeated. All event data fields will be copied onto the new events.

FieldRequiredDescription
repeatYesdaily, weekly, monthly. Contact our team to request other repeating sequences.
number_of_eventsNoHow many events in the series.
untilNoRepeat events until this date (exclusive).

Series are limited to 2 years or 100 events.

POST https://api.sheepcrm.com/api/v1/example/booking/{uid}/series/
Authorization: Bearer $API_KEY
Content-Type: application/json
{"number_of_events": 3, "repeat": "daily"}
FieldDescription
deleteall — delete all bookings in series including this booking. following — delete all bookings after this event in the series, including this booking.
DELETE https://api.sheepcrm.com/api/v1/example/booking/{uid}/series/
Authorization: Bearer $API_KEY
Content-Type: application/json
{"delete": "following"}
DELETE https://api.sheepcrm.com/api/v1/example/booking/{uid}/delete_from_series/
Authorization: Bearer $API_KEY

Series can be extended from the end. The repeat gap is determined by the existing series.

FieldDescription
number_of_eventsHow many events to add to the series.
untilRepeat events until this date (exclusive).
PUT https://api.sheepcrm.com/api/v1/example/booking/{uid}/series/
Authorization: Bearer $API_KEY
Content-Type: application/json
{"number_of_events": 2}