philster

Party Planner — Development skill for Claude Code

Development community

URL-to-calendar agent skill for Claude Code and Codex.

How to install Party Planner

This entry records only its repository, not the path inside it, so there is no exact command to give. Open philster/party-planner and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Party Planner does

URL-to-calendar agent skill for Claude Code and Codex.

Alternatives in Development

README

Party Planner

An agent skill that adds events to Google Calendar from a pasted URL. It checks for duplicates before fetching anything, and it can also print a day's agenda. The deterministic work lives in `bin/` scripts; the model's job is to judge ambiguity and to gate the actual write.

Everything a script can do, a script does: clean the URL, look up dupes, detect the platform and extract fields, build the insert payload (title, description, location, end-time rules), compute the day window with `zoneinfo` instead of a hardcoded offset, and perform the write itself. What's left for the model is summarizing a rambling description, picking a title handling a page none of the extractors know, flagging a possible cross-URL duplicate, and asking before anything gets written.

What's here

  • bin/check_dup — cleans the URL and searches the calendar first, so a duplicate gets caught before a fetch is even attempted.
  • bin/fetch_event — extracts from Luma, Partiful, Eventbrite, and Splashthat by platform, falling back to a generic schema.org/OpenGraph reader for anything else. Pages neither can parse exit 4 and hand off to the agent's own web-fetch tool.
  • bin/build_payload — every title, description, location, and end-time rule lives here, in one place, so nobody hand-assembles an insert body or hand-computes a timezone offset.
  • bin/create_event — the only script that writes. It wraps gws calendar events insert and requires --approve-token, the digest build_payload printed for that exact body, so the payload the user approved is provably the one that gets written. Also supports --dry-run.

Fetched page content is treated as hostile throughout: `fetch_event` caps, de-tags, and strips control characters from every remote-authored field, rejects non-`http(s)` URLs, and labels the rest so the agent reads it as data rather than as instruction. Pair this with a host permission rule denying `gws calendar events insert|patch|update|delete