Skip to content

Replacing EWS SyncFolderItems - when is the event delta query going to be fixed/released #3130

@LaughingJohn

Description

@LaughingJohn

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:

  1. Doesn't include occurrences.
  2. 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:

  1. When will events/delta be released? Crucially for me, will it be before October?
  2. Is it safe to use events/delta now from the Production SDK with the StartDateTime?
  3. 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:

  1. Processing all existing items in a user's mail or calendar folder.
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions