Substack logo

Substack automation · runs weekly

Schedule Substack posts from Markdown drafts

The essay is finished in Obsidian, iA Writer or a repo as a .md file, and Tuesday morning is send day. Moving it into Substack means rebuilding headings, links and images in the editor, then clicking through the publish settings again.

Cotlet does it in your own Substack account with list_posts, create_draft, schedule_post and publish_note, called by your AI agent, an n8n workflow or a script.

Hosted · nothing to install or maintain

Official options

Can Substack do this on its own?

Substack has no public API to create drafts, schedule posts or post Notes (checked 12 Oct 2026). Scheduling exists in the web editor only, not in the Substack app, and the editor has no Markdown import, so a .md file cannot reach a Substack draft without manual reformatting.

By hand

How you do it in Substack today

  1. In the Substack publisher dashboard, click Create and select Article, then paste the text into the editor.
  2. Substack says its post editor does not support Markdown, so headings, bold text, links and lists written in Markdown have to be redone with the editor toolbar, and images uploaded again.
  3. Click Continue, choose the audience, who can comment and whether to send via email and the Substack app inbox, then check "Schedule time to email and publish" and pick a date and time.
  4. To promote the post, open Create > Note after it goes live, or schedule the Note with the calendar icon in the Notes composer.
  5. The formatting pass repeats for every issue, and a wrong time zone or a missed audience setting only shows up once subscribers already have the email.

With an agent

How to schedule Substack posts from Markdown drafts

Prompt

Turn essay.md into a Substack draft for everyone, schedule it for Tuesday 8:00 New York time, and schedule a Note with a link card to it for 12:00 the same day.
  1. 01

    Read the file and keep its structure

    The agent takes the first heading as the title and an optional subtitle line, and sends the rest as Markdown to create_draft. Local image paths cannot be used, so it asks for hosted image URLs or leaves a placeholder and names it in the report.

  2. 02

    Check the calendar before picking the slot

    list_posts with status scheduled shows what is already queued. When another issue is set for the same day, the agent stops and asks instead of stacking two emails on one morning.

  3. 03

    Pin the time zone

    The Substack web form uses the time zone of your device clock. The agent always sends an explicit offset, refuses a time in the past, and refuses a date more than three months out, the furthest Substack lets a post be scheduled.

  4. 04

    Warn about length before sending

    A very long issue with many images can be clipped by Gmail. The agent flags a draft that looks close to that size, so you can split it or trim images before the send is locked in.

  5. 05

    Schedule the email, then the Note

    schedule_post waits for your OK and returns the edit link, so you can open the draft in Substack first. The Note goes out with publish_at a few hours after the post, so the link card points to a post readers can already open.

What you get back

Example data

Draft created: "Why we stopped shipping on Fridays" (post 148420031), audience everyone
2 images placed from URLs, 1 placeholder left: diagram.png has no hosted URL
No other post scheduled on Tue 14 Oct
Scheduled: Tue 14 Oct 2026, 08:00 America/New_York, web + email
Note scheduled: Tue 14 Oct, 12:00, link card to the post
Edit link: https://yourname.substack.com/publish/post/148420031

Other ways to ask

  • Take every .md file in /drafts/october and schedule one per Tuesday at 7:00 London time, paid subscribers only.
  • Create the draft from notes.md but do not schedule it. I will finish it in the editor.
  • Publish chapter-3.md on the web only on Friday, without emailing anyone.
  • For every post I published this week, schedule a Note with a short quote and a link card for the next morning.

Before you automate it

What Substack allows, and what to know first

  • Substack lets a post be scheduled at most three months ahead, and only from the web editor; the Substack app cannot schedule articles, podcasts or video posts.
  • Substack emails a post only once. Edits made after the send show on the web and in the Substack app, and the email cannot be sent again.
  • Gmail clips emails larger than about 102KB, and the Substack editor counts links, images and the text your publication adds to the top or bottom of every email toward that size. Posts over 1,000,000 characters cannot be saved at all.
  • Substack Notes are not emailed to subscribers; they may surface in a notes roundup digest or a push notification instead.

schedule_post and publish_note ask for your OK by default. To run it weekly without you, switch confirmation off for those tools in your dashboard.

Sources: Substack: Do you support Markdown? · Substack: How do I publish a new post on Substack? · Substack: How do I schedule an article to publish for a future date? · Substack: Why does it say "Your post may be truncated"? · Substack: Getting started on Substack Notes · Substack: Guide to your Substack Posts page

REST

Call schedule_post from a script

curl

curl https://cotlet.dev/api/v1/substack/schedule_post \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"post_id":"148420031","publish_at":"2026-10-14T08:00:00-04:00","send_email":true}'

Example response

{
  "post_id": "148420031",
  "status": "scheduled",
  "publish_at": "2026-10-13T08:00:00-04:00",
  "audience": "everyone",
  "url": "https://yourname.substack.com/p/notes-on-pricing"
}

MCP: add https://cotlet.dev/mcp/v1 with the same key; the tool is substack_schedule_post. Example data.

Schedule it in n8n, Make, Zapier or cron

Tools

Substack tools this automation uses

Cotlet Substack tools used to schedule Substack posts from Markdown drafts
Tool Parameters
list_posts status, limit, cursor
create_draft title, body_markdown, subtitle, audience
schedule_post post_id, publish_at, send_email
publish_note body, link_post_id, publish_at
All 14 Substack tools with descriptions

Frequently asked questions

Can I change the post after it is scheduled?

Yes. Substack keeps scheduled posts in Posts > Scheduled. Choose Edit post there, and click the date and time above the editor toolbar to change or remove the schedule.

Give your agent access to Substack.

Free 7-day trial with 5,000 credits, no card needed. Cotlet is independent and not affiliated with Substack.