What does this PR do?
This PR implements a calendar cache system for MS Outlook using the MS Graph API.
/claim https://github.com/calcom/cal.com/issues/21050
Visual Demo (For contributors especially)
A visual demonstration is strongly recommended, for both the original and new change (video / image - any one).
Video Demo (if applicable):
- Show screen recordings of the issue or feature.
- Demonstrate how to reproduce the issue, the behavior before and after the change.
Image Demo (if applicable):
- Add side-by-side screenshots of the original and updated change.
- Highlight any significant change(s).
Mandatory Tasks (DO NOT REMOVE)
- I have self-reviewed the code (A decent size PR without self-review might be rejected).
- I have updated the developer docs in /docs if this PR makes changes that would require a documentation change. If N/A, write N/A here and check the checkbox.
- I confirm automated tests are in place that prove my fix is effective or that my feature works.
How should this be tested?
- Are there environment variables that should be set?
- What are the minimal test data to have?
- What is expected (happy path) to have (input and output)?
- Any other important info that could help to test that PR
Checklist
- I haven’t read the contributing guide
- My code doesn’t follow the style guidelines of this project
- I haven’t commented my code, particularly in hard-to-understand areas
- I haven’t checked if my changes generate no new warnings
Summary by cubic
Added caching for MS Outlook Calendars using the Microsoft Graph API, with webhook notifications to keep calendar data up to date.
- New Features
- Implemented a webhook endpoint to receive and process MS Graph notifications.
- Added database fields and logic to track Office 365 calendar subscriptions and cache expiration.
- Updated calendar availability logic to use and refresh cache based on webhook events.