Skip to content
Marketing
Skill

/post-scheduler

Schedule a finished social post to one or more platforms via the Blotato API. Handles single-platform and multi-platform scheduling, fetches connected accounts, applies a final pre-publish check, and returns scheduled time + post IDs. Triggers on "schedule this," "post this to

BOOST
From plugin
blotato-skills
1968 skills
Install
$ npx -y skills add blotato-inc/blotato-skills --skill post-scheduler --agent claude-code

How 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.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/post-scheduler

Context preview

The summary Claude sees to decide when to auto-load this skill.

Schedule a finished social post to one or more platforms via the Blotato API. Handles single-platform and multi-platform scheduling, fetches connected accounts, applies a final pre-publish check, and returns scheduled time + post IDs. Triggers on "schedule this," "post this to

SKILL.md

post-scheduler.SKILL.md
name: post-scheduler
description: Schedule a finished social post to one or more platforms via the Blotato API. Handles single-platform and multi-platform scheduling, fetches connected accounts, applies a final pre-publish check, and returns scheduled time + post IDs. Triggers on "schedule this," "post this to [platform]," or as the final step in content-coach and post-writer flows. Falls back to saving the post as a copy-paste file if Blotato isn't configured.
argument-hint: "[post text or path] [platform(s)] [optional time]"
allowed-tools: Read, Write, Edit, Glob, AskUserQuestion, mcp__blotato__blotato_list_accounts, mcp__blotato__blotato_create_post, mcp__blotato__blotato_get_post_status

Post Scheduler

You take an approved post and ship it via Blotato. You do NOT write or revise the post — that's `post-writer`'s job. By the time a post reaches you, it's been graded and approved.

If Blotato isn't set up (no API key, no connected account), you fall back gracefully: save the post to a file the user can paste manually. Don't fail the flow.

When to Activate

  • "Schedule this post"
  • "Post this to Instagram tomorrow at 9am"
  • "Send this to LinkedIn"
  • Auto-called as the final step of `content-coach` after user approval.

Workflow

Step 1: Get inputs

You need: 1. **Post text** — inline, or path to a file 2. **Platform(s)** — one or more from: instagram, facebook, twitter, linkedin, tiktok, threads, bluesky, youtube 3. **Time** — default `useNextFreeSlot: true`, or a specific ISO timestamp if user specified

If platform is missing, ask. Don't guess.

Step 2: Final pre-publish check

Before hitting Blotato, scan the post one more time for:

  • [ ] Zero em dashes
  • [ ] No banned filler ("really," "very," "just," "basically," "literally," "actually")
  • [ ] No filler openers ("in today's world," "let me tell you")
  • [ ] Active voice
  • [ ] Contractions used
  • [ ] Hashtag count fits platform (0 for Twitter/Threads/Bluesky/LinkedIn/Facebook, 3-5 for Instagram, max 5 for TikTok)
  • [ ] For Instagram: media URL is attached
  • [ ] For LinkedIn: no external links in post body

If anything fails, **stop and report**:

Pre-publish check failed:
- [issue 1]
- [issue 2]

Want me to send this back to post-grader, or override and ship as-is?

Wait for explicit user response. Don't auto-fix without permission.

Step 3: Fetch connected accounts

mcp__blotato__blotato_list_accounts()

Group results by platform. If a requested platform has multiple accounts, ask which to use.

If a requested platform has **zero** accounts:

No [platform] account is connected to Blotato. To connect:
1. Open Blotato (blotato.com)
2. Add [platform] from the Accounts page
3. Come back and re-run this skill

For now, I can save the post to a file so you can paste it manually. Want that?

Step 4: Schedule

For **single platform**, call Blotato directly:

mcp__blotato__blotato_create_post({
  accountId: "<account_id>",
  platform: "<platform>",
  text: "<post text>",
  mediaUrls: ["<url>"],  // or [] for text-only
  useNextFreeSlot: true   // or scheduledTime: "2026-04-30T09:00:00Z"
})

Platform-specific required fields (add as needed):

  • **Facebook**: `pageId` (Facebook Page ID — required)
  • **TikTok**: `privacyLevel` (one of: `PUBLIC_TO_EVERYONE`, `MUTUAL_FOLLOW_FRIENDS`, `SELF_ONLY`), `disableDuet`, `disableComment`, `disableStitch`
  • **YouTube**: `title` (under 100 chars), `privacyStatus` (one of: `public`, `unlisted`, `private`)
  • **Instagram**: `mediaUrls` is required (Instagram requires media)

For **multiple platforms**, call Blotato once per platform. The same text may need slight tweaks (e.g., shorten for Bluesky's 300-char limit). If a post is over a platform's limit, ask the user how to handle it: shorten, skip that platform, or override.

Step 5: Report results

Show the user a confirmation table:

## Scheduled

| Platform | Account | Time | Status | Post ID |
|----------|---------|------|--------|---------|
| Instagram | @username | Next free slot | Scheduled | abc-123 |
| Twitter | @username | Next free slot | Scheduled | def-456 |

You can view and edit scheduled posts at https://my.blotato.com/scheduler

For partial failures (3 of 5 succeed), report success and failure separately. Don't roll back.

Step 6: Fallback (no Blotato)

If `mcp__blotato__blotato_list_accounts` errors out (not signed in, MCP server not configured, or no connected accounts):

Blotato isn't connected. I'll save your post so you can copy-paste it manually.

To enable scheduling, sign in to Blotato (one-time OAuth) and connect your accounts.

Save to `post-ready-to-paste.txt` in the current directory:

=== POST FOR [PLATFORM] ===
Scheduled for: [time or "manual posting"]

[POST TEXT HERE]

=== END POST ===

If multi-platform, save one block per platform. Tell the user the file path.

What NOT to Do

  • **Don't auto-fix voice issues.** That's `post-grader` and `post-writer`'s job. You only flag and ask.
  • **Don't skip the pre-publish check.** It's the last line of defense.
  • **Don't post immediately by default.** Default is `useNextFreeSlot: true`. Only publish-now when the user explicitly says "post now" or "publish immediately."
  • **Don't poll for status on scheduled posts.** Blotato confirms scheduling instantly. Status polling is only for immediate publishes that return `in-progress`.
  • **Don't fail silently if Blotato errors.** Always either retry once, fall back to file, or tell the user the exact error.
  • **Don't log success without the post ID.** "Done" without evidence isn't done.

Setting Up Blotato (one-time, for new users)

If the user has never used Blotato, walk them through this. **Don't dump all 4 sections at once — go one at a time, wait for them to confirm, then move to the next.**

Part 1: Create a Blotato account (5 minutes)

1. Open a browser and go to **https://blotato.com** 2. Click **Sign up** (top right corner). You can s

Read more
Ships withblotato-skills

Free Claude skills that take you from blank page to scheduled social post in one conversation. This repo is a Claude Code plugin marketplace.

Get the whole plugin
Stats
196
Stars
44
Forks
Maintained
Maintenance
Shell
Language
2mo ago
Last commit
3mo ago
Created
4d ago
Added

Repo: blotato-inc/blotato-skills

Other skills on blotato-skills.