Social Media Content Calendar Generator – From a Posting Plan to Real Dates
Most content plans die in the gap between the idea and the diary. You decide on three Instagram posts a week, LinkedIn on Tuesdays and Thursdays, and a rough split across educational, community and promotional material — then nothing happens, because turning that into a list of actual days is tedious enough to postpone forever. This social media content calendar generator does the tedious part: it places every slot on a real dated calendar, tags it with the pillar it should serve, and leaves you an empty topic field to fill in.
How the schedule is built
Each channel has a weekly quota and a set of eligible days. Rather than dropping posts on the first available days, the generator spreads them across the week: two posts over five eligible days land near the start and the middle, not back to back. Past one post per eligible day the surplus cycles through the list again, so a high-volume channel doubles up evenly instead of stacking four posts on Monday. Partial weeks at either end of the window get a proportional share — round(posts × daysAvailable ÷ 7) — so starting mid-week does not silently inflate your first week.
Blocked dates cover holidays, launch days and time off. A post landing on one moves to the next eligible day in the same week, preferring a day that channel is not already using, and never spills into the following week — that would quietly change your cadence. When a week has nowhere left to put it, the post is dropped and listed by date and channel, so nothing disappears without a trace.
Content pillars and the integer problem
Pillars are the recurring jobs your content does — teaching something, answering your community, showing the work, selling. Weights are normalised, so they need not total 100; enter 3 / 2 / 1 or 40 / 30 / 20 / 10 and the generator divides posts to match.
Posts, though, are whole things: a 40% target across 29 slots is 11.6 posts, and there is no honest way to publish the 0.6. The tool allocates by largest remainder, so the pillar counts sum to exactly the number of slots — no phantom extra post, none quietly dropped — then shows target and achieved side by side. That gap is real and shrinks as plans get longer; hiding it would only make the numbers look tidier than they are.
Reproducible, because a plan you cannot get back is not a plan
Sequencing pillars so the same one rarely lands twice in a row needs a tie-break, and a tie-break needs randomness — but the browser’s random source would hand you a different calendar every time you touched the page. This tool uses a small seeded generatorinstead: same inputs plus same seed always rebuild the same calendar. Your configuration and every topic you type is saved in your browser, so closing the tab and coming back restores the plan. Press Regenerate when you want a different pillar sequence over the same schedule.
Exports that survive contact with other software
The CSV export quotes fields per RFC 4180 and carries a UTF-8 byte-order mark — the difference between a spreadsheet showing your pillar names correctly and showing mojibake. It imports into most scheduling tools.
The ICS export writes one event per slot as a UTC instant rather than shipping hand-written daylight-saving rules that go stale the next time a government moves a transition date. Two edge cases are handled openly: a clock time that does not exist because the clocks sprang forward moves forward past the gap, and one that occurs twice because the clocks went back resolves to the first occurrence — and affected rows are flagged on screen rather than discovered later. A Copy as Markdown button covers pasting into Notion, Slack or a document.
Reading the output
The calendar grid is the main view: one row per week, colour-coded chips per post, blocked dates struck through, and empty days left visibly empty so gaps are obvious at a glance. The per-channel load table is the one worth checking before you commit — learning that a channel needs 96 posts this quarter is considerably cheaper now than in week three. Switch to the table view to type topics and notes against each slot; both exports pick them up. Everything runs in your browser, so the schedule, the files and your half-finished ideas never leave the page.