diff --git a/packages/gatekeeper-google/src/google.ts b/packages/gatekeeper-google/src/google.ts index 742dc530..4086718a 100644 --- a/packages/gatekeeper-google/src/google.ts +++ b/packages/gatekeeper-google/src/google.ts @@ -865,8 +865,13 @@ export class GatekeeperUserImpl extends WorkerEntrypoint { + try { return decodeURIComponent(value); } catch { return value; } + }; + if (parsed.hostname === "calendar.google.com" && parsed.pathname.startsWith("/calendar/")) { - let calendarId = decodeURIComponent(parsed.pathname.split("/")[2] ?? ""); + let calendarId = safeDecodeURI(parsed.pathname.split("/")[2] ?? ""); if (!calendarId) { throw new Error("Invalid Google Calendar URL: no calendar ID found"); } @@ -938,11 +943,11 @@ export class GatekeeperUserImpl extends WorkerEntrypoint 320) { throw new Error("Gmail label name must be between 1 and 320 bytes."); }