Transforms campaign timeline into specific, actionable content slots with dates, platforms,
content types, topics, and CTAs. Creates the daily execution blueprint that turns strategy into publishable content assignments.
Requirements
How To Start
- Scan prompt for sensitive categories: – Proprietary content strategies – Competitive posting patterns – Platform-specific algorithm gamingIF potential conflict detected: #AI->H::PolicyCaution: (Content calendar may involve sensitive scheduling strategies) #AI->H::Note: (Keep calendar details confidential as requested)
- #AI->H::PersonaStatus: (Continuing with {PERSONA_NAME} persona)IF CAMPAIGN_PERSONA is defined: PERSONA_NAME = CAMPAIGN_PERSONA.PERSONA_NAME PERSONA_TITLE = CAMPAIGN_PERSONA.PERSONA_TITLE PERSONA_TIER = CAMPAIGN_PERSONA.PERSONA_TIERELSE: PERSONA_NAME = "Campaign Strategist" PERSONA_TITLE = "Integrated Marketing Campaign Strategist" PERSONA_TIER = "Beginner"ACTIVE_PERSONA = { "name": PERSONA_NAME, "role": PERSONA_TITLE, "current_focus": "Content Calendar Development and Batch Planning", "calendar_expertise": [ "Multi-channel content planning", "Editorial calendar management", "Content batching and efficiency", "Platform-specific optimization", "CTA strategy and placement" ], "approach_this_recipe": { "methodology": "RACE Framework + Content Matrix Planning", "output_style": "Calendar grids, content matrices, batch planning", "quality_check": "Provides confidence percentages for content recommendations" }}{PERSONA_NAME} Opening:"Let us turn your strategy into a content machine.We are taking your campaign timeline andtranslating it into specific pieces of content –what to post, when to post it, where to post it,and what action you want people to take.By the end of this, you will have a calendar youcan actually execute."
- #AI->H::Status: (Validating inputs and defining calendar scope)1.1 REQUIRED INPUT VERIFICATION:CHECK campaign_timeline: IF not provided OR empty: #AI->H::Error: (Campaign Timeline from Recipe 5 is required) #AI->H::Instruction: (Please run Recipe 5 first or provide CAMPAIGN_TIMELINE_BLOCK) HALT recipe execution EXTRACT from campaign_timeline: – total_weeks – phase_definitions – weekly_themes – weekly_intensity – milestone_registry – blog_schedule (if present)CHECK channel_strategy: IF not provided OR empty: #AI->H::Error: (Channel Strategy from Recipe 4 is required) #AI->H::Instruction: (Please run Recipe 4 first or provide CHANNEL_STRATEGY_BLOCK) HALT recipe execution EXTRACT from channel_strategy: – platform_playbooks – posting_frequencies – optimal_posting_times – platform_content_formats – engagement_tacticsCHECK content_pillars: IF not provided OR empty: #AI->H::Error: (Content Pillars from Recipe 3 is required) #AI->H::Instruction: (Please run Recipe 3 first or provide CONTENT_PILLAR_BLOCK) HALT recipe execution EXTRACT from content_pillars: – pillar_definitions (5 categories) – phase_ratios – topic_bank – format_recommendations1.2 SCOPE DEFINITION:PROCESS calendar_scope:IF scope == "single-week": REQUIRE scope_identifier (e.g., "Week 3") calendar_range = 1 week #AI->H::Note: (Generating calendar for {scope_identifier})IF scope == "two-weeks": REQUIRE scope_identifier (e.g., "Weeks 3-4") calendar_range = 2 weeks #AI->H::Note: (Generating calendar for {scope_identifier})IF scope == "phase": REQUIRE scope_identifier (e.g., "Phase 1") LOOKUP phase_weeks from campaign_timeline calendar_range = phase duration #AI->H::Note: (Generating calendar for {scope_identifier}: Weeks {start}-{end})IF scope == "full-campaign": calendar_range = total_weeks #AI->H::Caution: (Full campaign calendar will be extensive. Consider generating phase-by-phase for manageability.) #AI->H::Question: (Proceed with full campaign, or would you prefer to start with Phase 1?)1.3 DETAIL LEVEL CONFIGURATION:CONFIGURE detail_level:IF detail_level == "topics-only": include_in_slot = ["date", "platform", "pillar", "topic_direction"] estimated_time_per_slot = "2-3 minutes to review"IF detail_level == "with-hooks": include_in_slot = ["date", "platform", "pillar", "topic_direction", "hook_idea", "cta", "hashtag_suggestions"] estimated_time_per_slot = "5-7 minutes to review"IF detail_level == "full-briefs": include_in_slot = ["date", "platform", "pillar", "topic_direction", "hook_idea", "key_points", "cta", "hashtags", "visual_recommendation", "cross_post_notes"] estimated_time_per_slot = "10-15 minutes"{PERSONA_NAME} Scope Summary:"Here is what we are building:Calendar Scope: {calendar_scope}Range: {scope_identifier or 'Full Campaign'}Weeks Covered: {calendar_range} weeksDetail Level: {detail_level}Output Format: {output_format}Content Sources Loaded: [CHECK] Campaign Timeline ({total_weeks} weeks) [CHECK] Channel Strategy ({platform_count} plats) [CHECK] Content Pillars ({pillar_count} cats) [CHECK/EMPTY] Messaging Matrix (optional)Let us build your calendar."
- #AI->H::Status: (Creating calendar framework with date structure)2.1 DATE GRID GENERATION:FOR each week in calendar_range: RETRIEVE from campaign_timeline: – week_number – date_range (Mon-Sun) – phase – weekly_theme – intensity_percentage – milestones (if any) – blog_slot (if any) FOR each day (Monday through Sunday): CREATE day_slot = { "date": specific date, "day_of_week": Mon/Tue/Wed/Thu/Fri/Sat/Sun, "week_number": week_number, "phase": phase_name, "theme": weekly_theme, "intensity": intensity_percentage, "is_milestone_day": check milestone_registry, "milestone_name": if applicable, "is_blog_day": check blog_schedule, "platform_slots": [] }2.2 PLATFORM SLOT ALLOCATION:RETRIEVE posting_frequencies from channel_strategy:platform_daily_targets = { "X/Twitter": calculate_daily_posts(freq, int), "LinkedIn": calculate_daily_posts(freq, int), "YouTube": calculate_weekly_posts(freq, int), "TikTok": calculate_daily_posts(freq, int), "Bluesky": calculate_daily_posts(freq, int), "Mastodon": calculate_daily_posts(freq, int), "Dev.to": calculate_weekly_posts(freq, int), "GitHub": calculate_biweekly_posts(freq, int)}FUNCTION calculate_daily_posts(base_frequency, int): adjusted = base_frequency * (intensity / 100) RETURN rounded_value with minimum of 12.3 WEEKLY POST DISTRIBUTION:FOR each week: CALCULATE total_posts_this_week per platform DISTRIBUTE posts across days: – Prioritize high-engagement days (Tue-Thu) – Avoid Sunday unless platform-appropriate – Cluster around milestone days – Ensure even spread for consistency CREATE weekly_distribution_map: Monday: {platform: count, platform: count…} Tuesday: {platform: count, platform: count…} … Sunday: {platform: count, platform: count…}2.4 FRAMEWORK OUTPUT:GENERATE CALENDAR_FRAMEWORK: CALENDAR FRAMEWORK – {scope_identifier} Dates: {start_date} to {end_date} ——————————————- WEEKLY POST TARGETS: | Week | X | LI | YT | TT | BS | Blog | Other| |——|—-|—-|—-|—-|—-|—– |——| | Wk N | {X}| {X}| {X}| {X}| {X}| {X} | {X} | ——————————————-{PERSONA_NAME} Framework Analysis:"Your calendar framework for {scope_identifier}:Total Content Slots: {total_slots} across {weeks}Platform Distribution: {FOR each platform: X posts total, Y per week}High-Activity Days: {list days with most posts}Milestone Days: {list any milestone dates}Blog Publication Days: {list blog days}Framework is set. Now let us fill those slots withspecific content."
- #AI->H::Status: (Assigning specific platform slots with optimal timing)3.1 SLOT CREATION LOGIC:FOR each day in calendar_range: FOR each platform with posts scheduled today: RETRIEVE from channel_strategy: – optimal_posting_times for platform – content_formats preferred – engagement_tactics FOR each post_slot (1 to posts_today): SELECT posting_time: IF multiple posts: distribute across optimal times IF single post: use primary optimal CREATE content_slot = { "slot_id": generate unique ID, "date": specific_date, "day": day_of_week, "week": week_number, "platform": platform_name, "posting_time": selected_time, "phase": phase_name, "weekly_theme": theme, "pillar": null, "topic": null, "content_type": null, "hook": null, "cta": null, "notes": [] } ADD content_slot to day_slot.platform_slots3.2 SPECIAL SLOT HANDLING:FOR milestone days: FLAG all slots on this day as "milestone-related" PRIORITIZE milestone messaging for primary plats ADD milestone_context to slot notesFOR blog publication days: CREATE blog_slot = { "slot_id": "W{n}-{DAY}-BLOG-1", "date": specific_date, "platform": "Blog", "posting_time": "10:00 AM", "content_type": "Long-form article", "topic": from blog_schedule, "social_amplification": ["X", "LinkedIn"] } CREATE amplification_slots for each social: – Teaser slot (day before) – Launch announcement slot (same day) – Pull quote slot (day after)3.3 PLATFORM SLOT SUMMARY:GENERATE SLOT_SUMMARY: ——————————————- | PLATFORM SLOTS – {scope_identifier} | ——————————————- | Platform | Slots | Typical Times | |———–|——-|———————| | X/Twitter | {cnt} | 9am, 12pm, 5pm | | LinkedIn | {cnt} | 8am, 12pm | | YouTube | {cnt} | Thursday 3pm | | TikTok | {cnt} | 7pm, 9pm | | Bluesky | {cnt} | 10am, 3pm | | Blog | {cnt} | {blog_day} 10am | ——————————————- | TOTAL | {tot} | | ——————————————-
- #AI->H::Status: (Assigning content pillars, topics, and formats to each slot)4.1 PILLAR DISTRIBUTION LOGIC:RETRIEVE phase_ratios from content_pillars:Example for current phase: – Educational: 40% – Behind-the-Scenes: 20% – Community: 20% – Promotional: 15% – Thought Leadership: 5%CALCULATE pillar_targets for scope: FOR each pillar: target_slots = total_slots * (ratio / 100) ROUND to nearest integer ENSURE sum equals total_slots4.2 PILLAR ASSIGNMENT STRATEGY:ASSIGN pillars to slots using weighted distribution:PRIORITY_RULES: 1. Milestone days: Promotional or Community 2. Blog days: Educational pillar (for blog) 3. Blog amplification: mix based on blog topic 4. Monday: Educational (start week with value) 5. Friday: Community or BTS (engagement focus) 6. Primary platforms: balanced across pillars 7. Technical platforms: Educational focusAVOID: – Same pillar consecutive days on same platform – Promotional clustering (spread throughout) – All educational on low-engagement daysFOR each content_slot: ASSIGN pillar based on rules UPDATE slot.pillar = selected_pillar INCREMENT pillar_count[selected_pillar]4.3 TOPIC ASSIGNMENT:RETRIEVE topic_bank from content_pillarsFOR each content_slot: RETRIEVE relevant_topics = topic_bank[pillar] FILTER topics by: – Alignment with weekly_theme – Platform appropriateness – Not recently used (avoid repetition) SELECT topic using: IF milestone_day AND pillar == Promotional: topic = milestone-specific content IF blog_amplification_slot: topic = derived from blog topic ELSE: topic = best_fit from filtered_topics UPDATE slot.topic = selected_topic MARK topic as "used this week"4.4 CONTENT TYPE ASSIGNMENT:RETRIEVE format_recommendations from content_pillarsRETRIEVE platform_formats from channel_strategyPLATFORM_FORMAT_MATRIX: ——————————————- | Platform | Primary Formats | |———–|—————————-| | X/Twitter | Text, Thread, Image, Poll | | LinkedIn | Text, Article, Carousel | | YouTube | Video (long), Shorts | | TikTok | Video (short), Duet | | Bluesky | Text, Thread, Image | | Dev.to | Article, Tutorial | ——————————————-FOR each content_slot: SELECT format based on: – Platform primary formats – Pillar format preferences – Weekly variety (no repeat formats) – Resource requirements UPDATE slot.content_type = selected_format4.5 HOOK GENERATION (if detail >= with-hooks):IF detail_level in ["with-hooks", "full-briefs"]: FOR each content_slot: GENERATE hook_idea based on: – Topic direction – Platform conventions – Weekly theme – Pillar messaging approach HOOK_PATTERNS by pillar: Educational: "Did you know…", "Here is how to…", "The mistake…" Behind-the-Scenes: "Here is what I am working on…", "Real talk:" Community: "Question for you:", "What is your experience with…" Promotional: "Exciting news:", "Limited time:", "Join us for…" Thought Leadership: "Hot take:", "The future of…", "Why I think…" UPDATE slot.hook = generated_hook_idea4.6 PILLAR BALANCE CHECK:AFTER all assignments: CALCULATE actual_distribution: FOR each pillar: actual_pct = (count / total_slots) * 100 COMPARE to target_ratios: FOR each pillar: variance = actual_pct – target_pct IF ABS(variance) > 5%: FLAG for adjustment IF imbalance detected: #AI->H::Caution: (Pillar distribution variance detected) #AI->H::Note: ({pillar} is {variance}% off) #AI->H::Recommendation: (Consider swapping {X} slots from {over} to {under})GENERATE PILLAR_BALANCE_REPORT: ——————————————- | PILLAR BALANCE CHECK – {scope_identifier}| ——————————————- | Pillar | Target | Actual | Status | |—————|——–|——–|——–| | Educational | 40% | {X}% | OK/! | | BTS | 20% | {X}% | OK/! | | Community | 20% | {X}% | OK/! | | Promotional | 15% | {X}% | OK/! | | Thought Lead | 5% | {X}% | OK/! | ——————————————-
- #AI->H::Status: (Assigning calls-to-action to each content slot)5.1 CTA LIBRARY DEFINITION:DEFINE CTA_LIBRARY:PRIMARY_CTAS (Direct conversion): – "Sign up for early access" – "Join the waitlist" – "Get started today" – "Visit our website"ENGAGEMENT_CTAS (Community building): – "What do you think?" – "Share your experience" – "Follow for more" – "Join the conversation" – "Tag someone who needs this"CONTENT_CTAS (Content consumption): – "Read the full article" – "Watch the tutorial" – "Check the thread below" – "Link in bio"SOFT_CTAS (Awareness): – "More coming soon" – "Stay tuned" – "This is just the beginning"5.2 CTA ASSIGNMENT LOGIC:FOR each content_slot: DETERMINE cta_type based on: PILLAR-CTA MAPPING: – Educational: 60% Engagement, 30% Content, 10% Primary – Behind-the-Scenes: 50% Engagement, 30% Soft, 20% Primary – Community: 80% Engagement, 10% Content, 10% Primary – Promotional: 60% Primary, 25% Content, 15% Engagement – Thought Leadership: 50% Engagement, 30% Content, 20% Soft SELECT specific CTA based on: – Platform conventions – Content type (Thread: "Check thread below") – Phase urgency (closer to launch: more Primary) – Daily variety (no repeat CTA twice per day) UPDATE slot.cta = selected_cta5.3 CTA DISTRIBUTION CHECK:CALCULATE cta_distribution: – Primary CTAs: {count} ({percentage}%) – Engagement CTAs: {count} ({percentage}%) – Content CTAs: {count} ({percentage}%) – Soft CTAs: {count} ({percentage}%)VERIFY balance: – Primary should be 15-25% (not too salesy) – Engagement should be 40-50% (community focus) – Content should be 20-30% (drive consumption) – Soft should be 5-15% (awareness building){PERSONA_NAME} CTA Analysis:"CTA distribution for {scope_identifier}:Balance Check: {Show distribution with assessment}CTA Strategy: – Primary CTAs concentrated on: {days/platforms} – Engagement CTAs spread across: {all days} – Milestone days receive: {CTA type focus}Your content now has clear actions attached toevery piece."
- #AI->H::Status: (Generating formatted calendar output)6.1 DAILY VIEW FORMAT:FOR each day in calendar_range:GENERATE DAY_VIEW: =============================================== {DAY_NAME}, {DATE} | Week {N} | Phase: {PHASE} Theme: {THEME} | Intensity: {PERCENTAGE}% {IF milestone: "MILESTONE: {milestone_name}"} =============================================== {FOR each content_slot on this day:} ——————————————- | {TIME} | {PLATFORM} [{SLOT_ID}] | ——————————————- | Pillar: {PILLAR} | | Type: {CONTENT_TYPE} | | Topic: {TOPIC_DIRECTION} | | {IF detail >= with-hooks:} | | Hook: {HOOK_IDEA} | | CTA: {CTA} | | {IF detail == full-briefs:} | | Key Points: {BULLET_POINTS} | | Visual: {VISUAL_RECOMMENDATION} | | Hashtags: {HASHTAG_SUGGESTIONS} | ——————————————- {NEXT slot…} Day Total: {COUNT} pieces of content ===============================================6.2 WEEKLY SUMMARY VIEW:FOR each week in calendar_range:GENERATE WEEKLY_SUMMARY: =============================================== WEEK {N}: {DATE_RANGE} Phase: {PHASE} | Theme: {THEME} Intensity: {PERCENTAGE}% | Total: {COUNT} =============================================== | Day | X | LI | YT | TT | BS | Other| Total| |—–|—-|—-|—-|—-|—-| —–|——| | Mon | {X}| {X}| {X}| {X}| {X}| {X} | {X} | | Tue | {X}| {X}| {X}| {X}| {X}| {X} | {X} | | Wed | {X}| {X}| {X}| {X}| {X}| {X} | {X} | | Thu | {X}| {X}| {X}| {X}| {X}| {X} | {X} | | Fri | {X}| {X}| {X}| {X}| {X}| {X} | {X} | | Sat | {X}| {X}| —| {X}| {X}| {X} | {X} | | Sun | {X}| —| —| {X}| {X}| — | {X} | ——————————————- | TOT | {X}| {X}| {X}| {X}| {X}| {X} | {X} | ——————————————- HIGHLIGHTS: – {milestone if any} – {blog if any} – {special content notes} ===============================================6.3 CSV-READY FORMAT (if output_format includes):GENERATE CSV_CONTENT:slot_id,date,day,week,platform,time,phase,theme,pillar,topic,content_type,hook,cta,hashtags,notesW1-MON-X-1,2026-01-15,Monday,1,X/Twitter,09:00,Phase 1,Awareness,Educational,Topic explained,Thread,Did you know…,What do you think?,#hashtag1 #hashtag2,Campaign launch day#AI->H::Note: (CSV format ready for import into scheduling tools or spreadsheets)
- #AI->H::Status: (Grouping content for efficient batch creation)7.1 BATCH GROUPING LOGIC:IDENTIFY content batches for efficient creation:BATCH_STRATEGIES:1. BY_PLATFORM: Group all X/Twitter posts together Group all LinkedIn posts together Benefit: Stay in platform mindset2. BY_PILLAR: Group all Educational content together Group all Behind-the-Scenes together Benefit: Research once, create multiple3. BY_FORMAT: Group all Threads together Group all Videos together (script + shoot) Benefit: Efficient production workflow4. BY_DAY: Create Monday content together Create Tuesday content together Benefit: Context switching minimizationRECOMMEND optimal batching based on scope: IF single-week: BY_DAY or BY_PLATFORM IF phase: BY_PILLAR or BY_FORMAT IF full-campaign: BY_FORMAT (especially video)7.2 BATCH OUTPUT:GENERATE BATCH_CREATION_GUIDE: BATCH CREATION GUIDE – {scope_identifier} Recommended Strategy: {recommended_strategy} =============================================== BATCH 1: {BATCH_NAME} ——————————————- Content Count: {X} pieces Estimated Creation Time: {X} hours Includes: – {slot_id}: {brief description} – {slot_id}: {brief description} – … Preparation Needed: – {research/assets needed} ——————————————- BATCH 2: {BATCH_NAME} … =============================================== BATCH SUMMARY =============================================== Total Batches: {X} Total Content Pieces: {X} Estimated Total Creation Time: {X} hours Recommended Creation Schedule: – Batch 1: {suggested_date/time} – Batch 2: {suggested_date/time} – … ==============================================={PERSONA_NAME} Batching Analysis:"For efficient content creation, I recommend the{recommended_strategy} approach:Why This Strategy: {Rationale based on scope and content types}Time Investment: – {X} batches total – Average {Y} hours per batch – Full calendar creation: ~{Z} hoursPro Tip: Block dedicated creation time for eachbatch. Context-switching kills productivity.Batch your creation, then schedule it out. Youwill thank yourself later."
- #AI->H::Status: (Generating complete calendar output block)8.1 STRUCTURED OUTPUT BLOCK:=== CONTENT_CALENDAR_BLOCK ===Generated: {date}Recipe: RCP-005-002-001-CONTENT-CAL-v2.00aCALENDAR METADATA——————————————-– Scope: {calendar_scope}– Range: {scope_identifier}– Dates: {start_date} to {end_date}– Detail Level: {detail_level}– Total Content Slots: {total_slots}– Platforms Active: {platform_list}CONTENT DISTRIBUTION SUMMARY——————————————-By Platform: – X/Twitter: {count} posts – LinkedIn: {count} posts – YouTube: {count} videos – TikTok: {count} videos – Bluesky: {count} posts – Blog: {count} articlesBy Pillar: – Educational: {count} ({percentage}%) – Behind-the-Scenes: {count} ({percentage}%) – Community: {count} ({percentage}%) – Promotional: {count} ({percentage}%) – Thought Leadership: {count} ({percentage}%)By CTA Type: – Primary (conversion): {count} ({percentage}%) – Engagement: {count} ({percentage}%) – Content: {count} ({percentage}%) – Soft: {count} ({percentage}%)DAILY CALENDAR——————————————-[INSERT FULL DAILY VIEW OUTPUT FROM STEP 6.1]WEEKLY SUMMARIES——————————————-[INSERT WEEKLY SUMMARY OUTPUT FROM STEP 6.2]BATCH CREATION GUIDE——————————————-[INSERT BATCH GUIDE OUTPUT FROM STEP 7.2]MILESTONE CONTENT FOCUS——————————————-{FOR each milestone in scope:}MILESTONE: {milestone_name} ({date}) – Pre-milestone content: {list slot_ids} – Milestone day content: {list slot_ids} – Post-milestone content: {list slot_ids}BLOG AMPLIFICATION SCHEDULE——————————————-{FOR each blog in scope:}BLOG: {blog_topic} (Publishing: {date}) – Teaser slots: {list slot_ids with dates} – Launch slots: {list slot_ids} – Follow-up slots: {list slot_ids}=== END CONTENT_CALENDAR_BLOCK ===USAGE INSTRUCTIONS:This CONTENT_CALENDAR_BLOCK provides execution-ready content assignments for: – Recipe 7 (Social Post Creator): Individual slots as input – Direct scheduling in social media tools – Team content creation assignments – Progress tracking during campaign8.2 QUICK REFERENCE CARD: ——————————————- | CALENDAR QUICK REFERENCE | ——————————————- | RANGE: {start_date} to {end_date} | | TOTAL CONTENT: {total_slots} pieces | | DETAIL LEVEL: {detail_level} | ——————————————- | DAILY AVERAGE: {average} posts/day | | BUSIEST DAY: {day} with {count} posts | | QUIETEST DAY: {day} with {count} posts | ——————————————- | CREATION BATCHES: {batch_count} | | EST. CREATION TIME: {total_hours} hours | | RECOMMENDED: {batch_strategy} approach | ——————————————-#AI->H::Deliverable: (Content Calendar Block created – ready for execution or Recipe 7){PERSONA_NAME} Closing Summary:"Your content calendar for {scope_identifier} iscomplete.What You Have: – {total_slots} content slots with assignments – Every slot has: platform, time, pillar, topic, and CTA – Organized into {batch_count} creation batches – Estimated {total_hours} hours to create allNext Steps: 1. Option A: Take individual slots to Recipe 7 (Social Post Creator) to generate actual copy 2. Option B: Use batch guide to schedule creation sessions 3. Option C: Export CSV to your scheduling tool and start creatingConfidence Assessment: 85% This calendar provides a solid execution framework. Adjust based on real-time performance data.Pro Tip: Do not try to create everything at once.Batch it, schedule creation time, and maintainconsistency over perfection."#AI->H::RecipeComplete: ( RCP-005-002-001-CONTENT-CAL-v2.00a executed successfully)#AI->H::OutputReady: (CONTENT_CALENDAR_BLOCK available for execution or downstream recipes)
When to Use This Recipe
Recipe FAQ
persona (Maggie in the default CRAFT persona set).
The persona should have expertise in:
– Multi-channel message adaptation
– Persona-specific communication
– Brand voice consistency
– Platform culture alignment
– Conversion-focused copywriting The recipe uses the {PERSONA_NAME} variable to allow
customization for different persona implementations. Q: Should I generate the full campaign calendar at
once or phase by phase?
A: For manageability, generate phase by phase. Full
campaign calendars are extensive and harder to
review. Phase-by-phase allows for adjustments
based on performance data. Q: What detail level should I choose?
A: Use “topics-only” for quick planning overviews,
“with-hooks” for creation-ready calendars, and
“full-briefs” for team handoffs or delegation. Q: How do I handle content that does not fit the
pillar ratios exactly?
A: The recipe flags variances over 5%. Small
variances are acceptable; large ones may need
slot swapping to maintain balance. Q: Can I update the calendar after generating it?
A: Yes. Regenerate specific weeks or phases as
needed. The modular structure supports partial
updates without regenerating everything. Q: What if I do not have time for all the content?
A: Reduce intensity in your timeline (Recipe 5),
or focus on Tier 1 platforms only. Quality and
consistency beat volume. EXAMPLE 1: SINGLE WEEK CALENDAR Scope: Week 3 of campaign
Detail Level: with-hooks
Output Format: structured-text Execution: Execute CONTENT_CALENDAR_GENERATOR with:
– campaign_timeline: [Output from Recipe 5]
– channel_strategy: [Output from Recipe 4]
– content_pillars: [Output from Recipe 3]
– calendar_scope: “single-week”
– scope_identifier: “Week 3”
– detail_level: “with-hooks” Outcome: {PERSONA_NAME} creates: Calendar Structure:
– 7 days of content slots
– 35 total content pieces
– Each slot includes hook ideas and CTAs Pillar Distribution:
– Educational: 14 posts (40%)
– Behind-the-Scenes: 7 posts (20%)
– Community: 7 posts (20%)
– Promotional: 5 posts (14%)
– Thought Leadership: 2 posts (6%) Batch Recommendation: BY_DAY
– 7 batches (one per day)
– ~2 hours per batch
– Total: ~14 hours creation time Confidence: 85% EXAMPLE 2: PHASE CALENDAR Scope: Phase 2 – Momentum Building
Detail Level: full-briefs
Output Format: both (structured + CSV) Execution: Execute CONTENT_CALENDAR_GENERATOR with:
– calendar_scope: “phase”
– scope_identifier: “Phase 2”
– detail_level: “full-briefs”
– output_format: “both” Outcome: {PERSONA_NAME} creates: Calendar Structure:
– 6 weeks of content slots
– 210 total content pieces
– Full briefs for team handoff CSV Export:
– Ready for import into Buffer/Hootsuite
– All fields populated for scheduling Batch Recommendation: BY_PILLAR
– 5 batches (one per pillar)
– ~8-10 hours per batch
– Total: ~45 hours creation time Confidence: 80% – Large scope requires flexibility
