Google Calendar (via gogcli)
by @lstpsche
Access and manage Google Calendar events with gogcli for cross-calendar agendas, keyword search, and filtered outputs avoiding unwanted calendars like holidays.
clawhub install gog-calendar📖 About This Skill
name: gog-calendar description: Google Calendar via gogcli: reliable cross-calendar agenda (today/week/range) and best-effort keyword search across calendars (iterate + aggregate). Token-efficient output (
--plain default, --json only when needed). Post-filters unwanted calendars (e.g., holidays) and confirms before writes.
metadata: {"openclaw":{"emoji":"📅","requires":{"bins":["gog"]},"install":[{"id":"brew","kind":"brew","formula":"steipete/tap/gogcli","bins":["gog"],"label":"Install gogcli (brew)"}]}}
gog-calendar
Use gog (gogcli) for Google Calendar: agenda (events list) and keyword search across calendars.
Output rule (tokens vs reliability)
gogcli stdout should stay parseable; prefer --plain / --json and put hints to stderr. oai_citation:0‡GitHub
--plain for read-only listing you only summarize (cheaper tokens):--json only when structure is required:--no-input (fail instead of prompting). oai_citation:1‡GitHubCalendar exclusions (post-processing)
Users may explicitly exclude certain calendars from searches/agenda (e.g., “National holidays”).
When answering, you MUST:
1) Query broadly (e.g., events --all or iterate all calendars for search),
2) Then filter out excluded calendars in post-processing.
How to determine excluded calendars:
holiday, holidays, national holidays (and localized equivalents)
Filtering rule:
gog calendar calendars), filter by calendar name/summary.Always mention filtering briefly if it materially changes the answer:
Agenda (always cross-calendar, then filter)
For “what’s on my calendar today / tomorrow / this week / between X and Y”:
gog calendar events --all --from --to --plain
Examples:
gog calendar events --all --from 2026-02-04 --to 2026-02-05 --plaingog calendar events --all --from 2026-02-04 --to 2026-02-11 --plainOutput formatting:
Keyword search across calendars (best-effort, aggregate, then filter)
Calendar event queries are scoped to a calendarId (API is /calendars/{calendarId}/events), so keyword search must iterate calendars and aggregate results. oai_citation:2‡Google for Developers
Default window:
Workflow (do not skip):
1) List calendars (need IDs + names for filtering):
- gog calendar calendars --json
2) Build the set of excluded calendarIds from the exclusions rule.
3) For EACH non-excluded calendarId, search (JSON required for merge/dedupe):
- gog calendar search "
4) Aggregate all matches across calendars (do NOT stop on first match unless user asked).
5) Deduplicate by (calendarId, eventId), sort by start time.
6) Report results and explicitly mention the searched window (and any filters applied).
If nothing found in default window:
Fallback if user is sure it exists:
gog calendar events --all --from --to --plain
Writes (create/update/delete/RSVP)
Before any write action: