As a Frappe/ERPNext implementation company, we work with many organizations using Microsoft 365, and we use it internally as well.
A common challenge we faced was that Frappe’s built-in calendar integration is primarily for Google, while many of our clients use Outlook and Teams. This meant Frappe Events and Outlook calendars were essentially living in two different places.so we built integration
frappe_microsoft365
https://github.com/Bizmap-Technologies-Pvt-Ltd/frappe_microsoft365
What it supports
-
Two-way Outlook Calendar ↔ Frappe Event sync
-
Delta-based sync to handle recurring events, updates and deletions without duplicates/orphans
-
Teams meetings directly from Frappe Events, with the join link added back to the Event
-
Accept / Tentative / Decline invitation responses
-
Teams meeting recordings and transcripts, linked back to the Event
-
Transcripts automatically attached as
.vtt -
One Entra/Azure app registration per organization, with individual user authorization
A few things to know
Default calendars only: Shared mailboxes, room calendars and shared calendars aren’t supported yet.
Email stays native to Frappe: The app doesn’t replace Frappe’s Email Account functionality. It helps configure the Microsoft Connected App for Outlook OAuth, while Frappe continues handling email normally.
Teams transcripts: Microsoft requires an additional tenant-level setting/policy for transcript access. Without it, Graph can return a 403 even when permissions and consent are correct.
We built this to solve a recurring requirement across our Frappe implementations and thought it could be useful to the wider community.
It’s open source, and contributions, issues, feedback and suggestions are welcome.
We’d also love to know what would be useful next shared/room calendars, deeper Teams integration, SharePoint, OneDrive, or something else?