Skip to content

fix(google-calendar): one Join button per meeting; render plaintext descriptions cleanly - #327

Merged
KrisBraun merged 1 commit into
mainfrom
calendar-conferencing-note-cleanup
Jul 22, 2026
Merged

fix(google-calendar): one Join button per meeting; render plaintext descriptions cleanly#327
KrisBraun merged 1 commit into
mainfrom
calendar-conferencing-note-cleanup

Conversation

@KrisBraun

Copy link
Copy Markdown
Contributor

Problem

A Google Calendar event carrying a pasted Microsoft Teams meeting invite could surface several "Join" videoconferencing buttons and a garbled description note (a run-on line of escaped-underscore separators plus dial-in/compliance boilerplate).

Fixes

One join link per meetingextractConferencingLinks scraped every provider-matching URL out of the event description as a join link, including pages that are not click-to-join:

  • the Teams /meetingOptions organizer-settings page,
  • Webex's /msteams "join on a video device / more info" gateway,
  • dial-in local-number pages (dialin.* hosts).

It now filters those out (isConferencingJoinUrl) and keeps a single join link per provider, collapsing the two Teams join forms (/meet/ and /l/meetup-join/) into one button.

Plaintext descriptions render cleanlycontainsHtml matched any <...> as an HTML tag, so plain-text invites containing angle-bracket autolinks (Label<https://url>, <tel:...>) were routed through the HTML→Markdown converter, which flattened newlines and left walls of escaped underscores. It now recognises only real HTML tags (a tag name followed by whitespace, /, or >), so plaintext descriptions take the plaintext path — which already normalizes separator bars, converts Label<url> links, and preserves paragraphs.

Tests

Added unit tests for containsHtml (autolinks are not HTML; real tags are) and extractConferencingLinks (non-join URLs dropped; one link per provider; structured conferenceData preferred). Full connector suite green (265 tests).

🤖 Generated with Claude Code

https://claude.ai/code/session_015EA4XqgTRwyWjKMVx8Lgr5

…scriptions correctly
Google Calendar events with a Microsoft Teams (or similar) meeting could
surface several "Join" buttons and a garbled description note.
- extractConferencingLinks scraped every provider-matching URL out of the
event description, including pages that are not click-to-join links: the
Teams /meetingOptions organizer settings page, Webex's /msteams
device-gateway page, and dial-in local-number pages. It now filters those
out and keeps a single join link per provider, collapsing the two Teams
join forms (/meet/ and /l/meetup-join/) into one button.
- containsHtml treated any `<...>` as an HTML tag, so plain-text invites
containing angle-bracket autolinks (`Label<https://url>`, `<tel:...>`)
were routed through the HTML-to-Markdown converter, which flattened
newlines and left walls of escaped underscores. It now matches only real
HTML tags, so plaintext descriptions take the plaintext path and render
cleanly.
@KrisBraun
KrisBraun merged commit 3823861 into mainJul 22, 2026
1 check passed
@KrisBraun
KrisBraun deleted the calendar-conferencing-note-cleanup branch July 22, 2026 22:05
Sign up for freeto 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

@KrisBraun