Sign up today and save $20 on your first TRMNL e-ink display
setup guides· 8 min read

Raspberry Pi Meeting Room Display with Office 365: What It Actually Takes (and When to Skip It)

A spare Raspberry Pi, a screen, and an Office 365 subscription you already pay for. It looks like a free meeting room display. Here is what the build genuinely involves, the Pi-specific parts that bite later, and the honest line for when it is not worth it.

There is a version of this project that starts with a drawer. In it: a Raspberry Pi from a past weekend, a spare HDMI screen, and the quiet knowledge that the company already pays for Office 365. The room data is sitting in Microsoft 365 already. How hard can it be to put a room calendar on a screen by the door?

The honest answer: the first room is genuinely a weekend, and it is a fun weekend. The fifteenth room, eleven months later, is a different story. This post walks through what the build actually looks like with a Raspberry Pi and Office 365, the parts that are specific to the Pi rather than the calendar, the real cost once you stop pretending the Pi was free, and the point where you should put the soldering iron down and buy something finished.

The two halves of the problem

A room display is two things bolted together. One half is software that asks Office 365 whether a room is free. The other half is a physical device that boots, shows that answer on a screen, and keeps doing it without anyone touching it. The Pi is the second half. Office 365 is the first. They are solved very differently, and most people underestimate the second one because the first one is the part that demos well.

The Office 365 side: reading room availability

This part is the same regardless of what hardware you render it on, and we have a full walkthrough in building a meeting room display with Microsoft Graph. The short version: two endpoints do the work.

List the rooms with the Places API:

GET https://graph.microsoft.com/v1.0/places/microsoft.graph.room

Check whether a room is free with getSchedule, using its mailbox address:

POST https://graph.microsoft.com/v1.0/me/calendar/getSchedule
{
  "schedules": ["boardroom@yourdomain.com"],
  "startTime": { "dateTime": "2026-06-30T08:00:00", "timeZone": "Europe/Copenhagen" },
  "endTime":   { "dateTime": "2026-06-30T18:00:00", "timeZone": "Europe/Copenhagen" },
  "availabilityViewInterval": 15
}

The permission you want is Calendars.Read, granted app-only so the Pi authenticates as itself rather than as a logged-in person. That is the difference between a wall display and a kiosk somebody has to sign into every Monday morning. You register an app in Entra ID, grant the permission with admin consent, and store the client secret or certificate on the device. None of this is Pi-specific. A Pi runs Python or Node as happily as anything else, so the calendar half of the job is the same code you would write for any box.

The part that is actually about the Pi

Here is where a Raspberry Pi stops being a generic computer and starts having opinions. These are the things that turn a tidy weekend into a recurring chore.

1. Kiosk mode that comes back after a power cut

A room display has one job on boot: show the calendar, full screen, no desktop, no cursor, no screensaver. On a Pi that means configuring the OS to auto-login, launch a browser in kiosk mode (or a native full-screen app) on startup, and disable screen blanking so the panel does not go dark at the worst moment. It is very doable. It is also fiddly, and every Raspberry Pi OS update has a small chance of changing how autostart works and quietly breaking it. The first time a cleaner unplugs the screen over a weekend, you find out whether your boot sequence is genuinely hands-off or whether it needs a keyboard and a login.

2. The SD card problem

Most Pis boot from a microSD card, and microSD cards do not love running 24 hours a day for years with constant small writes. They corrupt. When one fails, that room goes dark and the fix is reflashing a card and re-pairing the device, in person, on a ladder if the mount is high. With one Pi this is a non-event. With fifteen, card failure stops being rare and starts being a quarterly task. You can mitigate it (boot from USB SSD, mount the filesystem read-only, log to RAM) but every one of those is more setup you own forever.

3. Power and cabling at the door

A Pi with an LCD screen is always on and always drawing power, which means every room needs a permanent outlet near the door or a Power over Ethernet hat and a switch that supplies it. This is the unglamorous bit that turns a software project into a facilities conversation. It is the opposite of a battery e-ink panel you charge once a year, and it is worth knowing that trade before you commit, since it shapes where you can physically put the thing.

4. Updating fifteen devices you cannot see

Code changes. Microsoft adjusts Graph. A secret expires. When that happens you need a way to push a new build or a new credential to every Pi without visiting each one. Building that update channel (or wiring the Pis into an existing fleet tool) is real work, and skipping it just means the visiting-each-one problem arrives later, all at once.

The check-in and release loop

Reading a calendar is the easy half. The reason rooms get displays in the first place is usually ghost meetings: the room shows busy, nobody shows up, and it sits locked for an hour. Solving that means a way to check in at the door and auto-release the room when nobody does, which means writing back to the calendar, deciding who is allowed to release a booking, and handling recurring meetings. The Pi does not make this harder or easier. It is just the feature people actually want, and it is the biggest chunk of work either way. Our guide to releasing a meeting room automatically covers why it is trickier than it sounds.

The honest cost, once the Pi is not free

The drawer Pi feels free, so price the next fourteen honestly. A current Raspberry Pi, a power supply, a decent case, and a screen land somewhere around 120 to 200 USD per room by the time you have something mountable, which is in the same range as a finished e-ink display that already solved every problem above. Add an SD card or SSD per device, the outlet or PoE switch, and the hours of your own time for kiosk setup, the update channel, and the check-in loop. The hardware was never the expensive part. The time is.

The rule of thumb that holds up: if you have one or two rooms, you enjoy this kind of thing, and you have somewhere to put a permanently powered screen, a Pi is a genuinely good project. Past a handful of rooms, or the moment "the room display is down" becomes someone's problem to fix on a deadline, the maths tips toward buying. We laid out the full version of that trade in DIY vs buy.

Lobby is the buy side of exactly this decision. It reads the same Office 365 room calendars through Graph, handles the app auth and the check-in and release loop, and runs on a low-power e-ink display so there is no outlet, no SD card, and no fleet of Pis to reflash. If you read the Pi-specific list above and thought "I do not want to own that," that is the whole reason the product exists.

TL;DR

You can build a meeting room display on a Raspberry Pi that reads Office 365 room calendars. The calendar half is two Graph endpoints (places to list rooms, getSchedule with app-only Calendars.Read for free or busy) and is no harder on a Pi than anywhere else. The cost lives in the Pi half: hands-off kiosk boot, SD card reliability, permanent power at the door, and updating devices you cannot easily reach, plus the check-in and release loop everyone actually wants. For one or two rooms it is a great weekend. Past a handful, buying a finished display is usually cheaper once you count your own time.

Related reading

Sources

Try Lobby — free forever up to 3 displays

Room booking that just works.

Get started →