Skip to content

[CON-3243] feat: Add google calendar subscriber connector#2986

Open
Jkarage wants to merge 7 commits into
mainfrom
jk-calendar-subscriber-action
Open

[CON-3243] feat: Add google calendar subscriber connector#2986
Jkarage wants to merge 7 commits into
mainfrom
jk-calendar-subscriber-action

Conversation

@Jkarage
Copy link
Copy Markdown
Contributor

@Jkarage Jkarage commented May 12, 2026

Implements Subscribe, UpdateSubscription, DeleteSubscription, and RunScheduledMaintenance for the Google Calendar connector using the Calendar Watch API.

Objects supported:

  • events — POST /calendars/primary/events/watch
  • calendarList — POST /users/me/calendarList/watch
  • settings — POST /users/me/settings/watch
  • acl — POST /calendars/primary/acl/watch

Live Tests:
Screenshot 2026-05-12 at 16 54 47
Screenshot 2026-05-12 at 16 55 00

Google Calendar push notifications are delivered as HTTP POST requests to the address set in WatchRequest.Address. The body is always empty. All
information arrives in headers:

Header: X-Goog-Resource-State
Values: sync
Meaning: Initial handshake on channel creation — ignore it
Values: exists
Meaning: A resource was created or updated
Values: not_exists
Meaning: A resource was deleted

Header: X-Goog-Channel-ID
Values: e.g. -events
Meaning: The channel ID set during subscribe

Header: X-Goog-Resource-ID
Values: opaque string
Meaning: Stable ID of the watched resource (needed to stop the channel)

Header: X-Goog-Resource-URI
Values: URL
Meaning: The API endpoint of the changed resource

Header: X-Goog-Channel-Token
Values: string
Meaning: The token set in WatchRequest.Token, echoed back verbatim — use this to verify the notification came from Google

Header: X-Goog-Channel-Expiration
Values: RFC 1123 date
Meaning: When the channel expires

@linear
Copy link
Copy Markdown

linear Bot commented May 12, 2026

CON-3243

@Jkarage Jkarage requested a review from anushat05 May 12, 2026 15:32
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