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.