Google Calendar Port
This is the reference integration for the Google Calendar API and Harbor's Action Model.
Google Calendar Port
Purpose
This is the reference integration for the Google Calendar API and Harbor's Action Model.
Use it when:
- building Google Calendar actions in Harbor
- extending the Dock / Hub Google Calendar entry
- teaching Codex or OpenClaw how to map a scheduling API into Harbor Ports and Harbor Actions without turning Harbor into a generic proxy
Harbor Port worksheet
Product
- Product: Google Calendar API
- Publisher slug:
google - Publisher name:
Google - Category:
Calendar - Tags:
google,calendar,events,productivity,scheduling
Safe Harbor Port metadata
- Kind:
http_api - Label:
Google Calendar API - Description:
Google Calendar API connection managed locally through Harbor. - Base URL:
https://www.googleapis.com/ - Auth mode:
header_token - Auth header name:
Authorization - Auth token prefix:
Bearer
Hidden local config
authToken
Harbor stores the token locally only. Dock / Hub manifests must never contain it.
Harbor action design notes
Google Calendar is a good Harbor fit today when we stay on account-scoped and primary-calendar routes and keep write payloads in input.body. If future list filters or scheduling options are added, keep them in typed input.query fields rather than raw query strings.
Good Harbor Google Calendar actions:
- stable
GETroutes for account calendar list, settings, colors, and primary calendar metadata - one bounded
POSTread-like route for free/busy queries - explicit
POSTroutes for event or calendar creation requestBodyMode: "none"for readsrequestBodyMode: "json"for bounded writes or free/busy queriesresultMode: "json_summary"for all starter actions
Avoid for now:
- giant event-management surfaces with many optional query parameters
- watch/channel management
- automatic publish of create or mutate actions
Starter Google Calendar actions
Automatic read actions
list-calendar-list->GET /calendar/v3/users/me/calendarListlist-settings->GET /calendar/v3/users/me/settingsget-colors->GET /calendar/v3/colorsget-primary-calendar->GET /calendar/v3/calendars/primarylist-primary-events->GET /calendar/v3/calendars/primary/eventslist-primary-acl->GET /calendar/v3/calendars/primary/aclquery-freebusy->POST /calendar/v3/freeBusy
Approval-friendly write actions
create-primary-event->POST /calendar/v3/calendars/primary/eventscreate-calendar->POST /calendar/v3/calendars
Why these actions
These routes fit Harbor's Action Model well because they:
- stay under one fixed Google API origin
- use fixed account or primary-calendar paths relative to the Harbor Port
- keep inputs bounded and reviewable
- can be reviewed as named capabilities
- keep hidden auth entirely local to Harbor Node
Suggested operator workflow
- Import the Google Calendar Dock entry from Dock / Hub.
- Configure the local Google bearer token in Harbor Node.
- Use the low-risk read actions first.
- Keep
create-primary-eventandcreate-calendaronrequire_approvalunless there is a very deliberate local policy reason not to.
Suggested agent workflow
- Inspect the existing Google Calendar Harbor Port.
- Inspect live actions and drafts.
- Propose additional fixed-path actions only.
- Validate and test drafts.
- Request publish instead of self-publishing unless Harbor explicitly allows it.
Agents should never:
- ask Harbor for the stored token
- edit hidden Google Calendar auth
- widen Google Calendar into a generic arbitrary proxy
Current update strategy
For now, Google Calendar updates are manual:
- update the Dock / Hub Google Calendar integration document in
apps/hub/catalog/integrations/google/google-calendar.json - bump the manifest version when the action set changes materially
- re-import into Harbor or create new drafts from the updated Dock entry
Future options such as richer event-scoped templates or Hub-driven update checks are intentionally deferred until Harbor has clearer version and update semantics.
Official reference starting points
- Google Calendar API reference root:
https://developers.google.com/workspace/calendar/api/v3/reference - Calendar list:
https://developers.google.com/workspace/calendar/api/v3/reference/calendarList/list - Settings list:
https://developers.google.com/workspace/calendar/api/v3/reference/settings/list - Colors get:
https://developers.google.com/workspace/calendar/api/v3/reference/colors/get - Calendars get:
https://developers.google.com/workspace/calendar/api/v3/reference/calendars/get - Events list:
https://developers.google.com/workspace/calendar/api/v3/reference/events/list - Events insert:
https://developers.google.com/workspace/calendar/api/v3/reference/events/insert - ACL list:
https://developers.google.com/workspace/calendar/api/v3/reference/acl/list - FreeBusy query:
https://developers.google.com/workspace/calendar/api/v3/reference/freebusy/query