Asi worlding-calendar
Calendar events tied to 26 letter-worlds via org-mode. Links events to beeper messages, voice notes, and Goblins capabilities. Replaces 13K-token Google Calendar MCP with CalDAV + DuckDB interactome.
install
source · Clone the upstream repo
git clone https://github.com/plurigrid/asi
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/plurigrid/asi "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/asi/skills/worlding-calendar" ~/.claude/skills/plurigrid-asi-worlding-calendar && rm -rf "$T"
manifest:
plugins/asi/skills/worlding-calendar/SKILL.mdsource content
Worlding Calendar
Every calendar event contributes to a world. This skill manages that mapping.
Architecture
CalDAV (Google) │ voice notes ──→ org-worlding-calendar.el ←── beeper messages │ ~/worlds/p/calendar.org │ ┌────────────┼────────────┐ ▼ ▼ ▼ :WORLD: a :WORLD: b :WORLD: g ... ~/worlds/a/ ~/worlds/b/ ~/worlds/g/
Three Layers
| Layer | Source | Function |
|---|---|---|
| Org | | Canonical event store with world tags |
| DuckDB | | Contact→world inference from messaging history |
| Emacs | | UI, transient menus, agenda views |
World Inference
Events are auto-tagged with
:WORLD: letter based on content:
"barton bci meeting" → :WORLD: b "goblins ocapn sync" → :WORLD: g "vivarium hackathon" → :WORLD: v "plurigrid standup" → :WORLD: p
Inference uses regex patterns + DuckDB interactome queries on beeper contact names.
Properties Per Event
* RISING Yoyo hackathon prep :PROPERTIES: :WORLD: y :WORLD_PATH: ~/worlds/y/ :BEEPER_CHAT: !0xZ1HWPM91hEOzuwxzBR:beeper.local :VOICE_NOTE: ~/Library/Application Support/BeeperTexts/media/... :OCAPN_REF: ocapn://... :CREATED: [2026-03-26 Thu] :END: <2026-03-26 Thu 14:00>--<2026-03-26 Thu 16:00>
Worlding States (from org-worlding.el)
Events use worlding states instead of TODO/DONE:
| State | Meaning | Calendar use |
|---|---|---|
| SEEDING | Sub-threshold | Tentative, not confirmed |
| RISING | Gaining amplitude | Confirmed, approaching |
| RESONANT | Phase-locked | Happening NOW |
| WAVE | Self-sustaining | Recurring/habit |
| ERGODIC | Full exploration | Open-ended session |
| ACTIVE | Self-sustaining | Ongoing project event |
| BEATING | Interference | Conflict/double-booked |
| DRIVEN | Externally forced | Obligation/external |
| STABLE | Fixed point | Completed, archived |
| FADED | Below threshold | Cancelled/no-showed |
Emacs Keybindings
C-c w c e → Create world-tagged event C-c w c v → Link voice note to event C-c w c b → Link beeper message to event C-c w c c → Set OCapN capability ref C-c w c C → Agenda grouped by world C-c w W → Worlding dashboard
Querying from Claude Code
List events by world
grep -A5 ":WORLD: b" ~/worlds/p/calendar.org
Query interactome for contact→world mapping
duckdb ~/worlds/beeper_interactome.duckdb -c " SELECT name, protocol, sent, total FROM interactome WHERE lower(name) LIKE '%barton%' "
Create event from CLI
emacsclient -e '(org-worlding-calendar-new-event "Boris sync" "2026-03-27" "2026-03-27" "b")'
View calendar agenda
emacsclient -e '(org-agenda nil "C")'
CalDAV Sync (Planned)
Google Calendar CalDAV endpoint:
https://apidata.googleusercontent.com/caldav/v2/
Auth via OAuth2 token from
fnox get GOOGLE_CLIENT_SECRET_PATH. Bidirectional sync:
- Google → org: pull events, auto-tag with :WORLD:
- org → Google: push world-tagged events to specific sub-calendars per letter
Replaces Anthropic's
claude_ai_Google_Calendar MCP (13,566 tokens) with ~0 tokens (local org files + emacsclient calls).
Goblins Integration
Each event source is modeled as a Goblins capability:
;; CalDAV server as actor (define caldav-cap (vat-spawn vat (lambda (bcom) (methods ((list-events start end) ...) ((create-event title start end world) ...))))) ;; Beeper chat as capability reference (define beeper-cap (vat-spawn vat (lambda (bcom) (methods ((search query) ...) ((send chat-id text) ...)))))
Events store their source capability as
:OCAPN_REF: — a sturdyref URI that can be resolved at runtime to interact with the originating system.
Files
| File | Purpose |
|---|---|
| Emacs integration |
| Event store |
| Contact intelligence |
| This skill |
Relation to Other Skills
- beeper — message source, contact→world inference
- calendar-acset — predecessor (GF(3) theoretical framework)
- goblins — capability model for event sources
- emacs / org — UI layer
- sdf — if events need spatial world coordinates
- tree-sitter — if parsing structured event descriptions