/parse-calendar
Parse monthly content calendars from DOCX, XLSX, Notion, or text into structured calendar-data.json.
$ npx -y skills add indranilbanerjee/socialforge --skill parse-calendar --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/parse-calendar
Context preview
The summary Claude sees to decide when to auto-load this skill.
Parse monthly content calendars from DOCX, XLSX, Notion, or text into structured calendar-data.json.
SKILL.md
parse-calendar.SKILL.mdname: parse-calendar
description: Parse monthly content calendars from DOCX, XLSX, Notion, or text into structured calendar-data.json.
argument-hint: "[file-path or Notion URL]"
effort: medium
user-invocable: true
/socialforge:parse-calendar — Calendar Parser
Parse a monthly social media content calendar into structured JSON that drives the entire production pipeline.
Context efficiency
Asset-heavy skill. **Grep before Read** the asset catalog (`${CLAUDE_PLUGIN_DATA}/socialforge/brands/<brand>/asset-index.json`) — never list the asset directory. Reference generated images / videos by path, not by loading metadata. Brand profile loads once per session.
Supported Formats
| Format | How It Works | |--------|-------------| | DOCX | Read tables and structured text from Word documents | | XLSX | Read rows from Excel spreadsheets (one row per post) | | Notion | Read from Notion database via MCP (requires Notion connector) | | Structured text | Parse markdown or plain text with consistent formatting |
Required Fields Per Post
Every post in the calendar must have (or the system will ask for missing ones):
| Field | Required | Description | |-------|----------|-------------| | post_id | Auto-generated | Unique identifier (e.g., P01, P02) | | date | Yes | Publishing date (YYYY-MM-DD) | | platform | Yes | Target platform(s) — linkedin, instagram, x, facebook, etc. | | content_type | Yes | static, carousel, video, story, reel, text_only | | tier | Yes | HERO, HUB, or HYGIENE | | topic | Yes | What the post is about | | caption_brief | Yes | Brief description of the copy direction | | visual_brief | Recommended | What the image should show | | hashtags | Optional | Post-specific hashtags (brand hashtags added automatically) | | cta | Optional | Call-to-action text or link | | campaign | Optional | Campaign this post belongs to | | notes | Optional | Special instructions |
Process
1. **Detect format** — Check file extension or URL pattern 2. **Extract posts** — Parse each post entry from the source 3. **Validate fields** — Check required fields present. For missing fields, ask the user. 4. **Normalize** — Standardize dates, platform names, content types to schema format 5. **Assign post IDs** — Sequential (P01, P02, ...) if not already present 6. **Cross-reference platforms** — Check all platforms exist in brand's platform-config.json 7. **Flag issues** — Duplicate dates, missing briefs, unsupported content types 8. **Save** — Write calendar-data.json to `${CLAUDE_PLUGIN_DATA}/socialforge/output/{brand}/{YYYY-MM}/` (falls back to `~/socialforge-workspace/output/...` when `${CLAUDE_PLUGIN_DATA}` is unset)
Output
Calendar parsed: 28 posts for April 2026
LinkedIn: 12 posts (4 carousels, 6 static, 2 video)
Instagram: 10 posts (3 carousels, 4 reels, 3 static)
X: 6 posts (all text+image)
Issues found: 2
- P14: Missing visual_brief (will need manual input during asset matching)
- P22: Date falls on Sunday — confirm intentional weekend post?
Calendar saved: ${CLAUDE_PLUGIN_DATA}/socialforge/output/acme-corp/2026-04/calendar-data.jsonAfter Parsing
Ask: "Would you like to:
- Match assets to posts? (`/socialforge:match-assets`)
- Review the parsed calendar first? (I'll show the full post list)
- Fix issues? (I'll walk through each flagged item)"
Timeout & Fallback
- DOCX/XLSX parsing: 30-second timeout. If file is too large, suggest splitting by week.
- Notion: 60-second timeout per database query. If Notion is slow, offer to export and parse locally.
- If format is unrecognized: Ask user to describe the structure, then parse adaptively.
Read more
name: parse-calendar description: Parse monthly content calendars from DOCX, XLSX, Notion, or text into structured calendar-data.json. argument-hint: "[file-path or Notion URL]" effort: medium user-invocable: true
/socialforge:parse-calendar — Calendar Parser
Parse a monthly social media content calendar into structured JSON that drives the entire production pipeline.
Context efficiency
Asset-heavy skill. **Grep before Read** the asset catalog (`${CLAUDE_PLUGIN_DATA}/socialforge/brands/<brand>/asset-index.json`) — never list the asset directory. Reference generated images / videos by path, not by loading metadata. Brand profile loads once per session.
Supported Formats
| Format | How It Works | |--------|-------------| | DOCX | Read tables and structured text from Word documents | | XLSX | Read rows from Excel spreadsheets (one row per post) | | Notion | Read from Notion database via MCP (requires Notion connector) | | Structured text | Parse markdown or plain text with consistent formatting |
Required Fields Per Post
Every post in the calendar must have (or the system will ask for missing ones):
| Field | Required | Description | |-------|----------|-------------| | post_id | Auto-generated | Unique identifier (e.g., P01, P02) | | date | Yes | Publishing date (YYYY-MM-DD) | | platform | Yes | Target platform(s) — linkedin, instagram, x, facebook, etc. | | content_type | Yes | static, carousel, video, story, reel, text_only | | tier | Yes | HERO, HUB, or HYGIENE | | topic | Yes | What the post is about | | caption_brief | Yes | Brief description of the copy direction | | visual_brief | Recommended | What the image should show | | hashtags | Optional | Post-specific hashtags (brand hashtags added automatically) | | cta | Optional | Call-to-action text or link | | campaign | Optional | Campaign this post belongs to | | notes | Optional | Special instructions |
Process
1. **Detect format** — Check file extension or URL pattern 2. **Extract posts** — Parse each post entry from the source 3. **Validate fields** — Check required fields present. For missing fields, ask the user. 4. **Normalize** — Standardize dates, platform names, content types to schema format 5. **Assign post IDs** — Sequential (P01, P02, ...) if not already present 6. **Cross-reference platforms** — Check all platforms exist in brand's platform-config.json 7. **Flag issues** — Duplicate dates, missing briefs, unsupported content types 8. **Save** — Write calendar-data.json to `${CLAUDE_PLUGIN_DATA}/socialforge/output/{brand}/{YYYY-MM}/` (falls back to `~/socialforge-workspace/output/...` when `${CLAUDE_PLUGIN_DATA}` is unset)
Output
Calendar parsed: 28 posts for April 2026
LinkedIn: 12 posts (4 carousels, 6 static, 2 video)
Instagram: 10 posts (3 carousels, 4 reels, 3 static)
X: 6 posts (all text+image)
Issues found: 2
- P14: Missing visual_brief (will need manual input during asset matching)
- P22: Date falls on Sunday — confirm intentional weekend post?
Calendar saved: ${CLAUDE_PLUGIN_DATA}/socialforge/output/acme-corp/2026-04/calendar-data.jsonAfter Parsing
Ask: "Would you like to:
- Match assets to posts? (`/socialforge:match-assets`)
- Review the parsed calendar first? (I'll show the full post list)
- Fix issues? (I'll walk through each flagged item)"
Timeout & Fallback
- DOCX/XLSX parsing: 30-second timeout. If file is too large, suggest splitting by week.
- Notion: 60-second timeout per database query. If Notion is slow, offer to export and parse locally.
- If format is unrecognized: Ask user to describe the structure, then parse adaptively.
Your client wants 30 days of social content across six platforms with brand-faithful imagery, AI-generated video, and provenance signed for EU markets. You have five days.
Other skills on socialforge.
- /adapt-copy
Adapt post copy per platform — character limits, hashtags, CTAs, tone, and compliance checking.
Open skill - /assemble-document
Assemble the final calendar delivery manifest (structured JSON) with all posts, copy, and metadata.
Open skill - /brand-manager
Set up and manage brand profiles. Use when: configuring a new brand, updating brand config, or switching brands.
Open skill - /build-review-gallery
Build an interactive HTML review gallery with all generated posts for team review.
Open skill - /c2pa-sign
Embed C2PA (Content Authenticity Initiative) provenance manifests into SocialForge AI-generated assets — images, video, audio. Use when: preparing AI-generated social posts for EU markets to comply with EU AI Act Article 50 (applicable 2 Aug 2026); making AI generation
Open skill - /compose-creative
Core creative engine. Generates images and video using 4 modes with brand assets, AI compositing, and platform resizing.
Open skill

