Spreadsheet in. A scheduled month out.
Plan the month in a spreadsheet. Drop the CSV in. FoPost validates every row, shows you a preview, queues the whole month at once. Rollback if anything looks wrong, before a single post ships.
Drop the CSV. See every row. Queue or fix.
Real shape of the bulk import: the file you uploaded, the validation summary, the row-by-row preview. Catch the over-length caption before it ships, not at 9am on Tuesday.
Solo founder tip: stop launching on Tuesday. Talk to 5 customers this week.
5 reasons your Tuesday launch is dead on arrival, a thread.
Most launches die on Tuesday because the people who would have shared them are still catching up on their inbox. Here is what to do instead, with 5 concrete examples from last quarter.
Solo founder workflow that ships 5 posts a week without Sunday batching.
What worked last week: top 3 posts across every platform.
Your batch-on-Sunday plan died in the scheduler, not in the spreadsheet.
You drafted 30 posts in a Notion table on Sunday. Then you opened the scheduler. Same form, 30 times. You gave up at post 12.
You scheduled 8 of the 30 posts manually. The other 22 sit in Notion until "later this week" turns into "never." Your weekly cadence is back to 2 posts.
The two posts you did schedule both landed Tuesday at 9am because you weren't tracking which slots you'd filled. Your feed shipped a doubled-up tweet.
Is bulk scheduling for you?
For you if
- You batch content (Sunday afternoon, end-of-month, before a launch) and the scheduling is the slow part
- You plan posts in a spreadsheet, Notion table, or Airtable already, and just want them shipped
- You run multiple campaigns and want to queue 30+ posts in one sitting without 30+ clicks
- You're an agency or freelancer handing a month of content to a client and need a preview before anything queues
Not for you if
- You post one at a time as ideas hit you. The composer is the right tool for that.
- You're a real-time live-poster (events, breaking news). Bulk import is for planned content.
- You need thousands of posts queued in one pass. A file caps at 500 rows, which is a month of daily posting across five accounts. Split a bigger plan across files, or use the API.
Built for the Sunday batch that actually ships.
A spreadsheet is how you plan. A queue is how you publish. The bulk import is the bridge, with the validation step that catches the bad rows before they leave your laptop.
Drop the spreadsheet, done
CSV or TSV, up to 2 MB and 500 rows a file, in any column order. Drag it in and the importer reads the header, maps the columns, and validates every row in about 3 seconds.
Validation before anything queues
Pre-flight catches over-limit captions for each destination, dates in the past or in the wrong format, account and label names that do not resolve, and media the platform will refuse. You see what's wrong row by row, not after 3 posts fail to publish at 9am.
Per-platform captions from the sheet
Add a caption_twitter or caption_linkedin column and that platform gets its own wording for the row. Leave the cell empty and it falls back to the shared content column. No manual edit after upload.
Rollback before posts ship
Uploaded the wrong file? Caught a typo across 30 rows after you queued? Rollback the whole batch in one click. The queue empties, nothing ships, your sanity is intact.
Labels and accounts by name
Name the accounts and labels you want per row and the importer resolves them against the workspace. A typo in an account name is a flagged row, not a post that quietly went nowhere.
Per-workspace import
Drop the CSV into the workspace it belongs to. Client A's content never leaks into client B's queue. Agencies, you have an isolated upload pipeline per workspace.
Plan. Upload. Approve. Ship.
Plan in a spreadsheet
Content, schedule time, accounts, optional labels, an optional media URL, and a caption column per platform if you want one. Notion, Airtable, Google Sheets, Excel, anything that exports CSV or TSV.
Drop the file
Drag the CSV or TSV into the importer. It reads the header, maps the columns, and runs validation on every row in seconds.
Approve the preview
Scan the row-by-row preview. Edit warning rows inline, swap a date, drop a platform. Approve when it looks right.
Queue the batch
One click queues every approved row across every selected platform. The calendar fills up, the queue starts ticking, you close your laptop.
Why this beats clicking 30 times.
Three ways solo founders try to schedule a month at once. Only one of them is actually a drop-the-spreadsheet flow.
Manual scheduling, one post at a time
What most founders do today
- Same form, 30 times. 90 seconds per post at best, so 45 minutes minimum.
- No batch preview. You discover the over-limit caption at post 18.
- No rollback. A typo in your draft ships to 30 followers' feeds.
- You give up halfway. Half the batch never queues.
Zapier from Sheets to your scheduler
What technical founders rig up
- $20 to $50 a month for Zapier on top of your scheduler.
- Breaks the first time a column name changes.
- No validation. Bad rows ship as bad posts.
- No batch preview, no rollback, no per-row platform overrides.
FoPost bulk scheduling
What you actually want
- Drop the CSV. Validation runs in 3 seconds.
- A caption column per platform, straight from the spreadsheet.
- Whole-batch rollback in one click, before anything ships.
- Included in your plan. No extra subscription.
Publishes to all major networks
Frequently asked questions
How big can the CSV be?
What format does the CSV need?
Can I include images and videos?
Does it work for Instagram and TikTok?
What happens if a row has an error?
Can I roll back a batch after it queues?
Can I set up recurring posts from the CSV?
Does it work with Google Sheets directly?
Ready to try bulk scheduling?
7-day free trial. 30 platforms. Unlimited posts on every plan.