RCP-005-002-001-CONTENT-CAL

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.
Recipe Name: RCP-005-002-001-CONTENT-CAL – Content Calendar Generator
RCP-005-002-001-CONTENT-CAL
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. Uses {PERSONA_NAME}
persona for calendar development.
Multi-Recipe Combo Stage Single Recipe
Recipe Category CFT-FWK-CAMPAIGN-ARCH – Social Media Campaign Planning Cookbook
Recipe Subcategory Blogging with A.I., Brainstorming with A.I.
Recipe Difficulty Easy
Recipe Tag: Foundational | Introduced in the POC

Requirements

  • Any AI Chat Platform (platform-agnostic recipe) Any of the following: Claude (Anthropic), ChatGPT (OpenAI), Gemini (Google), Grok (X.ai), Perplexity, Microsoft Copilot

How To Start
 

STEP 0: POLICY PRE-CHECK
  • Scan prompt for sensitive categories:
    – Proprietary content strategies
    – Competitive posting patterns
    – Platform-specific algorithm gaming
    IF potential conflict detected:
    #AI->H::PolicyCaution: (Content calendar may
    involve sensitive scheduling strategies)
    #AI->H::Note: (Keep calendar details
    confidential as requested)
STEP 0.5: PERSONA CONTINUITY
  • #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_TIER
    ELSE:
    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 and
    translating 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 you
    can actually execute."
STEP 1: INPUT VALIDATION AND SCOPE DEFINITION
  • #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_tactics
    CHECK 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_recommendations
    1.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} weeks
    Detail 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."
STEP 2: CALENDAR FRAMEWORK CREATION
  • #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 1
    2.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 with
    specific content."
STEP 3: PLATFORM SLOT ASSIGNMENT
  • #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_slots
    3.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 notes
    FOR 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} | |
    ——————————————-
STEP 4: CONTENT ASSIGNMENT
  • #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_slots
    4.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 focus
    AVOID:
    – Same pillar consecutive days on same platform
    – Promotional clustering (spread throughout)
    – All educational on low-engagement days
    FOR 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_pillars
    FOR 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_pillars
    RETRIEVE platform_formats from channel_strategy
    PLATFORM_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_format
    4.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_idea
    4.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/! |
    ——————————————-
STEP 5: CTA MAPPING
  • #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_cta
    5.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 to
    every piece."
STEP 6: CALENDAR GENERATION
  • #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,notes
    W1-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)
STEP 7: BATCH IDENTIFICATION
  • #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 mindset
    2. BY_PILLAR:
    Group all Educational content together
    Group all Behind-the-Scenes together
    Benefit: Research once, create multiple
    3. BY_FORMAT:
    Group all Threads together
    Group all Videos together (script + shoot)
    Benefit: Efficient production workflow
    4. BY_DAY:
    Create Monday content together
    Create Tuesday content together
    Benefit: Context switching minimization
    RECOMMEND 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} hours
    Pro Tip: Block dedicated creation time for each
    batch. Context-switching kills productivity.
    Batch your creation, then schedule it out. You
    will thank yourself later."
STEP 8: CALENDAR OUTPUT BLOCK
  • #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.00a
    CALENDAR 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} articles
    By 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 campaign
    8.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} is
    complete.
    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 all
    Next 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 creating
    Confidence 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 maintain
    consistency 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

Use this recipe after completing the Strategic
Layer (Recipes 1-5). This is the first recipe in
the Execution Layer (SUBCAT-002).
IDEAL TIMING:
– After campaign timeline is complete
– When ready to begin content creation
– Before delegation to team members
– When scheduling tools need populated
PREREQUISITES:
– Campaign Timeline Output Block (Recipe 5)
– Channel Strategy Output Block (Recipe 4)
– Content Pillar Output Block (Recipe 3)
– Scope decision (single-week, phase, etc.)
– Detail level preference
RELATIONSHIP TO OTHER RECIPES:
– Follows: Recipes 1-5 (Strategic Layer)
– Precedes: Recipe 7 (Social Post Creator)
– Precedes: Recipe 8 (Blog Content Planner)
– Precedes: Recipe 9 (Performance Analyzer)

Recipe FAQ

RECOMMENDED RECIPE PERSONA
This recipe works best with the Campaign Strategist
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

Actual Recipe Code

(Copy This Plaintext Code To Use)
# ===========================================================
# START RECIPE-ID: RCP-005-002-001-CONTENT-CAL-v2.00a
# ===========================================================
CONTENT_CALENDAR_GENERATOR = Recipe(
recipe_id="RCP-005-002-001-CONTENT-CAL-v2.00a",
title="Content Calendar Generator",
description="Transforms campaign timeline into
specific, actionable content slots with
dates, platforms, content types, topics,
and CTAs.",
category="CAT-005-CAMPAIGN-PLANNING",
subcategory="SUBCAT-002-EXECUTION",
layer="TACTICAL",
difficulty="medium-hard",
estimated_time="45-60 minutes per phase",
version="2.00a",
# ——————————————————-
# RECIPE DEPENDENCIES
# ——————————————————-
dependencies={
"required_inputs": [
{
"source": "RCP-005-001-005-TIMELINE-ARCH",
"input": "campaign_timeline",
"description": "Week-by-week timeline
with themes and intensity"
},
{
"source": "RCP-005-001-004-CHANNEL-STRAT",
"input": "channel_strategy",
"description": "Platform playbooks
with frequency and tactics"
},
{
"source": "RCP-005-001-003-CONTENT-PILLAR",
"input": "content_pillars",
"description": "Content categories
with ratios and topic banks"
}
],
"optional_inputs": [
{
"source": "RCP-005-001-002-MSG-MATRIX",
"input": "messaging_matrix",
"description": "Phase-aligned
messaging for content alignment"
}
],
"feeds_into": [
"RCP-005-002-002 (Social Post Creator)",
"RCP-005-002-003 (Blog Content Planner)",
"Direct content creation and scheduling"
]
},
# ——————————————————-
# PARAMETERS
# ——————————————————-
parameters={
"campaign_timeline": {
"type": "text",
"required": True,
"description": "Output from Recipe 5"
},
"channel_strategy": {
"type": "text",
"required": True,
"description": "Output from Recipe 4"
},
"content_pillars": {
"type": "text",
"required": True,
"description": "Output from Recipe 3"
},
"calendar_scope": {
"type": "enum",
"required": True,
"options": ["single-week", "two-weeks",
"phase", "full-campaign"],
"description": "How much to calendar"
},
"scope_identifier": {
"type": "string",
"required": False,
"description": "Which week/phase"
},
"detail_level": {
"type": "enum",
"required": False,
"default": "with-hooks",
"options": ["topics-only", "with-hooks",
"full-briefs"],
"description": "Detail per content slot"
},
"include_blog": {
"type": "boolean",
"required": False,
"default": True,
"description": "Include blog posts"
},
"output_format": {
"type": "enum",
"required": False,
"default": "structured-text",
"options": ["structured-text",
"csv-ready", "both"],
"description": "Output format"
}
},
# ——————————————————-
# OUTPUT SPECIFICATIONS
# ——————————————————-
outputs={
"primary_output": {
"name": "CONTENT_CALENDAR_BLOCK",
"format": "Structured text block",
"contains": [
"Calendar Metadata",
"Content Distribution Summary",
"Daily Calendar (all slots)",
"Weekly Summaries",
"Batch Creation Guide",
"Milestone Content Focus",
"Blog Amplification Schedule"
],
"usage": "Input for Recipe 7, direct
execution, scheduling tools"
},
"export_outputs": [
{
"name": "CSV_EXPORT",
"format": "Comma-separated values",
"purpose": "Import into scheduling
tools or spreadsheets",
"available_when": "output_format
includes csv-ready"
}
],
"reference_outputs": [
{
"name": "QUICK_REFERENCE_CARD",
"format": "Bordered card",
"purpose": "At-a-glance summary"
},
{
"name": "BATCH_CREATION_GUIDE",
"format": "Structured guide",
"purpose": "Efficient creation planning"
}
]
},
# ——————————————————-
# VALIDATION CHECKLIST
# ——————————————————-
validation_checklist='''
Before marking recipe complete, verify:
[ ] All days in scope have content assigned
[ ] Every slot has: date, platform, time, pillar,
topic, CTA
[ ] Pillar distribution within 5% of targets
[ ] CTA distribution balanced (not too promotional)
[ ] No content gaps on milestone days
[ ] Blog amplification slots created for all blogs
[ ] Batches logically grouped
[ ] Total content volume realistic for resources
[ ] CSV export valid format (if requested)
[ ] Quick reference card accurate
'''
)
# ===========================================================
# END RECIPE-ID: RCP-005-002-001-CONTENT-CAL-v2.00a
# ===========================================================
"""
# ———————————————————–
# SECTION: NOTES
# ———————————————————–
WPRM_FIELD_NOTES = """
RECIPE NOTES:
1. DEPENDENCY: This recipe requires output from
Recipes 3, 4, and 5. Recipe 2 (Messaging Matrix)
is optional but enhances content alignment.
2. SCOPE SELECTION: Choose scope based on your
planning needs:
– single-week: Detailed creation planning
– phase: Recommended for most use cases
– full-campaign: Overview only, detailed later
3. DETAIL LEVELS: Three levels available:
– topics-only: Quick planning, 2-3 min/slot
– with-hooks: Creation-ready, 5-7 min/slot
– full-briefs: Team handoff, 10-15 min/slot
4. PILLAR DISTRIBUTION: The recipe automatically
distributes content across pillars based on
phase ratios from Recipe 3. Variances over 5%
are flagged for review.
5. CTA BALANCE: Primary CTAs (conversion-focused)
should not exceed 25% of total. The recipe
checks distribution and flags imbalances.
6. BATCH STRATEGIES: Four approaches available:
– BY_PLATFORM: Best for solo creators
– BY_PILLAR: Best for research-heavy content
– BY_FORMAT: Best for video production
– BY_DAY: Best for daily publishing rhythm
7. CSV EXPORT: When enabled, generates import-ready
format for Buffer, Hootsuite, Later, and similar
scheduling tools.
8. ITERATIVE USE: This recipe can be run multiple
times for different scopes or to regenerate
specific weeks based on performance data.
9. DOWNSTREAM RECIPES: Individual content slots
can be passed to Recipe 7 (Social Post Creator)
for full copy generation.
"""
# ===========================================================
# END WPRM RECIPE CONTENT
# ===========================================================

Similar Posts

Leave a Reply