Microsoft Graph all-day events return incorrect UTC start/end – organizer timezone not available

Navnath Barde 40 Reputation points
2026-02-04T13:06:09.03+00:00

We are using Microsoft Graph API to fetch Outlook calendar events.

calendarEvent = (await graphServiceClient.Users[eventResquest.UserId].Events.GetAsync((requestConfiguration) => { requestConfiguration.Headers.Add("Prefer", "outlook.timezone="UTC""); requestConfiguration.QueryParameters.Filter = filter; })).Value.FirstOrDefault();

Normal (non all-day) events work correctly, but we are facing a consistent issue with all-day events.

Scenario:

  • Organizer mailbox timezone: IST (UTC+05:30)
  • User creates:
    1. Normal meeting: 10:00–10:30 IST
    2. All-day event on 9 Feb
  • Events are fetched using: Prefer: outlook.timezone="UTC"

Graph API response:

Normal event (expected and correct):

start:

{

"dateTime": "2026-02-09T04:30:00Z",

"timeZone": "UTC"

}

All-day event:

{

"isAllDay": true,

"start": {

"dateTime": "2026-02-08T00:00:00Z",

"timeZone": "UTC"
```  },

  "end": {

```yaml
"dateTime": "2026-02-09T00:00:00Z",

"timeZone": "UTC"
```  },

  "originalStartTimeZone": "UTC",

  "originalEndTimeZone": "UTC"

}

**Problem:**

- For all-day events, Microsoft Graph always returns start/end as 00:00 UTC

- Prefer: outlook.timezone header is ignored

- originalStartTimeZone/originalEndTimeZone are also returned as "UTC"

- Organizer timezone is NOT available in the event payload

**Because of this:**

- It is impossible to determine the actual local calendar day of the all-day event

- Applications that store everything in UTC cannot correctly normalize all-day events

- Date shifts occur unless custom logic is applied

- The only workaround appears to be calling /users/{id}/mailboxSettings, which is user-dependent and requires additional permission

**Questions:**

1) Is this all-day event behavior by design in Microsoft Graph?

2) Is there any event-level or non user-dependent way to determine the organizer’s timezone?

3) Is /users/{id}/mailboxSettings the ONLY supported way to get organizer timezone?

4) Are there any official best practices from Microsoft for handling all-day events correctly without relying on user mailbox settings?

We understand that all-day events are date-based, but without organizer timezone information in the event object, correct UTC normalization is unreliable.

Any official clarification or guidance would be appreciated.
Microsoft Security | Microsoft Graph
0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.