Put the family calendar on the wall
Bring Google, Microsoft or ICS calendars together on one wall, labelled by the people in your household, with private events kept off the screens that shouldn’t show them.
A Calendar block, or a whole-screen calendar wall, showing everyone’s events in each person’s colour, with work calendars as “At work” bars and private events left out of household screens.
- Denframe installed and running. See Install Denframe.
- A dashboard to show the calendar on. See Create your first dashboard.
- For a link: a calendar’s direct HTTPS address ending in
.ics, or an.icsfile of up to 60 KB. No account is needed. - For Google or Microsoft: an account with the calendars, and a few minutes once to register Denframe as your own app with that company.
Follow these steps in your own Denframe. This website never connects to your household, your accounts or your devices, and never asks for your credentials.
Open the Calendar page
In Studio, open Sources, then Calendar. The page holds everything about the household’s calendars: the Privacy mode switch in its header, the People row, Parts of the day and Kinds of event, then one card for each calendar source.
Calendars are read only. Denframe never writes to a calendar: you add and change events in Google Calendar, Outlook or whatever app shares the calendar, and the wall follows. What a screen changes, such as an event marked done, is kept in Denframe.
Add the people in your household
In the People row, choose + Add person. Give the person a Name, a Color and an Icon. Under Visible on screens, keep Show on every screen or tick the screens that may show their events, and choose whether to Show event locations and Show declined events. Choose Save person.
Each person has their own colour, and two people never share one, so a household can label up to six people. The wall draws each event’s people as avatars in their colour with their initial, so colour is never the only cue.
Choose a person again, then Calendar details… to say how events are matched to them: their Birthday, whether they Needs a lift to events, whether they Collects stars, up to five Invitation addresses and up to eight Title tags. Type a title into Try a title and choose Test title to see who it would name. Choose Save details.
An event names its people by Example The calendar’s own person (its role, below) Everything on Mia’s calendar is Mia’s Attendees whose invitation address is a person’s An invitation sent to Leo’s address Title tags, on an Everyone’s calendar only Leo: Swimming,Leo & Mia: Dentist,[Leo]or⚽Invitation addresses stay on the computer running Denframe; no screen ever receives them. A person’s birthday joins the calendar as an all-day event on the screens that may show that person.
Set up Google or Microsoft sign-in (optional)
Skip this step if you only use a calendar link or file. To read Google or Microsoft calendars, Denframe is registered once as your own app with that company; every family member’s calendar then signs in through it, asking only to read.
In Studio, open Access. Under Calendar sign-in, choose Set up on the Google or Microsoft row. The sheet walks through three steps:
- In the company’s console (the sheet links it), create a web application client. For Google, enable the Google Calendar API, and the Google Tasks API too if you will show Google Tasks lists.
- Give the console the Redirect URI the sheet shows: choose Copy redirect URI and paste it exactly. Change only the host if you manage Denframe from another device; the address must end with
/api/calendar/oauth/google/callbackor/api/calendar/oauth/microsoft/callback. - Paste the Client ID and Client secret the console shows you. Leave the secret blank for a public client. For Microsoft, leave Tenant blank for any Microsoft account.
Choose Save. The row then says the sign-in is ready and which calendars use it. Its ⋯ menu offers Replace and Remove.
Sign-in is set up here, in Studio → Access → Calendar sign-in. A sign-in that whoever runs Denframe set in the server’s environment is shown there read-only, and only they can change it. A calendar sign-in started but not finished is kept in memory only and erased on cancel, expiry or restart.
Add a calendar
On the Calendar page, choose Add a calendar. The sheet offers three cards: Google, Microsoft and Link or file. A sign-in that is not set up yet is shown dimmed with Set up on its card, which opens the registration sheet from the previous step in place.
- Google or Microsoft: Denframe opens a read-only sign-in. Choose the Continue to Google (or Microsoft) button, sign in in the new tab, then come back and choose Check connection. Once it is authorized, choose the Owner and tick the Calendars to include; the account’s primary calendar starts ticked.
- Link or file: choose Link and paste the address into Calendar link (it starts with
https://), or choose File and pick an.icsfile in Calendar file (up to 60 KB). Then choose the Owner: a person, or Shared household.
Under Show on, tick the dashboards that should show it; a dashboard you came from in Studio is ticked already. Choose Add calendar.
The new source is named “Google calendar”, “Microsoft calendar” or “Household calendar”; rename it from its card’s header. Its time zone starts as the one your browser is set to, and it reads 30 days ahead.
A calendar link must be a direct HTTPS address on port 443. Links with a user name or password in them, links that redirect, and addresses inside your own network are refused.
Say what each calendar is
Open the calendar’s card. Its rows are Calendars to show (for Google and Microsoft) or Calendar link / Calendar file, then Owner, Time zone and Look ahead (7, 14, 30 or 60 days). The household’s clock is the first calendar source’s time zone.
Under Calendars, each calendar the source reads has its own row. Only the household’s owner changes these; everyone else sees them read-only.
Choice Options Person Everyone, or one of your people Role A person's, Everyone's, Work (busy) (shown as “At work” bars, never titles), Meals (the meal plan), Birthdays (with a cake), Hidden (read, never shown) Privacy Everything, Titles only, Busy only or Nothing: the most of its events any screen shows Done on screens A touch screen may mark its events done Earns stars Marking an event done gives each person it names one star Each choice saves at once. Each row ends with a health line saying when the calendar was last read.
Choose who sees private events
Google, Microsoft and ICS calendars mark private or confidential events as private. Denframe keeps that, so out of the box private events stay off every screen.
Each dashboard decides for itself. Open the dashboard in Studio’s Dashboards tab, open the title’s menu and choose Dashboard settings…. Privacy is the most sensitive content the dashboard may show (Public, Household or Private), and Private events is how a private event reads where it may show: In full, Without titles, Times only or Hidden.
A private event is left out entirely unless both the dashboard and the screen allow Private; only then is the Private events choice read. Each screen’s own settings carry the same two, as Profile maximum sensitivity and Profile private events, and the stricter of the dashboard and the screen always wins, so a dashboard can never show more than its screen allows.
The Privacy mode switch at the top of the Calendar page applies to the whole house at once: while it is on, every calendar on every screen shows times only, with titles, places and people removed before anything is sent.
Privacy mode and a Public dashboard name nobody: no people, birthdays, clashes, stars, done marks, week ahead, tasks or meals, and no Edit on your phone or Add to calendar.
Choose the view, or make it the wall
In the dashboard editor, choose the Calendar block. Its panel offers:
- View: List (the default), Auto, Next up, By person, Side by side, Timeline, Week, Next 5 weeks or Month. Auto picks the richest view the block has room for, and never Month or Next 5 weeks.
- Follow the time of day (on by default on a Home dashboard) and Keep this view, which stops the time of day changing the view.
- Days ahead, which can only show less than the source holds, Private events, which can only hide more than the dashboard or the screen does, and All-day events.
To give the calendar the whole screen, choose Make it the wall under Calendar wall. It is offered on a dashboard with one calendar block; the other blocks move into a dock, which you place under Reading → Dock. Make it a block turns it back. On the wall, no chosen view reads Wall's: the richest view that fills the screen.
Back on the Calendar page, Parts of the day sets when the morning ends and the evening starts (10:00 and 18:00 at first): choose Change times, set Morning ends and Evening starts, and choose Save times. A calendar that follows the time of day shows today in the morning, what is left tonight and then tomorrow in the evening, and the first thing tomorrow while the screen is dimmed.
Under Kinds of event, the wall draws a picture before titles it recognises (swimming is sport, dentist is medical) in several languages. The owner can add the household’s own: type Your word, choose its Kind and choose Add word.
Check it worked
On the source’s card, Showing on lists each dashboard with its privacy. On the screen, today’s events appear with each person’s avatar in their colour, “in 7 min” before an event starts, a progress bar while it runs, and birthdays and trips counted down from up to 60 days ahead.
On a touch screen, tap an event for its details. On a calendar with Done on screens, Mark done strikes it through, with Undo for ten seconds and Mark not done later. An event from Google or Microsoft shown in full offers Edit on your phone, a QR code for the event’s own page; The + button (Add to calendar) shows one for a new event. Browse the calendar changes only that screen and goes back to the dashboard after two minutes untouched.
For bigger pictures and a clock face beside each time, turn on Kid mode: bigger pictures, a clock face beside times, names in words in the screen’s settings. See Choose what a screen may show.

If it doesn’t work
The Google or Microsoft card is dimmed and says “not set up yet”
Choose Set up on the card, or set it up in Studio → Access → Calendar sign-in. You can add a link or file meanwhile.
The card says “set up by whoever runs this Denframe”
The sign-in is set on the server itself, so only its operator can change it. Add a link or file meanwhile.
“Not authorized yet — finish signing in in the other tab, then check again.”
Finish the sign-in in the other tab, then choose Check connection again.
“The sign-in expired. Try again to start a new one.”
Choose Try again for a fresh sign-in.
“Enter a direct HTTPS calendar link”
Use the calendar’s secret https:// address ending in .ics, not a page that redirects to it. Links on your own network and links with a password in them are refused.
“Calendar files must be 60 KB or smaller”
Export a shorter range from your calendar app, or share the calendar as a link instead.
A link or file calendar stops updating, or its health line shows a problem
Its file may hold a repeat rule Denframe cannot read exactly, such as “the second Tuesday” or one limited to certain months. Rather than show a guessed date, Denframe refuses that update and keeps the calendar’s last good copy. Daily and weekly repeats (on chosen weekdays), monthly repeats on a date and plain yearly repeats work. Google and Microsoft calendars work out their own repeats.
Private events never show
That is the default. They show only where both the dashboard’s Privacy and the screen’s Profile maximum sensitivity are Private; then the stricter of the dashboard’s Private events and the screen’s Profile private events decides how they read.
A day reads “Not known”
The screen was sent events only up to that day. Raise Look ahead on the source, or Days ahead on the block.
The block names a calendar in a note
That calendar has not synced for two refresh intervals. Open its card and check its health line, or reconnect the account.
The Person, Role and Privacy controls are disabled
Only the household’s owner can change what each calendar is.
+ Add person is disabled
Six people is the most a household can label, one colour each.
Removing a person is refused
Give the calendars they own another Owner first.