Bulk Upload Posts via CSV
Import and schedule many posts at once from a CSV file
What Bulk Upload Does
Bulk Upload lets you create and schedule many text posts at once by importing them from a CSV file. It's useful when you've drafted a month's worth of captions in a spreadsheet and want to load them into SocialCal in one go.
You'll find it in the sidebar under Create → Bulk Upload (/dashboard/create/bulk).
CSV Format
The CSV needs one required column and supports two optional ones:
| Column | Required? | What it does |
|---|---|---|
content | Yes | The text of the post |
platforms | No | Which platforms to post to (overrides the page default) |
schedule_time | No | When to publish (overrides "Generate Schedule") |
Header names are case-insensitive and the parser strips punctuation, so Content, content, and Post Content all work.
Multiple platforms per row
Use a pipe (|) to list more than one platform in a single cell:
``
facebook|bluesky|linkedin
`
Valid platform IDs:
twitter, instagram, facebook, linkedin, youtube, tiktok, threads, bluesky, pinterest.
<h3 id="sample-csv" class="scroll-mt-28 text-lg font-semibold text-gray-900 mt-8 mb-2">Sample CSV</h3>
`
content,platforms,schedule_time
"Launching our spring sale today!","facebook|bluesky","2026-05-15T10:00"
"New blog post is live","linkedin|twitter","2026-05-15T11:00"
`
Click <strong class="font-semibold text-gray-900">Download Template</strong> on the page to get this exact format pre-filled with tomorrow's dates.
<h2 id="uploading-the-file" class="scroll-mt-28 text-2xl font-bold text-gray-900 mt-10 mb-3">Uploading the File</h2>
You can either:
- <strong class="font-semibold text-gray-900">Click the upload area</strong> and pick your CSV
- <strong class="font-semibold text-gray-900">Drag and drop</strong> the CSV onto the upload area
Each row shows up as a card in the <strong class="font-semibold text-gray-900">Posts Preview</strong> panel with the content, platforms, character count, and schedule time. You can:
- <strong class="font-semibold text-gray-900">Edit</strong> any post (pencil icon) — change content, platforms, or time
- <strong class="font-semibold text-gray-900">Remove</strong> any post (trash icon) — drops it from the batch
<h2 id="default-platforms" class="scroll-mt-28 text-2xl font-bold text-gray-900 mt-10 mb-3">Default Platforms</h2>
The <strong class="font-semibold text-gray-900">Default Platforms</strong> panel on the right controls what platforms are used <strong class="font-semibold text-gray-900">only when a row's
platforms cell is empty</strong>. If your CSV specifies platforms per row, this setting is ignored for that row.
<h2 id="generate-schedule-stagger-times" class="scroll-mt-28 text-2xl font-bold text-gray-900 mt-10 mb-3">Generate Schedule (Stagger Times)</h2>
If your CSV doesn't include
schedule_time (or you want to override it), use the <strong class="font-semibold text-gray-900">Scheduling Settings</strong> card:
- Pick a <strong class="font-semibold text-gray-900">Start Time</strong> (datetime)
- Pick an <strong class="font-semibold text-gray-900">Interval</strong> in minutes between 5 and 1,440 (24 hours)
- Click <strong class="font-semibold text-gray-900">Generate Schedule</strong>
Every post gets a time spaced
interval minutes after the previous one. The first post goes at the start time, the second interval` minutes later, and so on.
Schedule All
When every post has a time, click Schedule All in the top-right of the Posts Preview. Each post is submitted to the scheduler in parallel. Cards turn:
- Green with a checkmark if scheduled successfully
- Red with the error message if something went wrong
You can fix red ones in the edit modal and re-run Schedule All — only the ones that still need scheduling will be re-submitted.
Limitations
- Text only. Bulk Upload doesn't accept media in the CSV. For posts that need images or videos, create them in New Post instead — or add media after bulk scheduling by editing each scheduled post.
- Bulk Upload is a paid feature — it requires an active SocialCal subscription (any paid plan or active trial)
- One CSV file at a time — uploading a new CSV replaces the current preview
Tips
- Quote any cell that contains a comma so the parser doesn't split it
- Start with a small CSV (3–5 rows) to confirm your format parses correctly before importing 100 posts
- Combine Bulk Upload with Drafts — schedule the text in bulk, then open each scheduled post to attach media to the ones that need it
Was this article helpful?
Ready to schedule smarter?
Plan, schedule and publish across every platform from one place.
Start Your 7-Day TrialRelated articles
- How to Create a PostLearn how to create and publish posts to multiple platforms
- Templates: Save & Reuse Your Best PostsSave any post once and reuse it any time — caption, platforms, media, and account selection all preserved
- How to Create Facebook Posts with Colored BackgroundsUse Facebook background styles for short text-only feed posts
- How to Post to Multiple PlatformsPost the same content across multiple social networks at once