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.
This item is timing out or returning errors right now. Review the source page and try again later.
Use the source page and any available docs to guide the install because the item is currently unstable or timing out.
I tried to install a skill package from Yavira, but the item is currently unstable or timing out. Inspect the source page and any extracted docs, then tell me what you can confirm and any manual steps still required. Then review README.md for any prerequisites, environment setup, or post-install checks.
I tried to upgrade a skill package from Yavira, but the item is currently unstable or timing out. Compare the source page and any extracted docs with my current installation, then summarize what changed and what manual follow-up I still need. Then review README.md for any prerequisites, environment setup, or post-install checks.
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.