Aktuelle View und Datum werden als URL-Hash gespiegelt
(#date=YYYY-MM-DD&view=<view>). Beim Init liest initCalendar() den Hash
und überschreibt damit die Defaults (settings.default_view + today).
fetchAndRender() schreibt nach jedem Render den aktuellen State zurück
(replaceState, damit prev/next-Clicks keinen History-Müll erzeugen).
Browser-Back/Forward funktioniert via hashchange-Listener.
Edge case: HA-OAuth-Callback erhält jetzt den Hash beim URL-Cleanup
(window.location.pathname + window.location.hash statt nur pathname).
Komplett Frontend-only — kein Backend-Touch.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>