← Back to Blog

Blog › Process · Automation

A year of social media in one weekend.
1,098 posts. No agency. No burnout.

We scheduled 366 days of content across Facebook, LinkedIn and Instagram for one brand, in a weekend (okay... a weekend and a Monday). Here is the entire system: the spreadsheet, the design trick that stops it looking like wallpaper, the AI assembly line, and the two traps that would have sunk it.

By PM Project Change · 7 min read · 21 July 2026
The whole stack: Claude Canva Supabase Content360 Any spreadsheet

Final result

Seven days. One design system. Zero wallpaper.

These are real posts from the year we scheduled - one theme per weekday, same grid, different palette. This is the trick that makes 366 posts feel like a magazine, not a screensaver.

Monday Spotlight post: navy background with bronze headline spotlighting a scholarship
Monday
Spotlight
Navy · bronze eyebrow - the flagship look
Tuesday Did You Know post: cream background with a navy headline fact
Tuesday
Did You Know
Cream · navy headline · bronze band
Wednesday Myth vs Fact post: struck-through myth with green-ticked truth
Wednesday
Myth vs Fact
White · bronze strikethrough · green tick
Thursday How-To post: cream background with a green save-this corner tag
Thursday
How-To
Cream · army-green rules · SAVE THIS tag
Friday Deadline post: navy background with large bronze serif headline
Friday
Deadline
Navy · big bronze serif - the urgency variant
Saturday History post: deep navy commemorative design with cream headline
Saturday
History
Deepest navy · cream · the restrained one
Sunday Family post: cream background with rosemary green accents
Sunday
Family
Cream · rosemary green - rosemary is remembrance
Monday Spotlight post: navy background with bronze headline spotlighting a scholarship
Monday
Spotlight
Navy · bronze eyebrow - the flagship look
Tuesday Did You Know post: cream background with a navy headline fact
Tuesday
Did You Know
Cream · navy headline · bronze band
Wednesday Myth vs Fact post: struck-through myth with green-ticked truth
Wednesday
Myth vs Fact
White · bronze strikethrough · green tick
Thursday How-To post: cream background with a green save-this corner tag
Thursday
How-To
Cream · army-green rules · SAVE THIS tag
Friday Deadline post: navy background with large bronze serif headline
Friday
Deadline
Navy · big bronze serif - the urgency variant
Saturday History post: deep navy commemorative design with cream headline
Saturday
History
Deepest navy · cream · the restrained one
Sunday Family post: cream background with rosemary green accents
Sunday
Family
Cream · rosemary green - rosemary is remembrance
Monday Spotlight post: navy background with bronze headline spotlighting a scholarship
Monday
Spotlight
Navy · bronze eyebrow - the flagship look
Tuesday Did You Know post: cream background with a navy headline fact
Tuesday
Did You Know
Cream · navy headline · bronze band
Wednesday Myth vs Fact post: struck-through myth with green-ticked truth
Wednesday
Myth vs Fact
White · bronze strikethrough · green tick
Thursday How-To post: cream background with a green save-this corner tag
Thursday
How-To
Cream · army-green rules · SAVE THIS tag
Friday Deadline post: navy background with large bronze serif headline
Friday
Deadline
Navy · big bronze serif - the urgency variant
Saturday History post: deep navy commemorative design with cream headline
Saturday
History
Deepest navy · cream · the restrained one
Sunday Family post: cream background with rosemary green accents
Sunday
Family
Cream · rosemary green - rosemary is remembrance

One grid, one type system, seven palettes... drag to explore the week

The maths that breaks people

Daily posting is the advice everyone gives and almost nobody sustains, because the maths is brutal. One post a day on three platforms is 1,098 posts a year. At an average of 20 minutes each, write it, design it, schedule it, that's 366 hours. Nine working weeks. On marketing admin. For a solo founder or a small team, that plan doesn't fail because of laziness; it fails because the volume was never survivable.

The fix isn't posting less. It's refusing to make 1,098 individual decisions. Batch the whole year as one project - one spreadsheet, one design session, one generation run, one upload - and the marginal cost of a post collapses to almost nothing. What follows is exactly how we did it for Digger Scholarships, an Australian education brand we run: 366 posts for Facebook, 366 for Instagram, 366 for LinkedIn - 1,098 posts across all three platforms, a year of daily presence.

Step 1

One spreadsheet is the entire content strategy

Everything downstream is generated from a single workbook. One master calendar tab (366 rows, one per day), then one tab per weekly theme. Every row carries the same fields:

  • H1 - the headline that goes on the image
  • H2 - the supporting line that goes on the image
  • One caption column per platform - conversational for Facebook, professional for LinkedIn, line breaks and emoji for Instagram
  • Date and theme - which day it posts, which design it wears

Writing 366 rows sounds enormous. It isn't, because themes make it seven small problems instead of one giant one. You're not writing "a year of content"; you're writing 52 Monday spotlights, 52 Tuesday facts, 52 Wednesday myths. Constraints are what make volume writable - and an AI assistant that knows your subject makes a strong first draft of each tab in minutes, which you then edit with your own voice and facts.

This is what the sheet looks like - one row per theme. Click any row, then look at the bottom of the sheet window: the finished-post preview down there swaps to show exactly what that row generates.

Social-Calendar.xlsx · 7 of 366 rows · click a row to change the post preview at the bottom
ABCDEFG
1DayThemeH1 (headline on image)H2 (sub-line on image)Facebook captionInstagram captionLinkedIn caption
2MonSpotlightSpotlight: AVCAT Long Tan BursariesUp to $6,000 a year for up to 3 years. Applications open 18 August to 31 October. One of 67 in our free database.AVCAT Long Tan Bursaries - Up to $6,000 a year for up to 3 years. One of 67 in our free database.🎓 AVCAT Long Tan Bursaries ⏎ Up to $6,000 a year for up to 3 years. One of 67 in our free database. Link in bio.For families of veterans and the advisers who support them: AVCAT Long Tan Bursaries. Up to $6,000 a year for up to 3 years.
3TueDid You KnowEvery WWI Army record is onlineFully digitised and free at the National Archives - series B2455. No appointment, no fee, no login.Did you know? Fully digitised and free at the National Archives - series B2455. No appointment, no fee, no login.💡 Every WWI Army record is online ⏎ Fully digitised and free at the National Archives - series B2455.Every WWI Army record is online. Fully digitised and free at the National Archives - series B2455.
4WedMyth vs FactMyth: hardship means povertyNecessitous circumstances has six doors - financial, physical, familial, emotional, medical, environmental. One is enough.'Hardship means poverty' - we hear it all the time, and it isn't true. Necessitous circumstances has six doors.🚫 MYTH: hardship means poverty ⏎ ✅ TRUTH: Necessitous circumstances has six doors. One is enough.A misconception we hear from families every season: hardship means poverty. The reality: there are six doors, and one is enough.
5ThuHow-ToStart with a name searchRecordSearch at the National Archives. Surname first. It's free and takes two minutes.Start with a name search: RecordSearch at the National Archives. Surname first. It's free and takes two minutes.📌 Start with a name search ⏎ RecordSearch at the National Archives. Surname first. Free, two minutes. ⏎ Save this for school holidays.Practical tip for veteran-descendant scholarship applicants: start with a name search at the National Archives.
6FriDeadlineYear 12? Start nowResearch the family service story this term, and every scholarship season ahead gets easier.📅 Year 12? Start now. Research the family service story this term, and every scholarship season ahead gets easier.⏰ Year 12? Start now ⏎ Research the family service story this term. ⏎ Dates, filters and eligibility - link in bio.A date for families and careers advisers: Year 12? Start now. Research the family service story this term.
7SatHistoryThe Rats of TobrukThe siege lasted 241 days. The nickname was meant as an insult. It didn't land that way.The Rats of Tobruk. The siege lasted 241 days. The nickname was meant as an insult. It didn't land that way.The Rats of Tobruk ⏎ The siege lasted 241 days. The nickname was meant as an insult. It didn't land that way. ⏎ Whose story does your family carry?The Rats of Tobruk. The siege lasted 241 days. Australian service history, one story at a time.
8SunFamilyAsk about the photo on the wallEvery family has one - uniform, young face, no caption. This week, ask who it is.Sunday prompt: Every family has one - uniform, young face, no caption. This week, ask who it is.Ask about the photo on the wall 🌿 ⏎ Every family has one - uniform, young face, no caption. ⏎ #DiggerScholarshipsA weekend prompt for families: Every family has one - uniform, young face, no caption. This week, ask who it is.
The finished Spotlight post generated from row 2

Row 2 becomes…

Mon · Spotlight

The H1 and H2 you can see in the row are the exact text on the image. The three caption cells post beside it on each platform. Nothing else is needed - no design step, no copy-paste, no decisions on the day.

Step 2

One grid, seven palettes - the anti-wallpaper trick

The most common objection to batching: "366 posts from one template will look like wallpaper by week three" and you'd be correct in thinking that. The fix isn't seven different designs - that shatters the brand. It's one master layout with a palette shift per weekday - a strikethrough motif on myth-busting Wednesdays, a "SAVE THIS" corner tag on how-to Thursdays, a big serif headline on deadline Fridays.

Design the flagship variant first, get the spacing perfect, then duplicate and recolour six times using the brand book. Change only colours - never the grid, never the fonts. The consistency is what keeps it on brand.

Here are all seven templates side by side, empty. Every one has the same two text boxes - {H1} and {H2} - and Bulk Create simply fills each spreadsheet row into them:

SPOTLIGHT {H1} {H2} your-site.com.au

Mon

DID YOU KNOW {H1} {H2} your-site.com.au

Tue

MYTH {H1} ✓ {H2} your-site.com.au

Wed

SAVE THIS HOW-TO {H1} {H2} your-site.com.au

Thu

DEADLINE {H1} {H2} your-site.com.au

Fri

HISTORY {H1} {H2} your-site.com.au

Sat

FAMILY {H1} {H2} your-site.com.au

Sun

That's the whole trick. Seven thumbnails, two text boxes, zero decisions per post. Scroll back up to the gallery and you'll see the same seven frames filled in: unmistakably one brand, never the same day twice.

Step 3

Generate the posts - use the templates

366 designs × three platform sizes = 1,098 images. Nobody makes those by hand. There's two main ways to do it. Here's how:

  • Canva logo Canva Bulk Create - if you've ever played Go Fish with the kids, you already have the skill: it's two matches and a "go fish". Match the H1 column to the H1 text box, match H2 to H2, then Go (the button says Generate). That's it - a theme's whole batch in one run. Canva's own Bulk Create guide is here. Three traps we hit:
    • Line breaks inside spreadsheet cells silently break the import - keep every cell to a single line.
    • Each run caps out around 300 rows, so run one theme at a time.
    • Don't generate once and resize per platform - Canva's resize needed more tweaking than it saved. Make a template each for Facebook, Instagram and LinkedIn and bulk-create each one. Three quick runs beat one run plus an afternoon of nudging text boxes.

    The batch map: 21 small runs, not one giant one

    Mon · Spotlight FB template · 52 IG template · 52 LI template · 52
    Tue · Did You Know FB template · 52 IG template · 52 LI template · 52
    Wed · Myth vs Fact FB template · 52 IG template · 52 LI template · 52
    Thu · How-To FB template · 52 IG template · 52 LI template · 52
    Fri · Deadline FB template · 52 IG template · 52 LI template · 52
    Sat · History FB template · 52 IG template · 52 LI template · 52
    Sun · Family FB template · 52 IG template · 52 LI template · 52

    7 themes × 3 platform templates × 52 weeks - 21 bulk-create runs, every one comfortably under the 300-row cap.

  • Claude logo An AI assembly line - Anthropic's newest model, Claude Fable 5, orchestrated Opus agents to deliver: one agent rendered every image straight from the spreadsheet through a headless-browser template, a second independent agent QC'd every batch against the source data, and a human (hi) spot-checked the results. The QC pass earned its keep: it caught "1 weeks left" typos in three posts before they went out, traced them back to the spreadsheet, and fixed both.

We split the year across both methods deliberately - the first themes through Canva, the rest through the assembly line - to road-test each and report back honestly. Both work. Canva costs nothing and needs no technical setup; the assembly line scales further and QCs itself.

Our verdict

With unlimited tokens and all things being equal, our preference is for Claude Fable to generate - but only after we have created the templates and the Excel. The IP is the important part; the admin can be outsourced.

Full disclosure: PM Project Change runs a Claude Max plan. Usage limits on Fable are significantly higher than the Pro tier, and a year of image generation leans on that headroom.

Either way, the principle is the same: the spreadsheet is the source of truth, and images are generated from it - never edited individually. If a post is wrong, you fix the row and regenerate.

The pipeline

From one spreadsheet to 366 days on autopilot

Step 4

Host the images where a CSV can reach them

Here's the step nobody warns you about. Bulk schedulers don't want image files... they want public image URLs in a CSV column. Your 1,098 images need to live on the open internet before you can schedule anything.

Supabase logo We used a Supabase storage bucket - and the free tier easily covers this job: a year of post images is about 60MB against a 20GB cap. If you've never touched it, it's less scary than it sounds:

  1. Create a free Supabase account and a new project.
  2. In the left menu, open Storage and create a bucket. Mark it public - that's what makes the image URLs shareable.
  3. Inside the bucket, create one folder per theme per platform (e.g. facebook-theme1, instagram-theme1).
  4. Drag each batch of images into its folder. That's the whole upload.
  5. Click any file and copy its public URL - every other URL follows the same pattern.

Name the files to a strict convention before you upload (DS-FB-DYK-007.png = brand · platform · theme · sequence). The convention is the whole game - when file names are predictable, the URLs are predictable, which means the CSVs in the next step can be generated instead of typed.

Step 5

One CSV per platform

From the master spreadsheet, generate one CSV per theme per platform: caption, year, month, day, hour, minute, image URL. Small files beat one monster - if an import fails, you lose one theme on one platform, not the year.

One note before you build anything: every scheduler provides its own CSV template, with its own column names and order. Download it from inside your tool and complete it exactly as required - the example below shows the shape, not your scheduler's exact columns.

Nothing in the curly braces is magic - they're the bits you replace with your own names:

Scheduler-Theme-FB.csv · one row per post · everything in {braces} is yours to replace
ABCDEFGH
1Caption textYearMonthDateHourMinutesPost TypeMedia URL (public image link)
2{Your Facebook caption for post 1}{YYYY}{M}{D}90Posthttps://{your-project}.supabase.co/storage/v1/object/public/{bucket}/{theme}-fb/{BRAND}-FB-{Theme}-001.png
3{Your Facebook caption for post 2}{YYYY}{M}{D}90Posthttps://{your-project}.supabase.co/storage/v1/object/public/{bucket}/{theme}-fb/{BRAND}-FB-{Theme}-002.png
4{Your Facebook caption for post 3}{YYYY}{M}{D}90Posthttps://{your-project}.supabase.co/storage/v1/object/public/{bucket}/{theme}-fb/{BRAND}-FB-{Theme}-003.png

The highlighted column is the one people miss: it must be a public URL from Step 4, not a file on your computer. One CSV like this per platform - the caption column and the -fb / -ig / -li folder swap per platform, everything else stays.

Step 6

Verify, then schedule

The step that separates systems from gambles: health-check every image URL before uploading a single CSV. A script that pings all of them takes seconds. Ours came back 755 green, 46 red - one folder had simply been missed during upload. Two minutes to fix before scheduling; a week of broken image posts if we'd found out after. Verify, then schedule. Always in that order.

Then pick a scheduler that takes CSV bulk uploads:

  • Content360 logo Content360 - what we used. It happily scheduled a year of posts per platform, and at the time of writing it has a lifetime deal (one payment, no subscription) - which suits this system perfectly, since the whole point is scheduling a year ahead.
  • Buffer logo SocialBee logo Metricool logo Buffer, SocialBee, Metricool - all take similar CSV bulk uploads on subscription plans. Same system, different vehicle - check each one's cap on how far ahead it will schedule.

Step 7

The scheduled year is the skeleton, not the strategy

The standard objection to scheduling a year ahead is real: feeds need room for the topical, the newsworthy, the human. So leave it. The scheduled year is your floor, not your ceiling - roughly 80 per cent of output, guaranteed to show up every single day whether you're inspired, busy, or having a terrible week. The other 20 per cent you post live: reactions, wins, behind-the-scenes, anniversaries that matter this week.

That's the actual mental-health trade at the heart of this whole system. Daily posting puts a decision in front of you 366 times a year. A scheduled skeleton means the machine posts at 9am whether you're feeling brilliant or meh - and everything you add on top is a bonus, not an obligation.

Or skip all seven steps

Want the year done for you?

One week from now, your brand could be showing up daily on every platform - on brand, on time, building authority by design. Consistency is what builds trust: your audience starts getting the same quiet signal from you at the same time every day... the kind of posts people save and come back to. It's no accident that marketing research links consistent brand presentation to revenue lifts of 23-33 per cent.1

That's the 80 per cent of your brand, handled - the machine in this article, built and delivered for you at a flat rate by the team that wrote it. You keep the 20 per cent where your brilliance is needed in full, and get back to running the actual business. We'd be happy to carry the rest.

1. Lucidpress (now Marq), State of Brand Consistency - surveyed organisations attributed average revenue growth of 23 per cent to consistent branding in the 2016 report, rising to 33 per cent in the 2019 update.

The questions everyone asks

How far in advance should you schedule social media posts?

The standard advice is two to four weeks for most content, and that is right for anything tied to trends or news. But evergreen content - tips, education, history, brand themes - can safely be scheduled up to a year ahead. The practical answer is to split your content in two: an evergreen skeleton scheduled twelve months out, and a live layer of topical posts you add week to week on top of it.

Is it bad to schedule a whole year of content at once?

Only if you do it naively. The two real objections are that batched content turns into wallpaper (identical posts every day) and that you lose room for timely posts. Both have fixes: use one master layout with a different palette and format per weekday so the feed stays visually alive, and treat the scheduled year as roughly 80 per cent of your output, with the other 20 per cent posted live when something topical happens. The scheduled skeleton removes the daily what-do-I-post pressure; it does not forbid you from posting.

How long does it take to create a year of social media content?

With the system in this article: one focused planning session to write a spreadsheet of 366 posts (headline, sub-line and per-platform captions), about an hour to design one master template and recolour it per weekday theme, a few hours of automated image generation and QC, and an evening of uploading and CSV scheduling. We scheduled 366 posts each for Facebook, LinkedIn and Instagram - 1,098 in total - in a weekend plus a Monday. Allow three to five focused days if you are doing it for the first time.

How do you bulk schedule posts with images from a spreadsheet?

Most bulk schedulers accept a CSV where each row has the caption, the date and time, and a public image URL. The trap is the image URL: the images must already live somewhere on the public internet. Host them in a free storage bucket (we used Supabase), use a strict file naming convention so the URLs are predictable, then generate one CSV per platform from your master spreadsheet. Always health-check every URL before you upload the CSV - one broken link is annoying, three hundred are a nightmare.

What is the cheapest way to run a year of scheduled social media?

Genuinely cheap: a spreadsheet you already have, Canva's free tier or an AI assistant for artwork, Supabase's free tier for image hosting (well under the 20GB cap - a year of post images is roughly 60MB), and a bulk scheduler. The scheduler is usually the only paid piece. No agency, no retainer, no content subscription.

How do you stop batched content looking identical?

One grid, seven palettes. Keep the same layout, type system and footer on every post, but give each weekday its own theme and colour treatment - a navy spotlight on Monday, a cream fact card on Tuesday, a myth-versus-fact format on Wednesday, and so on. The feed reads as unmistakably one brand, but no two consecutive days look the same. It also makes a beautiful repeating pattern on an Instagram grid.

Should you post the same thing on Facebook, LinkedIn and Instagram?

Same artwork, different words. Resize the image per platform (landscape for Facebook, portrait 4:5 for Instagram, square for LinkedIn) and write the caption for the room: conversational for Facebook, professional framing for LinkedIn, line breaks and emoji for Instagram. Keep all of it in one spreadsheet with a caption column per platform so the whole set generates together.

This is process design. It just happens to be marketing.

One spreadsheet, a naming convention, a QC gate and a verification step turned nine working weeks of content admin into three days. That's not a marketing trick - it's what PM Project Change does to any repetitive process that's eating a team alive.

More from PM Project Change: free tools · the blog