Date

A date within an experience slot calendar month, with slot availability and pricing for that day.

A date within an experience slot calendar month, with slot availability and pricing for that day.

Retrieved from CalendarDrop#dates when rendered by ExperienceSlotCalendarTag.

Properties

availability_status

A high-level availability signal for this date, so themes can show "limited"/"running low" states without deriving them from the raw remaining count.

Returns: String — one of "available", "limited", or "sold_out".

See also: StockManagement::AvailabilityStatus

date

Returns the value of attribute date.

display_price

The cheapest display price across all variants and slots on this date in the current currency, after promotions.

When an experience has a display variant configured, only that variant's price is considered for that experience. The price is the variant total at maximum occupancy, not the per-person price.

Returns: VariantPriceDrop or nil — nil when there is no current currency or no slot mappings on this date.

{{ date.display_price.fractional | money }}

experience

The first experience associated with this date.

Convenience accessor when the calendar is scoped to a single experience, e.g. inside an experience_date block. Prefer #experiences when multiple experiences may share the date.

Returns: ProductDrop or nil — nil when there are no experiences on this date.

experiences

The experiences with slots on this date.

Returns: Array (ProductDrop)

initial_stock

Total initial stock across all slot-variant mappings on this date.

Returns: Integer or nil — nil when any mapping has infinite stock; 0 when there are no mappings.

initialize

Returns: DateDrop — a new instance of DateDrop

limited

Whether stock is running low but not yet sold out. Convenience predicate over #availability_status.

Returns: Boolean

remaining_stock

Total remaining stock across all slot-variant mappings on this date.

Returns: Integer or nil — nil when any mapping has infinite stock; 0 when there are no mappings or inventories are marked sold out.

slot_count

The total number of distinct slots on this date across all variants.

Counts all slots created on the date, not only those with remaining stock.

Returns: Integer

slots_by_variant

Slots on this date grouped by variant.

Returns: Array (Hash{String=>ExperienceVariantDrop, Array<ExperienceSlotCalendar::SlotDrop>}) — each hash has a "variant" key (ExperienceVariantDrop) and a "slots" key (array of ExperienceSlotCalendar::SlotDrop).

{% for group in date.slots_by_variant %}
  <h3>{{ group.variant.name }}</h3>
  {% for slot in group.slots %}
    {{ slot.start_time }}
  {% endfor %}
{% endfor %}

sold_out

Whether every variant is sold out across all slots on this date.

Returns: Boolean — false when there are no slot mappings.

On this page