The imin Platform
2.0.0
2.0.0
  • Introduction to the imin Platform
  • Using the Platform
    • imin's Platform Products
    • Authentication
    • Our Platform Data
      • Understanding Responses
      • Namespaces and Extensions
      • Defensive Data Consumption
      • Mocking the Interface
  • platform products
    • Search
      • imin Events API
        • Events API Reference
        • Virtual & Physical Sessions
        • Concepts
          • EventSeries
          • ScheduledSessions and eventSchedules
          • Activities and Collections
            • Activities
            • Activity Concept Collections
          • Accessibility Support
          • Prices
        • Filters
          • Modes
          • Age Ranges
          • Dates and Times
          • Activities and Concept Collections
          • High Frequency Sessions
      • imin Facilities API
        • Query Parameter Search
          • Mandatory Query Parameters
            • mode=discovery-geo
            • mode=upcoming-slots
          • Optional Query Parameters
        • ByID Search
          • FacilityUse By-ID
          • Slot By-ID
        • FacilityUses and IndividualFacilityUses
        • Slots
        • Facilities Slot Booking
      • imin Places API [BETA]
        • Example Request & Response
    • Firehose
      • Introduction to the Firehose
      • Accessing the Firehose
      • Firehose Usage Policy & Restrictions
      • Firehose and Search
      • Bookable Firehose Feeds
      • Bookable Sellers Feed
      • Attribution Catalog Endpoint
    • Live Timetables
      • Pre-Requisites: Open Data Feeds
      • The Onboarding Process
        • 1. Ensuring your Data Offers the Best User Experience
        • 2. Setting up and Embedding your First Timetable
        • 3. Setting up the Rest of your Timetables
        • 4. Activating Booking via Guest Checkout
      • Features Available Upon Request
      • Styling the Live Timetables
      • FAQs
    • Data Dashboard
  • incorporating book and pay
    • imin Branded Checkout
      • Introduction
      • Setup
        • Information We Require From You
        • Actions You Need to Complete
      • Authenticated Checkout
        • Testing [BETA]
        • 👪Group Booking [BETA]
      • Standalone Checkout
      • Firehose and Checkout [BETA]
        • Loading the Checkout via Firehose
    • imin Booking Platform
      • Customer Account Management
        • Create Customer Account
        • Update Customer Account
        • Get Customer Account
        • Delete Customer Account
        • Example Scenario
        • Payment Card Management
        • Linked Accounts
        • Entitlement
          • Evidence Requests
          • Entitlement Pricing in Search
          • Entitlement Pricing in Checkout
        • Access Pass
        • Webhooks
      • Orders
        • Order History
        • Order (by ID)
        • Cancellations & Refunds
      • Upcoming OrderItems
      • Receipt (by ID)
  • imin and booking systems
    • Seller Onboarding
      • API
  • HINTS & TIPS
    • Get the Best Out of Search
      • Displaying Schedule Information
      • URLs and Offering a Call to Action
      • Searching by Activity
      • Your Search Results and HighFrequencySessions
      • Customer Specific Images
  • Info for Data Publishers
    • Your RPDE Feed & the imin Platform [BETA]
      • Providing Places Data [BETA]
      • Providing Schedule Information [BETA]
Powered by GitBook
On this page
  • Composition of EventSeries
  • Examples
  • Specifications
  • Types of EventSeries
  • One-to-One
  • One-to-Many
  1. platform products
  2. Search
  3. imin Events API
  4. Concepts

EventSeries

PreviousConceptsNextScheduledSessions and eventSchedules

Last updated 4 years ago

For an introduction to data publishing via open data feeds, and EventSeries, SessionSeries and ScheduledSessions, please refer to of the OpenActive Developer Docs.

Composition of EventSeries

The entire API is built around delivering physical activities to consumers. The most important endpoint delivering an app on top of the imin Events API, which helps customers find physical activities, is /events-api/v2/event-series (see for Swagger reference documentation). So, what is an EventSeries?

An EventSeries is composed of three main types of objects:

  • EventSeries: a particular physical activity;

  • SessionSeries: a particular location - an EventSeries can have multiple SessionSeries items as children; and

  • ScheduledSession: a particular time or according to a particular schedule - a SessionSeries can have multiple ScheduledSessions items as children.

Examples

  1. A local volunteering organization named BeneficialRun is organizing a Run in Romford called Run and plant trees in local park. This session is going to take place on Thursday 13th September at 7:30pm.

  2. These is a leisure centre named MoreGood Leisure Centre in Moorgate, London. They host Swimming Lessons every Tuesday at 8:00am starting from 23rd October and running for 6 months. The swimming lessons are for Intermediate swimmers and the instructor's name is Brad Chadley.

In the above examples (these are made up), the values in bold directly correlate to fields in an EventSeries, a SessionSeries or a ScheduledSession. For example, in the first example, the EventSeries would have a .name field with value: Run and plant trees in local park.

Specifications

The specification for an EventSeries is defined in the . It is a stricter sub-set of the OpenActive Specification for .

Types of EventSeries

One-to-One

Example #1 above is a physical activity that only happens at one place and at a specific time. Therefore, the EventSeries that describes it will have only one SessionSeries, which will in turn have only one ScheduledSession. As such, this an example of a One-to-One EventSeries.

Snippet from Example #1's session:

{
  "type": "EventSeries",
  "name": "Run and plant trees in local park",
  // other fields that describe the type of physical activity...
  "subEvent": [
    "type": "SessionSeries",
    // fields that describe the location of the physical activity...
    "subEvent": [
      {
        "type": "ScheduledSession",
        "startDate": "2018-09-13T18:30:00Z", // equal to 7:30pm in British Summer Time
        "endDate": "2018-09-13T20:00:00Z",
        "duration": "PT90M" // ISO-8601 Duration. This means "90 minutes"
      }
    ]
  ]
}

One-to-Many

Example #2 above is a physical activity that occurs on many occasions. If the same activity is rolled out in other leisure centres, it may also occur in many locations. Therefore, the EventSeries will have one or more SessionSeries items, each of which will have one or more ScheduledSession items. As such, this is an example of a One-to-Many EventSeries.

Snippet from Example #2's session:

{
  "type": "EventSeries",
  "name": "Swimming Lessons",
  // other fields that describe the type of physical activity...
  "subEvent": [
    {
      "type": "SessionSeries",
      "location": {
        "type": "Place",
        "name": "MoreGood Leisure Centre"
      },
      // other fields that describe the location of the physical activity...
      "subEvent": [
        {
          "type": "ScheduledSession",
          "startDate": "2018-10-23T07:00:00Z", // 08:00 in British Summer Time
          "endDate": "2018-10-23T08:00:00Z",
          "duration": "PT1H" // ISO-8601 Duration. This means "1 hour"
        },
        {
          "type": "ScheduledSession",
          "startDate": "2018-10-30T08:00:00Z", // BST ends on 25th October, so this is now 08:00 in GMT
          "endDate": "2018-10-30T09:00:00Z",
          "duration": "PT1H"
        },
        // and so on until April 23rd...
      ],
    },
    {
      "type": "SessionSeries",
      "location": {
        "type": "Place",
        "name": "SomewhereElse Leisure Centre"
      },
      "subEvent": [ /* ... */ ]
    },
    // ...etc
  ]
}
this page
Events API Reference
API Reference
Event