Install
openclaw skills install quick-gcalcliGoogle Calendar via gcalcli: today-only agenda by default, bounded meaning-first lookup via agenda scans, and fast create/delete with verification--optimized for low tool calls and minimal output.
openclaw skills install quick-gcalcliUse gcalcli to read/search/manage Google Calendar with minimal tool calls and minimal output.
Before using this skill, please refer to the README.md file in this skill's directory for detailed setup instructions. The setup process includes installing gcalcli, configuring OAuth2 credentials, and setting up the default calendar and timezone.
--nocolor, --calendar) go BEFORE the subcommand.gcalcli --nocolor delete --iamaexpert "query" start end — NOT gcalcli --nocolor --iamaexpert delete ....--iamaexpert (delete), --noprompt/--allday (add), --use-legacy-import (import), etc.If user says "on Monday/Tuesday/..." without a date:
When locating events to cancel/delete/edit:
agenda over search.Use gcalcli search only as a fallback when:
--nocolor to reduce formatting noise and tokens.--tsv only if you must parse/dedupe/sort.This skill is designed for personal assistant use where the user expects fast, low-friction calendar management. The confirmation policy below is an intentional UX choice — see README.md for rationale and safety guards.
For cancel/delete/edit actions, skip confirmation when ALL of these hold:
If multiple candidates match, or the match is uncertain:
When creating an event:
--calendar.
add — default for one-off events. Supports --allday, --reminder, --noprompt. Does NOT support recurrence or free/busy (transparency).import via stdin — use ONLY when you need recurrence (RRULE) or free/busy (TRANSP:TRANSPARENT). Pipe ICS content via stdin; NEVER write temp .ics files (working directory is unreliable in exec sandbox).quick — avoid unless user explicitly asks for natural-language add. Less deterministic.--iamaexpert (a delete subcommand flag — goes AFTER delete). This is gcalcli's built-in flag for non-interactive/scripted deletion.--refresh.gcalcli --nocolor agenda today tomorrowgcalcli --nocolor agenda today +14dgcalcli --nocolor agenda today +30dgcalcli --nocolor agenda <start> <end>gcalcli --nocolor search "<query>" today +180dgcalcli --nocolor search "<query>" <start> <end>add (one-off events)gcalcli --nocolor agenda <start> <end>--calendar here; overlaps must be checked across all non-ignored calendars.gcalcli --nocolor --calendar "<Cal>" add --noprompt --title "<Title>" --when "<Start>" --duration <minutes>gcalcli --nocolor --calendar "<Cal>" add --noprompt --allday --title "<Title>" --when "<Date>"--reminder "20160 popup" → 14 days before (20160 = 14×24×60)--reminder "10080 popup" → 7 days before--reminder "0 popup" → at event startw (weeks), d (days), h (hours), m (minutes). No suffix = minutes.popup (default), email, sms.import via stdin (recurrence / free/busy)Use ONLY when add can't cover the need (recurring events, TRANSP, etc.).
Pipe ICS directly via stdin — never write temp files.
echo 'BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
DTSTART;VALUE=DATE:20260308
SUMMARY:Event Title
RRULE:FREQ=YEARLY
TRANSP:TRANSPARENT
END:VEVENT
END:VCALENDAR' | gcalcli import --calendar "<Cal>"
DTSTART;VALUE=DATE:YYYYMMDD for all-day; DTSTART:YYYYMMDDTHHmmSS for timed.RRULE:FREQ=YEARLY — yearly recurrence. Also: DAILY, WEEKLY, MONTHLY.TRANSP:TRANSPARENT — free; TRANSP:OPAQUE — busy (default).--reminder "TIME" flag(s) to set reminders (overrides any VALARM in ICS).--use-legacy-import, --verbose, etc.) go AFTER import.gcalcli --nocolor agenda <dayStart> <dayEnd> (exact date)gcalcli --nocolor agenda today +14d (weekday)gcalcli --nocolor agenda today +30d (meaning only)gcalcli --nocolor delete --iamaexpert "<query>" <start> <end>gcalcli --nocolor agenda <dayStart> <dayEnd>gcalcli --nocolor --refresh agenda <dayStart> <dayEnd>gcalcli edit is interactive — cannot be used in non-interactive exec.--iamaexpert) → create with updated properties → verify.