calendar-sync

Solid

Reconstructs a day's work from git commit history in the current repo, groups it into time-blocked calendar events (merged by feature/goal, minimum 20 minutes each), and writes them to that repo's mapped Google Calendar — creating new events or updating existing overlapping ones so reruns stay idempotent. Replaces the old hook-based time-tracking system. Use when the user wants to log/sync their day's work to their calendar, review what they did today, or backfill a prior day. Triggered by '/calendar-sync', 'sync my calendar', 'log today's work to calendar', 'daily lookback', 'what did I work on today'.

AI & Automation 20 stars 11 forks Updated yesterday GPL-3.0

Install

View on GitHub

Quality Score: 77/100

Stars 20%
44
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Calendar Sync Turns a repo's git commit history for a given day into time-blocked events on that repo's own Google Calendar. Fully autonomous — no approval gate, full CRUD freedom on the target calendar once it's correctly resolved. ## Inputs - `$ARGUMENTS`: Optional date or date range to sync (e.g. "yesterday", "2026-07-10", "2026-07-08 to 2026-07-10"). Defaults to today if omitted. ## Goal Every distinct chunk of work done in the repo during the target date range has exactly one correctly-timed, correctly-titled, >=20-minute event on the repo's mapped calendar — with no duplicates and no events left on the wrong (personal primary) calendar. ## Steps ### 1. Resolve scope and date range Determine the repo root (`git rev-parse --show-toplevel` from cwd) and parse `$ARGUMENTS` into a concrete start/end timestamp range, defaulting to today 00:00–23:59 in the user's local timezone. **Success criteria**: repo root path and a concrete `[start, end]` timestamp range. ### 2. Resolve the target calendar (do not default to primary) Read `~/Desktop/Valor/projects.json`, match the repo root against each project's `working_directory` to find the project slug (e.g. `cyndra-consulting` → `cyndra`). Read `~/Desktop/Valor/calendar_config.json`'s `calendars` map and look up that slug to get the Google Calendar ID. Fall back to the map's `"default"` entry only if no project match is found. **Rules**: - Never silently fall back to the personal primary/"Valor Engels" calendar for a repo...

Details

Author
tomcounsell
Repository
tomcounsell/ai
Created
5 years ago
Last Updated
yesterday
Language
Python
License
GPL-3.0

Similar Skills

Semantically similar based on skill content — not just same category