event_reservation
A buyer-safe projection of an event slot attached to a cart or order line. It
is available as line_item.event_reservation and
order_line_item.event_reservation; non-event lines return nil.
Reservation summary
{% assign reservation = line_item.event_reservation %}{% if reservation %} <article> <h3>{{ reservation.product_name }}</h3> <p> {{ reservation.local_start_date }} {{ reservation.local_start_time }}–{{ reservation.local_end_time }} ({{ reservation.display_tz }}) </p> <p>Status: {{ reservation.status }}</p> </article>{% endif %}Example output:
<article> <h3>Private consultation</h3> <p>16 July 2026 10:00–10:30 (Asia/Kolkata)</p> <p>Status: confirmed</p></article>Meeting status and protected details
The only public key is meeting_status:
{% if reservation.join_url %} <a href="{{ reservation.join_url }}">Join meeting</a>{% elsif reservation.reveals_at %} Meeting details become available {{ reservation.reveals_at | date: '%d %b %Y, %H:%M' }}.{% else %} Meeting setup is {{ reservation.meeting_status | default: 'pending' }}.{% endif %}Do not use a camelCase spelling. It is not an alias and resolves to nil.
Reservation status and meeting_status describe different lifecycles:
| Field | Meaning |
|---|---|
status | Booking lifecycle, such as pending, confirmed, or cancelled |
meeting_status | Meeting provisioning/readiness lifecycle |
link_ready reports provisioning readiness; it does not prove that a URL has
passed the reveal boundary. Always branch on join_url itself. join_url is
released only for a confirmed, non-cancelled reservation, after its reveal
boundary, and only when it is a safe public HTTP(S) URL. The meeting object is
separately gated on confirmation and cancellation; its nested join_url can
still be nil. Theme-editor order previews use synthetic/redacted reservation
data and never expose a real buyer’s join URL, attendee data, or meeting
capability.
All-day and timed reservations
{% if reservation.is_all_day %} {{ reservation.local_start_date }} — all day{% else %} {{ reservation.slot_start_local }} to {{ reservation.slot_end_local }}{% endif %}Use the localized fields for display and the UTC fields for machine-readable
datetime attributes.
Properties
| Property | Description |
|---|---|
event_reservation.action_required | true when buyer or seller action is required before meeting setup is complete. |
event_reservation.action_required? | Boolean alias of action_required. |
event_reservation.attendees | Public attendee details collected for this reservation. |
event_reservation.booking_id | Booking configuration identifier. |
event_reservation.booking_name | Booking configuration display name. |
event_reservation.cancel_reason | Reason for cancellation. |
event_reservation.canceled_at | Cancellation timestamp, or nil. |
event_reservation.cancelled | true when cancelled. |
event_reservation.cancelled_at | Cancellation timestamp. |
event_reservation.cancelled? | true when the reservation has been cancelled. |
event_reservation.collect_attendee_info | true when attendee details are required. |
event_reservation.collect_attendee_info? | Boolean alias of collect_attendee_info. |
event_reservation.confirmed | true when the reservation lifecycle is confirmed. |
event_reservation.confirmed? | Boolean alias of confirmed. |
event_reservation.display_type | Buyer-facing reservation display type. |
event_reservation.display_tz | IANA time zone used for buyer-facing schedule values. |
event_reservation.duration_minutes | Reservation duration in minutes. |
event_reservation.effective_slot_end_utc | Effective slot end instant in UTC. |
event_reservation.effective_slot_start_utc | Effective slot start instant in UTC. |
event_reservation.end_at_utc | Reservation end instant in UTC. |
event_reservation.host_name | Public host display name, or an empty string. |
event_reservation.is_all_day | true for an all-day reservation. |
event_reservation.join_url | Buyer-visible meeting URL when release rules permit it, otherwise nil. |
event_reservation.link_ready | Meeting-provider provisioning flag; a reveal boundary can still make join_url nil. |
event_reservation.link_ready? | Boolean alias of link_ready. |
event_reservation.local_end_date | Localized end date. |
event_reservation.local_end_time | Localized end time. |
event_reservation.local_start_date | Localized start date. |
event_reservation.local_start_time | Localized start time. |
event_reservation.meeting | Safe buyer-facing meeting details, or nil. |
event_reservation.meeting_location_type | Meeting delivery type such as online or physical. |
event_reservation.meeting_preview | Redacted preview-safe meeting summary. |
event_reservation.meeting_status | Canonical meeting provisioning/lifecycle status. No camelCase alias exists. |
event_reservation.meeting_summary | Non-secret meeting/booking summary; it is not proof that protected join details are released. |
event_reservation.post_purchase_details_available | Alias of confirmed state; always check cancellation and each protected field separately. |
event_reservation.post_purchase_details_available? | Boolean alias of post_purchase_details_available. |
event_reservation.product_name | Reserved product display name. |
event_reservation.quantity | Quantity. |
event_reservation.reveals_at | Instant when protected meeting details become visible, or nil. |
event_reservation.schedule_id | Resolved schedule identifier. |
event_reservation.schedule_name | Resolved schedule display name. |
event_reservation.slot_end_local | Slot end expressed in display_tz. |
event_reservation.slot_end_utc | Selected slot end instant in UTC. |
event_reservation.slot_start_local | Slot start expressed in display_tz. |
event_reservation.slot_start_utc | Selected slot start instant in UTC. |
event_reservation.source_schedule_id | Original schedule identifier retained with the reservation. |
event_reservation.start_at_utc | Reservation start instant in UTC. |
event_reservation.status | Reservation lifecycle status, distinct from meeting provisioning status. |
event_reservation.store_user_id | Public host/staff identifier when available. |
event_reservation.tz | IANA time zone stored with the reservation. |
Property list is generated from the storefront engine (EventReservationDrop), so it always matches what your theme can use. Use {{ event_reservation | json }} only as a curated debug snapshot; it can omit lazy or otherwise public properties.