Personal

Room Calendar Sign

29 October 2023

A simple web application that serves as a sign to put outside meeting rooms. It shows whether the room is occupied according to a linked Google Calendar account.

How does it work

The application is a single page that shows the current status of the room. It is designed to be displayed on a tablet or a monitor. The status is updated every minute.

The system is written in Python and uses the Google Calendar API to fetch the events from the calendar, Flask to serve the web page and Web Sockets to update the status in real time whenever the calendar changes.

The main UI element is a large sign that shows the current status of the room. The sign is green when the room is available, red when it is occupied and yellow when it is available but will be occupied soon. The sign also shows the name of the next event and the time when it starts.

Secondarily, we have a bottom action bar which will have most of its space dedicated to the next 10 upcoming events in the calendar, then a button for reserving the room (currently not implemented) and another to force a refresh of the status.

On the top right, there is a small rectangle which will be green if the Web Socket is communicating with the server and red if it is not (either the server is down or the device has lost connection).

Screenshots

Screenshot: Status of room is available
Room status is available
Screenshot: Status of room is available, but will be occupied soon
Room status is available, but will be occupied soon
Screenshot: Status of room is occupied
Room status is occupied
Screenshot: Status of room is available after an event has just ended
Room status is available after an event has just ended

You can visit the GitHub repository for more information.