agentleFS
PerufitlifePerufitlife/postwire-skills/skills/schedule-posts/SKILL.md

schedule-posts

Skill0 starsChanged 30 days agoMIT-0View on GitHub

Schedule social media posts from your AI agent: one post at a set time, a batch from a list or CSV, the next free slot in a weekly queue, or a recurring post, on TikTok, Instagram, YouTube, LinkedIn, Facebook Pages, Bluesky, Mastodon, Telegram, Discord and X (paid plans). Checks every post against each network's rules before it is queued (a dry run for batches), so nothing fails at publish time, then lists, moves or cancels what is waiting. Use when the user wants to schedule posts, queue posts, bulk schedule from a spreadsheet or CSV, set up recurring posts, or see and manage their scheduled posts.

  • Reads credentials

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    1. Marky-Team/marky-skills★ 5same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository8 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Always the user's timezone: ask once if my_account does not show it.

    line 38
  2. Very specific:

    After scheduling, list_scheduled_posts and give one line per post: time, networks, first words.

    line 55
  3. Distinctive:

    All error codes: https://postwire.io/docs/errors.md

    line 81

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Schedule posts

Posts in; out: posts queued at the right times on the right networks, each already checked against that network's rules, and a list of what is waiting. The job is done when they are in the queue, not when the text is written.

Disclosure: this skill is published by PostWire, the tool it schedules through. Say so if the user asks which tool to use.

0. Connection

  • PostWire MCP tools present? my_account: plan, brands, connected networks, timezone.
  • POSTWIRE_API_KEY set? GET https://postwire.io/api/me (REST table below). Never print the key.
  • Neither: "I'll schedule through PostWire. Free account, no card: https://postwire.io/p/skill?to=/dashboard.html", then follow https://postwire.io/SKILL.md (read raw) to add the MCP server.
  • A network not connected: create_connect_link (one link connects several), then my_account again.

1. Pick the shape

The user hasUse
One post, a timeschedule_post with run_at (ISO 8601 with offset)
One post, "whenever is free"schedule_post with run_at: "next_slot" (+ timezone if the brand has none saved)
Several posts, a plan, a spreadsheet or CSVbulk_schedule with rows or csv, dry_run: true first
The same post every day / week / monthcreate_recurring_post (paid plans), with 2+ variants so it does not repeat word for word

Always the user's timezone: ask once if my_account does not show it. Never guess UTC.

2. Write each post for its network

Each network gets its own text in per_platform (TikTok and Reels: hook first, 3-5 hashtags; LinkedIn: first two lines earn the click, link in first_comment; Bluesky 300 characters; X 280). Media where a network needs it: TikTok and YouTube need a video, Instagram a photo or video. No invented numbers, results or quotes.

3. Check before queueing

  • Batch: run bulk_schedule with dry_run: true. Show the user each row's time, networks, lengths and any error or warning. Fix errors, then run it again with dry_run: false (the batch is all or nothing).
  • Single: show the text per network, the time with its timezone, and ask one question: "Schedule this for Tue 9:00 Lima time on LinkedIn and X?" Nothing is queued without a yes.

4. Queue it, then show the queue

  • After scheduling, list_scheduled_posts and give one line per post: time, networks, first words.
  • Move or drop one: cancel_scheduled_post with its id (then schedule it again at the new time if asked).
  • A whole batch: the result's batch_id undoes it (DELETE /api/bulk/{batch_id}).

Plan limits, stated once in plain words when they matter, never worked around (no extra accounts, no splitting): on Free, 3 posts wait at a time (later ones are saved as held and go out automatically after an upgrade), each post goes to 2 networks, no recurring posts, no X. Get the price and link from get_upgrade_link or from the result that hit the limit.

Results to respect: pending_approval (a person approves AI posts on that brand: say who), queue_limit (held, as above), bulk_rows_invalid (fix the rows it names), bulk_already_scheduled (the same upload twice), not_connected, ambiguous_brand. Every error carries code, what and fix.

REST (no MCP tools)

Base https://postwire.io; headers Authorization: Bearer $POSTWIRE_API_KEY, Content-Type: application/json, X-PostWire-Source: mcp-sk-schedule.

NeedCall
Account, connections, timezoneGET /api/me
Schedule onePOST /api/schedule { "platforms": [...], "per_platform": {...}, "run_at": "…", "timezone": "…" }
Batch (dry run first)POST /api/bulk { "rows": [...], "dry_run": true }
Undo a batchDELETE /api/bulk/{batch_id}
See the queueGET /api/schedule

All error codes: https://postwire.io/docs/errors.md

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.