Developer Guide

This guide shows how to use pyplanner as a Python library in your own project. It walks through the calendar model, holiday providers, template rendering and PDF post-processing step by step with code examples you can copy and adapt.

If you are looking for how to design planner templates (HTML/CSS), see the Designer Guide. If you want to contribute to the pyplanner package itself, see Internals.

Install from a local clone:

pip install /path/to/feather-flow

Or install in editable mode for development:

pip install -e /path/to/feather-flow

Playwright needs a browser binary for PDF rendering. Install it once after the package is installed:

playwright install chromium

The shortest path from zero to a rendered planner:

from pyplanner import Calendar, Planner, Params

calendar = Calendar()
params = Params.load_xml("planners/demo/params.xml").apply()

planner = Planner(
    "planners/demo/demo.html",
    calendar=calendar,
    params=params,
)

# Render to HTML string
html = planner.html(base="planners/demo")

# Or render to PDF bytes
pdf_bytes = planner.pdf()
with open("demo.pdf", "wb") as f:
    f.write(pdf_bytes)

The sections that follow explain each building block in detail.