Google Calendar (via gogcli)

Access and manage Google Calendar events with gogcli for cross-calendar agendas, keyword search, and filtered outputs avoiding unwanted calendars like holidays.

MIT-0 · Free to use, modify, and redistribute. No attribution required.
5 · 4.3k · 26 current installs · 26 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
The name and SKILL.md describe using the gog (gogcli) command-line tool to list/search/create calendar events. The metadata declares the required binary ('gog') and an install recipe (Homebrew formula steipete/tap/gogcli) that matches the stated purpose.
Instruction Scope
Instructions tell the agent to run gog commands to list/search/modify calendars and to consult the user's preferences/memory for excluded calendars. This is within scope for a calendar skill. Note: the skill implicitly relies on the local gog authentication state (OAuth tokens) but does not document authentication steps or where tokens live.
Install Mechanism
No install spec in the package itself, but metadata suggests installing gogcli via a Homebrew formula from steipete/tap. Homebrew installs are common and expected, but this is a third-party tap — you should verify the upstream project (GitHub repo) and the formula before running it.
!
Credentials
The skill declares no environment variables or config paths. However, to access Google Calendar the gog client will need OAuth credentials/tokens stored locally (or via the system). The SKILL.md does not mention these tokens or required scopes, so there's a minor coherence gap: the ability to actually access calendars depends on local auth state outside the skill's declarations. No unrelated secrets are requested by the skill.
Persistence & Privilege
Skill is not always-enabled and does not request elevated platform privileges. It is instruction-only and will execute gog commands when invoked; there is no indication it modifies other skills or system-wide settings.
Assessment
This skill appears to do what it says: run gogcli to read and (with confirmation) write Google Calendar data. Before installing or using it: 1) inspect the upstream gogcli project (https://github.com/steipete/gogcli) and the Homebrew formula to ensure you trust the tap; 2) be aware gog uses OAuth tokens stored locally — confirm which Google account will be accessed and what scopes are granted; 3) expect the agent to run gog commands that read your calendar content and only allow writes after explicit confirmation; and 4) if you later want to revoke access, remove gog's OAuth tokens or revoke access from your Google account security settings. If you want a tighter review, provide the exact Homebrew formula or your environment's authentication method so I can check where credentials are stored and what permissions gog requests.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.0
Download zip
agendavk970r1ej3vk7dyv2e66nkf03j580f85mcalendarvk970r1ej3vk7dyv2e66nkf03j580f85meventsvk970r1ej3vk7dyv2e66nkf03j580f85mgogclivk970r1ej3vk7dyv2e66nkf03j580f85mgoogle-calendarvk970r1ej3vk7dyv2e66nkf03j580f85mlatestvk970r1ej3vk7dyv2e66nkf03j580f85mproductivityvk970r1ej3vk7dyv2e66nkf03j580f85mschedulevk970r1ej3vk7dyv2e66nkf03j580f85m

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

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

  • Default to --plain for read-only listing you only summarize (cheaper tokens):
    • agenda listing (today / next days / range)
    • calendars list
  • Use --json only when structure is required:
    • aggregating results across calendars (cross-calendar keyword search)
    • deduping / sorting / extracting IDs for follow-up calls
    • any write workflow where exact fields matter
  • In automation runs, add --no-input (fail instead of prompting). oai_citation:1‡GitHub

Calendar 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:

  • First, check the user’s preferences/memory for an explicit “exclude calendars” list.
  • If none is provided, apply a conservative default filter for obvious noise calendars:
    • calendars whose name/summary contains: holiday, holidays, national holidays (and localized equivalents)
  • Never filter out user-owned calendars unless explicitly excluded.

Filtering rule:

  • If you have calendar metadata (from gog calendar calendars), filter by calendar name/summary.
  • If you only have events output, filter by matching event’s calendarId to the excluded calendarIds resolved from the calendars list.

Always mention filtering briefly if it materially changes the answer:

  • “(Filtered out: National holidays)”

Agenda (always cross-calendar, then filter)

For “what’s on my calendar today / tomorrow / this week / between X and Y”:

  • MUST query all calendars:
    • gog calendar events --all --from <date_or_iso> --to <date_or_iso> --plain
  • Then apply calendar exclusions (above).
  • Do not answer “nothing scheduled” unless you ran the command for the correct window and applied filtering.

Examples:

  • Today: gog calendar events --all --from 2026-02-04 --to 2026-02-05 --plain
  • Next 7 days: gog calendar events --all --from 2026-02-04 --to 2026-02-11 --plain

Output formatting:

  • sort by start time
  • group by day
  • show: time range, summary, location (calendar name only if it helps)

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:

  • if user didn’t specify a range: next 6 months from today (inclusive)
  • if user specified date/range: use it

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 "<query>" --calendar <calendarId> --from <from> --to <to> --max 50 --json --no-input
  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:

  • say: “No events found in the next 6 months (<from><to>). Want me to search further (e.g., 12 months) or within specific dates?”

Fallback if user is sure it exists:

  • ask/derive an approximate date and list around it (then filter):
    • gog calendar events --all --from <date-7d> --to <date+7d> --plain
  • then match by title tokens locally (casefold + token overlap)

Writes (create/update/delete/RSVP)

Before any write action:

  • summarize exact intent (calendar, title, start/end, timezone, attendees, location)
  • ask for explicit “yes”
  • then run the command

Files

1 total
Select a file
Select a file to preview.

Comments

Loading comments…