Skip to main content
← Back to list
01Issue
BugShippedExtensionsTeam
Assigneesstack72

Relationships

#1238 gcp/calendar events.list reads wrong array field ('defaultReminders' not 'items') → always returns 0 events

Opened by kneel · 7/18/2026· Shipped 7/19/2026

The list method of @swamp/gcp/calendar/events extracts the wrong array field from the Calendar events.list response, so it always returns zero events.

In models/events.ts the list execute calls the pagination helper with the array field "defaultReminders":

const { items, nextPageToken } = await listResources(
  BASE_URL, LIST_CONFIG, params,
  "defaultReminders",            // ← wrong: this is always []
  (args.maxPages ?? 10), credentials,
);

The Calendar events.list response returns the events under items; defaultReminders is a separate top-level array that is empty for most calendars. So listResources collects the (empty) defaultReminders array and list writes zero state resources regardless of the calendar contents.

Repro: create a @swamp/gcp/calendar/events model against any non-empty calendar and run list over a window known to contain events → succeeds with 0 events produced. A direct GET of the same events.list URL returns the events under response.items.

Fix: pass "items" as the arrayField to listResources (the events.list array field), not "defaultReminders".

Verified against a real Google calendar (calendar-scoped SA token): the same window returns 13 events under items via curl but 0 via the model's list. Version: @swamp/gcp/calendar 2026.07.17.1.

Upstream repository: https://github.com/swamp-club/swamp-extensions

Environment

  • Extension: @swamp/gcp/calendar@2026.07.17.1
  • swamp: 20260716.194319.0-sha.df9fc306
  • OS: linux (x86_64)
  • Deno: 2.8.3
  • Shell: /bin/zsh
02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED+ 1 MOREASSIGNED+ 4 MOREREVIEW+ 4 MOREPR_MERGED+ 1 MORENOTIFICATION_SKIPPED

Shipped

7/19/2026, 12:30:18 AM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack727/18/2026, 11:44:17 PM

Sign in to post a ripple.