Metro Calendar
Shared family calendar & schedule
3
Connections
Who is out, who is home, who is picking up the kids. One look at the wall and you know.
A shared family calendar drawn as a metro map. Everyone in the household gets a line, their appointments are stops along it, and when two of you are at the same thing your lines meet at an interchange - so overlaps and clashes are something you see, rather than something you work out from a list.
It shows today and rolls on into tomorrow as the evening runs out, with holidays and the weather in the header. It reads any calendar that gives you a link - Google, Apple, Outlook, Nextcloud - speaks eight languages, and fits every TRMNL screen and mashup.
Try it before you set anything up. With no calendars added it draws a full example day, so you can see whether this is how you want your week to look.
Then yes - it wants your calendars, and that is a cup of tea's worth of work. The setup helper does it with you rather than sending you off to find things alone: it asks who is in the house, shows you where the calendar link hides in Google, Apple, Outlook, Nextcloud or Proton, reads each one back to you in words to prove it works, and draws the finished board before you save anything. It can also write you a prompt for an AI assistant: paste it in, paste the answer back, and your own board reads like the examples, with the lines named, a mixed feed routed to the right people and the titles trimmed. Do it once and the wall looks after itself.
Available settings
Set Up With
A list of calendars is enough for most households. The setup helper is for routing one shared feed to several people by rules, and the rest.
Calendars
One calendar per row: a name, then its link. The name is the line it goes on; the same name on two rows puts both calendars on one line. A link with no name is the whole household's. Google's public-holiday calendars are known on sight; for another provider's, add holiday after the link. Leave it empty to see an example day.
Example: Alex https://calendar.google.com/calendar/ical/.../basic.ics
Sam https://outlook.live.com/owa/calendar/.../calendar.ics
Sam webcal://p12-caldav.icloud.com/published/2/...
https://calendar.example.com/family.ics
https://calendar.google.com/calendar/ical/en.be%23holiday%40group.v.calendar.google.com/public/basic.ics holiday
Configuration
Paste the configuration from the setup helper. It asks who lives with you and where each calendar is, checks every link, shows you the map, and gives you the text for this box. Its AI prompt gets you a board like the examples fastest: paste the prompt into an assistant, paste the answer back. Leave it empty to see an example day.
Example: {
"version": 1,
"docs": "https://raw.githubusercontent.com/ExcuseMi/trmnl-metro-calendar-plugin/main/CONFIG.md",
"lines": [{ "name": "Alex" }, { "name": "Sam" }],
"calendars": [
{ "url": "https://calendar.example.com/alex.ics", "line": "Alex" },
{ "url": "https://calendar.example.com/sam.ics", "line": "Sam" }
]
}
Time Format
Auto uses the usual clock for your TRMNL account language.
Location
For the weather in the header, and small icons along the hours when rain starts or stops. Leave it empty for no weather.
Temperature Unit
Which unit the forecast is shown in.
Weather Alert Banner
A banner along the bottom when rain, snow, thunderstorms, frost or heat is on the way, saying when. Needs a Location. On a calm day it takes no space.
Rain Chance At Or Above (%)
70 is a good "take a coat" line. Leave it empty for no rain alert. Snow and thunderstorms always alert.
Example: 70
Cold At Or Below
In the unit above. Leave it empty to be warned at freezing, 0°C / 32°F. For hard frost only, try -10°C / 14°F.
Heat At Or Above
In the unit above. Leave it empty to be warned at 30°C / 86°F. For heatwaves only, try 35°C / 95°F.
Tasks
A calendar can carry tasks as well as appointments (VTODO): Nextcloud Tasks, Todoist's project feed, TickTick, Vikunja, anything that syncs over CalDAV. A task with a due time is a stop with a square on that person's line; one with no time, or one still owed from an earlier day, waits at the end of their track as a tick box. Ticked off today it stays ticked until tomorrow. This is how many wait at each person's end.
News Feeds
Headlines along the foot of the map, like the platform display under a departure board. One RSS or Atom link per row: the local paper, the school, the club. Leave it empty for none.
Some that work as of September 2026:
US
NPR https://feeds.npr.org/1001/rss.xml
NPR World https://feeds.npr.org/1004/rss.xml
NYT https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml
World
BBC https://feeds.bbci.co.uk/news/world/rss.xml
Al Jazeera https://www.aljazeera.com/xml/rss/all.xml
The Guardian https://www.theguardian.com/world/rss
Europe
VRT NWS https://www.vrt.be/vrtnws/nl.rss.headlines.xml
NOS https://feeds.nos.nl/nosnieuwsalgemeen
tagesschau https://www.tagesschau.de/xml/rss2/
Le Monde https://www.lemonde.fr/rss/une.xml
Example: https://feeds.npr.org/1001/rss.xml
https://feeds.bbci.co.uk/news/world/rss.xml
Headlines
One row of the newest headlines with their sources, as many as fit, or a number of rows on a full panel (a small panel shows one).
Example Day
Which example the board shows while Calendars is empty. Each is a real setup from the demo folder, so you can copy the one you like.
Show The Example Anyway
Keeps the example on screen even with calendars filled in. Handy for trying out the plugin without showing your own week.
GitHub Stats
Your GitHub profile at a glance
Football - Ligue 1 Standings
Football - Ligue 1 Standings
Human Clock
Someone, somewhere made you a clock
Design Drill Deck
One clear design challenge, daily
Football - Serie A Standings
Football - Serie A Standings