1 · Connect your calendars
The board's biggest panels are the week calendar and “Around Town” — they stay up to date by themselves once you connect the calendars your family already uses. Pick where each calendar lives, paste its share link, and give it a name you'll recognize. Not sure where to find the link? Open “Where do I find this link?” under each row.
How this works (30 seconds)
You paste a private “subscription link” for each calendar. When you finish, this page hands
you two files: config.js and sync/sources.json. A small sync script
(sync/calendar-sync.cjs) runs on the computer that powers the board, follows those
links a few times an hour, and refreshes two plain files the board reads — that's why your links
and passwords never appear in the board itself. Full steps are in the checklist at the bottom.
2 · Community & external sources
Local happenings that live somewhere else: the city or school calendar, a church, a sports league. If it offers an iCal / ICS / webcal link, paste it here and it flows into “Around Town” automatically. Facebook pages don't offer feeds — connect the page anyway and the board keeps it on the checklist for you to add its big events by hand (step 7).
3 · Your family
The name shown in the board header, and the people it belongs to. Colors are picked for you — click a swatch to change one. “Everyone” is added automatically for shared events. Birthdays & anniversaries added below repeat every year on their own — when one is close, the board shows a small “Next up” line under the week.
4 · Home base
Used for the live weather panel (open-meteo — free, no account). A city name is enough; coordinates make it slightly more precise.
5 · Weekly rhythm
Things that happen every week — church, practices, work nights, small group. Times are optional (leave both blank for an all-day note). If a calendar you connected already has one of these, the board shows it once — remove the manual copy whenever you like.
6 · Chores & tasks
Tap-to-check-off chores. Daily and weekly ones reset themselves when the next cycle starts.
7 · Around town — events to pin (optional)
Local happenings you want to pin by hand — farmers markets, festivals, parades. Anything you connected in step 2 flows in automatically; if a pinned event matches a connected one (same day + name), the pinned one wins. “One date” events disappear on their own the day after they pass.
8 · Dinner plan
One line per night. Once you fill in at least one, blank nights show “TBD”; leave them all blank to skip the dinner plan.
9 · Message board (optional)
Short notes for each other. You can always add more later by editing config.js.
Finishing up — save these two files
- config.js — the easiest way: save it to iCloud Drive →
Family Board Configfolder (create it once in the Files app). The board installs it automatically within 30 minutes. Or save it next to your board'sindex.html(replace the sample one). That's everything from this form. - sources.json — same place: iCloud Drive →
Family Board Config(or the board'ssync/folder next tocalendar-sync.cjs). It holds your private calendar links and stays off the board itself. - Test the connections — open Terminal in the board folder and run
node sync/calendar-sync.cjs --check. You'll get one line per calendar:[ok]means it read your events;[FAIL]tells you which link to re-copy. - Fill the board — run
node sync/calendar-sync.cjs(no flags). It writes the two feed files the board reads; reload the board and your week + “Around Town” are live. - Keep it fresh — the README shows how to run the sync automatically every half hour, so your calendars update themselves from then on.
No calendars to connect yet? Leave step 1 blank and skip step 2 — the board works fine with just the hand-entered items, and you can connect calendars any time by coming back to this page.
Preview the generated config.js
Preview the generated sync/sources.json
Generated files use the same format as the samples — you can fine-tune anything by hand afterwards.