Skip to main content

Namishu Calendar

Printable monthly calendars, ready for your plans.

Python 3.10+ License: MIT PDF: A4 landscape

English · 简体中文

September 2027 calendar, with a Monday-first grid and space to write in each day

Namishu Calendar is a small command-line tool that creates printable monthly calendars. Choose a year or month to get a PDF with one month per page and room to write in each day. Use it to put a family schedule on the fridge, display classroom activities on a noticeboard, or keep a study plan beside your desk.

The dates and page layout are prepared for you, so you can print a fresh calendar whenever you need one without drawing a grid or updating an old template. The default is A4 landscape with English labels and weeks starting on Monday. You can also change the labels, first weekday, colors, and margins to suit the way you plan.

Download the sample PDF. Print at actual size on A4 paper.

Installation

Requires Python 3.10+.

Install with either uv or pip:

uv tool install namishu-calendar
python -m pip install namishu-calendar

Both methods provide the namishu-calendar command. The Noto Sans Light font and default layout are included, so English calendars need no separate font installation.

Quick start

Generate the current year, January through December, as calendar.pdf:

namishu-calendar

Choose a different year:

namishu-calendar --year 2027

Generate one month by adding --month:

namishu-calendar --year 2027 --month 9

Omit --year to use the current year. Choose a different output path with -o:

namishu-calendar --year 2027 --month 9 -o calendars/september.pdf

The command prints the saved file location and page count. Relative paths are resolved from your current directory; parent directories are created as needed. An existing PDF at the output path is replaced.

Options

Option Purpose Default
--year YEAR Year from 1 to 9999 Current year
--month MONTH Generate just this month, from 1 to 12 All 12 months
-o, --output PATH PDF file location calendar.pdf
--config PATH YAML file with layout or font overrides Built-in settings
--help Show usage
--version Show the installed version

Customize the calendar

Write only the settings you want to change. Save this as calendar.yaml to start weeks on Sunday and use narrower side margins:

weekdays:
  week_start: sunday
page:
  margin_left: 15
  margin_right: 15
namishu-calendar --year 2027 --month 9 --config calendar.yaml

Unspecified settings keep their defaults, including the bundled font. Download the complete example configuration for all settings and comments. It works as downloaded with the bundled font; edit it and pass its local path to --config.

Setting How to customize it
Paper and margins page: dimensions and margins in millimeters
Month labels title.months: 12 names, January through December
Weekday labels weekdays.names: 7 names, Monday through Sunday
First weekday weekdays.week_start: monday through sunday
Text font_size in points and color, for title, weekdays, and day_numbers
Day boxes grid: spacing, border width, radius, and border color
Empty boxes grid.empty_opacity: 0 for invisible, 1 for a full border
Day numbers day_numbers.position: top_left, top_right, bottom_left, bottom_right, or center; padding sets the inset from the inside edge of each border
Vertical spacing title.gap_after and weekdays.gap_after: space below each text row, measured from visible glyph bounds
Custom font font: a TrueType font path, relative to the YAML file or absolute

Distances other than font sizes are in millimeters. Day-number padding is ignored when centered. Grid gaps are measured between the outside edges of borders. Layouts that leave insufficient room for text or cells produce an error before the output file is created or replaced. Quote hex colors, such as "#5f667e". The bundled Noto Sans Light font supports the default English labels; it does not include Chinese characters. For Chinese calendars, change the month and weekday names in YAML and supply a font with Chinese glyphs, such as Noto Sans SC.

To use a custom font, add its path to your YAML configuration:

font: fonts/MyFont.ttf

Font paths are relative to the YAML file, or they can be absolute. Fonts are embedded in the PDF, so recipients do not need to install them. Invalid settings, unreadable fonts, or missing characters produce an error.

License

Code and original documentation use the MIT License. The bundled Noto Sans Light font uses the SIL Open Font License 1.1. The same file includes the font's attribution and source information. Generated calendars may be printed, shared, modified, and sold.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

namishu_calendar-0.1.0.tar.gz (408.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

namishu_calendar-0.1.0-py3-none-any.whl (300.6 kB view details)

Uploaded Python 3

File details

Details for the file namishu_calendar-0.1.0.tar.gz.

File metadata

  • Download URL: namishu_calendar-0.1.0.tar.gz
  • Upload date:
  • Size: 408.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for namishu_calendar-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ff386a030fb35efdb0bf0083252e291f62c3bf341d38456d4b0ccf67a2f8db2d
MD5 fbf330371f5390674d182ab3215c118b
BLAKE2b-256 1d5a5aa2e14fffc59578d7380ece63c9da50f358b83e715b248815580cc63a69

See more details on using hashes here.

Provenance

The following attestation bundles were made for namishu_calendar-0.1.0.tar.gz:

Publisher: publish.yml on namishu/calendar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file namishu_calendar-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for namishu_calendar-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c18d3188c2d7945cf790d516db7b408f7fc2fadb95d71c2833a74baaccc55294
MD5 0a74f4d9e2088be1df7c41db1ae0b2d0
BLAKE2b-256 4302d6a6414170d1af31f45ca1d024490966ba1ecbfa299a0cfbc9630434b0ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for namishu_calendar-0.1.0-py3-none-any.whl:

Publisher: publish.yml on namishu/calendar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page