This recipe produces a right-sized recurring meeting calendar for a startup at its current headcount, paired with async alternatives that eliminate status-update meetings entirely. The output is a configured calendar with agendas, a documented async workflow, and written meeting hygiene rules — designed to keep meeting load below 15% of total team hours while maintaining alignment as the company grows. [src1]
Which path?
├── Co-located team, any size
│ └── PATH A: Physical + Calendar — Google/Outlook Calendar + whiteboard
├── Hybrid team, under 25 people
│ └── PATH B: Hybrid Light — Slack + Geekbot + Calendar
├── Fully remote, under 25 people
│ └── PATH C: Remote Async-Heavy — Slack + Geekbot + Loom + Notion
└── Any arrangement, 25+ people
└── PATH D: Scaled Cadence — Slack + Geekbot + Loom + Calendar + Notion
| Path | Tools | Cost | Setup Time | Best For |
|---|---|---|---|---|
| A: Physical + Calendar | Google Calendar, whiteboard | $0 | 1 hour | Co-located teams wanting minimal tooling |
| B: Hybrid Light | Slack, Geekbot, Calendar | $0 | 2 hours | Mixed in-office/remote under 25 people |
| C: Remote Async-Heavy | Slack, Geekbot, Loom, Notion | $0 | 3 hours | Fully distributed small teams |
| D: Scaled Cadence | Slack, Geekbot, Loom, Notion, Calendar | $0-$50/mo | 4 hours | Growing teams crossing 25+ headcount |
Duration: 30 minutes · Tool: Google Calendar / Outlook export
Export the last 4 weeks of calendar data for all team members. Count total recurring meeting hours per person per week. Categorize each meeting as one of: decision-making, brainstorming, status update, relationship-building, or ceremony.
Audit checklist:
1. Export all recurring events from shared calendars
2. For each meeting, record:
- Name, frequency, duration, attendee count
- Category: decision | brainstorm | status | relationship | ceremony
- Does it have a written agenda? (yes/no)
- When was it last explicitly renewed? (date or "never")
3. Calculate: total meeting hours per person per week
4. Flag: any meeting categorized as "status" (candidate for async)
5. Flag: any meeting with no agenda (candidate for elimination)
Verify: Total meeting hours per person calculated. Status-update meetings identified. · If failed: If calendar export is unavailable, manually list meetings from memory with the team in a 15-minute session.
Duration: 45 minutes · Tool: Document editor (Notion, Google Docs)
Select the cadence tier matching current headcount. Do not copy the next tier up — add meetings only when the pain of not having them becomes real.
| Meeting | Frequency | Duration | Attendees | Purpose |
|---|---|---|---|---|
| Co-founder sync | Daily | 15 min | Co-founders only | Decisions, blockers, priorities |
| Weekly planning | Weekly | 50 min | Everyone | Set weekly goals, review last week |
| Retrospective | Biweekly | 50 min | Everyone | What’s working, what’s not, experiments |
Total sync time: ~2.5 hrs/week per person. Everything else is async. [src1]
| Meeting | Frequency | Duration | Attendees | Purpose |
|---|---|---|---|---|
| Leadership sync | Daily | 15 min | Founders + leads | Blockers, decisions needed today |
| Team standup | Async daily | — | Everyone | Geekbot: done/doing/blocked |
| Weekly all-hands | Weekly | 25 min | Everyone | Wins, key metrics, upcoming priorities |
| 1:1s | Weekly | 25 min | Manager + report | Growth, blockers, feedback |
| Sprint planning | Weekly or biweekly | 50 min | Product + eng | Scope, priorities, capacity |
| Retro | Biweekly | 50 min | Everyone | Process improvement |
Total sync time: ~3.5 hrs/week per IC, ~5 hrs for leads. Standup is async. [src2] [src5]
| Meeting | Frequency | Duration | Attendees | Purpose |
|---|---|---|---|---|
| Leadership L10 | Weekly | 50 min | Dept leads + CEO | EOS-style: scorecard, rocks, issues |
| Team standups | Async daily | — | Per team (4–8) | Geekbot per channel |
| All-hands | Biweekly | 25 min | Everyone | CEO update, wins, metrics, Q&A |
| 1:1s | Weekly | 25 min | Manager + report | Growth, blockers, feedback |
| Team sprint planning | Weekly | 50 min | Per team | Scope and capacity per team |
| Cross-team sync | Weekly | 25 min | Team leads only | Dependencies, handoffs |
| Retro | Biweekly | 50 min | Per team | Process experiments |
Total sync time: ~4 hrs/week per IC, ~6 hrs for leads. [src1] [src5]
| Meeting | Frequency | Duration | Attendees | Purpose |
|---|---|---|---|---|
| Exec team L10 | Weekly | 90 min | C-suite / dept heads | EOS Level 10: scorecard, rocks, IDS |
| Dept standups | Async daily | — | Per dept | Geekbot or Slack workflow |
| All-hands | Monthly | 50 min | Everyone | CEO update, strategy, wins, Q&A |
| Skip-level 1:1s | Monthly | 25 min | Manager’s manager + IC | Pulse check, unfiltered feedback |
| 1:1s | Weekly | 25 min | Manager + report | Growth, blockers, feedback |
| Team planning | Weekly | 50 min | Per team | Sprint or weekly goal-setting |
| Cross-dept sync | Biweekly | 25 min | Dept leads | Dependencies across departments |
| Product council | Biweekly | 50 min | Product + eng + design leads | Roadmap trade-offs, sequencing |
| Quarterly planning | Quarterly | Half-day | Leadership + team leads | OKRs, resource allocation, strategy |
Total sync time: ~4.5 hrs/week per IC, ~8 hrs for dept heads. [src1] [src2]
Verify: Cadence tier selected matches actual headcount. Total hours per person under 15% threshold. · If failed: If hours exceed 15%, cut the lowest-value meeting first.
Duration: 30 minutes · Tool: Google Calendar, Notion, or Fellow.app
For each meeting in the cadence, create a recurring calendar event with a standing agenda. Every meeting must answer: What decisions need to be made? What is the pre-read? Who is the DRI?
Template structure for each recurring meeting:
---
Meeting: [Name]
Frequency: [Daily/Weekly/Biweekly/Monthly/Quarterly]
Duration: [25 or 50 min]
Attendees: [Roles, not names]
DRI: [Who runs this meeting]
Agenda:
1. [Standing item 1]
2. [Standing item 2]
3. [Standing item 3]
4. [Action items + owners]
Pre-read: [Link to doc]
Expiration: [90 days from creation]
Success metric: [How we know this meeting is valuable]
---
Verify: Every recurring meeting has a calendar event with an embedded agenda and 90-day renewal date. · If failed: Create a Notion page per meeting and link it in the calendar description.
Duration: 30 minutes · Tool: Slack + Geekbot/Standuply + Loom
Replace every status-update meeting with an async mechanism.
| Sync Meeting (kill it) | Async Replacement |
|---|---|
| Daily standup | Geekbot in Slack (done/doing/blocked, posted 9am) |
| Weekly status report | Friday async post in #team-updates channel |
| Show-and-tell / demo | 2–3 min Loom video in #demos channel |
| FYI announcements | Written post in #announcements with emoji react |
| Multi-person decision input | Notion RFC doc with 48-hr comment deadline |
Verify: At least one status-update meeting eliminated and replaced with configured async tool. · If failed: Use a Slack reminder as fallback: /remind #team-standup "Post standup: done/doing/blocked" every weekday at 9am.
Duration: 30 minutes · Tool: Notion or Google Docs
Write and publish meeting norms. Pin in the team channel.
Meeting Hygiene Rules:
1. NO AGENDA, NO MEETING — shared 24 hrs in advance
2. DEFAULT TO 25 MIN — 50 min only for planning/strategy
3. START ON TIME, END 5 MIN EARLY
4. 2-PIZZA RULE — too many attendees? Split it
5. STATUS UPDATES ARE NOT MEETINGS — use async
6. DECISIONS NEED A DRI — every action has an owner
7. 90-DAY EXPIRATION — renew or kill
8. OPTIONAL ATTENDANCE OK — read the notes async
9. MEETING-FREE BLOCKS — protect 4 hrs/day minimum
10. QUARTERLY AUDIT — re-run Step 1 every quarter
Verify: Document published and pinned. · If failed: Start with rules 1, 5, and 7 as minimum viable set.
Duration: 15 minutes setup, then ongoing monthly · Tool: Calendar analytics + survey
Monthly meeting health scorecard:
- Meeting hours per person per week (target: <6 hrs IC, <10 hrs managers)
- Meeting-to-async ratio (target: 60%+ updates async)
- Agenda compliance (target: 100%)
- Participant satisfaction quarterly pulse (target: >3.5/5)
- Meeting renewal rate at 90-day marks (target: 70-80%)
Verify: Scorecard template created. First baseline measurement completed. · If failed: Use a manual 1-week time audit.
{
"output_type": "meeting_cadence_system",
"format": "calendar + documents",
"components": [
{"name": "recurring_calendar_events", "type": "calendar", "required": true},
{"name": "async_alternatives_map", "type": "document", "required": true},
{"name": "meeting_hygiene_rules", "type": "document", "required": true},
{"name": "monthly_scorecard_template", "type": "spreadsheet", "required": false}
],
"expected_meeting_count": "5-12 depending on company size tier",
"review_cadence": "quarterly"
}
| Quality Metric | Minimum Acceptable | Good | Excellent |
|---|---|---|---|
| Meeting hours per IC per week | < 8 hrs | < 6 hrs | < 4 hrs |
| Async replacement rate for status meetings | > 50% | > 75% | 100% |
| Meetings with written agendas | > 70% | > 90% | 100% |
| 90-day renewal compliance | > 50% | > 80% | 100% |
| Team satisfaction score (1–5) | > 3.0 | > 3.5 | > 4.0 |
If below minimum: Re-run Step 1 audit. Identify the top 2 meetings consuming the most hours with the least decision output. Eliminate or convert to async.
| Error | Likely Cause | Recovery Action |
|---|---|---|
| Meeting load creeps above 15% within 60 days | New meetings added without killing old ones | Run quarterly audit. Enforce 90-day expiration strictly |
| Async standups get ignored | No accountability or too many questions | Reduce to 1 question. Add thread replies for blockers only |
| 1:1s become status updates | Manager defaults to task checking | Retrain with agenda template: growth, blockers, feedback |
| All-hands feels performative | CEO monologue with no interaction | Cap CEO update to 10 min. Add live anonymous Q&A |
| Teams resist hygiene rules | Rules feel imposed | Co-create rules in a retro. Start with 3 rules |
| Cross-team sync is a status round-robin | No one raises real issues | Switch to exception-based: only speak if blocker exists |
| Component | Free Tier | Paid Tier | At Scale (50+) |
|---|---|---|---|
| Calendar (Google/Outlook) | $0 | $6/user/mo | $6/user/mo |
| Async standup (Geekbot) | $0 (up to 10 users) | $2.50/user/mo | $2.50/user/mo |
| Video updates (Loom) | $0 (25 videos/person) | $12.50/user/mo | $12.50/user/mo |
| Meeting notes (Notion) | $0 (free plan) | $8/user/mo | $8/user/mo |
| Total per person | $0 | $10–$29/user/mo | $29/user/mo max |
Enterprise companies run cascading town halls and quarterly business reviews because they have hundreds of people with fragmented context. A 10-person startup copying this spends 30–40% of time in meetings solving problems that don’t exist yet. [src3]
Use the tier system in Step 2. Only add a meeting when the team repeatedly encounters the specific problem that meeting solves.
Daily sync standups were designed for co-located Scrum teams on tight sprints. Applied universally, they become a ritual with no value where people recite tasks without actionable discussion. [src4]
Configure Geekbot to collect daily async updates. Only convene a synchronous huddle when someone flags a blocker requiring real-time discussion.
Weekly all-hands at scale becomes a broadcast nobody listens to. Attendance drops and the CEO talks to muted cameras. [src2]
At 25+ people, move to biweekly. At 50+, move to monthly. Replace missing weeks with a short written CEO update covering key metrics, wins, and decisions.
Use this recipe when a startup needs to design or redesign its recurring meeting structure — especially at growth inflection points (5, 10, 25, 50 people) where the old cadence breaks down. This is an execution recipe: it produces a configured calendar and documented norms, not a slide deck about meeting culture.