Contents

Creating a 2026 Circular Year Calendar using the TikZ Calendar Library in LaTeX

This article explores design techniques for creating a 2026 circular infographic calendar using the calendar and shadings libraries in LaTeX TikZ.


Traditional wall or desk calendars typically rely on rigid, square 12-month table grids. However, by taking advantage of LaTeX’s TikZ package and its built-in calendar library, we can craft an artistic circular infographic calendar.

Originally conceived by Till Tantau (author of PGF/TikZ) and refined by Stefan Kottwitz, this layout features a prominent central year node surrounded by 12 radial month circles.

In this guide, all dates and day-of-the-week calculations are tailored specifically for the Year 2026 (where January 1, 2026 falls on a Thursday, February 2026 has 28 days, etc.).


Here is the complete code customized for the Year 2026:

% A calendar of circles - Year 2026
% Author: Till Tantau (The PGF manual)
% Modifications: Stefan Kottwitz & Cleanups
\documentclass{article}
\usepackage{tikz}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\setlength\PreviewBorder{5pt}%
\usetikzlibrary{calendar,shadings}
% Default Sans-Serif Font
\renewcommand*{\familydefault}{\sfdefault}
% 4-Season Color Scheme
\colorlet{winter}{blue!60!cyan}
\colorlet{spring}{green!60!black}
\colorlet{summer}{orange!85!black}
\colorlet{fall}{red!80!black}
% TeX Counter for Radial Angle Computation
\newcount\mycount
% Set Target Year to 2026
\year=2026
\begin{document}
\begin{tikzpicture}[every day/.style={anchor=mid,font=\tiny\bfseries}]
  % 1. Lingkaran Besar Paling Luar - DIUBAH MENJADI BIRU SOLID
  \fill[blue!35] (0,0) circle (7.4cm);
  % 2. Lingkaran Gradasi di Tengah (Biru di pinggir, putih di pusat)
  \draw[shading=radial, outer color=blue!60!cyan!80, inner color=white, draw=none] (0,0) circle (2.9cm);
  % 3. Teks Tahun "2026" tepat di Pusat
  \node[circle, draw=none, font=\fontfamily{phv}\selectfont\Huge\bfseries] at (0,0) 
    {\textcolor{blue!90!black}{\the\year}};
  % 4. Loop Melalui 12 Bulan dengan Gradasi Lembut (Putih di Tengah Bulan)
  \foreach \month/\monthcolor/\monthname in {
    1/winter/January, 2/winter/February, 3/spring/March, 4/spring/April, 5/spring/May, 6/summer/June, 
    7/summer/July, 8/summer/August, 9/fall/September, 10/fall/October, 11/fall/November, 12/gray!70!black/December
  } {
    % Hitung posisi sudut radial (Januari di posisi jam 6 / -90 derajat)
    \mycount=\month
    \advance\mycount by -1
    \multiply\mycount by 30
    \advance\mycount by -90
    % Koordinat pusat lingkaran bulan
    \coordinate (M) at (\the\mycount:5.4cm);
    % Gambar Lingkaran Bulan (Gradasi memudar dari luar ke dalam putih)
    \shadedraw[shading=radial, 
               outer color=\monthcolor!45!white, 
               inner color=white, 
               draw=none] 
      (M) circle(1.4cm);
    % Cetak Nama Bulan Tepat di Pusat Lingkaran Kecil yang Putih
    \node[font=\large\sffamily\bfseries, color=\monthcolor!90!black] at (M) {\monthname};
    % Plot Angka Kalender 2026 mengelilingi nama bulan
    \calendar at (M) [
      dates=\the\year-\month-01 to \the\year-\month-last
    ]
    if (Sunday) [red] % PENTING: pakai kurung SIKU, bukan kurung kurawal,
                       % supaya "red" dibaca sebagai opsi warna TikZ,
                       % bukan sebagai kode TeX biasa.
    if (all) {
      % Mengatur rotasi penempatan tanggal agar melingkar pas
      \mycount=1
      \advance\mycount by -\pgfcalendarcurrentday
      \multiply\mycount by 11
      \advance\mycount by 90
      \pgftransformshift{\pgfpointpolar{\mycount}{1.2cm}}
    };
  }
\end{tikzpicture}
\end{document}

The resulting graphical output renders a stunning circular calendar for 2026:

2026 Circular Calendar TikZ
2026 Circular Calendar Output


TikZ’s calendar library automatically computes weekday alignment for any given month in 2026:

dates=2026-\month-01 to 2026-\month-last

The engine automatically handles:

  • January 2026 starting on a Thursday with 31 days.
  • February 2026 having 28 days (non-leap year).
  • Highlighting all Sundays in red via if (Sunday) [red].

Month background shading is grouped by season:

  • Winter: Blue (blue) for months 1 (Jan), 2 (Feb), and 12 (Dec).
  • Spring: Deep Green (green!60!black) for months 3 (Mar), 4 (Apr), and 5 (May).
  • Summer: Warm Orange (orange) for months 6 (Jun), 7 (Jul), and 8 (Aug).
  • Fall: Rich Red (red) for months 9 (Sep), 10 (Oct), and 11 (Nov).

Each month node is positioned at a radius of 5.4 cm5.4\text{ cm} from the origin at 3030^\circ increments (360/12=30360^\circ / 12 = 30^\circ):

Month Angle=(month1)×3090\text{Month Angle} = (\text{month} - 1) \times 30^\circ - 90^\circ

Inside each month node, day numbers (1,2,,311, 2, \dots, 31) are arranged in a ring at radius 1.2 cm1.2\text{ cm} using polar transforms:

Day Angle=(1current_day)×11+90\text{Day Angle} = (1 - \text{current\_day}) \times 11^\circ + 90^\circ

Try these modifications to customize your calendar:

  1. Highlighting Holidays / Special Dates: Add conditional styling inside the \calendar options, for example:
    if (equals=2026-12-25) [red, font=\bfseries] % Christmas Day
  2. Custom Color Gradients: Experiment with different color themes such as pastel or dark mode palettes.

The calendar library in TikZ LaTeX offers a powerful engine for building automated, custom-tailored calendars for 2026. Combining automated date calculations with radial shading yields a premium infographic graphic.


  1. Till Tantau & Stefan Kottwitz, A calendar of circles, TeXample.net
  2. Till Tantau, The TikZ and PGF Manual (Calendar Library), v3.1.10, 2024.

Written by: Aan Triono
License: CC BY-SA 4.0

Related Content