Free tool

Free content calendar template for Excel, Google Sheets and Numbers.

A CSV with seventeen columns built around how video actually gets made — pipeline status, hook, caption, publish date, deadline and result columns — plus five example rows to delete. No email, no signup, no account. The button is the file.

2 KB CSV. Opens in Excel, Google Sheets, Numbers and LibreOffice. Free to use and change however you like.

  1. Ideas
  2. Scripting
  3. Filming
  4. Editing
  5. Review
  6. Approved
  7. Scheduled
  8. Published
  9. Archive

Every column, and what to put in it

Seventeen columns, grouped into four jobs: what the video is, what it says, when it goes out, and how it did. Delete any group you do not need — nothing here depends on anything else.

What the video is

The five columns you sort and filter on. Everything else hangs off these.

Title
The working name. Not the caption and not the YouTube title — just enough to recognise the video in a list of forty.
Client
Who it belongs to. Leave it as your own name if you post for yourself; it becomes the first thing you filter on the moment there are two.
Type
Shortform, Long-form, Carousel or Image post. Type decides how long the row sits in Editing, so it is worth setting before you plan the week.
Status
Where the video is right now: Ideas, Scripting, Filming, Editing, Review, Approved, Scheduled, Published, Archive. One value, no half-states.
Owner
Whoever the row is waiting on. A blank Owner on a row that is stuck is usually the reason it is stuck.

What it says

Written once, in the same row as the video, so the copy and the cut never drift apart.

Hook
The opening line or the first frame. Kept as its own column deliberately — it is the part worth comparing across videos when you look back at what worked.
Caption
The post copy. Write the version for your main platform here and adapt it per platform at posting time.
Hashtags
Space-separated, in one cell. Keeping them out of the caption means you can reuse a tag set without re-reading the whole caption.

When it goes out

The scheduling half — the columns that turn a list into a calendar.

Platforms
Where this video is going: TikTok, Instagram Reels, Instagram Post, YouTube Shorts, YouTube. Comma-separated in one cell, already quoted correctly in the file.
Publish Date
The date it should go live, as YYYY-MM-DD so it sorts properly in every spreadsheet app and never gets read as an American date in one and a European one in another.
Deadline
The date the cut has to be finished — normally a few days before Publish Date. This is the column that tells you the week is overbooked, not Publish Date.
Notes
Everything that does not have a column: missing b-roll, the client's preference, the reason this one slipped.

How it did

Five result columns, left empty on purpose. Fill them in a week after publishing, from each platform's own analytics.

Views
The headline number, and the least useful one on its own — it mostly tells you whether the hook worked.
Likes
Cheap signal, easy to read. Worth logging because it is the one number every platform shows the same way.
Comments
The number worth reading rather than counting — the comments themselves are next week's content ideas.
Shares
The strongest distribution signal on short-form. High shares against low views usually means the video was good and the hook was not.
Saves
What people intend to come back to. Educational and list-style videos live or die here.

Dates are written as YYYY-MM-DD and any field containing a comma is quoted, so the file imports cleanly whichever spreadsheet app and locale you open it in.

How to actually use it

Six steps. The whole thing takes about twenty minutes to set up for a month of content, and roughly five minutes a day after that.

  1. 1

    Open it and delete the example rows

    Five rows are filled in so the file is not an empty grid — every one of them says EXAMPLE in the Title and “delete this row” in the Notes. Clear them and the header is your calendar.

  2. 2

    Dump every idea in as a row

    Title and Client only, Status set to Ideas. Do not write captions yet. A backlog you can see beats a backlog you can remember, and this is the step that makes the rest of the week decidable.

  3. 3

    Set Deadline before Publish Date

    Work backwards: pick when it should go live, then put the edit deadline two or three days earlier. If two rows share a deadline and you can only cut one a day, you have found the problem before the client does.

  4. 4

    Move Status left to right, one value at a time

    Ideas to Scripting to Filming to Editing to Review to Approved to Scheduled to Published. Sort by Status on a Monday and the sheet tells you what to work on without you deciding anything.

  5. 5

    Fill the result columns a week after publishing

    Views, Likes, Comments, Shares, Saves, copied from each platform. Then sort by Shares and read the Hook column of the top ten. That comparison is the entire point of keeping the hook in its own column.

  6. 6

    Archive instead of deleting

    Set Status to Archive when a video is done. A year of archived rows with hooks and results attached is the most useful thing in the file.

If the production side is what keeps slipping — versions, review rounds, who approved what — the video production tracker is the same idea aimed at the edit rather than the calendar. The two files are designed to sit side by side.

Where a spreadsheet stops working

Not a criticism of spreadsheets — we just gave you one, and for a lot of people it is the right tool for years. These are the specific things a grid of cells cannot do, so you can recognise them when you hit them.

The video is not in the row

A spreadsheet cell holds a link to a file at best. The actual cut lives in Drive, Frame.io or a hard drive, and which link is the current version is something you have to remember rather than something the sheet knows.

Feedback happens somewhere else

Client notes arrive on WhatsApp, in email, or as a voice note. Pasting “change the end card” into a Notes cell loses the timestamp it referred to, and the next version starts from a summary rather than the actual comments.

Nothing in a Publish Date column posts

The date is a reminder for you. Somebody still has to open TikTok, Instagram and YouTube at the right time and upload the file with the right caption — the sheet is a plan for that work, not a substitute for it.

Results have to be typed in by hand

Five numbers, per video, per platform, from three different analytics screens. It works for ten videos a month. At forty, the results columns quietly stop being filled in, and then the sheet only records what you planned rather than what happened.

One sheet, several clients

Filtering by Client holds up for a while. Then one client wants their own deadlines, another wants a report, and you are either duplicating the file per client or maintaining a wall of filters that only you understand.

ContentWorkflow is what this template turns into when those five things start costing real time: the same pipeline, but the video file is attached to the row, review comments land on the timestamp, the schedule actually publishes to TikTok, Instagram and YouTube, and the view and engagement numbers sync back on their own. See what it does or check the pricing. The template stays free either way.

Keep the template. Upgrade the parts it cannot do.

The CSV is yours with no strings attached — no email, no account, nothing to cancel. When copying analytics in by hand or hunting for the current version starts eating the day, ContentWorkflow runs the same pipeline with the files, the feedback, the publishing and the numbers in one place.

$29/month or $290/year, USD. One plan, no free tier and no trial — cancel any time.

Content Calendar Template — Excel & Sheets · ContentWorkflow