Skip to main content

Creates custom weekly/monthly/... photo calendars

Project description


A Python utility to create custom weekly/monthly/... photo calendars. For example: template delphinus

Table of Contents


The program creates the calendar in HTML format.

Note: you can then print it to PDF using browser or, e.g., weasyptint utility.

User may provide (see examples below):

  • name of weekdays and months and their abbreviations
  • images (for each week, for title page, for backgrounds)
  • name-days
  • public holidays
  • religious holidays
  • notes (friends' birthdays, anniversaries, ...)
  • template how the final calendar looks like
  • title, first week day, ...
HTML templates

The produced HTML structure and CSS styling is defined by template - a python module defining toHTMLString(calendar) function and CSSString string variable. As an example and inspiration, a few predefined templates are provided. See examples, documentation or source code for more information how to create a custom template.


The package works with both Python 2 and 3 (tested on Ubuntu 16.04 LTS and Python 2.7.12 and Python 3.5.2).




from photocalendar import PhotoCalendar
calendar = PhotoCalendar( # not all arguments are mandatory
	outputBase                = "/some/output/base",
	year                      = 2019,
	firstWeekDay              = "Tu", # Tuesday as the first week day? Well, why not...
	imagesDirectory           = "/some/directory/with/images/for/each/week",
	imageDescriptionsFile     = "/some/file/with/image/descriptions/for/each/week",
	backgroundImagesDirectory = "/some/directory/with/backround/images/for/each/week",
	title                     = "Some calendar title",
	titlePageImage            = "/some/image/for/title/page",
	titlePageBackground       = "/some/background/image/for/titlepage",
	lastPageBackground        = "/some/background/image/for/last/page",
	nameDaysFile              = "/some/file/with/name-days",
	religiousHolidaysFile     = "/some/file/with/religious/holidays",
	publicHolidaysFile        = "/some/file/with/public/holidays",
	notesFile                 = "/some/file/with/notes/like/birthdays/etc",
	weekDayNamesFile          = "/some/file/with/custom/weekday/names",
	abbrWeekDayNamesFile      = "/some/file/with/custom/abbreviated/weekday/names",
	monthNamesFile            = "/some/file/with/custom/month/names",
	abbrMonthNamesFile        = "/some/file/with/custom/abbreviated/month/names",
	template                  = "delphinus",


# not all arguments are mandatory
photocalendar \
	--output-base                 /some/output/base \
	--year                        2019 \
	--first-week-day              Tu \
	--images-directory            /some/directory/with/images/for/each/week  \
	--image-descriptions-file     /some/file/with/image/descriptions/for/each/week \
	--background-images-directory /some/directory/with/backround/images/for/each/week \
	--title                       "Some calendar title" \
	--title-page-image            /some/image/for/title/page \
	--title-page-background       /some/background/image/for/titlepage \
	--last-page-background        /some/background/image/for/last/page \
	--name-days-file              /some/file/with/name-days \
	--religious-holidays-file     /some/file/with/religious/holidays \
	--public-holidays-file        /some/file/with/public/holidays \
	--notes-file                  /some/file/with/notes/like/birthdays/etc \
	--week-day-names-file         /some/file/with/custom/week/day/names \
	--abbr-week-day-names-file    /some/file/with/custom/abbreviated/week/day/names \
	--month-names-file            /some/file/with/custom/month/names \
	--abbr-month-names-file       /some/file/with/custom/abbreviated/month/names \
	--template                    delphinus

Template examples

Note: the photos and backgrounds are only illustrative. They are provided by the user in the real use case.

The title page and one inside page is shown.

In the illustrations, picture of Golden Gate Bridge and picture of Matterhorn are used.

Template delphinus:

Weekly A5 landscape calendar template delphinus

Template columba:

Monthly A4 portrait calendar template delphinus

Template lupus:

Two-weeks calendar template delphinus


  1. Using file:

    python install [options], e.g. python --user

  2. Using make (calls internally):

    make install [options], e.g. make install USER=TRUE PYTHON=python3

  3. Using pip

    [sudo] pip install [options] photo-calendar, e.g. pip install --user photo-calendar

What is here

file/directory description
bin directory containing executable python script
doc source files for HTML documentation
examples directory with examples
images images for github page (e.g., templates illustrations)
locale files for localization (public holidays, name days, etc.)
Makefile makefile for the project (with targets help, install, doc, test, clean, dist)
photocalendar actual python package python setup file for installation
tests python unit tests


Pull Requests

Are welcome. Especially:

  • locales (name-days, public holidays)
  • templates

But, please, discuss the intention beforehand with the author.

Bug reporting

In case of any question or problem, please leave an issue at the githup page of the project.



This project is licensed under the LGPL License - see the license file for details.


  • to Petr Hlaváček for the inital idea and LaTeX implementation and providing his source code
  • to dominate python package for HTML creation inspiration

Project details

Download files

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

Files for photo-calendar, version 0.1.1
Filename, size File type Python version Upload date Hashes
Filename, size photo_calendar-0.1.1-py2-none-any.whl (28.1 kB) File type Wheel Python version py2 Upload date Hashes View
Filename, size photo_calendar-0.1.1-py3-none-any.whl (28.1 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size photo-calendar-0.1.1.tar.gz (18.3 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page