Skip to content

Fix Google Calendar Obsidian link escaping - #2102

Closed
martin-forge wants to merge 1 commit into
callumalpass:mainfrom
martin-forge:martin-forge/fix-google-calendar-obsidian-link-escaping
Closed

Fix Google Calendar Obsidian link escaping#2102
martin-forge wants to merge 1 commit into
callumalpass:mainfrom
martin-forge:martin-forge/fix-google-calendar-obsidian-link-escaping

Conversation

@martin-forge

@martin-forge martin-forge commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Escape the Obsidian URI query separator in Google Calendar sync descriptions as &file=.
  • Keep the link plain text and update the focused service test plus release note.

Why

Google Calendar descriptions are HTML-capable. Leaving the raw &file= separator in the description can be handled as an HTML entity boundary by Calendar clients, which breaks the Obsidian open link path parameter.

Testing

  • npm test -- --runTestsByPath tests/services/TaskCalendarSyncService.test.ts
  • npm run build:test
  • npm run lint
  • Upstream CI passed: docs, test (20), and build-test.

@martin-forge

Copy link
Copy Markdown
Contributor Author

Closing this — I tested the premise and it does not hold.

I created two Google Calendar events, one storing a raw & in the description and one storing &, and read both back through the API. Google stores the field byte-for-byte and normalises nothing. Rendering then differs by client:

  • Apple Calendar on macOS decodes & to & and auto-linkifies the URL, so both events displayed an identical working link. The raw & was never broken there.
  • TaskNotes' own calendar event modal renders the description as plain text and does not decode entities, so & appears literally and the Obsidian URI is broken.

So this change fixes nothing I could reproduce and breaks the link in TaskNotes itself. Apologies for the noise.

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