# 0048. The search list's occupancy calendars load on demand

- **Status:** Accepted
- **Date:** 2026-09-24

## Context

Each unit in the search list rendered thirteen months of occupancy calendar into a hidden tab: ten units a page
was about 6400 cells, most of the page's HTML, for a tab few visitors open.

## Decision

In the compact storage widget the tab holds a placeholder with `data-url` →
`storage-usage/<language>/<id>` (`StoragesController::actionUsage()`, `X-Robots-Tag: noindex`). `StorageWidget.js` fetches it
on the tab's first click and fires `html:updated`, which initialises the swiper. The storage page itself still
renders its calendars.

## Alternatives

- **Fewer months in the list.** Less of the same problem.

## Consequences

- The calendar tab needs JavaScript and a round trip on first open.
