Login / Sign Up

Performance

This is a definition of an individual performance linked to an event. The app surfaces then use the end time of this to render current and future performances based on date ranges (Your Stay, Today, Tomorrow, This Week, This Month, All, Specific Date)

The soldout flag is currently read by the app surfaces, but unused in any rendering or logic - however this is on our roadmap as some booking engines we integrate can include this data for us.

The optional url is on a performance by performance level, so as in the example below can include a structure or parameters to navigate to start booking on this specific performance

Structure

{
  "id": "11575_1687885200",
  "event": 11575,
  "start": 1687885200,
  "end": 1687889700,
  "soldout": false,
  "url": "https://your-events-booking-engine.com/book/11575/2023-06-27/1800"
}

Properties

id

Type : String - Required

This is a unique key for each performance. In the holidaymaker CMS this is a composite key of the event ID and start time as a string

event

Type : Integer - Required

Event ID of the specific event this performance is associated with

start

Type : Epoch Date/Time Integer - Required

Start date and time of the event. This is generated while in the 'Europe/London' time zone and is read in the app in the same way.

end

Type : Epoch Date/Time Integer - Required

End date and time of the event. This is generated while in the 'Europe/London' time zone and is read in the app in the same way. In the holidaymaker CMS this is generated simply by adding the events runtime minutes onto the start time.

soldout

Type : Boolean - Optional

Optional flag to show that a performance is soldout / at capacity. This is read by the app surfaces but currently unused. Future roadmap feature is to render this performances differently and/or filter them out

url

Type : Url String - Optional

This is the url a user will navigate to when clicking the 'book' button by a time when it is rendered. If an event is not considered bookable then this can be omitted, or can be empty. This url can navigate to this specific event to start booking, or to a generic booking event listing where the user can choose the time/date again.

Required Type Definitions

Boolean - Reveal

As we connect to different systems using a range of different languages, we can interpret several things as a true. Generally speaking holidaymaker will use a standard true/false JSON boolean, however we also read a lower case string and checked if they are "1", "true", "yes", or "on" to then create the positive boolean. Unless explicitly noted, all booleans are defaulted as false if the node doesn't exist.

{
  "optionOne": true,
  "optionTwo": false,
  "allTheseAreValidTrues" : [
    1, "1", true, "true", "on", "yes"
  ]
}

Epoch Date/Time Integer - Reveal

When dealing with time, as well as dates, our data packets will typically use an epoch integer. Our date/times will normally be in UTC/GMT - unless it will be a renderable time to the end user, when it currently will use the 'Europe/London' timezone to take into account daylight savings time.

{
  "lastChange": 1691481892,
  "time": 1691398800,
  "endTime": 1691402400
}

Integer - Reveal

Standard JSON Integer - 0 is commonly considered to be a default value, unless it is an valid ID when -1 is used. For sort priorities 99 is used as the default.

{
  "key1": 9,
  "key2": 42,
  "arrayOfInts": [
    2,
    3,
    5,
    8
  ] 
}

String - Reveal

Standard JSON String - Often will have certain characters escaped depending what system is writing the JSON packet, however our parser only requires to have double quotes (") escaped. UTF-8 encoding is our standard, but others may be accepted if required. If line breaks are required in the text then the Rich Text / Multiline String type is used instead.

{
  "key1": "A string value",
  "key2": "Another string with an some \"quotes\" that need escaping",
  "arrayOfStrings": [
    "Item one as a string",
    "Item two as a string",
    "Item three as a string",
  ] 
}

Url String - Reveal

A Url is sent the same as a string. If our system knows this is a url it will check if it starts with http or https - Note that navigating from both iOS and Android should use https.

{
  "bookingUrl" : "https://portal.managebooking.pmssystem"
}

Data Changes

28/04/2023 - Performance

Added 'soldout' property