Calendar Workflow (Jul 2026)

Process doc for keeping porto-chapter-calendar.html current by monitoring the #por_jul26_* Slack channels. Schema/tech/design details live in README.md — this file only covers the monitoring workflow and decision rules. Change history lives in development_runbook_jul26.md and Notes and ideas _jul26.md; don’t duplicate entries here, log there.


1. Channel map

Source of truth: channel-map.json (workspace T40A6MC8G, one entry per por_jul26_* channel: Slack channel ID + category type). Don’t hardcode channel IDs elsewhere — read them from that file.

Four categories, each with its own monitoring rule (below): Events, Spontaneous, Other, uncategorized (not yet classified — flag for a categorisation decision before treating it either way, don’t silently skip or silently monitor).


2. Monitoring rules by category

Events

Channels: adventures, skillshare, tribaltuesday (see channel-map.json for current membership — treat that file as authoritative, this list can drift).

Spontaneous

Channels: coworking, fitness, food.

Other

Channels: announcements, chitchat.

Uncategorized

Channels not yet assigned (currently: arrivals, castleweekend, gratitude, overheard, photos, recommendations, splitwise, traitors — check channel-map.json for the live list).


3. Adding an entry

Follow README.md §8 (event object shape, EVENTS/SPANS/FLOATING, step-by-step). One addition on top of that doc, decided 18 Jul (logged in Notes and ideas _jul26.md):

Every new entry from now on carries a post field — the permalink to the source Slack message (https://wifitribe.slack.com/archives/<channelId>/p<ts>). Rendered in the drawer as “View Slack post ↗” and folded into the .ics description. Existing pre-18-Jul entries weren’t backfilled with this — only new ones need it.

To get a permalink while reading Slack via the chrome-devtools MCP: the message’s timestamp element is an <a href="https://wifitribe.slack.com/archives/{channelId}/p{ts}"> — grab it with evaluate_script, don’t guess the URL format.


4. Tooling