How to Run a Content Calendar With Grok Bot logoGrok Bot: It Queues Your Posts, You Press Post

75 min, plus two supervised weeks

Before this: How to Build a Grok Bot That Turns Your Blog or Videos Into a Week of Social Posts
Next: How to Build an AI Team With Grok Bot: a Chief of Staff and 3 Specialist Bots

A month of posts planned in one Google Sheet. The Bot drafts each post, tracks what's approved, and at post time pings you with the final text, image and a link to the platform. You press Post.

Checked October 17, 2026. Researched and drafted with help from Grok Bot logoGrok Bot, one of the agents covered.

Why build this

In I4 you turned one piece of content into a batch of social post drafts. That's the writing. The hard part is everything around it: deciding what goes out when, keeping track of what's approved, and remembering to actually post.

This build turns a Google Sheet into your content calendar. The Bot fills it with a month of ideas, drafts each post, and moves each one from Idea → Draft → Approved → Posted. At post time it hands you a ready-to-go post. You publish it yourself.

Why it's Advanced: it runs for weeks, keeps state in a Sheet, juggles several platforms and a calendar, and touches public posts under your name. A wrong post is public and permanent. That's why the Bot queues and you press Post.

What you'll build

ONCE A MONTH (you + Bot)
  Plan: themes, dates, platforms -> rows in the "Content" Sheet (Status: Idea)

EVERY MONDAY 9:00 AM (routine)
  Draft this week's posts from Idea rows -> Status: Draft
  Ping you: "5 drafts ready for review"

YOU (any time)
  Review in chat or in the Sheet -> "approve C-012, C-013" -> Status: Approved

AT EACH POST TIME (routine)
  Ping you: final text + image link + platform link
YOU
  Open the platform -> paste -> press Post -> reply "posted C-012"
  Bot sets Status: Posted, adds the date and link

Who it's for

  • Small-business owners posting on 2–4 platforms.
  • Creators who batch content but forget to post.
  • Marketing teams of one.
  • You've built I4: Social posts from your content and you like the drafts it writes.

What you'll need

  • Grok Bot logoGrok Bot on The X Subscription Premium ($30/month) or higher, or a paid Cursor plan, or a linked older SuperGrok subscription. Grok Bot logoGrok Bot isn't included in the Free or Plus plans. (Plans checked Oct 17, 2026.)
  • Your Social Drafts Bot and its skill from I4.
  • Google Sheets and Google Drive plugins.
  • Your platforms (for example LinkedIn, Instagram, Facebook, TikTok, Threads, Bluesky) and how often you want to post on each.
  • Optional: Slack, if someone else approves posts.

What you'll get

  • The Content Sheet layout, with status columns.
  • A monthly planning prompt.
  • The Monday drafting routine and the post-time ping routine.
  • How to approve in one line.
  • An optional "open the composer" helper, where the Bot pastes the post and stops before Post.
  • Platform notes: lengths, image sizes and what to check.
  • Troubleshooting and 3 variations.

Time

About 75 minutes, then two supervised weeks.

At a glance

ItemDetails
AppsGoogle Sheets (queue) · Google Drive (images) · Slack (optional) · your social platforms (you post)
PlanGrok Bot logoGrok Bot on Premium ($30/mo) or higher
Risk levelMedium: public posts under your name. Mitigated: the Bot never presses Post
PrerequisiteI4: Social posts from your content

Quick questions

Will it post for me? No. It queues, drafts and reminds. At post time it gives you the final post and a link. You press Post.

Why not let it post automatically? Posts are public and permanent, and they're under your name. Some sites also block cloud computers. And Grok Bot logoGrok Bot's help pages don't document any plugin that posts to social platforms, so this guide doesn't rely on posting.

Can it make the images? It can draft image ideas and alt text. Make images with Grok logoGrok Imagine, Gemini logoGemini or your design tool, then drop them in a Drive folder. The Bot links them in the Sheet.

Do I need a paid scheduling tool? No. If you already use one, see the "scheduler" variation: the Bot makes a file in your scheduler's import format, and you upload it.

Can my team approve posts? Yes. Use the Slack variation, or share the Sheet and have them set Status to Approved.

Before you start: 10-minute safety setup

  1. Ask first rules. Open Settings → General → Auto-review and make sure these exist:
    • Ask first before posting, publishing, or submitting anything on any website or social platform.
    • Ask first before deleting rows or clearing cells in Google Sheets.
    • Ask first before posting any Slack message.
  2. Allow once only for anything public.
  3. Local computer off. Settings → General → Bot → Execution on Local Computer → Never allow.
  4. Time zone. Settings → General → Bot → Timezone. Post times depend on it.
  5. Notifications on for this Bot, so post-time pings reach your phone.

Step 1: Make the Content Sheet

Create a Google Sheet named Content Calendar with a tab Content and these columns:

ColumnNameExample
AIDC-012
BPost date2026-11-04
CPost time11:30
DPlatformLinkedIn
EThemeCustomer story
FStatusIdea / Draft / Approved / Posted / Skipped
GDraft text(Bot fills)
HImage linkDrive link
IAlt text(Bot fills)
JPosted link(you or Bot fills after posting)
KNotes"Mention the Nov sale"

Make a Drive folder Content Images and name images by ID (C-012.png).

Step 2: Set up the Bot

Open your Social Drafts Bot (from I4), or make a new one called Content Desk. Add to the description:

Job: Run my content calendar in the Google Sheet "Content Calendar", tab "Content".

Voice: [paste your voice notes from I4]
Platforms and rhythm: [LinkedIn Tue/Thu 11:30; Instagram Mon/Wed/Fri 18:00; Facebook Wed 12:00]

Standing rules:
- Never post, publish or submit anything on any platform. I press Post.
- You may add rows and fill Draft text, Alt text and Status. Never delete rows or change rows marked Posted.
- Status only moves forward: Idea -> Draft -> Approved -> Posted (or Skipped). Only I move a post to Approved.
- Before every post-time ping, re-read the row. If it isn't Approved, don't ping; tell me it's waiting.
- Follow each platform's length limit. Mark anything time-sensitive (sales, dates) in Notes and re-check it before the ping.
- Never invent facts, prices, quotes or customer names. Use [CHECK] if unsure.

Step 3: Connect the apps

Connect apps → check Google Sheets (read and edit cells) and Google Drive (search and read) are installed and signed in. Add Slack if a teammate approves posts.

Step 4: Plan the month (by hand, once a month)

Plan next month's content in the Content sheet.
Inputs: my platforms and rhythm, these themes [list], these dates [launches, holidays, sales], and these source pieces [links to blog posts, videos, newsletters].
Add one row per post with ID, date, time, platform, theme, Notes. Status: Idea.
Spread themes evenly. No two posts on the same platform with the same theme in one week.
Show me the plan as a table before adding rows.

Check the table. Say add them. Sheets edits are allowed (adding rows isn't deleting), but your Ask first rule still protects clearing and deleting.

Step 5: The Monday drafting routine

First test by hand:

For every Idea row with a post date in the next 7 days:
- write the draft in my voice for that platform (use my I4 skill)
- add alt text if there's an image link
- set Status to Draft
Then list them here: ID, platform, date, time, the draft.

Then save and schedule:

Save a skill called "Draft this week's posts" from what you just did.
Every Monday at 9:00 AM my time, run it and notify me: "[N] drafts ready for review."
If there are no Idea rows for the week, say so.

Step 6: Approve in one line

When drafts are ready, in chat:

approve C-012, C-013, C-015. C-014: make it shorter and drop the hashtag. Skip C-016.

The Bot sets Status to Approved or Skipped, redrafts C-014 and shows it again.

Step 7: The post-time ping

Create a routine that runs every 30 minutes, weekdays and weekends, 7:00 AM to 9:00 PM my time.
On each run: find rows with Status Approved whose post date and time are within the next 30 minutes.
For each one, post here and notify me:
"Time to post C-012 on LinkedIn (11:30):
[final text]
Image: [Drive link] | Alt text: [alt text]
Open: [platform's post page link]
Reply 'posted C-012 [link]' when it's live."
Never post anything yourself. If nothing is due, don't post a message.

When you reply posted C-012 https://…, the Bot sets Status to Posted and fills Posted link.

Usage tip: every run spends usage, even when nothing is due. If your rhythm is fixed, use exact times instead: Every Tuesday and Thursday at 11:25 AM (keep routines at least 5 minutes apart). Check Settings → Usage & Billing after the first week.

Optional: the "open the composer" helper

Some people want one less step. The Bot can open the platform in its own cloud browser, paste the post and stop.

  1. In chat: Open LinkedIn in your browser so I can sign in. Then use Take over to sign in yourself. The Bot never sees your password.
  2. At post time: Open LinkedIn's post composer, paste C-012's text and attach the image. Stop before Post and show me a screenshot.
  3. Check the screenshot. Then take over and press Post yourself.

Know the risks:

  • Some sites block cloud computers. If a platform blocks it, skip this helper.
  • A signed-in browser on the Bot's computer is shared by all your Bots. Sign out when you're done, or keep this helper to one Bot.
  • Your Ask first rule for posting stays on. Never choose Always allow for posting.

Your supervised two weeks

  • No post went live without you.
  • Statuses moved forward only; no Posted row changed.
  • Pings arrived on time, in your time zone.
  • Each draft fit its platform (length, links, hashtags).
  • Dates and prices in posts were still true at post time.

Make it yours: 3 variations

Already use a scheduler (Buffer, Later, Hootsuite, Meta Business Suite):

Each Monday, export Approved rows for next week as a CSV in the format my scheduler imports: [paste its column names]. Save it in /workspace/content/ and send me the file.

You upload the CSV yourself. Each scheduler's import format changes; check its help page.

Team approval in Slack:

After drafting, prepare a Slack message for #content with each draft and its ID. Show it to me first; I'll approve the post.

Teammates reply "approve C-012", and you pass that to the Bot.

Repurpose engine: add a column "Source link". Monthly: For each new blog post or video this month, add 4 Idea rows (one per platform) linked to it.

Safety settings recap

SettingWhereChoose
Ask first: posting anywhereSettings → General → Auto-reviewAsk first before posting, publishing, or submitting anything on any website or social platform.
Ask first: Sheet deletesSettings → General → Auto-reviewAsk first before deleting rows or clearing cells in Google Sheets.
Ask first: SlackSettings → General → Auto-reviewAsk first before posting any Slack message.
LoginsTake overYou type passwords; sign out after
Local computerSettings → General → BotNever allow

Troubleshooting

ProblemLikely causeFix
Ping for a post you didn't approveStatus rule ignoredOnly ping for rows where Status is exactly "Approved".
Pings at the wrong timeTime zoneCheck Settings → General → Bot → Timezone; times in the Sheet are in that zone
Usage drops fast30-minute checks all dayUse exact post times instead
Composer helper blockedSite blocks cloud computersSkip the helper; post from your phone
Drafts too long for a platformMissing limitAdd each platform's limit to the description
Posted rows changedLoose edit ruleAdd: Never edit any column on a Posted row.

Same job in other agents

Gemini Spark logoGemini Spark (now "Task" in Gemini logoGemini): can work in Google Sheets and Docs and run weekly schedules, so the Sheet queue and Monday drafts work. Gaps: Google AI Pro or Ultra; personal Google account; not in the EEA, UK, Switzerland or Nigeria. Posting to social platforms is not verified.

Dots logoDots (OpenAI): OpenAI's examples include drafting social posts. Set custom rules to Ask before taking action. Gaps: ChatGPT logoChatGPT Pro or Business Premium; posting to social platforms is not verified.

Muse logoMuse (Meta): a natural fit for Instagram and Facebook drafts. Gaps: reported US and Canada only; direct posting from Muse is not verified.

Hermes logoHermes Agent: xlsx skill for the queue; can message you at post time. Gaps: command-line setup; runs only while its computer is on.

Next step

Make this Bot your team's content specialist: Grok Bot logoA3: Build an AI Team With Grok Bot.

Get the free safety checklist

7 rules for letting an agent act for you, plus a note when prices or features change. We re-check every month. Read the 7 rules.

No spam. Unsubscribe anytime.