agentleFS
jwm-axonijwm-axoni/claude-workbench/skills/calendar-sync/SKILL.md

calendar-sync

Skill2 starsChanged 6 days agoMITView on GitHub

Workbench routine. Copies today's and the next workday's calendar into Daily/YYYY-MM-DD_CALENDAR.md and records moves, adds and cancellations since the last sync. Runs as the "[Workbench] Calendar Sync" scheduled task; can also be run by hand with /workbench:calendar-sync.

5 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

4 rules. 0 are common, 2 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 4 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read the workbench root CLAUDE.md and Context/me.md: timezone, working days, and the

    line 18
  2. Distinctive:

    Read the calendar for today and the next workday through the connected calendar tool, in the owner's timezone.

    line 20
  3. Very specific:

    When you finish, append exactly one line to the bottom of Tracking/Signals/RUN_LEDGER.md, and never edit or delete an existing line.

    line 33
  4. Distinctive:

    Never create People pages from calendar data.

    line 47

“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Calendar sync

You keep a dated copy of the workbench owner's calendar so the briefing and recap read a file instead of rebuilding the day from the connector each time, and so moves and cancellations leave a record.

You own exactly two files per run: Daily/<today>_CALENDAR.md and Daily/<next workday>_CALENDAR.md. Never touch an earlier date: a past day is frozen at its last sync. Never write anything else, except your one appended line in Tracking/Signals/RUN_LEDGER.md.

Steps

  1. Read the workbench root CLAUDE.md and Context/me.md: timezone, working days, and the calendar blocks that never appear in a brief.
  2. Read the calendar for today and the next workday through the connected calendar tool, in the owner's timezone. If the read fails, keep whatever file exists, set status: stale and synced: to now in its frontmatter, add a line under ## Changes since last sync saying the read failed, and stop. A stale file must never look like an empty day.
  3. For each day, if a file exists, compare the new events with it. Under ## Changes since last sync, append one dated line per moved, added or cancelled event (- 11:32 moved: Pipeline review 14:00 → 15:30). Never remove earlier change lines.
  4. Rewrite ## All day and ## Events from the fresh read, and update the frontmatter.
  5. Append this run's line to Tracking/Signals/RUN_LEDGER.md (format below). A failed read in step 2 still appends a line, with status failed, before stopping.

Run ledger

When you finish, append exactly one line to the bottom of Tracking/Signals/RUN_LEDGER.md, and never edit or delete an existing line. Every routine appends one line when it finishes, and none edits or deletes a line; the librarian reads it. It's the one file with more than one writer (see the root CLAUDE.md).

- YYYY-MM-DD HH:MM | calendar-sync | <ok|partial|failed> | wrote: <file names, or "nothing"> | gaps: <none, or a short description>

Privacy rules

  • Strip meeting passcodes, dial-in PINs and join links' secrets. Keep the plain meeting link only if it has no embedded password.
  • External attendees: show a count and their email domain only (3 external · acme.com), not names. Internal attendees by name, as bare [[wikilinks]] only if a People/ page already exists.
  • Private events and blocks listed in Context/me.md appear as Busy with the time only.
  • Never create People pages from calendar data.

File shape

---
type: calendar
date: YYYY-MM-DD
tags: [daily, calendar]
status: active | stale
source: calendar-connector
synced: YYYY-MM-DD HH:MM
---

# Calendar — YYYY-MM-DD (Weekday)

## All day
- …

## Events
- 09:00–09:30 · Team standup · [[Pat Lee]], [[Sam Ortiz]]
- 11:00–12:00 · Acme renewal call · 3 external · acme.com · you organize
- 15:00–15:30 · Busy

## Changes since last sync
- 11:32 moved: Pipeline review 14:00 → 15:30

Times in the owner's timezone, 24-hour. Mark events they organize, declined events (declined), and tentative ones (tentative). No commentary; this file is a record.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.