How to bulk schedule social media posts: up to 200 at once, from files or a CSV
Some weeks you make one post at a time. Others you come back from a shoot with sixty photos, or the whole month is already in a spreadsheet. This is how to bulk schedule social media posts in SPREVA, from a folder of files or a CSV, with every row checked before anything is created.
Rodolfo MotaFounder of SPREVA
The short version
Open Bulk, under Posts, and start a new bulk import. Drop in your photos and videos, one post per file, or import a CSV with a caption, a file name and a time on each line. Choose the accounts for all rows at once, then give each row a time, spread them every few days or hours, or send them all to a queue. Fix any row that is flagged, and create up to 200 posts in one go.
When bulk is the right tool
Bulk is for many posts that share most of their setup:
- A shoot: sixty product photos, one post each, spread over two months.
- A plan in a spreadsheet, written by the team or a client, that only needs to be loaded.
- Evergreen posts: tips, quotes, reminders, one every other day.
- A campaign: the launch week's posts, all to the same accounts.
Three ways in
The first step, Add your content, takes any mix of:
- Files: drop up to 100 photos or videos at a time, or choose them From library. Each file becomes a row, and a post.
- A CSV, with Import CSV. Download the CSV template for the columns.
- Text rows, for posts with words only.
The CSV, column by column
Only the caption is required, and the columns can be in any order:
| Column | What it holds | Example |
|---|---|---|
| caption | The post's text. Required. | Our new roast is here. |
| filename | The name of a file already in your library | roast-01.jpg |
| title | A title, for the networks that use one | Autumn roast |
| link | A link, starting with http or https | https://example.com/roast |
| scheduled_at | The date and time, in the workspace's time zone | 2026-11-03 09:30 |
Files are matched by name to what is already in your library, so upload the photos first and the CSV second. A name that matches nothing gives a row without media and a warning, not a wrong picture.
Step by step
- 1
Go to Bulk under Posts and press New bulk import.
- 2
Add your files, your CSV or text rows.
- 3
Write the captions: on each row, from the CSV, or with a Caption template that adds the same words to every post, such as your hashtags.
- 4
Choose the accounts with Accounts for all, or per row.
- 5
Give the rows their times, as below.
- 6
Fix any row that is flagged, name the import and create it.
Times, spread or a queue
Each row can be saved as a draft, scheduled at its own time, or sent to a queue. For many rows at once:
- Spread dates: every N days at the same time, or every N hours, from the first post you set. The preview shows the first and the last date before you apply it.
- Queue for all: each post takes the queue's next free time, in row order.
- Shuffle order, so similar posts do not land next to each other.
Every row checked first
Before anything is created, every row is checked: a caption or a file, at least one account, a valid date, a link that starts with http or https, a file that each network accepts. A row with a problem says what it is, and you fix it in place. Only the rows that are ready are created; the others wait in the editor.
While the posts are created, keep the page open: each row succeeds or fails on its own, and a failed one can be run again from the import's page. If you leave the editor before creating them, your rows are kept and offered back the next time you open it.
With approval on
In a workspace where posts need approval before they go out, a bulk import sends its posts for review instead of scheduling them, so a client or a manager sees each one first. One post from draft to feed: a client approval workflow, step by step.
Load next month in one sitting
Upload the month's photos, import the plan as a CSV, spread it every other day at your best time, and create it. Bulk is part of every plan, and every plan starts with a 7-day trial.
Questions
How many posts can I bulk schedule at once?
Up to 200 rows per import, on every plan. For more, run a second import.
Can the CSV point to an image by its web address?
No. Upload the files to your library first; the CSV names them, and SPREVA matches them by file name.
Which time zone does the CSV use?
The workspace's. Write the date and time as 2026-11-03 09:30, without a zone.
Can each network get its own text in a bulk import?
Each row has one caption for its accounts. To give a network its own text, open the post afterwards and change it under Per account.
Can a bulk row be a carousel?
No. Each row holds one file. Make a carousel in the editor, where a post can hold several.
Written by
Rodolfo Mota
Founder of SPREVA
Makes SPREVA in Portugal: the Studio, the tools an agent works with, and the publishing behind them.
Keep reading
- How to plan a month of social media in a content calendarHow to plan a month of social media posts in one sitting: a rhythm, campaigns for the fixed dates, themes, and a calendar to see and move it all.
- How to automate social media posting without sounding like a botQueues, bulk scheduling, an API and AI agents: four ways to automate social media posting in SPREVA, and the habits that keep automated posts sounding like you.
- The best time to post is yours: how to find it with your own numbersNo universal best time to post fits your audience. How to test two posting times for four weeks with queues and campaigns, and read the answer in your numbers.