Skip to content

siddharth-vaghasia/SyncMateM365

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Synt Mate M365

Tired of having to manually update your Microsoft 365 calendars across multiple accounts? Look no further than Sync Mate M365!

With Sync Mate M365, you can say goodbye to missed appointments and scheduling conflicts. The app creates a dummy event in each of your calendars whenever a new event is added, updated, or removed in any account. This ensures that all of your calendars are always up to date, no matter which device or account you're using.

Working Demo - Please visit.

Hack Together: Microsoft Graph and .NET

How it works

banner2

Screenshots

Manage Accounts

image

Consolidated Calendar View image

Meeting details popup image

Technical Notes

  • App Uses Graph API Change Notifications API.
  • Once you login or add new account,App creates a subscription with notification url to our webhook.
  • App is using Delegated permission to get all the calendar events and to Create an event.
  • App creates mapping between all of your accounts and their respective subscription IDs, which is linked to a unique identifier that is stored during your initial login.
  • Azure App Registration with mutli tenant configuration
  • Delegated Graph Permissions Calender.Read, Calender.ReadWrite
  • App does not store any of calendar data in database.
  • Below is list of information stored in to our database(Cloud Mongo DB).
    • Subscription id for each account
    • User Principal name (generally email)
    • User Id (Azure AD Unique Identifier)
    • Tenant Id
    • Refresh Token
    • Meeting Id
  • A Scheduler job utility to refresh the subscription because as per the design change notfication webhook lifecycle is 3 days.

Project Structure Information

  • ASP.NET Core MVC Web Application
  • API to connect Graph from backend
  • Scheduler Job Utility to update subscriptions
  • Full Calendar Library for Calendar View

Steps to build your our app

  • Clone the repository

  • Create Azure AD App Registration and provided required permission as Calender.Read, Calender.ReadWrite plus basic open id permissions

  • Replace the values in appsettings.json in both Scheduler and Main Solution

  • Create the free mongo db client account https://www.mongodb.com/cloud/atlas/register and create database and collection

    "DatabaseName": "SyncEvent",

    "UserInfoCollectionName": "UserInfo",

    "UserMappingCollectionName": "UserMapping",

    "MeetingMappingCollectionName": "MeetingMapping"

  • Run the project

Feel free to reach out to us if any help required in setting up the project.

Team

Siddharth Vaghasia

Kunj Sangani

Dharati Patel

Santosh Sarnobat

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •