Calendar Widget

Use calendarWidget when customers need to browse dates before choosing tickets. It supports two calendar types, each available as a modal or an inline embed:

Calendar Use it for Required identifiers
Standard Events for an organization, optionally filtered by tags Organization ID (venueId)
Attraction A recurring attraction with dates and time slots Organization ID and the attraction event's slug

Before you start

Load the SDK once and wait for it to be ready. Use the loading and button-handling pattern in that guide with the calls below.

Find your Organization ID in your venue settings in the Showpass dashboard. Attraction calendars also need the main event's slug. In the JavaScript SDK, the option named event_id takes that slug, not a numeric event ID.

Open a standard calendar

Call this from a button handler. Omit tags to show the organization's events without a tag filter:

window.showpass.tickets.calendarWidget(123, {
  "theme-primary": "#24727b",
  tags: "workshops",
});

The calendar opens in a modal. Use a comma-separated string, such as "workshops,experiences", for multiple tags.

Open an attraction calendar

Set is_attraction: true and supply the attraction slug:

window.showpass.tickets.calendarWidget(123, {
  is_attraction: true,
  event_id: "daily-admission",
  "ticket-type-selection-required": true,
  "prompt-for-quantity": true,
});

This also opens a modal. Customers can choose a date and time slot before continuing with their tickets.

Embed one calendar

Create a container and pass its ID as the third argument. Run the call after both the SDK and container are ready:

<div id="showpass-calendar"></div>
window.showpass.tickets.calendarWidget(
  123,
  { "theme-primary": "#24727b", tags: "workshops" },
  "showpass-calendar"
);

For an embedded attraction calendar, use the attraction options above as the second argument. The container argument controls the display mode; the options choose the calendar's content.

Parameters

Pass {} when no options are needed.

Parameter Type Purpose
venueId Number or string Organization identifier
params Object Calendar and appearance options
containerId String, optional Existing container ID for inline mode; omit for a modal
params['theme-primary'] String Primary color, such as "#24727b"
params['lang'] String Use "fr" for French; English is the default
params['tags'] String Comma-separated event tags for a standard calendar
params['is_attraction'] Boolean Set to true for an attraction calendar
params['event_id'] String Attraction event slug, required for attraction mode
params['ticket-type-selection-required'] Boolean Require ticket-type selection before choosing a date
params['prompt-for-quantity'] Boolean Prompt for quantity before adding tickets to the cart

Shared-basket limitations

For several calendars or a calendar alongside single-event widgets, use buttons that open modals when customers need one basket. Keep the offerings within the same Showpass organization and provide a checkout button.

Do not use multiple inline SDK widgets on the same page unless using Showpass Website Builder. This includes multiple embedded calendars and calendars beside inline purchase widgets. A single embedded calendar is a different layout.

Read Multiple widgets and a shared basket for the full layout guidance and launch checks. Test adding items through each entry point, in different orders, and confirm the expected basket before checkout.