fix: Parse meeting times in specified timezone correctly#783
Merged
Conversation
Fixed timezone handling end-to-end: - Added parseDateInTimezone() to interpret input times in the target timezone - When Claude sends "2026-01-15T13:00:00" for "1 PM ET", we now create a Date representing 18:00 UTC (the correct moment for 1 PM ET) - Both display in Slack and API calls to Zoom/Calendar now show correct time - Removed formatDateWithoutZ() workaround since Date objects are now correct Before: "1 PM ET" → Date(13:00 UTC) → displayed as "8 AM ET", but Calendar showed 1 PM After: "1 PM ET" → Date(18:00 UTC) → displayed as "1 PM ET", Calendar shows 1 PM Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Added a new parameter to the list_upcoming_meetings tool that filters meetings to only show those from working groups the user is a member of. This allows Addie to answer "what meetings are coming up for committees I'm in?" with a single tool call. Changes: - Added working_group_ids option to ListMeetingsOptions type - Updated listMeetings() to support filtering by multiple group IDs - Added my_working_groups_only parameter to list_upcoming_meetings tool Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use user-facing terminology - "committees" instead of "working groups". Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
bokelley
added a commit
that referenced
this pull request
Jan 16, 2026
* fix: Parse meeting times in specified timezone correctly Fixed timezone handling end-to-end: - Added parseDateInTimezone() to interpret input times in the target timezone - When Claude sends "2026-01-15T13:00:00" for "1 PM ET", we now create a Date representing 18:00 UTC (the correct moment for 1 PM ET) - Both display in Slack and API calls to Zoom/Calendar now show correct time - Removed formatDateWithoutZ() workaround since Date objects are now correct Before: "1 PM ET" → Date(13:00 UTC) → displayed as "8 AM ET", but Calendar showed 1 PM After: "1 PM ET" → Date(18:00 UTC) → displayed as "1 PM ET", Calendar shows 1 PM Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: Add my_working_groups_only filter to list_upcoming_meetings Added a new parameter to the list_upcoming_meetings tool that filters meetings to only show those from working groups the user is a member of. This allows Addie to answer "what meetings are coming up for committees I'm in?" with a single tool call. Changes: - Added working_group_ids option to ListMeetingsOptions type - Updated listMeetings() to support filtering by multiple group IDs - Added my_working_groups_only parameter to list_upcoming_meetings tool Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor: Rename my_working_groups_only to my_committees_only Use user-facing terminology - "committees" instead of "working groups". Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
bokelley
added a commit
that referenced
this pull request
Jan 20, 2026
* fix: Parse meeting times in specified timezone correctly Fixed timezone handling end-to-end: - Added parseDateInTimezone() to interpret input times in the target timezone - When Claude sends "2026-01-15T13:00:00" for "1 PM ET", we now create a Date representing 18:00 UTC (the correct moment for 1 PM ET) - Both display in Slack and API calls to Zoom/Calendar now show correct time - Removed formatDateWithoutZ() workaround since Date objects are now correct Before: "1 PM ET" → Date(13:00 UTC) → displayed as "8 AM ET", but Calendar showed 1 PM After: "1 PM ET" → Date(18:00 UTC) → displayed as "1 PM ET", Calendar shows 1 PM Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: Add my_working_groups_only filter to list_upcoming_meetings Added a new parameter to the list_upcoming_meetings tool that filters meetings to only show those from working groups the user is a member of. This allows Addie to answer "what meetings are coming up for committees I'm in?" with a single tool call. Changes: - Added working_group_ids option to ListMeetingsOptions type - Updated listMeetings() to support filtering by multiple group IDs - Added my_working_groups_only parameter to list_upcoming_meetings tool Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor: Rename my_working_groups_only to my_committees_only Use user-facing terminology - "committees" instead of "working groups". Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixed timezone handling end-to-end for meeting scheduling:
parseDateInTimezone()to interpret input times in the target timezone"2026-01-15T13:00:00"meaning "1 PM ET", we now create a Date representing 18:00 UTC (the correct moment for 1 PM ET)formatDateWithoutZ()workaround since Date objects are now correctProblem
Before this fix:
"2026-01-15T13:00:00"new Date()→ 13:00 UTC (wrong!)After this fix:
"2026-01-15T13:00:00"parseDateInTimezone()→ 18:00 UTC (correct!)Test plan
🤖 Generated with Claude Code