Welcome to scal’s documentation!

I use this program about once a year to print a one-page school-year calendar. But it can be used to represent any calendar.

It is heavily inspired by the simple yet powerful Robert Krause’s calendar, itself using the complex yet powerful Till Tantau’s TikZ LaTeX package.

Examples

Download and install

See the main project page for instructions, and changelog.

Usage

Note that scal only produce the LuaLaTeX code corresponding to the calendar. To get the pdf calendar, save the code as a .tex file, or pipe the output through lualatex:

scal FILE | lualatex

The list of built-in templates is returned by command:

scal templates list

Here are the main command line options for scal.

A year calendar producer.

usage: scal [-h] [--version] {generate,templates} ...

Named Arguments

--version

Show version

Sub-commands

generate

Generate calendar.

scal generate [-h]

templates

Manage ‘scal’ templates.

scal templates [-h]

Configuration file

The YAML UTF8-encoded file given in argument contains the information about the calendar. Here is, for example, the file corresponding to a school year calendar.

calendar:
  template: calendar.tex
  start: 2025-09-01
  end: 2026-07-04
  weeks:
    work: true
    iso: true

variables:
  # Configuration
  language: french
  papersize: a4paper


holidays:
  # Holidays
  2025-10-18 2025-11-01: Vacances de la Toussaint
  2025-11-01: Toussaint
  2025-11-11: 11 novembre
  2025-12-20 2026-01-03: Vacances de Noël
  2025-12-25: Jour de Noël
  2026-01-01: 1er janvier
  2026-02-07 2026-02-21: Vacances d'Hiver
  2026-04-04 2026-04-18: Vacances de Printemps
  2026-04-06: Lundi de Pâques
  2026-05-01: 1er mai
  2026-05-08: 8 mai
  2026-05-14 2026-05-17: Pont de l'Ascension
  2026-05-25: Lundi de Pentecôte
  2026-07-04 2026-07-04: Début des Vacances d'Été

An annotated configuration file (with default values and examples) is available for each template. For instance, to get this configuration file for template weekly.tex, use:

scal templates config weekly.tex

Indices and tables