Custom Setup: Build a Monthly Calendar Generator That Exports to Google Sheets
What This Builds
A reusable prompt template system that generates a full structured monthly content calendar — including topics, formats, captions, and hashtag sets — and outputs it in a format that pastes directly into Google Sheets as a clean, organized table. Once the system is built, generating next month's calendar takes under 45 minutes instead of 4-6 hours. The system works for multiple client accounts because you swap in different brand briefing templates.
The difference from the Level 3 calendar guide: That guide teaches the basic workflow. This guide builds a permanent, reusable system — saved templates, a brand briefing library, an output format optimized for Google Sheets import, and a process that scales across multiple client accounts.
Prerequisites
- Claude Pro ($20/month — long context required)
- Google Sheets (for the calendar output and brand briefing storage)
- Completed at least one calendar generation session using the Level 3 guide
- Brand briefings ready for each active client account (we'll build these in Part 1)
The Concept
Right now, every time you generate a content calendar, you're re-explaining the brand from scratch. This system fixes that by storing each brand's briefing in a permanent, structured format — a "Brand Briefing Card" — that you copy-paste into Claude at the start of each calendar session. You also build a standard output template so Claude's calendar always exports in the exact format your Google Sheet expects.
Think of it as standardizing your monthly calendar workflow into a repeatable process rather than a one-off creative effort.
Build It Step by Step
Part 1: Create the Brand Briefing Card system
For each client account, build a Brand Briefing Card — a structured document you'll paste into Claude at the start of every calendar session.
Brand Briefing Card template:
=== BRAND BRIEFING CARD: [Brand Name] ===
OVERVIEW:
[2-3 sentences: what the brand does, who they serve, their market position]
VOICE & TONE:
- Adjectives: [3-5 voice adjectives, e.g., "warm, educational, slightly witty"]
- Sounds like: [one comparison — "a knowledgeable friend, not a corporate brand"]
- Never sounds like: [anti-example — "never corporate, never preachy, never uses exclamation marks for everything"]
FORBIDDEN:
- Never say: [list specific words/phrases to avoid]
- Never do: [content types or angles the brand avoids]
CONTENT PILLARS:
1. [Pillar name]: [1-sentence description of what this pillar covers]
2. [Pillar name]: [description]
3. [Pillar name]: [description]
4. [Pillar name]: [description]
5. [Pillar name]: [description]
POSTING SCHEDULE:
- Instagram: [X] posts/week
- LinkedIn: [X] posts/week
- Facebook: [X] posts/week
- TikTok: [X] posts/week
- [Total posts/month: calculated]
POSTING RULES:
- Max [X] promotional posts per week
- [Any other rules — e.g., "always end IG captions with engagement question", "no posts on Sundays"]
SEASONAL/EVERGREEN RATIO: [e.g., "60% evergreen, 40% seasonal/timely"]
AUDIENCE:
- Primary: [demographic description]
- Secondary: [if applicable]
- They care about: [what motivates/interests them]
- They don't like: [what puts them off]
=== END BRIEFING CARD ===
Fill this out for each active client. Save each Brand Briefing Card in a Google Doc named "[Brand] — Briefing Card" in a folder called "Brand Briefings."
Part 2: Build the Google Sheets calendar template
Create a Google Sheet with these exact column headers in row 1:
| A: Post # | B: Week | C: Date | D: Day | E: Platform | F: Pillar | G: Content Type | H: Topic/Theme | I: Caption Draft | J: Hashtag Set | K: Visual Notes | L: Status |
Format tips:
- Freeze row 1 (View → Freeze → 1 row)
- Set column I (Caption Draft) to wrap text
- Add data validation to column E (Platform) to allow only: Instagram, LinkedIn, Facebook, TikTok, Twitter/X
- Add data validation to column L (Status) to allow only: Draft, Approved, Scheduled, Published
Save this as a template sheet. Each month, duplicate it (right-click tab → Duplicate) and name the copy "[Brand] — [Month Year]."
Part 3: Build the Claude prompt template
This is your calendar generation prompt — you'll use it every month, swapping in the current month's variables.
Save this in a Google Doc titled "Claude Calendar Prompt Template":
[PASTE BRAND BRIEFING CARD HERE — copy from your Brand Briefing Card doc]
---
CALENDAR REQUEST: [Brand Name] — [Month Year]
Generate a complete content calendar for the month of [Month Year].
IMPORTANT DATES THIS MONTH:
- [Date]: [Event/campaign/holiday]
- [Date]: [Event/campaign/holiday]
(add all known dates — product launches, holidays, campaigns, brand anniversaries)
OUTPUT FORMAT — CRITICAL:
Output ONLY a table. No introduction text, no notes, no commentary. Just the table.
Column format: Post# | Week | Date | Day | Platform | Pillar | Content Type | Topic | Caption Draft | Hashtag Set | Visual Notes
Rules for the table:
- Post# = sequential number (1, 2, 3...)
- Week = week number in the month (Week 1, Week 2, etc.)
- Date = MM/DD format
- Day = Mon, Tue, Wed, Thu, Fri, Sat, Sun
- Platform = exact platform name
- Pillar = one of the 5 content pillars from the briefing card
- Content Type = Reel | Carousel | Static | Story | Text post | LinkedIn article
- Topic = 5-10 word description
- Caption Draft = full caption appropriate for the platform (including emojis for IG, hashtags NOT included here)
- Hashtag Set = 10 relevant hashtags for this specific post (comma separated, no spaces after commas)
- Visual Notes = 1 sentence describing the visual treatment
DISTRIBUTION RULES:
- Spread pillars evenly — no pillar should appear more than [X+1] times more than any other
- Max [X] promotional posts per week
- Alternate content types — no more than 3 of the same type in a row
- Include all important dates from the list above
- [Any other distribution rules from the briefing card]
Part 4: The monthly generation session (under 45 minutes)
On the first or last day of each month, run your calendar generation session:
Open Google Sheets → duplicate your template sheet → rename it "[Brand] — [Month Year]."
Open Claude → open the brand's Claude Project (if set up) or start a new chat.
Prepare the prompt: Open your "Claude Calendar Prompt Template" Google Doc → fill in: month/year, important dates for the month → copy the full prompt.
Paste and run: Send the prompt to Claude. Wait for the full output (may take 60-90 seconds for a full month).
Copy and paste into Sheets: Select all of Claude's table output → copy → in your Google Sheet, click cell A2 → paste. If columns don't align automatically, use Data → Split text to columns → Character:
|.Review and adjust: Scroll through the calendar. Check:
- Pillar distribution (use a COUNTIF formula:
=COUNTIF(F:F,"Pillar Name")in a helper column) - Important dates are represented
- No content type repeats 3+ times in a row
- Captions sound on-brand
Request fixes: For any issues, go back to Claude: "Row 12 through 16 are all Static posts — change rows 13 and 15 to Carousels." Or "Add an Earth Day post for April 22 — it's missing."
Final review: Read 10-15 captions at random. If they sound right, you're done. Set all Status cells to "Draft."
Real Example: Building the System for Three Clients
Setup: You manage three active brand accounts — a plant shop, a fitness supplement brand, and a local restaurant. Each needs a monthly calendar.
What you've built:
- 3 Brand Briefing Card docs (one per client)
- 1 Google Sheets calendar template
- 1 Claude Calendar Prompt Template doc
Monthly calendar session (first Monday of each month):
9:00 AM — Open Claude, open Plant Shop Briefing Card. Copy prompt template. Fill in March dates (new spring arrival campaign, March 20 first day of spring). Run in Claude Project "Bloom & Grow." Paste output to sheet. Review 10 minutes. Adjust 2 rows. Done: 9:28 AM.
9:30 AM — Open new Claude conversation or FreshStart Nutrition Claude Project. Copy prompt template. Fill in April dates (spring fitness campaign, April 22 Earth Day, April 30 sale). Run prompt. Paste to sheet. Review. Done: 9:58 AM.
10:00 AM — Restaurant account. Same process. Done: 10:25 AM.
Total time for 3 monthly calendars: ~1.5 hours (vs. 12-18 hours manually across 3 accounts).
What to Do When It Breaks
- "The table doesn't paste cleanly into Google Sheets" → Claude uses
|characters to separate columns in markdown tables. In Google Sheets: paste into cell A2 → select the column → Data → Split text to columns → Custom separator → type|→ Split. This creates clean columns. - "Claude's output cuts off before the full month" → The calendar exceeded Claude's single response limit. Type "continue" — Claude will pick up where it left off. Paste both outputs into your sheet.
- "Captions are inconsistent across the month" → Add the Brand Briefing Card as a Knowledge file to a Claude Project for this client — persistent memory produces more consistent voice than copy-pasting each session.
- "The pillar distribution is uneven" → Add a COUNTIF helper row:
=COUNTIF(F:F,"Pillar Name")for each pillar. Share these counts back with Claude: "The calendar has 8 product posts and 2 educational posts — redistribute to 5 and 5."
Variations
- Simpler version: Use only 3 columns in your output request — Date, Platform, Topic — for a planning-only calendar. Generate captions separately once the plan is approved.
- Extended version: Add a "Content Theme" month-level layer — define an overarching monthly campaign theme ("Q2: Community") that Claude weaves throughout the calendar, making it feel more cohesive than 30 standalone posts.
What to Do Next
- This week: Build your first Brand Briefing Card for your most active account. Run one calendar generation session.
- This month: Build Brand Briefing Cards for all active accounts. Run all calendars in one session. Track total time.
- Advanced: Connect this system with the Automated Content Pipeline (Level 4 guide) — once calendar rows are in Google Sheets with caption drafts, Zapier picks them up and creates Hootsuite drafts automatically. The entire workflow from "plan" to "scheduled draft" becomes near-fully automated.
Advanced guide for Social Media Coordinator professionals. This system is designed to scale — once the templates are built, adding a new client means writing one Brand Briefing Card and duplicating your calendar template.