All Projects → Aerolab → rooms

Aerolab / rooms

Licence: MIT license
A simple Display for Meeting Rooms

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to rooms

I3 Agenda
Show your next google calendar event in polybar or i3-bar
Stars: ✭ 62 (-33.33%)
Mutual labels:  google-calendar
Eventcal
Filter to only include attending and maybe facebook events in ical and google calendar
Stars: ✭ 187 (+101.08%)
Mutual labels:  google-calendar
public-holidays-js
Public holidays by country. Readonly from google calendar. Nodejs module.
Stars: ✭ 18 (-80.65%)
Mutual labels:  google-calendar
Taskw gcal sync
Synchronization between Taskwarrior tasks and Google Calendar events-reminders
Stars: ✭ 81 (-12.9%)
Mutual labels:  google-calendar
Alfred Gcal
View Google Calendar events in Alfred
Stars: ✭ 147 (+58.06%)
Mutual labels:  google-calendar
Add Event To Calendar Docs
📅 Docs how to generate links to add events to online calendar services
Stars: ✭ 193 (+107.53%)
Mutual labels:  google-calendar
Iobroker.ical
Allows read information from google calender and from iCal into ioBroker.
Stars: ✭ 28 (-69.89%)
Mutual labels:  google-calendar
google-calendar-userstyles
🗓 One Dark theme for Google Calendar
Stars: ✭ 19 (-79.57%)
Mutual labels:  google-calendar
Googlecontactseventsnotifier
Receive automatic email notifications before your Google Contacts birthday and other events!
Stars: ✭ 177 (+90.32%)
Mutual labels:  google-calendar
magister-calendar
📅 Automatically plan your Magister appointments in your Google calendar.
Stars: ✭ 12 (-87.1%)
Mutual labels:  google-calendar
Gcalcron
Schedule shell commands execution through Google Calendar
Stars: ✭ 81 (-12.9%)
Mutual labels:  google-calendar
Easyappointments
Easy!Appointments is a highly customizable web application that allows customers to book appointments with you via a sophisticated web interface. Moreover, it provides the ability to sync your data with Google Calendar so you can use them with other services. It is an open source project that you can download and install even for commercial use. Easy!Appointments will run smoothly with your existing website as it can be installed in a single folder of the server and of course share an existing database.
Stars: ✭ 2,013 (+2064.52%)
Mutual labels:  google-calendar
Gam
command line management for Google Workspace
Stars: ✭ 2,558 (+2650.54%)
Mutual labels:  google-calendar
Dark google calendar
Dark theme for Google Calendar.
Stars: ✭ 81 (-12.9%)
Mutual labels:  google-calendar
google holiday calendar
Get holidays via Google Calendar.
Stars: ✭ 21 (-77.42%)
Mutual labels:  google-calendar
Phpcalfeed
A simple PHP script for providing calendar feeds for your website in a variety of different formats including iCalendar, RSS, JSON and XML.
Stars: ✭ 31 (-66.67%)
Mutual labels:  google-calendar
Eink Calendar
Smart calendar with EInk display and Raspberry Pi
Stars: ✭ 191 (+105.38%)
Mutual labels:  google-calendar
google-calendar-telegram-bot
This bot can interact with Google Calendar API, allowing you to easily add/manage events
Stars: ✭ 34 (-63.44%)
Mutual labels:  google-calendar
ics-to-json
📅 Convert ICS calendars (eg. Google Calendar) to an opinionated JSON format.
Stars: ✭ 36 (-61.29%)
Mutual labels:  google-calendar
Notion-GCal-Sync
A Python script to automate the syncing of tasks between Google Calendar and the all-in-one productivity workspace, Notion. It utilizes API and is customizable for your own needs. Free to use.
Stars: ✭ 120 (+29.03%)
Mutual labels:  google-calendar

Meeting Room Display

Meeting Room Display

This is a side project we built at Aerolab to show which meeting rooms are currently available (and for how long), as well as giving you the ability to anonymously book them for 30' with a single tap. This is all based on Google Calendar in a typical Google Apps for Business package.

The motivation behind this is that most meeting room software is needlessly complicated (and expensive!), so we built exactly what we needed as a Web App, which is then deployed to a bunch of cheap Fire HD 8 tablets using a headless web browser. It's simple, it works well to let people know that they shouldn't use a specific meeting room, and it looks kind of cool.

Setup & Config

This is a standard Node.js project, so you just need to run npm ci to install the dependencies and npm run dev to start development mode with live reload. Run npm run build and then npm start to run the app in production mode.

This is the most complicated step, as you are going to need to add two JSON files to make things work: A Google Credentials File, and a list of Meeting Rooms (also known as Resources in Google Calendar).

Google Credentials

Go to the Google Developer Console and create a new Project. After that's done, you need to do a few more things:

  • From the Library menu, you need to Enable the Google Calendar API (use the search if it's not in the popular list)
  • From the Credentials menu, Create a Service Account, and select JSON as the key type. Save this file as you'll need it in a while.
  • Take note of the Service Account ID as well (it looks like accountname@(...).iam.gserviceaccount.com)
  • Rename the JSON key file to rooms-client.json and place it in the root of the project.

Configure the supported Meeting Rooms

Go to Google Calendar and click edit on each meeting room calendar. For each one of them do the following:

  • On the Calendar Details tab, Take note of the Calendar ID (it looks like [email protected]).
  • Under the Share this Calendar, Share it with the Service Account ID (add accountname@(...).iam.gserviceaccount.com to the calendar and give it full access)

After you've done that, you need to Create a rooms.json file in the root of the project detailing all the enabled rooms, their names and Calendar IDs, using a slug as the key. It should look like this:

{
    "lounge": {"name": "Lounge", "slug": "lounge", "position": "right", "id": "[email protected]"},
    "super-room": {"name": "Super Room", "slug": "super-room", "position": "left", "id": "[email protected]"},
}

The position just shows where the room is located relative to the display. The only options are left or right.

Using the app

Open a browser on http://localhost:3000/room-slug (not literally, replace room-slug with the proper room key, like lounge or super-room). You should be able to see the current status of the room and book it.

Deploying

We provide a Dockerfile, which you can easily use on Now, or any other service you prefer. We are not using any sort of authentication or env variables as this is a quick internal project, but you're free to add some sort of auth if you want.

License

MIT, of course.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].