If you've ever built a wall calendar, planner, or date-driven publication in InDesign by hand, you know the drill: duplicate a page, update the date, duplicate again, fix the weekend styling, repeat for 365 days. Calendar Generator is a UXP panel built to take that entire process off your plate, turning a date range and a template into a fully generated, print-ready document.
You can find the complete documentation for this tool here.
Here's a tour of what it can do.
Start with a date range, not a blank page
At its core, the panel asks for a start and end date (in a simple YYYY-MM-DD format) and generates a page for every day in between — both dates inclusive. Don't need every single day? Flip on "Render only the first day of each month" and it will produce one page per month instead.
Multi-day spreads
Not every calendar is one day per page. The "Number of days in Spread" setting lets you group several consecutive calendar days onto a single InDesign spread. Each day within that spread gets its own ordered label — date, date#2, date#3, and so on — so a 7-day layout might place days 1–4 on the left page and 5–7 on the right, all driven by where you put the labeled frames.
Smart page alignment
Want every month to start on a right-hand (odd) page? The "Start month on..." setting handles that automatically, inserting a single blank page only when it's actually needed to keep the alignment correct.
Weekends, your way
Weekend days are fully configurable — not locked to Saturday/Sunday. Whatever days you check feed both the {{is_weekend}} variable and the Weekend Parent page rule, so highlighting a four-day week or a Friday–Saturday weekend is just a checkbox away.
Variables and Script Labels, without leaving the panel
Rather than digging through InDesign's Script Label panel, Calendar Generator gives you one workflow: place your cursor in a text frame and insert a variable like {{month_de}}, or select a frame and assign it a Script Label directly. For multi-day spreads, you pick a "Day order" so a frame gets labeled correctly as the 2nd, 3rd, or later day in that spread.
A built-in Mini Month calendar
Most planner and calendar layouts need a small reference calendar somewhere on the page — and this is where the panel goes deep:
- Choose 7, 14, 21, 28, or 31 date columns, and a preferred number of date rows (or let it size automatically).
- Align day 1 to the weekday grid for a classic month-grid look, or turn that off for a simple sequential date strip.
- Pick any day as the first day of the week.
- Show adjacent-month dates in the empty leading/trailing cells, or compress a six-week month down into five rows when the layout allows it.
- Control the month title format (from "January 2027" down to "01/2027"), weekday name format (full, short, narrow, or hidden), and even a dedicated locale for the mini calendar itself.
- Highlight the current generated date and/or weekend days, and optionally display week numbers using ISO 8601, Sunday-based, or a fully custom first-week rule.
Because different Parent pages often need different mini-calendar styling, you can save a Mini Month "profile" per Parent/Master — each with its own scoped styles, so nothing collides across templates.
Custom translations
Need calendar text in a language InDesign doesn't natively support, or just your own house style for month and day names? The Localization tab lets you create custom translations, each of which automatically generates a matching pair of variables, like {{month_de}} and {{day_de}}.
Pulling in data from CSV
The Data tab connects a CSV file to your calendar. Map one column as the calendar date, and the panel automatically detects any other columns as insertable variables. Columns whose header starts with @ are treated specially — as file-placement columns, where each cell is a path to an image or file that gets placed into a graphic frame by label, with its own fitting mode per column.
PDF sources and layout rules
Multiple PDF sources can be added as assets for the generated calendar. On the Layout & Rules tab, you can define pages to insert before and after each month (each with its own Parent/Master), and set up a full Parent-assignment priority: first day of month, then weekend, then odd/even position, then a fallback blank-page Parent. Inserted pages are tracked as "managed" content, so running Regenerate safely replaces them without disturbing the rest of your document.
Presets for repeatable workflows
Once you've dialed in a calendar setup — date settings, Mini Month configuration, Parent profiles, CSV mapping, PDFs, and translations — save it as a preset. Presets can be exported and shared (though, sensibly, actual CSV/PDF file links aren't included and need to be relinked on the receiving machine). A reset option restores default settings without touching your saved presets.
Generation controls
When you're ready, Generate Calendar runs the whole process, with a progress bar and status messages to track it. You can choose whether a run is cancellable mid-generation or treated as a single undoable step — useful depending on how large or experimental the run is.
Why it matters
Calendar Generator turns what's normally a repetitive, error-prone manual task into a configuration exercise: set your rules once, and let the panel handle every page, date, label, and Parent assignment consistently across the entire document. Whether you're producing a single wall calendar or a full year of planner pages tied to a CSV of events, it's built to scale without the copy-paste fatigue.