{# The span the whole board is relative to. Free/taken has no answer without it once bookings can cover part of a day, so this drives the plan colours AND the calendar occupancy counts. Both fields hit the same fragment endpoint as the calendar does, so narrowing the span is the same single round trip as changing the day. hx-include pulls in the sibling field, because a span needs both ends to mean anything. #} {# An all-day board leaves both fields empty: 24:00 has no representation in , and an empty pair is exactly what TimeRange::parse() reads back as "the whole day". #} {% set day = selected_date|date('Y-m-d') %}