Why one calendar per brand stops working at five clients
Most agencies start the same way: each new client gets their own spreadsheet. It's simple, the client gets a clean view, and at three brands it works fine. Around the fifth client, the cracks show. You can't see at a glance whether two brands are about to launch competing Reels on the same Tuesday. You can't load-balance your designer's week because you can't see all five workloads in one place. And if a client moves a campaign forward by three days, you're updating four other documents to keep the cadence math right.
The fix is one cross-brand calendar with each client as a swimlane — but most agencies don't build it because the obvious version (one giant table with everything mashed together) loses the brand context. The template below solves that with three rules: one row per brand per week, a status column you actually use, and a posting cadence guardrail so no brand drifts above or below the agreed volume.
The five working principles
Brands as swimlanes, not tabs. One sheet, one row per brand, one column per posting day. You see the whole week in a single scroll — including the awkward Tuesdays where four brands all want to post a Reel.
Status lives in the calendar, not in your head. Each cell carries a status — Draft, Internal QA, Client review, Approved, Published — so the calendar doubles as the campaign tracker. No more flipping between tools to answer "where is the Brand C carousel?"
Cadence guardrails per brand. Each brand has an agreed cadence (e.g. 3 posts/week, 1 Reel, 2 Stories). The template flags rows that drift above or below by week 2. This catches the "we accidentally went silent on Brand B for 9 days" problem before the client emails about it.
Voice column, always. Each brand row carries a one-sentence voice reminder ("crisp, sardonic, never preachy"). Designers and writers see it every time they open the row. Voice drift is the #1 reason multi-brand agencies get fired — keep it visible.
One owner per row, not per task. Whoever owns the brand owns the whole week, end to end. Splitting ownership by task ("designer owns Monday, writer owns Wednesday") creates handoff bugs. Keep accountability per brand, per week.
Common pitfalls when running a cross-brand calendar
The first pitfall is showing the cross-brand calendar to clients. Don't. They don't need to see Brand B's Wednesday Reel. Each client gets a filtered view (or a separate client-facing share link) — the master calendar is internal.
The second pitfall is letting status fields go stale. The calendar has to reflect reality or it becomes decoration. Make status updates a part of the daily 10-minute stand-up: walk the calendar, update the cells, move on.
The third pitfall is over-fitting the template. Don't add 12 columns "in case." Five columns is the working limit; anything more and the calendar becomes a database, and the team will quietly stop opening it.
What's in the download
A Google Sheets template with five pre-loaded brand rows, conditional formatting on status cells, and cadence guardrail formulas. Plus a Notion duplicate link if your agency lives in Notion. Both contain the same structure — pick the surface your team already uses.