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

Navnath Barde 40 Reputation points
2026-02-04T13:14:27.04+00:00

We are using Microsoft Graph API to read and update Outlook calendar events.

Normal (non all-day) events work correctly, but we consistently face issues 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.
Microsoft 365 and Office | Development | Other
0 comments No comments
{count} votes

Answer accepted by question author
  1. Kudos-Ng 13,275 Reputation points Microsoft External Staff Moderator
    2026-02-04T15:06:07.4533333+00:00

    Hi Navnath Barde,

    Thank you for posting your question in the Microsoft Q&A forum.

    At this time, I’m not aware of any official Microsoft documentation or confirmation that explicitly explains the behavior you have observed. However, similar behavior has been reported by multiple users in the past.

    Recently, one user shared an alternative approach that may be helpful in your scenario. Specifically, it suggests determining the original time zone by inspecting the MAPI property returned via singleValueExtendedProperties.

    You can refer to the original discussion and solution here: https://stackoverflow.com/questions/65349822/inconsistent-originalstarttimezone-for-all-day-events/79829561#79829561

    Important: This link will take you to Stackoverflow, which is outside Microsoft’s domain. Please note that Microsoft is not responsible for the accuracy, security, or advertising on external sites.

    I hope the information above helps clarify the situation you are currently encountering, and ideally provides you with another possible direction to further investigate or address the issue.


    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".     

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.


0 additional answers

Sort by: Most helpful

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.