site-pages-content-calendar

site-pages-content-calendar is a skill for Claude Code, Codex from pnp/sharepoint-skills. It costs 97 tokens per session (1,381 once invoked), scanned A, original, MIT.

A tool for building an interactive HTML calendar from a SharePoint Site Pages library. A Site Pages library stores pages for a SharePoint site, and the calendar can show their names, dates, and publishing status.

In plain words
What is it for?
Use it to track published, draft, or scheduled SharePoint pages and inspect page details through a visual calendar.
Why use it?
It turns page metadata into a calendar view, making publishing plans and page states easier to review than a raw list.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to track published, draft, or scheduled SharePoint pages and inspect page details through a visual calendar.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/pnp/sharepoint-skills/site-pages-content-calendar
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add pnp/sharepoint-skills --skill site-pages-content-calendar
Clone the repo
git clone --depth 1 https://github.com/pnp/sharepoint-skills

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for site-pages-content-calendar

README.md
[![agentmods](https://agentmods.dev/badge/skills/pnp/sharepoint-skills/site-pages-content-calendar/github.svg)](https://agentmods.dev/skills/pnp/sharepoint-skills/site-pages-content-calendar)
Your own site
<a href="https://agentmods.dev/skills/pnp/sharepoint-skills/site-pages-content-calendar"><img src="https://agentmods.dev/badge/skills/pnp/sharepoint-skills/site-pages-content-calendar/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for site-pages-content-calendar

Your own site · 80×15
<a href="https://agentmods.dev/skills/pnp/sharepoint-skills/site-pages-content-calendar"><img src="https://agentmods.dev/badge/skills/pnp/sharepoint-skills/site-pages-content-calendar.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 97 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,381 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00097 $0.01381
Opus 5 $0.00048 $0.00691
Sonnet 5 $0.00019 $0.00276
Haiku 4.5 $0.00010 $0.00138

Measured 12d ago against content hash d005cfff5fad, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

site-pages-content-calendar scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

Skills/site-pages-content-calendar/site-pages-content-calendar/SKILL.md · 82 lines

How it starts

The opening of the file, as written. The whole thing — 82 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Build Site Pages Content Calendar

When to use

Use this skill when the user wants an interactive HTML calendar/dashboard for SharePoint Site Pages, especially with page names, published/draft/scheduled status, dates, and click-through detail views. The generated calendar should be full-size by default, using the available browser viewport and content area instead of a small embedded or fixed-height calendar.

Inputs

  • Current SharePoint site URL.
  • Site Pages library/list ID if available from context. If not available, discover or resolve it before querying.
  • Optional user preferences for destination file name, folder, colors, or layout.

Steps

  1. Inspect the Site Pages schema with get_list_schema.
    • Include hidden and read-only fields so status fields are visible.
    • Confirm internal names for: FileLeafRef, FileRef, Title, Created, Modified, FirstPublishedDate, _PublishStartDate, _ScheduledVersion, _ModerationStatus, _UIVersionString, _Level, Author, Editor, PageLayoutType, Description, and File_x0020_Type.
  2. List the Site Pages items with list_items.
    • Use rowLimit large enough for the whole library.
    • Use viewFields with the verified internal names.
    • Filter to actual pages where possible: File_x0020_Type = aspx.
    • If hasMore is true, process the returned dataRef, not the inline preview.
  3. Classify status without guessing.
    • Scheduled: only when _ScheduledVersion is non-empty or _ModerationStatus explicitly contains “Scheduled”.
    • Do not classify pages as scheduled just because _PublishStartDate exists; it can be defaulted/populated without a scheduled page.
    • Draft: _ModerationStatus contains “Draft” or item URL indicates draft.
    • Published: _ModerationStatus contains “Approved/Published” or item URL indicates published.
    • Unknown: no reliable status signal returned.
  4. Choose calendar placement date.
    • Scheduled pages: _PublishStartDate if available; otherwise Created with a label saying scheduled date unavailable.
    • Published pages: FirstPublishedDate if available; otherwise Created with a label saying published date unavailable.
    • Draft pages: Created date, labeled as draft placement.
    • Never invent missing dates; display “Not available” where absent.
  5. Render the calendar at full size.
    • Make the main calendar fill the available page width and height, using responsive layout such as min-height: 100vh, flexible columns/rows, and no narrow fixed-width wrapper around the calendar.
    • Use a full-width dashboard shell and let the calendar grid expand to the browser viewport.
    • Avoid small embedded previews, constrained cards, or fixed-height containers that make the calendar look miniaturized.
  6. Show page titles directly in calendar cells.
    • Each date cell must make the page title visible for pages on that date, using Title when present and falling back to FileLeafRef/file name.
    • Keep titles compact with truncation, wrapping, or a visible “+N more” affordance if the cell has many pages.
    • Do not hide all titles behind counts only; counts may supplement titles but must not replace them.
  7. Open a true right-side overlay drawer when a page title is clicked.
    • Clicking a visible page title in the calendar cell must open a fixed-position drawer that slides in from the right side of the browser viewport.
    • Implement the drawer with CSS such as position: fixed; top: 0; right: 0; height: 100vh; z-index: ...; transform: translateX(...), plus an overlay/backdrop and close button.
    • Do not render details below the calendar, below the selected date, or as an inline panel that appears after the calendar.
    • The drawer should overlay the page or sit above the calendar without causing the calendar to collapse into a compact widget.
    • The drawer should show all available metadata for the clicked page, including title, file name, source link, status, source status field, placement logic, created/modified dates, first published date, publish start date, scheduled version, moderation status, version, level, author, editor, page layout, and description.
    • Include a clear source page link that opens the page.
  8. Avoid congested calendar cells.
    • Show visible titles while keeping cells readable.
    • Provide compact status counts and a “+N more” affordance when useful.
    • Include month previous/next buttons and status filters.
  9. Generate the HTML using execute_code with outputDataRef: true.
    • Keep all CSS and JavaScript inline.
    • Do not reference external scripts, fonts, or images.
  10. Save the dashboard with create_file as .html using contentDataRef; omit contentDataPath for raw HTML output from execute_code.

Read the full file on GitHub · 82 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago First seen · 82 lines · 97 tokens per session scan A d005cfff5fad

Subscribe to this mod's changes

site-pages-content-calendar is a skill published in the GitHub repository pnp/sharepoint-skills (118 stars, last pushed 3d ago), licensed MIT. It adds 97 tokens to every session and 1,381 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.