Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.
Memory
meeting-load-balancer
Try itUse when your calendar is eating your week and you want to know exactly where the time goes, when planning recurring meetings for a team, before proposing a new recurring meeting, when someone says 'we should sync weekly' and you want data, or when auditing which meetings to kill — imports ICS calendar files, measures meeting hours per week/person/meeting-series (including double-bookings and fragmentation), computes focus-time destruction from meeting placement, scores the true cost of each series (hours × attendees × frequency), flags specific meetings to kill/shorten/make-async using explicit rules, and simulates the recovered hours before anyone has to argue about it.
What it does
Knowledge workers lose 10–20+ hours a week to meetings, and almost nobody measures it. Calendars fill by accretion: each recurring meeting was individually justifiable in isolation and collectively catastrophic. The damage isn't only the summed hours — it's *fragmentation*: a day with 4 hours of me…
The skill document
Meeting Load Balancer
Overview
Knowledge workers lose 10–20+ hours a week to meetings, and almost nobody measures it. Calendars fill by accretion: each recurring meeting was individually justifiable in isolation and collectively catastrophic. The damage isn't only the summed hours — it's fragmentation: a day with 4 hours of meetings scattered into 45-minute gaps has zero deep-work blocks left, and a team's most expensive people are often its most double-booked.
This skill turns an exported calendar (.ics) into an evidence-based meeting audit:
- Import — parses standard ICS files (Google/Outlook/Apple all export it), expands recurring events over a date window, dedupes cancelled occurrences.
- Measure — hours/week total, per weekday, per meeting series, per attendee; double-booked overlaps; meeting-free gaps and the longest focus block per day.
- Fragmentation score — counts usable focus blocks (≥90 uninterrupted minutes) destroyed by meeting placement, per day and per week. 4 hours of meetings can cost 8 hours of focus depending on placement.
- True-cost ranking — each series scored by
hours × attendees × frequencywith placement damage, producing the "this standing meeting costs the team a work-week per month" list. - Prescriptions — explicit rules flag meetings to KILL (low attendance, no decision record), SHORTEN (25/50-min default), DE-DENSITY (weekly→biweekly), BATCH (scattered→clustered), or MAKE-ASYNC (status-shaped), plus a simulate mode that shows hours and focus blocks recovered if you applied the changes.
Everything runs offline on calendar files you control; nothing is uploaded.
When to Use
- Personal calendar audit — "where did my week go?" →
stats,focus - Before proposing a new recurring meeting — check the team's existing load first
- Team retro / effectiveness review — aggregate several people's exports →
team - Defending focus time — find the batchable/blocked windows →
focus --advice - Killing a standing meeting with evidence —
rankthensimulatethe removal - Don't use for: room/equipment scheduling (different problem), or individual-event time zone archaeology (the parser handles standard ICS but exotic recurrence rules may be simplified — always sanity-check counts against your calendar app).
Commands
# Export your calendar first (see references/ics-export.md), then:
python3 scripts/meeting_load.py stats --ics calendar.ics --weeks 4
python3 scripts/meeting_load.py stats --ics calendar.ics --weeks 4 --person "you@corp.com"
# Focus-time analysis (fragmentation, longest blocks, batchable windows)
python3 scripts/meeting_load.py focus --ics calendar.ics --weeks 4
# Rank every recurring series by true cost
python3 scripts/meeting_load.py rank --ics calendar.ics --weeks 4
# Rule-based prescriptions: kill / shorten / de-density / batch / async
python3 scripts/meeting_load.py prescribe --ics calendar.ics --weeks 4
# Simulate applying the prescriptions (before arguing about it)
python3 scripts/meeting_load.py simulate --ics calendar.ics --weeks 4
# Multi-person: combine exports (cat them or pass --ics twice)
python3 scripts/meeting_load.py team --ics alice.ics --ics bob.ics --weeks 4
# Worked example without any calendar
python3 scripts/meeting_load.py demo
Metrics Definitions
| Metric | Definition |
|---|---|
| meeting hours/week | summed event durations ÷ weeks in window |
| double-booked hrs | time in 2+ overlapping events (counted once per extra event) |
| focus block | ≥ 90 contiguous meeting-free minutes inside working hours |
| fragmentation | working hours minus longest focus block, on days with any meeting |
| series cost | avg hours × attendee count × occurrences in window |
| density | recurring-series occurrences per week (1.0 = weekly) |
Working hours default 09:00–17:00 local, Mon–Fri (--day-start 9 --day-end 17 to
change). Multi-day and all-day events are excluded from meeting metrics by default.
What Prescriptions Look Like
PRESCRIPTIONS (12 meetings analyzed, 4 series):
KILL 'Weekly Status Sync' 60min × 8 ppl × 1.0/wk — status-shaped,
avg 53% accepted, no decisions logged → replace with written update
SHORTEN 'Design Review' 60→45min — 62% of occurrences end early
(median actual use 40min)
DE-DENSITY '1:1 Manager' weekly→biweekly — 4/4 weeks had
cancellation/reschedule
BATCH 'sprint-planning' Mon 14:00 + 'retro' Thu 11:00 + 'estimation' Tue 10:00
→ same day cluster frees 2 full days/week of ≥3h blocks
ASYNC 'Incident Readout' 12 occurrences, avg 6 min used of 30,
1 speaker — record/video instead
simulated effect: −5.6 meeting hrs/week, +2.1 focus blocks/week for the team
Common Pitfalls
- Exporting too narrow a window. Recurring meetings reveal their sins over 4+ weeks
(cancellations, attendance decay). Use
--weeks 4minimum; 8 is better. - Counting declined events. The tool excludes events you declined where the ICS
records it; re-check surprises with
list --daybefore believing a number. - Treating hours as the metric. Two calendars with identical meeting hours can
differ 2× in usable focus time. Always read
focusalongsidestats— placement, not just volume, is the enemy. - Forgetting attendee cost. A 30-min meeting for 10 people is 5 person-hours; the
rankoutput exists so the "quick sync" gets priced honestly. - Shortening everything reflexively. Some 60s earn their hour (decisions with real debate). The rules flag evidence of waste (early endings, decay, status-shape), not length per se.
- All-day/multi-day events polluting stats. They're excluded by default; if your
org encodes real meetings as all-days (some do),
--include-allday.
Verification Checklist
- ICS export covers ≥4 weeks and includes recurring expansions
-
stats --personmatches what your calendar app reports for a sample week -
focusreviewed — fragmentation is usually the hidden finding -
simulaterun before proposing changes; numbers shown to attendees - Changes applied incrementally (kill one, measure again next month)
One-Shot Recipes
Personal "where did March go" audit
python3 scripts/meeting_load.py stats --ics march.ics --weeks 4
python3 scripts/meeting_load.py focus --ics march.ics --weeks 4
The 'we should add a weekly sync' moment
python3 scripts/meeting_load.py team --ics a.ics --ics b.ics --ics c.ics --weeks 4
# if anyone is >12 hrs/wk or <1 focus block/day → propose async instead
Annual meeting purge
python3 scripts/meeting_load.py rank --ics q3.ics --weeks 8
python3 scripts/meeting_load.py simulate --ics q3.ics --weeks 8
Related skills
Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.
Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.
Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.
Post videos, photos, text, and documents to 10 social platforms through a single REST API call.
Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.
More from voronindenis5
Browse all skillsPryamoy Russkiy (Straight Russian) — AI assistant that tells it like it is. Direct answers, no fluff, occasional profanity. Specializes in honest analysis, t...
Agent self-awareness of cognitive states — context fatigue, attention drift, memory debt, confidence erosion, and skill staleness. Detect, report, and mitigate degrading conditions before they cause failures.
Plan what happens to your digital life if you die or become incapacitated. Inventory accounts, subscriptions, crypto wallets, important files, social media legacy contacts, and generate a sealed instruction document for trusted family. Includes encrypted digital will template and printable emergency access guide.
Use when an agent task fails or produces unexpected results. Performs structured post-mortem root cause analysis: categorizes the failure, traces the exact failure point through tool-call logs, reconstructs the decision chain, generates a post-mortem report, and saves lessons to prevent recurrence.
Excavate forgotten solutions, code snippets, and decisions from past conversation sessions. Use when the user is re-solving a problem you've likely solved before, hunting for a lost snippet, or wants to mine session history for buried knowledge instead of starting from scratch.
Decide whether to fix, replace, or recycle a broken item. Takes item type, age, symptoms, and repair estimate, then produces a scored recommendation across cost, lifespan, sentimental value, and environmental impact.