Teamite: Your Microsoft Teams Companion

Microsoft Teams is pretty decent, all things considered. It’s an alright tool for teamwork, probably unfairly pushed at everyone by Microsoft as a part of Office. Are there better alternatives? Yes. Are they cheaper? Absolutely not. Everyone uses Office.

And if you can’t beat them, join them.

To make Teams better, I created a small helper app called Teamite. It’s a Mac and Windows app that sits in the menu bar/taskbar. The app integrates with Microsoft’s Graph API to pull calendar event information, contacts’ events and working hours.

The app was created entirely using Electron, and a very basic server using Express.js.

Time to next event

When minimised, the app tells you how much time you have until your next meeting. Not just a “hey you have 15 minutes until your next meeting” popup like Outlook provides, but a constant countdown that is always visible.

Time to your next event

The app also shows how much time there is until your next event in the week view. This gives you a quick understanding of how much time you have during the day without guessing or counting the number of hour lines between events.

Time between events

The app also supports multiple timezones, showing hour indicators for your local timezone, and any number of additional timezones you choose.


Probably Teamite’s best feature (or at least my favourite) is its schedules view. It basically just tells you when your colleagues are busy. But the special part is it tells you when anyone is busy, and you can group people into your own defined teams.

This provides an instant view of when your team is available, and makes team communication significantly easier. At a single glance you know the best time to set up meetings, how over/underworked your team is, or when to bug your teammate for help.

Schedules view


Handling personal information, some which is probably confidential or under NDA, is obviously a huge risk. To avoid any security issues, I avoided touching this information. All processing happens client-side, and users’ data goes straight from Microsoft’s Graph API to the client.

Teamite connections

I used Microsoft’s OAuth to provide access, which also allows users to use the same login details as their Microsoft Teams account.

Don’t want to handle delicate information? Don’t.