> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/in-depth-articles/25-how-to-create-a-multilingual-customisable-cd-disk-jewel-case-calendar-using-latex.md).

# How to create a multilingual, customisable CD disk jewel case calendar using LaTeX

LaTeX's versatility makes it a rather handy (and free!) tool for creating various goodies, including monthly calendars. So here's my stab at creating a [LaTeX class and template](https://www.overleaf.com/read/vtqtzgbcvmbg) for creating customisable, multilingual monthly calendars, that fit in CD or 3.5" disk jewel cases. Pictures and events can be added, and you can choose any month range for your calendar—it's not necessary that they begin on January and end on December.

[![{{{alt}}}](/files/LKrzg4V7osgnWJFWfcfE)](https://www.overleaf.com/read/vtqtzgbcvmbg)

You can make them for personal use, gifts or memorabilia for special events e.g. anniversaries. They may also be used for publicity or merchandise if you happen to be running a club or society. For example, you could make a calendar showcasing birds frequenting your neighbourhood for your local birdwatching club. Work-wise, you might want to make a calendar for your journal paper reading group, highlighting important dates for assignments and conference submissions in your field in the coming semester.

### The monthly calendars

The `cdcalendar` class will set up the calendar size to [fit in a CD jewel case](https://www.overleaf.com/read/htkctjjgmxjx), and lay them out on an A4-sized paper:

```latex
\documentclass[12pt]{cdcalendar}
\begin{document}

%% June 2015
\monthCalendar{2015}{06}
\clearpage

%% July 2015
\monthCalendar{2015}{07}
\end{document}
```

If you want to make a smaller calendar to [fit in 3.5" floppy cases](https://www.overleaf.com/read/vtqtzgbcvmbg) instead, pass the `small` option to the `cdcalendar` class:

```latex
\documentclass[9pt,small]{cdcalendar}
```

For those who are interested in the technical details: the calendar is rendered with `tikz`, and the 2-up or 4-up layout is done with `pgfpages`.

### Adding Illustrations

I've defined a `\illustration` command for adding graphics to each page of the calendar:

```latex
\usepackage{graphicx}

%% syntax: \illustration[caption]{width}{image-file-name}
\illustration[We had fun at the birthday party!]{8.5cm}{Party.jpg}
```

The image will be added at the top left of the current page. The original proportion will be preserved, so you do have to choose an illustration of appropriate proportions to fit the empty space.

### Adding/marking events

You can mark events on each month using the `\event` command:

```latex
\event{2015-10-25}{Daylight saving time ends}
```

The event will be listed above the monthly calendar, and the date is circled in the calendar itself. Events must be given *after* the relevant `\monthCalendar` and on the same page.

If your event spans over several days, you can give the duration (in days) as an option to `\event`:

```latex
\event[5]{2015-07-26}{ACL 2015, Beijing}
```

Alternatively, you can also give the *end date* as the option instead:

```latex
\event[2015-07-31]{2015-07-26}{ACL 2015, Beijing}
```

Both forms of the command will give the same output.

If an event spans two months, e.g. `\event[9]{2015-06-27}{Summer Camp}`, you'll have to issue this command in both months i.e. once for June and once for July:

```latex
\monthCalendar{2015}{06}
\event[9]{2015-06-27}{Summer Camp}
\clearpage

\monthCalendar{2015}{07}
\event[9]{2015-06-27}{Summer Camp}
\clearpage
```

### Multilingual Calendars

The dates, month names and weekday initials can be localised to languages that are supported by the `babel`, `translator` and `datetime2`.

For example, to get a calendar with Spanish dates, just pass `spanish` as a class option:

```latex
\documentclass[12pt,spanish]{cdcalendar}
```

We've tested the following language options: `british, spanish, french, ngerman, italian, portuges, polish, croatian, greek`.

Just remember to [use LuaLaTeX](https://www.overleaf.com/blog/167) to compile your project if it's in `french`—it doesn't work well with PDFLaTeX, and XeLaTeX doesn't work well for this template.

### Customising styles

The fonts and colours of most elements can be customised at any point in the calendar; take a look at the templates to see some examples. For convenience's sake, a `\makeCover` command (and the necessary metadata commands) is also provided.

It's been a lot of fun creating [this template](https://www.overleaf.com/read/vtqtzgbcvmbg)—we're sure you'll find many more uses for this calendar. Enjoy!


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/in-depth-articles/25-how-to-create-a-multilingual-customisable-cd-disk-jewel-case-calendar-using-latex.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
