Cuti-cuti Malaysia: Customisable state-by-state holiday calendar for 2025

Annual cuti-cuti Malaysia calendar time — 2025 is nigh upon us.

The Cuti-cuti Malaysia 2025 calendar LaTeX source files are available as an Overleaf Overleaf read-only project here. By default, when you open the project, it compiles and generates (may take about half a minute) an A4-sized portrait calendar that highlights national and Penang state public holidays and school holidays, along with the nongli (Chinese lunisolar) calendar. Once the compile has finished and the PDF preview is updated, click on the icon above the PDF preview panel, or Overleaf Menu >   PDF to download it.

Cuti-cuti Malaysia 2025 calendar template on Overleaf
Cuti-cuti Malaysia 2025 calendar template on Overleaf

Other sizes and layouts

Other size or layout options are available: refer to the infographic below; choose the corresponding file name from the file tree panel, then click Recompile above the PDF preview panel.

Infographic showing the different size and layout versions available
Different sizes and layouts available for the Cuti-cuti Malaysia 2025 calendar

This year I added the 1610 and 169 versions, to produce PDFs with 16:10 and 16:9 aspect ratios: you can then generate wallpapers from them using GhostScript and ImageMagick.

First generate .jpg images from the .pdf using GhostScript — I chose 600 dpi to make sure that I get good resolution:

$ gs -o cuti2025-1610-%02d.jpg -sDEVICE=jpeg -r600 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 cuti2025-1610.pdf
$ gs -o cuti2025-169-%02d.jpg -sDEVICE=jpeg -r600 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 cuti2025-169.pdf

We’ve already got 12 .jpg there, one for each month. But the file sizes are unnecessarily large, so I’d use ImageMagick to resize them a bit:

$ mogrify -unsharp 0x0.75+0.75+0.008 -resize 3456x cuti2025-1610-*.jpg
$ mogrify -unsharp 0x0.75+0.75+0.008 -resize 1920x cuti2025-169-*.jpg

Obtaining/editing the source files

You’ll need to edit the source code if you’d like to make calendars for other states (modify \providecommand{\mylocation}{Penang}), change the pictures, or add other events etc (see my blog post from last year or the cdcalendar README file for details on possible customisations.) You can either clone an editable copy of the project to your own Overleaf account; or download the full source code as a .zip file to your local machine by Overleaf Menu > Source. When compiling on a local machine, use XeLaTeX and compile twice to get the event location markers correct.

Data sources

The calendar data used in this sample were obtained from the following sources.

  1. Malaysian public holiday data was sourced from BKPP, JPM’s portal.
  2. Malaysian school holiday data was sourced from the Malaysian Ministry of Education’s portal.
  3. Chinese lunar calendar data was generated from here, converted to a CSV file and Simplified Chinese and some minor editing for typesetting purposes (inserting \\ for line breaks.
  4. Watercolour paintings in the sample calendar are by Instagram Wong Mun Choong.
  5. The codebase uses the custom LaTeX document class, GitHub cdcalendar. The basic template is also available on Overleaf Overleaf.

Leave a Reply

Your email address will not be published. Required fields are marked *