Web Lab Niagara — in-house2025In development
HomePal
A self-hosted touchscreen family wall calendar, built as a DIY alternative to Skylight. It merges several Google calendars into one glanceable month view with no accounts, no logins, and no tokens to expire.


What we did
- Product design
- Front-end development
- Serverless integration
- Hardware/kiosk setup
Built with
- HTML/CSS/JS
- Cloudflare Pages Functions
- iCal
- Android WebView
The brief
Commercial family calendar displays are expensive, subscription-bound, and want an account for every household member. The goal was the same glanceable wall calendar with none of that — running on hardware we chose, with data we already had in Google Calendar.
What we built
A static display that merges multiple Google calendars into a single month view with an Up Next agenda alongside it, deliberately read-only — a wall display has nothing to gain from being editable.
It started with no accounts at all: each calendar came in through its own private iCal link, so there was no OAuth and no token to expire quietly six months later. That path is still there, and it’s still the one that survives neglect. Google sign-in was added alongside it later as the easier on-ramp, because “paste this secret URL” is a lot to ask of someone who just wants the calendar on the wall.
Browsers won’t fetch those feeds directly — the Google endpoints don’t send permissive CORS headers. A small Cloudflare Pages Function does the fetching server-side and is locked to Google hosts only, so it can’t be repurposed as an open proxy.
The frontend has no framework and no build step, which keeps it dependable on low-powered display hardware.
On the wall
It runs as a wall-mounted touchscreen via a thin Android WebView wrapper on a Chromecast with Google TV driving a USB touch monitor.