A panoramic view of your family's life
A beautiful, privacy-first wall calendar for Home Assistant that rivals Skylight and Hearth — with no monthly fees.
- 4 Calendar Views — Day (per-person columns), Week, Month, and Agenda
- Deep Google Calendar Integration — Attendee invitations, in-place PATCH edits, real organizer detection via API
- Shared Event Awareness — Multi-participant detection, organizer badges, stripe gradients, participant avatars
- Full Event Management — Create, edit, and delete events with location autocomplete and multi-calendar support
- Past Event Dimming — Finished events automatically fade so you can focus on what's next
- 20-Color Palette — Earth, ocean, warm, and vivid tones for calendar personalization
- Built-in Onboarding Wizard — Auto-discovers your calendars, weather, and people entities
- Theme Customizer — 4 base themes + accent color, background, header gradient, corners, and shadows
- Animated Weather — 15 custom SVG icons with condition-based gradients and forecasts
- Per-Person Day View — Skylight-inspired columns with large person avatars
- Fully Responsive — Optimized for phones, tablets, wall displays, and large screens
- Easy Install via HACS — No YAML or code required, just point-and-click setup
- 100% Local — Your data never leaves your network
Make sure you have at least one calendar integration configured:
- Google Calendar — Settings > Integrations > Google Calendar
- Local Calendar — Settings > Integrations > Local Calendar
- Any integration that creates
calendar.*entities
- Open HACS in Home Assistant
- Go to Integrations (not Frontend)
- Click the three-dot menu (top right) and select Custom repositories
- Add this repository URL:
https://github.com/tavenhall1/panavista - Set category to Integration and click Add
- Search for PanaVista Calendar and click Download
- Restart Home Assistant
- Download the
custom_components/panavistafolder from this repository - Copy it into your Home Assistant
config/custom_components/directory - Restart Home Assistant
- Go to Settings > Devices & Services
- Click Add Integration
- Search for PanaVista Calendar
- Follow the single-step setup (calendars are auto-discovered)
- Open your dashboard and click Edit
- Click Add Card
- Search for PanaVista Calendar
- Save — the onboarding wizard will appear on first load
The wizard walks you through preferences, calendar personalization (name, color, avatar), and theme selection. No YAML required.
The card works with zero configuration, but you can override settings per-card:
type: custom:panavista-calendar-card
entity: sensor.panavista_config
# Optional overrides
default_view: week # day | week | month | agenda
calendars: # show only specific calendars
- calendar.alice
- calendar.bob
hide_weather: false # hide the weather widget
hide_header: false # hide the entire header bar
weather_entity: weather.home
time_format: 12h # 12h | 24h
first_day: sunday # sunday | mondayPer-person columns showing each family member's schedule side-by-side, inspired by Skylight's hero view.
- Large person avatars as column headers
- All-day event banner pills spanning the top
- Timed event blocks with overlap detection
- Now indicator line with auto-scroll to current time
- Shared event participant avatars on event blocks
- Next-day footer navigation at the bottom of the time grid
- Past events automatically dimmed
A card-based grid showing the full week at a glance.
- Day cards in a responsive grid (4 columns on desktop, 2 on tablet, 1 on phone)
- Event chips with multi-participant stripe gradients for shared events
- Weather forecast per day with hi/lo temps and animated icons
- Today's card highlighted with accent border
- Quick "+ Add" button on each day card
- Event count badges
- Past events automatically dimmed
Traditional calendar grid for long-range planning.
- 6-week grid with compact event pills
- "+N more" overflow for busy days
- Today indicator circle
- Click any day to jump to its day view
- Compact event chips with stripe support for shared events
- Past events automatically dimmed
A scrolling list for quickly scanning upcoming events.
- Sticky date headers with relative labels ("Today", "Tomorrow", "In 2 days")
- Weather forecast per day
- Lazy "Load more days" pagination (14 days at a time)
- "+ Add event" button per day
- Past events automatically dimmed
PanaVista goes beyond Home Assistant's built-in calendar services to provide deep Google Calendar API integration for families sharing events.
- Attendee Invitations — When creating events on multiple calendars, PanaVista invites attendees via the Google Calendar API so events stay properly linked
- In-Place Event Editing — Shared events are updated via PATCH requests, preserving event links and attendee lists (no delete-and-recreate)
- Real Organizer Detection — Each event's true organizer is fetched from the Google Calendar API, enabling accurate "who created this?" display
- Shared Event Deduplication — When the same event appears on multiple family members' calendars, PanaVista detects and displays it once with participant indicators
- Smart Delete — The organizer sees "Delete Event" (removes for everyone); attendees see "Remove Me" (removes only their copy)
- Graceful Fallback — Non-Google calendars (Local Calendar, CalDAV, etc.) work normally using standard Home Assistant services
PanaVista ships with four built-in themes: Light, Dark, Minimal, and Vibrant.
On top of any base theme, you can customize:
| Setting | Options |
|---|---|
| Accent Color | Any color from the 20-swatch palette or custom picker |
| Background | Base default or custom hex color |
| Header Style | Purple, Teal, Sunset, Solid Accent, Solid Dark, or custom color |
| Corners | Sharp (4px), Rounded (12px), Pill (20px) |
| Shadows | None, Subtle, Bold |
Open the gear icon on the card header to access the settings panel and theme customizer. Changes preview live on the calendar behind the panel.
- Click the + New button in the card header (or the "+ Add" button on any day in week/agenda view)
- Enter a title, select one or more calendars, and pick start/end times
- Optionally add a location (autocomplete via OpenStreetMap sorted by distance) or description
- Click Add — for multi-calendar events on Google Calendar, attendees are automatically invited via the API
- Tap any event to open its detail popup, then click Edit
- For shared Google Calendar events, edits are applied in-place via PATCH — no need to delete and recreate
- All fields are editable: title, time, location, description, and calendar
- Guests can be added or removed when editing shared events
- From the event detail popup, click Delete
- If you're the organizer, the event is deleted for all attendees
- If you're an attendee, you're removed from the event without affecting others
Events sync two-way with your calendar provider (Google Calendar, Local Calendar, etc.).
| Setup | Cost | Notes |
|---|---|---|
| Amazon Fire HD 10 + wall mount | ~$150 | Budget option, use Fully Kiosk Browser |
| Raspberry Pi 4 + 7" touchscreen | ~$100 | DIY option, 3D-printed case |
| 15" touchscreen monitor + mini PC | ~$400 | Premium option with webcam and speaker |
| PanaVista | Skylight | Hearth | |
|---|---|---|---|
| Cost | Free | $150-300 | $200-350 |
| Monthly Fee | $0 | $0-5 | $0-10 |
| Privacy | 100% local | Cloud | Cloud |
| Customization | Full | Limited | Limited |
| Calendar Sources | Google, Local, any HA integration | Limited | Limited |
| Smart Home | Full HA integration | None | None |
| Updates | Forever, open source | Vendor dependent | Vendor dependent |
See CONTRIBUTING.md for guidelines.
GPL v3 — Copyright (c) 2025-2026 Stephen Hall. See LICENSE.
![]()
PanaVista — Your panoramic view of family life
Made for the Home Assistant community
