Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Google 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.
Google 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.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Use gcalcli to read/search/manage Google Calendar with minimal tool calls and minimal output.
Global flags (--nocolor, --calendar) go BEFORE the subcommand. Subcommand-specific flags go AFTER the subcommand name. Example: gcalcli --nocolor delete --iamaexpert "query" start end โ NOT gcalcli --nocolor --iamaexpert delete .... This applies to ALL subcommand flags: --iamaexpert (delete), --noprompt/--allday (add), --use-legacy-import (import), etc.
Don't print CLI commands/flags/tool details unless the user explicitly asks (e.g. "show commands used", "/debug", "/commands"). If asked for commands: print ALL executed commands in order (including retries) and nothing else. Don't mix languages within one reply. Be concise. No scope unless nothing found.
Human-friendly dates by default. ISO only if explicitly requested. Don't quote event titles unless needed to disambiguate.
Trust gcalcli config (default/ignore calendars). Don't broaden scope unless user asks "across all calendars" or results are clearly wrong.
If user asks "agenda" without a period, return today only. Expand only if explicitly asked (tomorrow / next N days / date range).
If user says "on Monday/Tuesday/..." without a date: fetch next 14 days agenda once, pick matching day/event from tool output, proceed (or disambiguate if multiple).
When locating events to cancel/delete/edit: Prefer agenda over search. Use a bounded window and match events by meaning (semantic match) rather than exact text. Default locate windows: If user gives an exact date: scan that day only. If user gives a weekday: scan next 14 days. If user gives only meaning words ("train", "lecture", etc.) with no date: scan next 30 days first. If still not found: expand to 180 days and say so only if still empty. Use gcalcli search only as a fallback when: the time window would be too large to scan via agenda (token-heavy), or the user explicitly asked to "search".
Default search window: next ~180 days (unless user specified otherwise). If no matches: say "No matches in next ~6 months (<from>-><to>)" and offer to expand. Show scope only when nothing is found.
Default: use --nocolor to reduce formatting noise and tokens. Use --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: The user explicitly requested the action (e.g. "delete my dentist appointment"). Exactly one event matches in a tight time window. The match is unambiguous (single clear result on an exact date, or user specified date+time).
If multiple candidates match, or the match is uncertain: Ask a short disambiguation question listing the candidates (1-3 lines) and wait for the user's choice.
When creating an event: Always run a best-effort overlap check across ALL non-ignored calendars by scanning agenda WITHOUT --calendar. This ensures overlaps are detected even if the new event is created into a specific calendar. If overlap exists with busy events: Ask for confirmation before creating. If no overlap: Create immediately.
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.
Use non-interactive delete with --iamaexpert (a delete subcommand flag โ goes AFTER delete). This is gcalcli's built-in flag for non-interactive/scripted deletion. Always verify via agenda in the same tight window after deletion. If verification still shows the event, do one retry with --refresh. Never claim success unless verification confirms the event is gone.
Today: gcalcli --nocolor agenda today tomorrow Next 14d (weekday resolution): gcalcli --nocolor agenda today +14d Next 30d (meaning-first locate): gcalcli --nocolor agenda today +30d Custom: gcalcli --nocolor agenda <start> <end>
Default (~6 months): gcalcli --nocolor search "<query>" today +180d Custom: gcalcli --nocolor search "<query>" <start> <end>
Overlap preflight (tight, cross-calendar): gcalcli --nocolor agenda <start> <end> IMPORTANT: do NOT add --calendar here; overlaps must be checked across all non-ignored calendars. Timed event: gcalcli --nocolor --calendar "<Cal>" add --noprompt --title "<Title>" --when "<Start>" --duration <minutes> All-day event: gcalcli --nocolor --calendar "<Cal>" add --noprompt --allday --title "<Title>" --when "<Date>" With reminders (repeatable flag): --reminder "20160 popup" โ 14 days before (20160 = 14ร24ร60) --reminder "10080 popup" โ 7 days before --reminder "0 popup" โ at event start Time unit suffixes: w (weeks), d (days), h (hours), m (minutes). No suffix = minutes. Method: popup (default), email, sms.
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). One import call = one event (one VEVENT block). For multiple events, run separate piped imports. Add --reminder "TIME" flag(s) to set reminders (overrides any VALARM in ICS). All import-specific flags (--use-legacy-import, --verbose, etc.) go AFTER import.
Locate via agenda (preferred): gcalcli --nocolor agenda <dayStart> <dayEnd> (exact date) gcalcli --nocolor agenda today +14d (weekday) gcalcli --nocolor agenda today +30d (meaning only) Delete (non-interactive, bounded): gcalcli --nocolor delete --iamaexpert "<query>" <start> <end> Verify (same window): gcalcli --nocolor agenda <dayStart> <dayEnd> Optional one retry if still present: gcalcli --nocolor --refresh agenda <dayStart> <dayEnd>
gcalcli edit is interactive โ cannot be used in non-interactive exec. To change properties not editable in-place: delete + recreate the event. Locate โ delete (with --iamaexpert) โ create with updated properties โ verify. For bulk property changes (e.g. setting all events to free): iterate delete+recreate per event.
Workflow acceleration for inboxes, docs, calendars, planning, and execution loops.
Largest current source with strong distribution and engagement signals.