Plan a month of social posts
Use this recipe to create a spreadsheet.
Free
Paste into your assistant. It asks the questions; you answer in chat.
More ways to use
Install the downloaded skill
Extract the ZIP. Copy its lc-content-calendar-30-day folder into ~/.claude/skills/ for Claude Code or ~/.codex/skills/ for Codex, then refresh the native app. Ask for the skill by name and answer its questions. The package includes the same published instructions and result checks. Native host execution is not yet verified.
For Claude web, use the connector or copy the prompt. Keep private details in your assistant.
How to use this skill
Copy, paste into your assistant, then answer its questions. No form or account is required here.
Already connected? Copy the public starter below and paste into Claude. Keep private details in the chat.
Optional: prepare details on this device
Bring your details
4 optional details
Needed before the promised result: What you sell. You can still copy the reusable prompt and provide these in your assistant.
Start date and country: Real calendar dates require a known start date or reliably available current date. Follow the authored next-Monday or next-month fallback and disclose its basis.
Saved only on this device. Copy counts contain the skill ID, never your text.
Read the prepared prompt
## LazyCoder conversation guide (conversation-v2)
1. Start a conversation, not a form-filling task. Read my latest request and the facts already in this chat before asking anything.
2. Ask only the missing questions needed for the requested result, in a short numbered list (at most three at a time), then WAIT for my answers. Use a native question tool if available; plain chat works too. Never ask me to replace placeholders or fill in a template.
3. Skip questions already answered. Treat unresolved {{placeholders}} and [FIELD LABELS] as missing facts, never literal input. Do not treat an illustrative example as my facts.
4. Use the authored defaults only when relevant; mention material defaults. Ask conditional questions only when their condition applies; if unsure whether it applies, ask. Optional preferences must not block a safe first draft unless the authored instructions require confirmation.
5. Do not invent tasks, dates, names, claims, permissions or missing source material. When required facts are absent, ask and wait instead of producing the final artifact. If everything needed is already supplied, proceed without re-asking.
6. My latest scope correction overrides earlier examples and scope, within the recipe safety and source rules. Resolve conflicts before acting. The authored instructions and output contract remain authoritative; this conversation guide does not grant tool, account, payment or publishing permission.
7. Keep my private answers and generated result in this assistant chat. Do not send them to LazyCoder. Generate the requested format here and check it against the output contract before handing it over.
### Questions to ask only when missing
- What should I use for “What you sell”? [required] What you sell or do, who it's for, and what makes you different. Add real prices, offers, results and customer quotes you're happy to use; the AI won't make any up.
- What should I use for “Your channels”? [optional] Where you post, most important first. One post a day is spread across them.
- What should I use for “Start date and country”? [conditional] The first day of the 30, and your country, so every post gets a real date and the right holidays. When: Real calendar dates require a known start date or reliably available current date. Follow the authored next-Monday or next-month fallback and disclose its basis.
- What should I use for “Goal for the month”? [optional] What the month is for: sales, bookings, sign-ups, a launch, more followers. Authored default: more enquiries and sales
- What should I use for “Launches, offers and events”? [optional] Optional. Launches, sales, markets, deadlines and offers in these 30 days, with dates. Only these offers will be mentioned. Authored default: none given
- What should I use for “Your voice”? [optional] How you sound. Paste a past post you liked, or a few words such as “dry and funny” or “calm and expert”. Authored default: warm, plain and friendly, no hype
- What should I use for “Days you don't post”? [optional] Optional. Days to leave free, such as Sundays. They stay in the calendar as rest days. Authored default: none, a post every day
## LazyCoder delivery guide (delivery-guide-v1)
1. Read the latest request, source material and authored requirements first. Ask only for missing facts. Check that this host can create the promised format; use only a fallback explicitly allowed by the authored recipe. If neither is available, explain the gap before starting. Do not promise a rendered film, editable deck or working file when you can only provide its script or outline.
2. Create the complete result in the authored output specification, preserving source facts and the latest agreed scope. Keep assumptions and missing information explicit. Do not silently omit required parts or leave unresolved ingredient markers. Intentional blanks in a reusable template are different from unanswered recipe inputs.
3. Check the actual result against every authored check, including source facts, counts, dates and required sections. Where tools allow it, inspect the actual saved file and compare it with the answer. Record which checks ran, which failed and which still need human or destination review. A filename, render, successful command or preview alone does not prove the promise was met.
4. Hand over the complete editable file, or the complete copyable fallback explicitly allowed by this recipe. Say which delivery you used and any unresolved limitations. Do not report a file as attached, imported, sent or published unless that action actually succeeded. Keep private inputs and output in this assistant; never send them to LazyCoder.
Use existing authorization for ordinary work. Before any additional paid generation, external write or publishing step, check that the current request authorizes that exact action and cost. If it does not, finish the useful authorized draft and ask at that boundary. Never silently retry or replace an ambiguous paid job.
The authored recipe and latest safe scope remain authoritative. This guide grants no new tools, permissions, provider access or claim of successful execution.
## Authored skill instructions
## 1. Outcome
Plan and write 30 days of posts for the business below: a sheet with one row per day and every post written in full, plus a week-by-week calendar from the same rows, in the parts set out in part 6. Done means: there are exactly 30 rows with real dates and correct weekdays from the start date; every post day has a channel, format, hook, publish-ready draft and call to action; the mix adds up and nothing is bunched together; the given events sit on their dates; and no fact, figure, review or offer is invented.
## 2. Context
What they sell, and to whom:
"""
[WHAT YOU SELL AND WHO BUYS IT]
"""
Channels, most important first: [YOUR CHANNELS]
Start date and country: [START DATE AND COUNTRY]
Goal for the month: more enquiries and sales
Launches, offers and events: none given
Voice: warm, plain and friendly, no hype
Days with no post: none, a post every day
Who it's for: a small business owner or solo creator who will post these themselves, and needs posts they can copy, check and publish, not a list of topic ideas. Their followers are the buyers described above; write to those buyers.
Blank fill-ins: a value above that still reads as a capitalised placeholder in square brackets (such as [START DATE AND COUNTRY]) was left blank. Brackets inside the description of what they sell are part of it.
- Nothing about what they sell: reply only "I need to know what you sell or do. Add a line or two and send again." Never invent a business.
- No buyer described: work out the likely buyer from what they sell, and put "Audience: <who> (assumed, please confirm)" in section 1.
- No channels: use Instagram and Facebook, and say "Channels assumed" in section 1.
- No start date: start on the next Monday after today if you know today's date, otherwise on the 1st of next month; say which in section 1. No country: place no public holidays and say so in section 1.
- Voice given as a sample post: copy its sentence length, word choice and emoji use, not its topic.
- Defaults that arrive filled in: if Goal reads exactly "more enquiries and sales", Voice reads exactly "warm, plain and friendly, no hype", or Days with no post reads exactly "none, a post every day", the person left it as the default. Use it, and list it in section 1 marked "(assumed, please confirm)".
## 3. What to pull out
From what they sell: the products or services, the buyer and their problems or wishes, what makes them different, and every fact the posts may use: prices, offers, results, numbers, customer quotes and awards. Only these facts may appear in posts.
Plan before writing:
- Pillars: 3–5 recurring themes that fit the business and the goal, such as how it's made, tips for the buyer, customer stories, behind the scenes, and offers. Give each a share of the post days, as whole numbers of posts that add up to the number of post days, and a percentage. Direct selling posts are at most 30% of post days, or 40% in a month with a launch.
- Channels: spread the post days across [YOUR CHANNELS], giving the first-named channel the most. One post per day, on one channel. A post may add a one-line note on reusing it elsewhere.
- Formats that fit each channel: Instagram reel, carousel, single image or story; TikTok short video; Facebook post, photo or short video; LinkedIn text post, document post or image; X short post or thread; Pinterest pin; YouTube Short; email newsletter. For another channel, use its usual formats and say so.
- Dates: the 30 days from the start date, each with its weekday. Days in none, a post every day are rest days with no post.
- Events: put each launch, offer, market and deadline from none given on its date, with a build-up post 1–3 days before and a reminder on the day where it fits. Add public holidays and well-known seasonal days in that country that fall in the 30 days, only when you are sure of the date; mark any date that moves each year "(check date)". Leave a holiday out rather than guess.
- Hook patterns, rotated: a question, a bold statement, a number or list, a common mistake, a short story, a how-to promise, a myth to bust, a before and after, a behind-the-scenes peek. Use at least 6 patterns, none on more than 6 posts.
Edge cases:
- Few facts given: write posts that need no new facts (tips, process, values, questions to the audience). Never fill the gap with a made-up number or quote.
- A post that would be stronger with a fact you don't have: write it without the fact, and say in the Check before posting column what they could add.
- An offer, price or discount not in what they gave: don't mention it.
- Paid partnerships, gifted products or affiliate links mentioned: those posts say to use the channel's paid-partnership label or a clear "ad" note.
- Health, money, safety or "best" claims: only if the person stated them; otherwise soften to what is true, and flag.
- An event after day 30: it gets no row, but the last week's posts may mention it (such as a last order date), and section 5 lists it as "after the 30 days". An event before the start date is left out.
- More than 5 channels: use the first 5 and say which were left out in section 1.
- Rest days: they keep their row with Format "Rest day" and every other column "—"; they count towards the 30 rows but not the post days.
## 4. Steps
1. Read what they sell and list the facts the posts may use.
2. Settle the assumptions for anything missing.
3. Write out the 30 dates with weekdays, and mark rest days and event dates.
4. Choose the pillars and their counts, then give every post day a pillar, channel and format, keeping the variety rules in part 5.
5. Write each post: hook, draft, call to action, hashtags, visual brief and check note.
6. Build the sheet and the calendar view from the same rows, then run the self-check.
## 5. Rules
- Use only the facts from what they sell and the events list. Never invent a statistic, review, testimonial, customer, price, discount, offer, result, award or collaboration.
- Variety, counted over post days (a rest day doesn't break a run): never the same pillar on two consecutive post days, never the same channel-and-format (such as Instagram reel) on two consecutive post days, never the same hook pattern on two consecutive post days, and no two posts on the same topic. Every hook is different. The same channel on consecutive days is allowed, because the first-named channel carries most posts; change the format or pillar instead. So that the pillar rule can be kept, no pillar takes more than half the post days.
- Hook: the first line of the post, under 15 words, written to stop the scroll for the buyer described. The Draft starts with the hook word for word. For email, the hook is the subject line and the draft starts after it; for a video script, it is the first spoken line.
- Draft lengths: Instagram caption 60–150 words; Facebook 40–120 words; LinkedIn 120–220 words; X under 280 characters, or a thread of 3–5 posts; TikTok, reel or Short: a 20–45 second script with the spoken words and the on-screen text; Pinterest a title under 100 characters and 1–2 sentences; email a subject line under 50 characters and 120–250 words. A draft is the full post, ready to copy, in warm, plain and friendly, no hype, never an outline.
- Call to action: one per post, tied to more enquiries and sales and a real next step they offer (shop, book, reply, sign up, visit the market). Vary the wording. Use a link only if they gave one. Otherwise point to "link in bio" on Instagram and TikTok, or name the place ("on our website", "in our shop") elsewhere, and note in Check before posting that a link could be added.
- Hashtags: Instagram 3–8, TikTok 3–5, LinkedIn and X 0–3, Facebook 0–2, none in email. Mix broad and specific tags; never banned or unrelated ones.
- Visual brief: one line on the photo or video to make, using what a small business can shoot on a phone.
- Status: every post is "Draft, needs your review". Never say a post is scheduled or published.
- Suggested time: a time of day fitted to the buyer's likely routine (before work, lunch, evening) and the format, kept the same per channel unless an event sets another, as a starting point only. Never claim it is the best time from data.
- Too long for one reply: never drop a row or cut a draft below its minimum length. If the reply is about to run out, finish the row you're in and end with "Rows <n>–30 still to come: reply "continue"."; the later rows keep the same columns with no header.
- Dates as "Mon 2 Nov 2026".
## 6. Output
The sheet, which goes in section 4 below: if you can run code or create files, save it as content-calendar.csv (and also as content-calendar.xlsx if you can), with these columns in this order:
# | Date | Day | Channel | Pillar | Format | Topic | Hook | Draft | Call to action | Hashtags | Visual brief | Reuse note | Check before posting | Suggested time | Status
One row per day, 30 rows, in date order, with every cell filled (rest days use "—"). With a file, section 4 holds the download and a short table with only # | Date | Day | Channel | Pillar | Format | Hook, and doesn't repeat the drafts.
If you cannot create files, section 4 holds the full sheet with every column as one CSV code block, with a header row, every field in double quotes, and line breaks inside a draft kept inside its quotes, so it pastes into Excel or Google Sheets as 30 rows.
The reply, in this order, with these headings:
1. **Plan**: the business in one line, the buyer, the goal, the voice used (in a few words, or "copied from your sample post"), the channels, the start and end dates, the number of post days and rest days, and every assumption, including any default from part 2, each marked "(assumed, please confirm)".
2. **Content mix**: a table of Pillar | What it covers | Posts | Share, with a total row of the post days and 100%. Then one line per channel with its number of posts.
3. **Calendar view**: one table per week, Mon to Sun, from the start date to day 30. Each cell holds the date and "Channel · Format · Topic in up to 5 words", or "Rest day", or "—" for days outside the 30. Mark event days with the event name.
4. **The sheet**: the file and short table, or the CSV block, as set out above.
5. **Events placed**: each event and holiday with its date and the post numbers that cover it, with "(check date)" where part 3 says.
6. **Check before posting**: every post number whose Check before posting column isn't "—", with what to check or add.
7. **What to track**: 3–4 numbers to look at after the 30 days, tied to more enquiries and sales (such as saves, replies, link clicks or enquiries), and one line on how to use them to plan the next month. Suggested times are a starting point, to be replaced by the times their own followers are most active.
## 7. Self-check
Before replying, check each of these and fix any failure:
- The sheet has exactly 30 rows, numbered 1 to 30, the first on the start date and each one day after the last, with no date missing or repeated.
- Every weekday matches its date, and every rest day falls on a day in none, a post every day.
- The pillar counts add up to the number of post days, the shares add up to 100%, and the rows match the counts.
- No pillar, channel-and-format or hook pattern on two consecutive post days, no pillar on more than half the post days, and no repeated hook or topic.
- Every post day has a channel, format, topic, hook, full draft at the right length, call to action and visual brief.
- Every event from the list that falls in the 30 days is on its date, any later one is listed as "after the 30 days", and no holiday date is a guess.
- No number, price, offer, quote or result appears that isn't in what they gave.
- The calendar view shows the same channel, format and topic as the sheet for every day.
Then reply with the output only, ending with one line: "Checked: 30 rows, <n> posts, <n> rest days, <n> pillars, <n> to check."
## 8. Setup
Works as one paste in any chat app. Where the app can run code or create files, you get content-calendar.csv (and an .xlsx where it can) to download; where it can't, you get the whole sheet as CSV to paste into Excel or Google Sheets. Nothing is posted or scheduled for you: every post is a draft for you to check, then copy into your channels or your scheduling tool.Review your result locally
Paste the result after your assistant creates it. This optional check stays in this tab and is not sent to LazyCoder.
A month of posts with dates, hooks and drafts, as a sheet and a calendar.
Version & review details