Skip to content

fix: Parse meeting times in specified timezone correctly#783

Merged
bokelley merged 3 commits into
mainfrom
bokelley/fix-timezone-parsing
Jan 15, 2026
Merged

fix: Parse meeting times in specified timezone correctly#783
bokelley merged 3 commits into
mainfrom
bokelley/fix-timezone-parsing

Conversation

@bokelley

Copy link
Copy Markdown
Contributor

Summary

Fixed timezone handling end-to-end for meeting scheduling:

  • Added parseDateInTimezone() to interpret input times in the target timezone
  • When Claude sends "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)
  • Both display in Slack AND API calls to Zoom/Calendar now show the correct time
  • Removed formatDateWithoutZ() workaround since Date objects are now correct

Problem

Before this fix:

  • Claude says "1 PM ET" and sends "2026-01-15T13:00:00"
  • Server parses as new Date() → 13:00 UTC (wrong!)
  • Addie displays "8 AM ET" (correct for 13:00 UTC, but wrong intent)
  • Calendar shows 1 PM ET (due to formatDateWithoutZ workaround)

After this fix:

  • Claude says "1 PM ET" and sends "2026-01-15T13:00:00"
  • Server parses with parseDateInTimezone() → 18:00 UTC (correct!)
  • Addie displays "1 PM ET" ✓
  • Calendar shows 1 PM ET ✓

Test plan

  • Schedule a meeting for "1 PM ET" and verify Addie says "1 PM ET" (not 8 AM)
  • Verify Google Calendar invite shows 1 PM ET
  • Verify Zoom meeting shows 1 PM ET

🤖 Generated with Claude Code

bokelley and others added 3 commits January 15, 2026 13:04
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 bokelley merged commit 6fbb25b into main Jan 15, 2026
6 checks passed
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant