Adobe InDesign Calendar Wizard
This is the documentation for the Adobe InDesign Calendar Wizard. There are six sections:
- Calendar Options - For the most part, these are very obvious but included here both for completenss and to
- Layers - The calendar wizard uses superimposed tables on different layers to allow for complex layouts
- Holidays - The calendar wizard can automatically include holidays from default or user defined holidays sets.
- Layout - Page size and orientation, plus Calendar sizing and placement
- Styling - Using syles to control the calendar appearance
- Language - Added support for more languages
When generating the calendar, there are a number of useful options. In the settings GUI, these are in the upper left section as highlighted in the image above.
- First/Last Month
- The script is able to generate a set of calendars for a user specified range of months between a First Month up to and including the Last Month. The range of years in the drop down box are determined by the current year minus eight to the current year plus twenty. A user pointed out that the layout for a given month repeats every 28 years, so January 1972, 2000, and 2028 are all identical. By allowing a range of 28 years and knowning this rule, a calendar can be generated for any month.
- At the time of this writing, the script supports 20 languages. Almost all of the translations have been added by various user contrubitons. See the language section for how to create additional language support. Note, changing the language only changes the month and day names, it will not alter the langauge of the holidays being printed. For that a multi-language holiday pack will be needed.
- Start on Sunday or Monday
- The "Start on Sunday or Monday" option controls which day of the week will be the first column. If Monday is selected, Sunday will become the last
- Date Rows
- The Date Rows selection is used to fix the number of rows in each month. Some months may have six weeks (six rows) while others have only 5. In a non-leap year, February may end up with only 4 weeks. If 5 rows are selected and there are 6 weeks, the last row will have diagonal lines seperating the second to last week and the last week. If 6 rows are selected and there are only 5 weeks, an empty row will be generated. The "Auto" setting will allow the script to make as many rows as necessary (4, 5, or 6) to accomodate the number of days in the month.
When dealing with features that put items into the date cells (such as holidays or the moon phase) you may not restrict the calendar to 5 rows. I couldn't think of a programatic solution to deal with placing items into the cells that belong to two dates, so that case is just not allowed.
- Count Work Week on
- The options are the first full week, or the week with January 1 in it. For example, in 2011, January 1st was a Saturday. If "First Full Week" is selected, the week of Jan 2 - Jan 9 will be work week 1. If "Week Including Jan 1" is selected, the week of Dec 26, 2010 - Jan 1, 2011 will be work week 1. This field is ignored unless "Include Work Weeks" is checked.
- Heading Style
- The options are "Auto", "Short: S", "Mid: Sun", "Long: Sunday". This field controls how the labels for the days of the week will be created. Short will only use the first letter. Mid will use the first three letters. Long will use the full name. If "Auto" is selected, Long will be chosen if the containing text frame is greater or equal to 7.5". Mid will be selected if the containing text frame is between 3.5" and 7.5". Short will be used otherwise.
- When checked, small calendars of the preceding and following month are included to the left and right of the month name. This option will tripple the length of time the script runs as it needs to generate 3 calendars for every month rather than 1.
- The mini-calendars are hard-coded to be 0.75 inches square. This is the smallest size I could make. In the script the variable called miniCalendarSize sets the size. The first two numbers determine the upper left corner, presently ("2", "2"). The last two set the bottom right corner ("2.75", "2.75"). To make the calendar bigger, enlarge the values of the last two numbers. Note, the table is moved after it is built, so all that matters is the relative spacing between the two points.
- There is a tutorial/example for creating custom mini-calendars that employ styling and can be put into unused cells in the calendar.
- When making multiple tables per page, the mini-calendars don't really make much sense and they make the formatting look really ugly. I decided that at four calendars per page, somebody might find it useful, but above that no. So, I put a lockout which prevents the mini calendar from being activated at greater than four calendars per page.
- Add Work Week
- If the "Include Work Weeks" checkbox is selected, the script will add a column to the left with a number indicating the week of the year
- Add Non-Month Days
- If the "Include Non-Month Days" checkbox is selected, the days of the preceding and following month that are in the first or last weeks of the month will be included. They will have their own paragraph and cell styles (cal_nonMonthDay) to easily customize their appearance.
- Highlight Sundays
- If selected, the column of sundays will be given a distinct cell and paragraph style (cal_sunday). If "Highlight Sundays" and "Include Non-Month Days" are both selected, the non-month sundays will be given a distinct cell and paragraph style (cal_nonMonthSunday).
- Highlight Holidays
- If selected, the dates with holidays will be given a distinct cell and paragraph style (cal_HolidayDate). If "Highlight Sundays" is selected and the holiday is a sunday, the holidayDate style will be applied.