# Parse Calendar

> Parse monthly content calendars from DOCX, XLSX, Notion, or text into structured calendar-data.json.

- **Type:** Skill
- **Install:** `agentstack add skill-indranilbanerjee-socialforge-parse-calendar`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [indranilbanerjee](https://agentstack.voostack.com/s/indranilbanerjee)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [indranilbanerjee](https://github.com/indranilbanerjee)
- **Source:** https://github.com/indranilbanerjee/socialforge/tree/main/skills/parse-calendar
- **Website:** https://indranil.in

## Install

```sh
agentstack add skill-indranilbanerjee-socialforge-parse-calendar
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# /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}//assets/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 `~/socialforge-workspace/output/{brand}/{YYYY-MM}/`

## 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: ~/socialforge-workspace/output/acme-corp/2026-04/calendar-data.json
```

## After 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.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [indranilbanerjee](https://github.com/indranilbanerjee)
- **Source:** [indranilbanerjee/socialforge](https://github.com/indranilbanerjee/socialforge)
- **License:** MIT
- **Homepage:** https://indranil.in

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-indranilbanerjee-socialforge-parse-calendar
- Seller: https://agentstack.voostack.com/s/indranilbanerjee
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
