Blog

Schedule posts from a ChatGPT chat

By Jamie Barton

Four prompt pills with ChatGPT's logo: Check my channels, Write the post, Make the image and Schedule for tomorrow

ChatGPT is good at drafting posts. Getting one out the door usually means copying it into a scheduler, downloading and re-uploading the image, and picking a time.

Connect ChatGPT to Orbitwrite's MCP server and it does that last part from the same chat. It sees the channels your workspace has connected, reads your posting schedule and brand voice, attaches images, and puts posts on your calendar, where your team sees them next to everything else you've planned.

The example here is a small one. A bakery called Crumb & Co is launching an autumn loaf, and the announcement goes out tomorrow on Instagram in the morning and LinkedIn at lunchtime. Every prompt below has a Copy button, and the ones that start a conversation open straight in ChatGPT.

What you need

  • An Orbitwrite workspace with at least two connected channels. The example uses Instagram and LinkedIn.
  • ChatGPT on the web, on a Plus, Pro, Business, Enterprise or Education plan. In a Business, Enterprise or Education workspace, an admin decides who can add apps.

MCP (Model Context Protocol) is the standard way for an AI assistant to call tools in another app. Orbitwrite's server lives at https://mcp.orbitwrite.com/mcp, and Claude connects to the same one.

Connect ChatGPT to Orbitwrite

In ChatGPT on the web, open Settings, then Security and login, and turn on developer mode. Then create an app from Plugins and paste the Orbitwrite URL:

https://mcp.orbitwrite.com/mcp

ChatGPT sends you to Orbitwrite to sign in. If you belong to several workspaces, pick the one ChatGPT should post to, then check what it's asking for and press Allow. There's no API key to create or paste anywhere.

ChatGPT works under your role in that workspace and gets only what you approved, so if your posts need sign-off before they publish, a post ChatGPT writes for you waits for an approver too. The logins behind your channels stay with Orbitwrite, and API keys, billing and your team sit outside what ChatGPT can reach. To cut it off, open Settings, then MCP, and remove it under Connected apps. Access ends straight away.

Start a new chat and check the connection:

Which Orbitwrite workspace am I in, and which channels are connected?

Open in ChatGPT

ChatGPT calls whoami and list_channels, and lists every channel the workspace has connected. Mine came back with nine:

ChatGPT answering with the workspace id and a table of nine connected channels across X, Threads, Facebook, TikTok, LinkedIn, Slack, YouTube and Telegram

That list is what ChatGPT picks from when you say "LinkedIn" or "our Facebook Page".

Write the post

If your workspace has a brand voice set up in Orbitwrite, start there. ChatGPT reads it with read_brand_voice, so the draft follows the tone and rules your team has already written down.

Read our brand voice in Orbitwrite, then write the announcement for our new pumpkin and brown butter loaf. It's £6 and we're only baking it on Saturdays until the end of October. I want a short Instagram caption and a slightly longer LinkedIn post. No hashtags.

Open in ChatGPT

Here's the kind of thing you get back for Instagram:

Pumpkin and brown butter loaf, out tomorrow. Soft crumb, toasted pecans on top, and the whole shop smells like October while it bakes. £6 a loaf, Saturdays only until the end of the month.

From here it's a normal chat. Ask for a shorter caption, a different first line, or a LinkedIn version that talks more about the bakers. Orbitwrite only gets involved once you ask ChatGPT to attach, save or schedule something.

Make the image

Instagram posts carry an image or video, so this one gets a picture.

Make a square photo of the loaf on a wooden board, a couple of slices cut, with soft window light.

Here's that prompt in my own test chat. I skipped the caption there and sent the photo on its own to a Facebook Page, and ChatGPT uploaded it and scheduled it for 3pm the next day:

ChatGPT generating a photo of a sliced loaf on a wooden board, then scheduling it to a Facebook Page for 3pm BST the next day and replying with the post id

Back in the bakery chat, once you're happy with the picture:

Attach that image to both posts.

The upload goes to your workspace's media library through upload_media, and ChatGPT keeps the id to attach when it creates the posts. The image shows up under Media in Orbitwrite, so you can reuse it later.

Schedule it for tomorrow

Schedule both in Orbitwrite for tomorrow. Instagram at 8am, LinkedIn at 12:30pm.

ChatGPT sends both channels in one create_post call, each with its own time. Each channel also has its own copy, so Orbitwrite files them as two separate posts on the calendar, one at 8:00 and one at 12:30, both carrying the loaf photo.

Times need a timezone. In my test, ChatGPT read "3pm" as BST, which is the workspace's zone. If your team works across zones, name the one you mean.

Open the calendar in Orbitwrite and both posts are there for tomorrow. They're ordinary posts, so you can open one in the composer and change a word, swap the image or move it by dragging.

More things to ask

Once Orbitwrite is connected, most scheduling jobs are one sentence. A few that work well:

  • "Put this in the next free slot on each channel." ChatGPT asks suggest_post_times for the slots in your posting schedule that are still free.
  • "Post this on LinkedIn and Bluesky tomorrow, an hour apart, starting at 9am."
  • "Queue these five posts after everything already scheduled, one a day."
  • "Save it as a draft. I'll finish it in Orbitwrite."
  • "What's going out tomorrow?"
  • "Move the LinkedIn post to Thursday at 10am."
  • "Send the Instagram post to Sam for approval before it goes out."

Each of these ends up as a post in Orbitwrite, where your team sees it, reviews it and publishes it the same way as everything else on the calendar.

Use Orbitwrite from other agents

Claude connects the same way: add a custom connector under Settings, Connectors, paste the same URL and sign in. Cursor, VS Code, Codex and other clients that send a header connect with an API key, and Settings, MCP in Orbitwrite has a ready-made snippet for each of them, with the key filled in once you create one.

Coding agents can also install the Orbitwrite agent skill. A skill is a set of instructions an agent loads when a task calls for it, and this one explains how a workspace fits together: channels, posts that go to several networks at once, the media upload steps, approvals and the inbox. It also carries references for every tool, API route and platform limit, so the agent can look up Instagram's caption length when it needs it.

npx skills add orbitwrite/skills

That covers Codex, Copilot, OpenCode, Windsurf and other agents that read skills. In Claude Code, the plugin installs the skill and connects the MCP server in one go, reading your key from the ORBITWRITE_API_KEY environment variable:

/plugin marketplace add orbitwrite/skills
/plugin install orbitwrite@orbitwrite

The skill's source is on GitHub at orbitwrite/skills.

To try it, add https://mcp.orbitwrite.com/mcp as an app in ChatGPT, sign in to Orbitwrite, and ask which channels you've got.

More from the blog