Content calendar in SharePoint
Short answer: use one SharePoint list named "Content calendar". One row is one post. Give each row a title, a channel, an owner, a publish date, a status and a Done flag. Then save three views: a calendar view for the month, a "Due now" view for posts that should be out today or earlier, and a "My posts" view for each owner. The whole team opens the same list, so nobody asks "who has the newsletter this week?" in a chat. The exact names of menus and buttons may differ from what is written here, because Microsoft changes its screens from time to time.
Why content plans drift
A content plan often starts as a spreadsheet, a slide or a whiteboard photo. Each person keeps a copy. A date moves in one copy and not in the others. A post that was "almost done" is still "almost done" three weeks later, and nobody can say who has it.
Signs this is happening:
- Two people write the same post, or nobody writes it.
- You find out a post is late when someone asks where it is.
- The plan lives in one person's file, and that person is out.
- You cannot see which channels are full and which are empty this month.
- Old posts stay in the plan, so the plan gets longer and harder to read.
None of this is about effort. It is about having no one place that everyone trusts.
What you are building
You will build one SharePoint list. It records the plan: what, where, who and when. It does not hold the post itself. Keep the draft in a document library or a shared folder and put a link to it in the row.
If you are new to lists, see "Replace a spreadsheet tracker with a SharePoint list". This guide does not repeat those steps. If your problem is late work in general, see "Late tasks nobody notices: setting up late alerts".
Step 1. Create the list
Open Microsoft Lists at https://www.microsoft365.com/launch/lists, create a blank list, and name it "Content calendar". Pick a SharePoint site that only the marketing group, or the people who plan posts, can open. A view is not security, so decide who has access to the site first. Ask your admin which group to use.
Step 2. Add the columns
Add these columns. Keep each one simple.
- Title (Single line of text). A new list has a Title column, and it is required by default. Rename it to "Post" or turn off the Require setting. Type a short name, such as "Spring sale email".
- Channel (Choice). Number the choices so they keep your order: 1 Email, 2 Blog, 3 Social, 4 Video, 5 Print. A Choice column sorts by its text. The number is there to keep your order.
- Owner (Person). The one person who must get the post out.
- Publish on (Date and Time, date only). The day the post goes out.
- Status (Choice). Use numbered values: 1 Idea, 2 Drafting, 3 In review, 4 Ready, 5 Published, 6 Dropped.
- Done (Yes/No). Set it to Yes when the post is published or dropped. Set the default to No. The "Due now" view needs this column so that old rows leave the view. Our advice, not a Microsoft rule.
- Draft link (Hyperlink). A link to the draft in your own folder.
- Notes (Multiple lines of text). One line on what is blocking the post.
Do not put private details in Notes that you would not want a coworker to read.
Our advice, not a Microsoft rule: keep the list to these eight columns at the start. Add a column only after you miss it more than once.
Step 3. Add the posts
Add a row for each post you plan for the next month. If a post is only an idea, give it a date anyway, even a rough one, so it shows on the calendar. A row with no date does not give you a day to look at. Move the date when the plan changes. Do not make a second row for the new date.
Step 4. Add a calendar view
Microsoft's page on calendar views says: "On the upper right-hand side of the command bar, select +Add view." Then: "Under Show as, select Calendar as the type of view you want to create." You have one date, so Microsoft says: "If you're only keying on one date, just specify that date column for both Start date on calendar and End date on calendar." Pick "Publish on" for both. For the label on each event, Microsoft says: "By default, Title is used, but you can change that if you like." Title is your Post column, so keep it. Name the view "Calendar". Exact names may differ.
The calendar is a picture of the plan. Look at it at the start of each week. Gaps and crowded days are easy to see. A person still has to decide what to move.
If you want to see another list on the same calendar, such as a list of events, see "SharePoint calendar overlay will not show another list".
Step 5. Build the "Due now" view
This is the view you open each morning.
- Open the list. Open the view menu and choose "Edit current view" to open the classic view editor, or create a new view and edit it there.
- Name the view "Due now".
- Under "Filters", choose "Show items only when the following is true".
- First filter: Done is equal to No.
- Add a second filter with "And": Publish on is less than or equal to [Today].
- Show Post, Channel, Owner, Publish on, Status and Notes. Sort by Publish on, oldest first. Save.
Microsoft's help page on filtering a view says: "The [Today] keyword works on date-based columns." It also says: "It is not possible to use the [Today] or [Me] filters when filtering using a column header." And: "You must use the classic view editor to filter columns using these keywords."
When a post goes out, set Status to "5 Published" and Done to Yes. The row leaves "Due now" and stays in the list as a record. A post that is dropped gets "6 Dropped" and Done set to Yes. Without the Done column, old posts would stay in the view forever, because their date is always before today.
Step 6. Build "My posts"
Each owner wants to see only their own rows.
- Create a new view named "My posts" and open it in the classic view editor (Edit current view, then Filters).
- First filter: Done is equal to No.
- Second filter, with "And": Owner is equal to [Me].
- Sort by Publish on, oldest first. Save.
Microsoft's filtering page says: "[Me] operates on people-based columns such as Created by, or Modified by." A Person column is people-based. This is a display choice. Anyone who can open the list can switch to another view.
Step 7. Add a weekly habit
The list only works if someone looks at it. One way to start is a short weekly check:
- Open "Due now". Each row is late or due today.
- Ask each owner for a new date or a Done flag.
- Open "Calendar". Look at the next two weeks. Move anything that is crowded.
- Add new ideas as rows with a rough date.
Our advice, not a Microsoft rule: keep the check short and do it at the same time each week.
Step 8. Add a reminder
If you want a message instead of opening the view, a scheduled Power Automate flow can look for rows due today and send one message per owner. Start at https://make.powerautomate.com. For the setup, see "Send a reminder before a due date in a SharePoint list". Our advice, not a Microsoft rule: if the flow uses Get items, raise Top Count and turn Pagination on, so a long list is not cut short. Keep it to one message per person per day.
What to avoid
- Do not keep a second copy of the plan in a slide or a file. Two plans means two answers.
- Do not leave posts without a date. They never show on the calendar.
- Do not store the post itself in the row. Link to it.
- Do not skip the Done flag. Without it, old rows crowd the "Due now" view.
- Do not use Choice values that differ between the list and any flow or note. If the list says "4 Ready", write "4 Ready" everywhere.
- Do not treat a view as a lock. A view only changes what is shown.
- Do not add a column for every idea. Eight columns are enough to start.
- Do not put private client details in Notes.
Honest limits
A list records what someone typed. It does not write the post, it does not publish it, and it does not tell you which channel to use. It does not post to any other service for you. If nobody updates Status, Done and the date, the views will be wrong.
The classic view editor is where Microsoft says to set a [Today] or [Me] filter. Our advice, not a Microsoft rule: set blank and "is not equal to" filters in the classic view editor too.
When to get help
You can build all of this yourself in Microsoft 365. If you would rather have it built and tested for your team, I do that. A tracker like this is a fixed price: $5,000 for one, built in 2 weeks. See "What a SharePoint tracker costs to build". Bring one example of the problem to a free call.
I am Al Davies. I run 250 High Street LLC and build SharePoint trackers and Power Automate flows for operations teams. I work remotely. The first call is free, and I will not try to sell you anything.
See trackers I built: Tools I built
FAQ
What columns does a content calendar need?
One way to start is a post name, channel, owner, publish date, status and a Done flag. That is our advice, not a Microsoft rule. Add more only when you miss them.
How do I show only posts that are due now?
Make a view with Done equal to No and Publish on less than or equal to [Today]. Microsoft says you must use the classic view editor to filter columns with [Today] and [Me].
How do I show only my own posts?
Add a Person column named Owner, then filter it to [Me] in the classic view editor. A view is not security, so anyone with access to the list can open another view.
Why do I need a Done column?
A filter on the date alone keeps showing every old row, because its date is before today. A Yes/No Done flag lets finished rows leave the view. This is our advice, not a Microsoft rule.
Can the list remind owners about their posts?
Yes, with a Power Automate flow. See "Send a reminder before a due date in a SharePoint list". Without a flow, the "Due now" view is the reminder.
Sources
- Microsoft Support, Use filtering to modify a SharePoint view
- Microsoft Support, Create a calendar view from a list