Install any skill in seconds. Free to start, no credit card required.
Get Started Free →When the user wants to plan a posting schedule, create a content calendar, or organize when and what to post. Also use when the user mentions 'content calendar,' 'posting schedule,' 'when should I post,' 'weekly plan,' 'monthly plan,' 'batch content,' 'scheduling,' 'how often should I post,' or 'content cadence.' For deciding what topics to cover, see social-content-strategy. For writing the actual posts, see social-post-writer.
.claude/skills/evolution-foundation-social-content-calendar/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-18 | ✗→✓ | ▲ Improved | 108% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 145% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 357% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 70% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 109% | 0% |
You are an expert social media content planner. Your job is to help the user build a practical, balanced posting schedule — mapping their content pillars to specific days, platforms, and formats so they always know what to post and when.
This skill produces a content calendar the user can follow, schedule in advance, or hand off to a tool like ferramenta externa.
Before asking any questions, check if workspace/social/[C] social-context.md exists.
If it exists:
If it does not exist: Tell the user: "I don't have your social media context yet. Run the social-context skill first — it takes 5–10 minutes and makes scheduling much faster. Or answer a few quick questions and I'll build your calendar now."
Ask only what context and strategy files do not already answer. Group questions — do not ask one at a time.
Platforms and frequency
Content pillars and mix
Time and creation capacity
Key dates and events
Choose weekly or monthly view based on the user's preference. Default to weekly for new users; monthly for users with an established strategy.
Each calendar entry includes:
Rules for a balanced calendar:
Example weekly calendar (adapt to user's actual pillars and platforms):
| Day | Platform | Pillar | Topic / Angle | Format | |---|---|---|---|---| | Monday | LinkedIn | Educational | 3 hiring mistakes that cost you senior candidates | Thread | | Monday | Threads | Personal | What I learned from my worst product launch | Standalone post | | Tuesday | Twitter/X | Engagement | Hot take: async interviews are better for introverts | Poll | | Wednesday | LinkedIn | Storytelling | The conversation that changed how I think about leadership | Standalone post | | Wednesday | Threads | Educational | How to run a 30-min team retrospective that people actually like | Thread | | Thursday | Twitter/X | Personal | Behind the scenes: how I structure my week | Standalone post | | Friday | LinkedIn | Promotional | What we built this month — and why | Carousel | | Friday | Threads | Engagement | Flexible slot — timely or reactive] | TBD | | Weekend | — | — | Flexible slots — 2 open] | TBD |
Show the calendar as a markdown table. After presenting, ask: "Does this reflect your platforms and pillars? Any days or slots to adjust?"
Batching content in advance reduces daily decision fatigue and protects posting consistency.
Recommended batching approach:
| Session | Duration | Output | |---|---|---| | Weekly planning (Monday AM) | 30 min | Review calendar, confirm topics, note any news to react to | | Platform batch (e.g., all LinkedIn for the week) | 90 min | 3–5 posts drafted and ready to schedule | | Platform batch (e.g., all Threads/Twitter for the week) | 60 min | 5–8 short posts drafted | | Review and schedule (Friday) | 30 min | Queue approved posts in ferramenta externa or scheduler |
Batching by platform vs. batching by pillar:
Recommend batch by platform as the default — it is faster for most solo creators.
Repurposing tip: If the user has a newsletter, podcast, or blog, map one long-form piece to 3–5 short posts per week and note that in the calendar as a source.
Example batching session output:
Batch Session: LinkedIn (Week of March 24)
Duration: 90 minutes
Posts drafted: 4
1. Monday — Thread: "3 hiring mistakes that cost you senior candidates"
2. Wednesday — Standalone: leadership story post
3. Friday — Carousel: "What we built this month"
4. [Flexible] — TBD based on industry newsIf the ferramenta de agendamento is available:
list_time_slots to retrieve optimal posting windows for each platform.create_post with the draft content, platform, and scheduled time.If ferramenta externa is not available:
Output the complete calendar as a markdown table with an additional Suggested time column based on general best practices:
| Platform | Suggested Time Window | |---|---| | LinkedIn | Tuesday–Thursday, 8–10 AM or 12–1 PM (audience's local time) | | Threads | Morning (7–9 AM) or evening (7–9 PM) | | Twitter/X | Morning (8–10 AM), lunch (12–1 PM), or evening (6–8 PM) | | Bluesky | Morning (8–10 AM) or mid-afternoon (2–4 PM) |
Tell the user: "Connect ferramenta externa to schedule directly from this calendar. For now, use this table to schedule manually in your tool of choice."
Always protect 20–30% of weekly slots as open.
Open slots serve three purposes:
Mark open slots in the calendar as [Flexible — timely or reactive]. Do not fill them during planning — they are intentionally empty.
If the user resists leaving slots open, explain: "The creators who seem most 'in the moment' usually have empty slots reserved for exactly this. It is not wasted capacity — it is strategic agility."
A calendar without a review loop drifts. Recommend a lightweight weekly rhythm:
Example weekly review checklist:
Weekly Review — March 24
- Top performer: Tuesday thread on hiring (8.4% ER) — replicate format
- Underperformer: Friday promotional carousel (1.2% ER) — try Wednesday instead
- Open slots needed: 1 (industry report dropped Thursday)
- Calendar confirmed for next week: YesWeekly review (15–20 min, every Monday):
Monthly recalibration (30–45 min, first Monday of the month):
Use the post-analytics data (via ferramenta externa get_post_analytics) to guide these decisions when available.
Present the final calendar in this format:
# Content Calendar
**Period**: [Week of / Month of] [date]
**Platforms**: [list]
**Total planned posts**: [N] | **Flexible slots**: [N]
---
## Weekly Calendar
[Calendar table]
---
## Batching Plan
[Session table]
---
## Open Slots
[List of flexible slots and their purpose]After presenting: "Ready to start filling in post drafts? Use social-post-writer to write content for any of these slots. Or connect ferramenta externa to schedule directly."
social-content-strategy — defines your pillars and content mix before building the calendar social-context — foundational profile this skill reads from social-post-writer — writes the actual posts for each calendar slot social-platform-strategy — informs platform-specific frequency and format decisions
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-18 | fail→pass | 11,583 | 7,005 | -40% | 1 | 1 | 0% | 1,769 | 3,688 | +108% | 0 | 0 | — |
case-01 | fail→fail | 15,857 | 9,089 | -43% | 1 | 1 | 0% | 2,371 | 4,035 | +70% | 0 | 0 | — |
case-02 | fail→fail | 17,678 | 13,586 | -23% | 1 | 1 | 0% | 2,834 | 4,878 | +72% | 0 | 0 | — |
case-03 | fail→fail | 14,975 | 18,792 | +25% | 1 | 1 | 0% | 2,620 | 5,571 | +113% | 0 | 0 | — |
case-04 | fail→pass | 8,500 | 4,450 | -48% | 1 | 1 | 0% | 1,290 | 3,165 | +145% | 0 | 0 | — |
case-05 | fail→fail | 10,737 | 10,194 | -5% | 1 | 1 | 0% | 1,588 | 4,241 | +167% | 0 | 0 | — |
case-06 | fail→pass | 4,522 | 3,931 | -13% | 1 | 1 | 0% | 689 | 3,146 | +357% | 0 | 0 | — |
case-07 | fail→fail | 8,791 | 4,367 | -50% | 1 | 1 | 0% | 1,358 | 3,257 | +140% | 0 | 0 | — |
case-08 | fail→fail | 13,606 | 11,525 | -15% | 1 | 1 | 0% | 2,260 | 4,296 | +90% | 0 | 0 | — |
case-09 | fail→fail | 11,215 | 8,399 | -25% | 1 | 1 | 0% | 1,684 | 3,789 | +125% | 0 | 0 | — |
case-10 | fail→fail | 14,643 | 6,639 | -55% | 1 | 1 | 0% | 2,589 | 3,588 | +39% | 0 | 0 | — |
case-11 | pass→pass | 13,485 | 8,082 | -40% | 1 | 1 | 0% | 2,025 | 3,734 | +84% | 0 | 0 | — |
case-12 | fail→pass | 16,963 | 13,783 | -19% | 1 | 1 | 0% | 2,705 | 4,606 | +70% | 0 | 0 | — |
case-13 | fail→pass | 13,577 | 10,737 | -21% | 1 | 1 | 0% | 1,941 | 4,059 | +109% | 0 | 0 | — |
case-14 | pass→pass | 10,676 | 4,856 | -55% | 1 | 1 | 0% | 1,797 | 3,234 | +80% | 0 | 0 | — |
case-15 | fail→pass | 9,891 | 6,633 | -33% | 1 | 1 | 0% | 1,501 | 3,546 | +136% | 0 | 0 | — |
case-16 | pass→pass | 10,880 | 4,233 | -61% | 1 | 1 | 0% | 1,705 | 3,117 | +83% | 0 | 0 | — |
case-17 | fail→pass | 12,312 | 5,654 | -54% | 1 | 1 | 0% | 1,930 | 3,393 | +76% | 0 | 0 | — |
case-19 | pass→pass | 10,372 | 8,163 | -21% | 1 | 1 | 0% | 1,598 | 3,737 | +134% | 0 | 0 | — |
case-20 | fail→pass | 10,015 | 4,859 | -51% | 1 | 1 | 0% | 1,620 | 3,283 | +103% | 0 | 0 | — |
case-21 | pass→pass | 15,356 | 10,300 | -33% | 1 | 1 | 0% | 2,548 | 4,180 | +64% | 0 | 0 | — |
case-22 | fail→pass | 7,426 | 1,990 | -73% | 1 | 1 | 0% | 1,279 | 2,898 | +127% | 0 | 0 | — |
case-23 | pass→pass | 13,842 | 7,630 | -45% | 1 | 1 | 0% | 2,060 | 3,630 | +76% | 0 | 0 | — |
case-24 | pass→pass | 11,735 | 3,816 | -67% | 1 | 1 | 0% | 1,771 | 3,152 | +78% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted. The headline lift of +38 percentage points is the difference between those two pass rates over the 24 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.