Skip to main content
Question

Outlook Calendar Integration – Time Zone Handling Challenge

  • September 22, 2025
  • 2 replies
  • 39 views

I’m working on an Outlook use case where we need to fetch meetings for a user within a specific start and end datetime using the Microsoft Graph API.

Challenge

When calling the CalendarView endpoint, the Graph API requires both start and end datetime values. If no time offset is included, it defaults to UTC.
For example, for Eastern Standard Time (EST), the offset should be UTC-5 hours.

The question is: How can we dynamically pass the correct offset based on the user’s timezone?

What we’ve tried

  • We attempted to format the datetime using the Moveworks DSL Format_Time function, but this requires the timezone in IANA format.
  • From the Graph API, we only get the user’s timezone in Windows format (e.g., Eastern Standard Time).
  • Is there a recommended way to convert Windows timezone values to IANA format within DSL, so that we can correctly set the datetime offset when calling the Graph API?

Examples:

  • Windows timezone: Eastern Standard Time
  • IANA timezone: America/New_York

Link of the API we are using: List calendarView - Microsoft Graph v1.0 | Microsoft Learn

Any guidance or best practices would be really helpful!

 

Thanks in Advance!

2 replies

Kevin Mok
Forum|alt.badge.img+1
  • Community Manager
  • September 22, 2025

Hey ​@2695809 - I would recommend adding an llm action before calling the CalendarView endpoint. With the LLM action, you can tell the AI to convert the Windows timezone to IANA timezone and use its output in the CalendarView endpoint.

Does that make sense?


Forum|alt.badge.img+3
  • Inspiring
  • September 22, 2025

For Agent Studio 2.0, we’ve used plugins descriptions and slot descriptions to say something like “always use ISO 8601 (YYYY-MM-DDTHH:MM:SS±HH:MM) from user inputs for datetimes” so that we can ensure correct datetime format for start_datetime and end_datetime. Our values are set to EST. 

Then we convert both start and end times into Unix using PARSE_TIME() and pass both to a script action.

Script action adds offset to these Unix times in python. We use location data as another input argument for the script action to determine proper offset to set it to. For every time zone behind we add 3600 seconds to both start and end datetimes.

Once offset is added to the Unix datetime, we pass that back to our conversational process and use FORMAT_TIME() to convert it back to ISO 8601 for our API call.

 

We use this for making onsite reservations and converting our start_datetime and end_datetime to have offsets depending on target room location across multiple timezones. We reuse the same script action for multiple timezone offset logic calls.