Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
A local markdown-backed calendar with CLI and optional two-way Google Calendar sync.
A local markdown-backed calendar with CLI and optional two-way Google Calendar sync.
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 this skill to query/update the local markdown-backed calendar safely and sync it with Google Calendar.
File: calendar.md Authoritative section: ## Event Records (fenced event YAML blocks) Human summary section: ## Event Checklist
id: local identifier externalId: stable cross-system identifier used for dedupe googleEventIds: per-calendar Google event mapping updatedAt: event-level timestamp for conflict resolution Do not remove externalId from existing records.
Use CLI from repo root: npm run cli -- <command>
Run npm run cli -- summary. If raw markdown is needed, run npm run cli -- export.
Add (preferred for new events): npm run cli -- add --title "..." --start "<ISO>" --end "<ISO>" --category <id> [--shift-to-next|--allow-overlap] Update: npm run cli -- update --id <event_id> [fields...] If changing --start or --end, include --shift-to-next or --allow-overlap in non-interactive runs. Check/uncheck: npm run cli -- check --id <event_id> or --undone Delete: npm run cli -- delete --id <event_id> Add category: npm run cli -- category-add --id <id> --label "Label" --color "#9ca3af" --description "..." Remove category: npm run cli -- category-remove --id <id> --reassign <id> Conflict handling: add and time-changing update detect overlaps with existing events. Interactive runs can choose accept overlap, shift to next available slot, or provide a custom time. Non-interactive runs: --shift-to-next to auto-resolve to the next open window. --allow-overlap to keep the requested overlapping time. Agent snapshot output: Every mutating CLI command writes a rolling markdown snapshot. Default path: ./agent-snapshot.md Override with CALENDAR_AGENT_SNAPSHOT. Recent window defaults to 14 days and is configurable with CALENDAR_AGENT_DAYS. Snapshot also includes upcoming 7 days when events exist.
UI does not provide add-event form/button. Events are created via CLI agents only. UI still supports drag/drop, resize, and check-off.
In UI, sign in with Google. Select target calendar via calendar selector controls. Click Sync Now for two-way merge. Sync state file: .calendar-google-sync-state.json
Export: npm run cli -- export --out backup-calendar.md Import: npm run cli -- import --in backup-calendar.md
Keep datetimes in ISO format. Prefer CLI operations over manual markdown edits. If categories are changed manually in frontmatter, keep id, label, and color fields valid.
This skill uses the following environment variables (defined in .env): Google Calendar Sync (Optional) GOOGLE_CLIENT_ID: Google OAuth Client ID GOOGLE_CLIENT_SECRET: Google OAuth Client Secret GOOGLE_REDIRECT_URI: Should be http://localhost:<PORT>/api/google/auth/callback Agent Configuration (Optional) CALENDAR_AGENT_SNAPSHOT: Custom absolute or relative path to write the Markdown snapshot. Defaults to ./agent-snapshot.md. CALENDAR_AGENT_DAYS: Number of historical days to include in the snapshot (defaults to 14). PORT: API server port (defaults to 8787). APP_BASE_URL: Base URL for the frontend UI.
Workflow acceleration for inboxes, docs, calendars, planning, and execution loops.
Largest current source with strong distribution and engagement signals.