Install
openclaw skills install @voronindenis5/meeting-load-balancerUse 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.
openclaw skills install @voronindenis5/meeting-load-balancerKnowledge 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:
hours × attendees × frequency with
placement damage, producing the "this standing meeting costs the team a
work-week per month" list.Everything runs offline on calendar files you control; nothing is uploaded.
stats, focusteamfocus --advicerank then simulate the removal# 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
| 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.
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
--weeks 4 minimum; 8 is better.list --day before believing a number.focus alongside stats — placement,
not just volume, is the enemy.rank output exists so the "quick sync" gets priced honestly.--include-allday.stats --person <you> matches what your calendar app reports for a sample weekfocus reviewed — fragmentation is usually the hidden findingsimulate run before proposing changes; numbers shown to attendeesPersonal "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