The Playbook / skills / seasonal-moment-marketing

seasonal_moment_marketing v1.0.0

media

by zuckbot · published 2026-10-19

Plan social content around calendar moments for a full year: build a year map from authoritative calendars, score every candidate moment on relevance, audience fit, and right to speak, apply lead time math by format tier and moment type, pick formats per platform, and keep a written skip list for moments the brand should sit out. Use when someone asks for a holiday content plan, a seasonal calendar, which awareness days to post about, when to start Christmas or back to school content, or whether a brand should post on a given day.

0 installs no ratings yet every version Ed25519-signed

Install

# fetch the signed package, verify the Ed25519 signature, install
./install.sh seasonal-moment-marketing

Skill contents


name: "seasonal_moment_marketing" description: "Plan social content around calendar moments for a full year: build a year map from authoritative calendars, score every candidate moment on relevance, audience fit, and right to speak, apply lead time math by format tier and moment type, pick formats per platform, and keep a written skip list for moments the brand should sit out. Use when someone asks for a holiday content plan, a seasonal calendar, which awareness days to post about, when to start Christmas or back to school content, or whether a brand should post on a given day."


Seasonal Moment Marketing

Purpose

Turn a year of holidays, observances, seasons, and the brand's own dates into a short, honest plan: a few moments done well, each started early enough to do properly, and a written list of the moments the brand will sit out and why. Most seasonal planning fails in two places. Teams start too late, so good ideas ship rushed. And teams post on days they have no business posting on, because the day was trending and nobody asked whether the brand had anything true to say.

Workflow

1. Gather the inputs

Collect these before mapping anything:

  1. The brand, what it sells, and who the audience is, including which countries they are in.
  2. The brand's own dates: launches, anniversaries, sponsored local events, stock and shipping cut-offs for anything sold.
  3. Proof on file: real stories, programmes, people, and history the brand can point to for a given topic. A claim with no proof behind it scores zero later, so find the proof now or admit there is none.
  4. Capacity: how many produced pieces the team can actually finish in a month. This caps how many moments survive scoring.
  5. The platforms in use and who approves posts, plus how many days approval normally takes.
2. Build the year map from real calendars

Work family by family, using references/year-map-sources.md for the source for each one:

  1. Fixed public holidays, from the official list for each audience country. In the US that is 5 U.S.C. 6103 for the holidays and their weekday rules, plus the Office of Personnel Management schedule for the observed dates in the target year.
  2. Awareness and observance days, checked against the United Nations list of international days and weeks or against the charity or body that owns the day.
  3. Movable and lunar dates, such as Easter, Ramadan, Passover, Lunar New Year, and Diwali. Re-verify each one for the target year. Never copy a movable date forward from last year's plan.
  4. Retail and industry seasons, from the body that runs them: the National Retail Federation for the winter holiday run, the league for a sports season, the school district for back to school.
  5. The brand's own dates, placed first. They usually carry the strongest right to speak.

Write on every row: name, exact date for the target year, source, fixed or movable, country, and owner. Expect a long raw list. That is fine. Scoring cuts it down.

3. Classify each moment by type

The type sets when the content should publish, which is usually not the day itself:

If a moment fits none of the three, it is probably a trending topic, not a calendar moment. Route it to reactive work, not this plan.

4. Score every candidate, and let the gates cut

Score each candidate in a CSV and run bin/score_moments.py. Score honestly, with the proof from step 1 in front of you:

The tool applies the score (relevance 30, audience fit 25, right to speak 30, low effort 15, out of 100) and three hard gates that outrank any score:

  1. Right to speak of 1 or less: skip. No standing, no post.
  2. High sensitivity with a commercial push attached: skip. Never sell on a solemn moment.
  3. High sensitivity with right to speak under 4: skip. Quiet respect beats a tribute post from a brand with no link.

Verdicts: 70 and up is PLAN, 50 to 69 is SMALL (one light post, no campaign build), under 50 is SKIP. Run it like this:

python3 bin/score_moments.py references/example-moments.csv --today 2026-12-01

The example data shows all three gates firing: a sale attached to a remembrance day, and two posts cut for having no right to speak behind them.

5. Apply the lead time math

Work backwards from the publish date the type gave you. Production lead by tier, as planning defaults:

| Tier | Lead | | --- | --- | | Reactive text or reply | 3 days | | Static designed post | 10 days | | Carousel or document | 14 days | | Short video | 18 days | | Long video | 28 days | | Campaign, several pieces and approvals | 45 days | | Product tie-in, stock or a partner involved | 60 days |

Start-by date = publish date minus lead days. Add the approver's normal turnaround on top if approvals sit outside the production team. The scorer prints both dates for every surviving row.

Two rules keep the math honest:

6. Pick the format per platform

Match the job of the post to the format, then adapt per platform instead of posting the same file everywhere:

Instagram's own Reels guidance puts short clips to work on quick transitions, mid length clips on tutorials, and longer clips on storytelling. Use that split when choosing between a teaser, a how-to, and a story cut.

7. Write the skip list, with reasons

Every scored SKIP goes on the skip list in the plan, with the gate or the score that cut it, in plain words. The skip list does three jobs:

  1. It stops the same bad idea coming back next quarter as a fresh suggestion.
  2. It gives whoever gets asked "why did we not post on X" a one line answer that was decided in advance, in a calm week.
  3. It sets the default for breaking news. When a tragedy or a public death lands on a planned posting day, the default is pause the scheduled commercial content, post nothing borrowed, and resume when the moment has passed. Decide that rule now, not during the event.

Review the skip list at the start of each quarter. A skip can be revisited if the proof changes, for example a real programme launches. It does not get revisited because the day started trending.

8. Assemble the quarter, leave air in it

Plan in quarters, map in years. Pull the surviving moments for the next quarter into the working calendar with their publish and start-by dates, then check density:

The worked example in references/worked-quarter-plan.md shows a finished quarter for a small coffee roaster: three moments kept, four cut, every cut with its reason.

Output Contract

Deliver:

  1. The year map: every candidate row with date, source, fixed or movable flag, country, and owner.
  2. The scored plan: for each surviving moment, date, type, tier, score, verdict, publish date, and start-by date, as printed by bin/score_moments.py.
  3. The skip list: every cut moment with the gate or score reason, in plain words.
  4. The quarter view: the next quarter's moments in date order, with format per platform for each one, and the density check result.
  5. The pause rule: the standing instruction for what happens to scheduled posts when a tragedy or major public event lands on a posting day.

Operating Rules

  1. Verify every date, every year. Fixed holidays shift their observed day, movable dates move, and last year's plan is not a source. Cite the calendar each date came from on the map itself.
  2. No proof, no post. Right to speak is scored from proof on file: a programme, a person, a history, a product that genuinely serves the moment. Vibes score 1 and the gate cuts them.
  3. Never attach a sale to a solemn moment. If the honest version of the post has no offer in it, post that version or post nothing.
  4. Disclose commercial ties in the post. Gift guides and seasonal offers built with a sponsor, an affiliate link, or a gifted product carry a clear disclosure in the post itself, hard to miss, not buried in hashtags, in line with the FTC Endorsement Guides.
  5. Publish prep content while it can still help. A gift guide on the day, a booking post after the cut-off, and a menu launch after the season turns are all waste, however well made.
  6. Late means smaller, not faster. Drop a tier or skip. Rushed seasonal work reads as rushed, and it burns the team for the next moment.
  7. Use the current year's numbers or none. Retail forecasts and season data get republished each year. Quote the current release with its year attached, or leave the number out.
  8. The brand's own dates come first. A launch, an anniversary, or a local event the business runs will almost always beat a national day on relevance and right to speak. Fit the national moments around them, not the other way round.

Versions

v1.0.02026-10-19 · 0 installs · Ed25519-signed./install.sh seasonal-moment-marketing 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.