| name | blotato-scheduler |
| description | This skill should be used when the user asks to schedule social media posts to Blotato, bulk upload content, schedule a month of posts, or mentions 'blotato-scheduler'. Handles uploading media and scheduling posts via the Blotato API. |
| version | 1.0.0 |
| metadata | [object Object] |
Blotato Bulk Scheduler
Schedule up to a month of social media content to Blotato with a single command.
Usage
/blotato-scheduler <folder-path> [--dry-run]
Arguments:
<folder-path>- Path to folder containingposts.csvandmedia/folder--dry-run- Preview what would be scheduled without actually posting
Folder Structure Required
content-folder/
├── posts.csv # All posts defined here
└── media/ # All media files go here
├── image1.jpg
├── video1.mp4
└── ...
posts.csv Format
CSV file with these columns:
| Column | Required | Format | Description |
|---|---|---|---|
| date | Yes | YYYY-MM-DD | Post date |
| time | Yes | HH:MM | 24-hour time (America/Toronto timezone) |
| text | Yes | String | Post caption (quote if contains commas) |
| media | No | file1.jpg;file2.mp4 | Media filenames from media/ folder, semicolon-separated |
| platforms | Yes | twitter;instagram | Target platforms, semicolon-separated |
Valid platforms: twitter, instagram, linkedin, facebook, bluesky, youtube, threads, tiktok
Example posts.csv:
date,time,text,media,platforms
2026-02-10,09:00,"Excited to share our new product!",product.jpg,twitter;instagram;linkedin
2026-02-10,14:00,"Behind the scenes today",bts.mp4,instagram;tiktok
2026-02-11,10:00,"Happy Monday everyone!",,twitter;threads
2026-02-11,18:00,"New tutorial is live!",tutorial.mp4;thumb.jpg,youtube
Execution Steps
When this skill is invoked:
Validate the folder path argument - Ensure it was provided and exists
Check for required files:
- Verify
posts.csvexists in the folder - Verify
media/folder exists (can be empty for text-only posts)
- Verify
Parse posts.csv:
- Read all rows
- Validate date/time formats
- Check all referenced media files exist in media/ folder
- Report any validation errors before proceeding
Run the scheduler script:
python "C:\Users\eckme\.claude\skills\blotato-scheduler\scripts\blotato_scheduler.py" "<folder-path>" [--dry-run]Report results to the user showing:
- Number of posts scheduled
- Any errors encountered
- Links to Blotato dashboard
Configuration (Hardcoded)
The following account configuration is embedded in the script:
- API Key: Configured in script
- Timezone: America/Toronto
- Accounts:
- twitter: 9102
- linkedin: 8251
- instagram: 19885
- facebook: 12870 (page: 100224776504039)
- bluesky: 12872
- youtube: 17874
- threads: 3560
- tiktok: 20263
Rate Limits
The script handles Blotato API rate limits automatically:
- Media uploads: 10 per minute (6 second delay between uploads)
- Post scheduling: 30 per minute (2 second delay between posts)
Platform-Specific Notes
- YouTube: Uses first 100 characters of text as title
- TikTok: Posts appear as drafts in mobile app
- Facebook: Posts to "Mike Eckmeier - A.I. Engineer" page
Error Handling
- Invalid CSV format: Script stops and reports row with error
- Missing media file: Script stops and reports missing file
- API errors: Script continues, logs error, reports at end
- Rate limit hit: Script waits and retries automatically
Example Session
User: /blotato-scheduler C:\Users\eckme\content\february-posts
Claude: I'll schedule your February posts to Blotato.
Found 28 posts in posts.csv
Uploading 15 media files...
✓ photo1.jpg uploaded
✓ video1.mp4 uploaded
...
Scheduling 28 posts...
✓ Post 1 scheduled for 2026-02-10 09:00
✓ Post 2 scheduled for 2026-02-10 14:00
...
Complete! 28 posts scheduled successfully.
View your queue: https://my.blotato.com/queue
Business CMS Integration
MANDATORY: After scheduling posts:
Create CMS folder:
BUSINESS_ROOT="C:/Users/eckme/OneDrive/Documents/New folder (2)/Business" DATE_PATH=$(date +"%Y/%m/%d") mkdir -p "$BUSINESS_ROOT/Social-Media/Multi-Platform/$DATE_PATH/scheduled-batch"Copy the input files:
posts.csv(the schedule)media/folder (all uploaded assets)
Create metadata.md with type (Scheduled Batch), posts count, platforms, date range, created time, and file list
Update all individual post metadata.md files (if they exist in platform-specific CMS folders) — change status from "Draft" to "Scheduled"
Create/update _manifest.md in the date folder