microsoftgraph / microsoftgraph/msgraph-sdk-dotnet
Replacing EWS SyncFolderItems - when is the event delta query going to be fixed/released
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 789
- Forks
- 264
- Avg merge
- 15h 17m
- Merged PRs (30d)
- 3
Description
Is your feature request related to a problem? Please describe the problem.
Hi,
Because of the EWS deprecation for Office 365 starting October 2026, I'm trying to replace an existing process that uses SyncFolderItems to update a database with copies of emails and calendar items.
I'm using messages/delta for emails and that seems to be working quite well.
Events is proving harder, because currently I have a choice of:
calendarview/delta
events/delta
My problem is that events/delta is much closer to what I need because it:
- Doesn't include occurrences.
- In theory (see below) doesn't require a start/end date.
But:
- According to the documentation events/delta is still in Beta.
- As far as I can tell it seems to have been in Beta for quite a long time.
- Although it's in Beta calling it using the Production SDK does in fact seem to work
- However, for some reason it requires a StartDateTime (as does the Beta version - see issue 1015)
So I guess my questions are:
- When will events/delta be released? Crucially for me, will it be before October?
- Is it safe to use events/delta now from the Production SDK with the StartDateTime?
- It allows me to omit the EndDateTime, but what's going on under the covers of the SDK? Is it supplying one for me, is it genuinely calling the events/delta endpoint or is it in fact using calendarview/delta with a hard coded end date?
I've noticed that because events/delta does require a StartDateTime I get the same 'odd' behaviour as with calenderview where creates/updates outside the range are treated as deletes and moving an event outside the range is also treated as delete.
Describe the solution you'd like.
In an ideal world I'd like SyncFolderItems to be exposed via Graph.
Failing that I'd like events/delta to be released ASAP without the requirement for a StartDateTime or EndDateTime as per the documentation, and without the weird creates/updates/moves being treated as deletes.
Any help/suggestions welcome, given the deadline.
Additional context?
To give a bit of context about our existing EWS process. For both emails and calendar items it can start off by:
- Processing all existing items in a user's mail or calendar folder.
- Start processing from now. In this case it loops around until it has read all items (but not saved them to the DB) and saves the final sync state and processes subsequent updates from there.
After the initialisation it then runs on a schedule and processes any new items in the 'tracked' folders (for both emails and calendar items) and any deletes or updates for calendar items.
The great advantage of SyncFolderItems is that it is designed for the exact job we want to do, doesn't require a date range, and it distinguishes updates from creates, which Graph currently doesn't.
It also gracefully handles the situation where someone is rearranging the items in their folders, i.e. rather than a genuinely new email or calendar item, an existing item has been dragged into a folder. This is much harder with graph, especially with calendars as it forces me to specify a date range and then behaves weirdly if someone drags an old appointment in or out of the date range. I'm currently attempting to get around this by using a very old StartDateTime.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the events/delta and calendarview/delta endpoint behavior described in the issue, including the StartDateTime requirement and handling of creates, updates, and moves. The issue identifies no repository file or test; done would require maintainers or Microsoft Graph documentation to answer the release timing, SDK behavior, and whether the requested synchronization semantics are supported.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- api
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100