Bulk schedule CSV checker before you upload

Schedulers reject a bulk upload over one wrong date, or quietly skip the rows they dislike. Check the file first: dates, captions, image links and each scheduler's own rules, row by row. Runs in your browser; your file never leaves your device.

Check captions for

How to check a bulk upload CSV

  1. 1

    Pick the scheduler you are uploading to

    Its own bulk-upload rules are applied on top of the general checks. Choose "Another scheduler" for anything not listed.

  2. 2

    Tick the networks the posts go to

    Every caption is measured against each network's character limit, with the exact number of characters to cut.

  3. 3

    Drop in the CSV, or paste it

    It is read in your browser and never uploaded.

  4. 4

    Fix what it lists, by row

    Row numbers match your spreadsheet, header included, so each problem is one click away.

  5. 5

    Upload to your scheduler

    With nothing left for it to reject, or to drop without telling you.

What each scheduler's bulk upload requires

Taken from each scheduler's own help pages, linked below. These are the same rules the checker applies. Hootsuite is not listed because its help centre now needs a login, and Meta publishes no CSV rules for Business Suite.

SchedulerDate formatMost posts per fileTiming rules
BufferYYYY-MM-DD HH:mm in 24-hour time, zero-padded100 (10 on the free plan)None stated
PublerYYYY/MM/DD HH:MM preferred; phrases also read500None stated
SocialBeeyyyy-mm-ddThh:mm:ssZ, exactly, in 24-hour time300past dates fail
Sprout Socialdd/mm/yyyy or mm/dd/yyyy, plus a 24-hour time column35010 min after upload, 10 min apart, rows in date order, past dates fail
LoomlyNot published; the template is only in the app6030 min after upload, 30 min apart, past dates fail
MetricoolOne format throughout, chosen when importingNo limit; 50 recommendedNone stated

The mistake nobody warns you about: 03/04

Is 03/04/2026 the 3rd of April or the 4th of March? When every date in a file has a first number of 12 or less, it could be either, and a scheduler that accepts both orders picks one without asking. The posts go out a month early or late, and nothing reports an error. The checker reads the whole column: one date like 25/04 settles it, and when nothing does, it says so and shows both readings. Writing dates year first, 2026-04-03, removes the doubt entirely.

Failures that happen silently

Buffer skips rows past its per-upload limit without an error, and says a time that is not zero-padded can fail to schedule with no error. Metricool can publish the word FALSE as text when a network column is filled in wrong. A test batch only catches what the scheduler chooses to report; these are exactly the ones it does not.

Image links that open a page, not an image

Every scheduler here wants a public link that returns the file itself. A Google Drive or Dropbox sharing link opens a viewer page instead, and fails. The checker flags those by their shape. It never opens your links, so it cannot tell whether one is still online.

Tired of collecting image links?

PlanBatch takes a spreadsheet of headlines and captions and renders a branded image for every row from your template, then schedules the lot. No image column, no hosting, no sharing links to get wrong.

A month of posts from one spreadsheet

Templates, brand kits, a calendar, and automatic publishing, with the images made for you.

Common questions

Why does my scheduler reject my bulk upload CSV?

Usually one of four things: a date in a format it does not read, a time already in the past or too soon, a column name that differs from its template (several match names exactly, capitals included), or an image link that opens a web page rather than the image. The checker lists each by row.

What date format should a bulk upload CSV use?

The one your scheduler asks for, and it varies: Buffer wants YYYY-MM-DD HH:mm, zero-padded; SocialBee wants yyyy-mm-ddThh:mm:ssZ exactly; Sprout Social takes dd/mm/yyyy or mm/dd/yyyy chosen at import, with a separate 24-hour time. Year-first dates avoid any day-or-month confusion.

Which schedulers does it know the rules for?

Buffer, Publer, SocialBee, Sprout Social, Loomly and Metricool, each from its own help pages and linked on this page. Hootsuite is left out because its help centre now needs a login, so its current rules cannot be checked. Any other scheduler gets the general checks.

Does it check that my image links work?

It checks their shape: a real web address, and not a Google Drive or Dropbox sharing page, a Facebook-hosted image or a link to an HTML page. It never opens the links, so a link that points to a deleted file will still pass.

What time zone are the dates checked in?

Your browser's. Most schedulers do not say which time zone they read a CSV in; Sprout Social and Loomly use the one in your account or calendar settings, so check that it matches.

Is my file uploaded anywhere?

No. The file is read and checked in your browser. Nothing is sent to a server, and nothing is stored.