PCAL and LCAL: PostScript Calendar Programs

PCAL and LCAL are calendar-generation programs which produce nice-looking PostScript output.

PCAL is usually used to generate monthly-format (one month per page) calendars with optional embedded text and images to mark special events (e.g. holidays, birthdays, etc). It can also generate yearly-format (one year per page) calendars.

LCAL generates a graphical ''lunar phase'' calendar for an entire year (see below).

Both programs were previously released by Andrew W. Rogers, whose web page has disappeared.

New, improved versions of PCAL and LCAL are available here:

PCAL & LCAL SourceForge project website

Here are the 'ReadMe.txt' files (with application description, build instructions, and a detailed history of changes) that are included with the download, but made available here for convenient perusal:

Please note that links to the 'man' pages for PCAL and LCAL (in Postscript, HTML, and ASCII formats) are available below. These 'man' pages contain information not available in the 'ReadMe.txt' files, including a detailed description of the options and other important information related to the actual use of these programs.


Download

You can directly download the source code for both PCAL and LCAL.

If you're running in a DOS (or Windows) environment and you want to avoid compiling (or just cannot compile) the source code, pre-built executable files ('pcal-4.11.0.exe' and 'lcal-2.1.0.exe') for those environments are also available at the same website.

Mailing List / Contact

There is a mailing list for PCAL and LCAL. Questions and topics about how to use the programs and about their further development can be raised there.

As of January 2007, to combat the mailing list spammers, you must be subscribed to the list in order to post messages there.

3rd-Party Scripts, Utilities, and Enhancements For PCAL

  • wallet-sized, 15-month, calendar booklet creation shell scripts -- these useful Unix shell scripts and attendant PostScript code, written and generously provided by Eugene Reimer (R.I.P. Feb 1949 - Nov 2011), are used to make nifty, customizable, 15-month (with overhead image on each month), wallet-/pocket-sized calendar booklets in any user-specified size paper (e.g. 'letter' or A4) that gets cut, stacked, stapled, and folded into a compact booklet

    Prerequisites:

    1. several of Eugene's utility scripts including 'chg', 'chgsed', 'bc', 'scalepix', and 'annotatepix'
    2. 'sam2p' command-line conversion utility

    Specify 15 of your favorite calendar images at the end of the command line and they will appear sequentially above each month, scaled to fit. By default, a PostScript-generated logo (which can be customized via the 'defscover.ps' file's 'DrawLogo' routine) will appear on the front and back covers of the booklet, with text annotation of your making. Furthermore, by tweaking the 'USERereimer=' and the 'B=' lines in the 'mk-calendar-covers' script, you can replace the front cover's PostScript-generated logo with a user-specified, auto-resized, PNG-format image, which can also be annotated.

    Try it out sometime.... You'll wind up with a convenient wallet-/pocket-sized calendar that can't be beat, with all of your favorite PCAL events and calendar graphics embedded! Follow the link above to Eugene's website for a sample calendar booklet and further instructions.

    Quoting Eugene, here's some useful general advice for those seeking to experiment with rescaling of PCAL-generated calendars:

    About rescaling the calendar to different sizes: to make a wallet-sized calendar I first choose the pcal -P option to get something that's close to the aspect-ratio (width-to-height ratio) for the size I want to make; in my case, "tabloid" (11.0x17.0 inches) is close to the desired aspect-ratio; then I supply the -x and -y options to do the rescaling. The result still isn't exactly what I want, so I also use a sed command to modify the generated Postscript-code, things such as the "%%BoundingBox", the "fontsize", and a few other things. There are notes on which bits of the generated Postscript-code I modify in https://ereimer.net/programs/mk-calendar-8up-wallet-sized -- in the comments at the end under "PCAL FIXUPS".
  • email-reminder and group-calendaring Unix shell scripts -- these useful Unix shell scripts, written and generously provided by Kristofer Bergstrom, help automate his usage of PCAL

  • 'ical2pcal' -- a Unix shell script by Francisco José Marín Pérez (with some enhancements by Jörg Kühne) which converts iCalendar ('.ics') data files to a format suitable for use in your PCAL configuration file(s)

    As of Jan 2013, thanks to Jörg Kühne, 'ical2pcal' now supports simple repeating events like this:

    every n-th [day|week|month|year] from <DATE> until <DATE> except <DATE>,...

  • 'makediary' -- a PostScript calendar program by Russell Steicke that uses PCAL's date file format

  • source of 'pcalyacc' utility -- a small lex-YACC preprocessor tool by Richard J. Mathar to convert certain date ranges in a PCAL calendar file into lists of single day specifications recognized by PCAL

  • Iain Mac Donald's tutorial, which includes screenshots, describes the creation of a yearly calendar superimposed over a full-page background image (with the help of the pstoedit conversion utility and either the Skencil or Inkscape vector graphics editor)

PCAL Reviews and Other Coverage

Other Links

  • PCAL and LCAL on Mac OS X, using Fink -- generously provided by someone going by the handle "Monic Polynomial"

  • 'pscal' -- a Bourne shell script by Mark B. Hanson "that produces simple, nice-looking PostScript calendars"

  • The Chinese Zodiac spiral (by way of PostScript) -- a neat PostScript-generated spiral, by Robert Simms, showing the (12-animal) Chinese zodiac around the edge, with all the years shown, starting from the current year and going backwards as the spiral tightens

  • Calendar on a regular/rhombic dodecahedron -- an excellent site (including photos of the finished product) by Ole Arntzen on how to download and make a nifty, 3D calendar on a dodecahedron (1 month on each of 12 faces)

    Ole's dodecahedron calendar has several advantages:

    1. It maximizes the use of the available space, making the calendar faces as large as possible, resulting in a nice, large dodecahedron, with larger text.

    2. It prints the calendars in what one might consider to be the "proper side up" orientation, for a dodecahedron sitting on your desk.

    3. The glue-able tabs are designed in a way that makes them easier to cut out (i.e. with scissors), using fewer cuts and angles.

    4. By tweaking the '/weeknumbers' setting in the PostScript source code, you can enable little brownish-colored 'week numbers' (1-53 for 2008) in front of each week row.

    5. It prints Sundays (or whatever is defined as 'holyday' in the PostScript source code) in red, which is a nice, colorful touch. (Some other calendars show all days in black.)

    6. By tweaking the '/holidays', '/bdays', '/rdays' and '/bluerange' arrays in the PostScript source code, you can define which days get colored red, which days get a blue box, which days get a red box, and which _range_ of days get colored blue.

    If you make one of these dodecahedron calendars, here are some recommendations:

    • It helps immensely to (carefully!) score all of the 'fold' lines with a very sharp (e.g. 'X-ACTO') knife (very lightly all the way across or slightly harder, in several short segments) before assembling and gluing the final product.

    • Throw a few marbles, a bunch of unpopped popcorn kernels, or (in a pinch) a few coins inside, just before gluing the last face down. This adds some much-needed weight to it, so that it won't blow away so easily!

  • source of 'deskcal2' by Richard J. Mathar -- an alternate version of the 'dodecahedron' calendar mentioned above. Per the website: this is "a C-shell script to create a PostScript file of an unfolded Dodecahedron with a calendar of 12 months covering the 12 faces. The original by A Rogers has been enhanced by a scaling option, a colorizing option and a German/French/Spanish/Italian output option." This 'deskcal2' version does not have as many features as Ole Arntzen's version (described above), however.

  • BSD Main Utilities ('bsdmainutils') package -- this is the source of the old, simple Unix/BSD 'calendar' program, which can be used with PCAL and the '-c' option. This old program does not seem to be included with most GNU/Linux distributions these days.

PCAL: The PostScript (and HTML) Calendar Program

PCAL is a multi-platform (Unix/Linux, DOS, DOS+DJGPP, Windows+Cygwin, Amiga) program which generates annotated PostScript or HTML calendars in a monthly or yearly format.

It is usually run from the command line but there is an HTML/CGI capability as well, to generate calendars (in either PostScript or HTML format) from a web-browser interface.

Various events can be defined in an external text file to control the appearance of the calendars generated by PCAL. On monthly PostScript calendars, EPS (Encapsulated PostScript) images (photos, icons, etc) can be added to any given day of the month.

PCAL is distributed with several sample configuration files which define various events (holidays, etc). There are samples for several countries. If you have prepared PCAL configuration files that you think are worth sharing, send them to the email address shown at the bottom of this page and we'll be happy to include them in the next release of PCAL.

For much more detail on the available options and use of PCAL, use any of the following sources (which represent the same content as the PCAL 'man' page, but in alternate formats):

PCAL actually generates calendars in several output formats: PostScript, HTML, or even a simple text file that acts as input to the Unix 'calendar' program.

PCAL supports the following languages:

  • Catalan
  • Czech
  • Danish
  • Dutch
  • English
  • Esperanto
  • Estonian
  • Finnish
  • French
  • German
  • Greek
  • Hawaiian
  • Hungarian
  • Italian
  • Latvian
  • Lithuanian
  • Polish
  • Portuguese
  • Romanian
  • Russian
  • Slovak
  • Spanish
  • Swedish
  • Ukrainian

PCAL 4.11.0 Release Now Available! (18 Dec 2007):

The latest version (4.11.0) of PCAL was released on 18 Dec 2007.

Patches since the release of version 4.11.0 of PCAL:

  • Thanks to David Mathog, who is also the author of the Perl script ('pcal.pl') which supplies an equivalent to the old 'pcal.cgi' shell script, here is a patch to provide PDF output format for those generating calendars from their browser (in Postscript, HTML, or [now] PDF format).

    Please be aware that this patch modifies the Perl script only (not the older CGI script) and therefore, in addition to the expected changes needed to add a PDF option, also modifies the 'pcal.html' (monthly) and 'pcalw.html' (yearly) calendar-generation pages to use the Perl script instead of the CGI script.

    The patch applies in the usual way, against the files in the 'html' directory of the PCAL distribution:

    patch < pcal-pdf-option.patch

    This patch has been tested and works exactly as advertised. Thanks to David for providing this new capability!

    This change will be included in the next release of PCAL.

Changes that are available in the 4.11.0 release:

  • Fixed all the bugs described in the 'Bugs/Problems in (now-obsolete) PCAL 4.10.0' section (see the link in the 'Notes On Obsolete Releases of PCAL' section, below).

  • Added Hawaiian language support.

    (Thanks to Eric Nichols for his patch.)

  • Added Slovak language support, with sample Slovak calendar configuration file ('examples/calendar_sk.txt').

    (Thanks to Zdenko Podobny for his patch and configuration file.)

  • Added the sample Polish calendar configuration file ('examples/calendar_pl.txt'), to the release package. It had been inadvertently omitted from the 4.10.0 release.

    (Thanks to Dominik 'Chiron' Derlatka for this file.)

  • Added a sample Spanish calendar configuration file ('examples/calendar_es.txt').

    (Thanks to Francisco José Marín Pérez for this configuration file.)

  • In the USA calendar example file ('examples/calendar_us.txt') and the generic 'pcal-cfg.txt' example file, commented out the pre-2007 rules for Daylight Saving Time (DST) and added new rules for 2007 and beyond.

  • Made some tweaks to the 'examples/pcal-cfg.txt' sample configuration file, in some cases to demonstrate more PCAL functionality.

  • Allow the drawing of moon phase icons ('-m' or '-M') and Julian dates ('-j' or '-J') on yearly-format calendars.

    Previously, these features were only allowed on monthly-format calendars.

  • Added a new preposition -- 'on'.

    The use of this preposition is similar to the existing prepositions like 'on_or_before' and 'on_or_after', but it requires that the event occur exactly on the specified day.

    See the 'ReadMe.txt' file for details on how to use this feature.

    (This new feature was added based on a request from [and partially based on a patch from] Erkki Petsalo.)

  • The 'F13' pre-defined event has been removed. It is unnecessary now that PCAL has support for the new 'on' preposition (described above).

    Replace any occurrence of 'F13' in your configuration file(s) with this:

    Fri on all 13

  • Added a new option -- '-W [ left | center | right ]' -- to specify the horizontal alignment of the month/year title displayed at the top of monthly-format calendars.

    See the 'ReadMe.txt' file for more details.

    (This new feature was added based on a request and a very thorough patch from Todd Foster.)

  • Modified the Unix makefile to allow use of a user-specified destination directory ('$DESTDIR') on the installation step.

    See the 'ReadMe.txt' file for more details and an example of its usage.

  • Added 2 Unix shell scripts (and a 'readme.txt' file) to a new 'scripts' directory in the PCAL distribution.

    See the author's detailed explanation of the usage of these scripts.

    (Thanks to Kristofer Bergstrom for these useful script files.)

  • Re-added support for the Amiga platform, which had been removed in the last release.

    (Thanks to Stefan Haubenthal for the Amiga patch and appropriate 'makefile'.)

  • Removed the long-obsolete external 'moon file' concept. Now, we depend solely on the algorithmic determination of moon phases, which has been in place for many years and seems to be plenty accurate.

    The 'moon98' file (with manual entries of the dates and times of the 4 primary moon phases for all of 1998) was also removed from the 'examples' subdirectory, since it no longer serves any purpose.

Bugs/Problems in PCAL 4.11.0 (as of 31 May 2023):

  • 06 Jan 2017

    In early Nov 2016, PCAL was found to have a long-standing problem that involves the specification of timezones and their effect on the lunar phases.

    More specifically, any calendar configuration file event directives that refer to a moon phase will not generate the correct calendar if the command-line specification of the timezone ("-z #") is used simultaneously.

    An example lunar event:

    2nd full_moon in all Blue Moon

    The work-around for now is to avoid use of any "-z #" option on the command line and use the "D_TIMEZONE =" directive in the 'Makefile'.

    Thanks to Robert A. Schmied for bringing this problem to my attention and for his substantial investigation into the details.

  • 31 Oct 2011:

    PCAL has been found to have a long-standing problem that involves parsing of the event specification in a calendar configuration file.

    An example:

    all weekday before Jun 19 Fix PCAL bugs

    Although PCAL accepts that (perfectly legal) event specification, the output that PCAL generates for that case is badly broken. For starters, the day-of-the-month ('19') part of the event specification erroneously appears in the event messages! And the event is also erroneously occurring on every day of the specified month!

    There may be other cases of broken output using similar event specifications.

    At this time, there is no known work-around for this issue, but hopefully this bug will be fixed in the next release of PCAL.

    Thanks to Bill Bogstad for bringing this problem to my attention.


Notes On Obsolete Releases of PCAL:

Details (features, bugs/problems, etc) about obsolete versions of PCAL.

PCAL PostScript Calendar Examples

Here are a couple of (low-resolution) examples of PostScript calendars produced by PCAL:


pcal monthly example
Figure 1 -- Example of a monthly PostScript calendar (with daily moon phases enabled)

pcal yearly example
Figure 2 -- Example of a yearly PostScript calendar (American holidays and with major moon phases enabled)

Note that both of these calendars were created using some of the options found in the sample 'pcal-cfg.txt' configuration file, which comes with every PCAL distribution.


Pre-Generated PCAL PostScript Monthly/Yearly Calendars

For those who don't want to bother downloading and installing PCAL, you can download pre-generated, nicely-colored, event-free, monthly-format (12 months, 1 per page; landscape orientation; designed for printing on 'U.S. Letter'-sized paper) PCAL calendars for the previous, current, and next few years: You can also download pre-generated, nicely-colored, event-free, yearly-format (12 months on a single page; landscape orientation; designed for printing on 'U.S. Letter'-sized paper) PCAL calendars for the the previous, current, and next few years:

Adding Graphical Images (Logos, Icons, Photos, etc)

The PCAL application allows the addition of one or more images (graphics, logos, icons, photos, etc) on one or more days in a monthly-format calendar. (Image specifications in the PCAL configuration file are ignored for yearly-format PostScript calendars and for all HTML calendars.)

The image file must be in the Embedded PostScript (EPS) format.

The PCAL releases come with a single EPS sample file ('eps/recycle.eps') of the ubiquitous 'recycle' icon (3 green arrows in a triangular shape): recycle icon

Such an image might be used with configuration file settings like this:

second Sat in all RECYCLE!
second Sat in all image:/path-to-eps/recycle.eps 0.039 0.039 34 -9

Much more detail about adding images to your monthly-format PostScript calendars are provided in the 'man pcal' page, available once PCAL has been installed on your system. The content of the 'man' page is also available in the equivalent HTML, PostScript, and text versions, both via this website (see the links above) and included with the PCAL source code releases as 'doc/pcal-help.{html,ps,txt}'.

Some useful links related to the EPS image capability in PCAL:

  • Open Clip Art Library

    The 'Open Clip Art Library' is a good source of freely-usable images for decorating your calendar events.

  • `libwmf' / `wmf2eps' library/utility

    This library and utility are useful for generating PCAL-capable EPS icons from existing icons in the '.WMF' (Windows MetaFile) format. These icons are often distributed with commercial calendar-creation programs for Windows.

  • GIMP (GNU Image Manipulation Program)

    This application is useful for converting non-EPS images (e.g. photos) to EPS format.

  • ImageMagick utilities

    This suite of graphical utilities is useful for converting non-EPS images (including SVG-format images) to EPS format, using the 'convert' utility.

    This suite includes other useful ImageMagick utilities like 'display' and 'identify'.

  • `librsvg' / `rsvg' SVG Rendering library/utility

    This library and utility are useful for converting SVG-format images into an intermediate format (including PNG and JPEG), to then be converted to EPS format using ImageMagick's 'convert' utility mentioned above.

    This method is sometimes useful for certain SVG images which don't convert correctly using the single step from SVG to EPS using the 'convert' utility.


PCAL HTML Calendars

PCAL can also produce calendars in HTML format by using the '-H' flag.

Normally, a monthly format is produced, with event text (but no images) embedded in each day for which an event has been defined.

Adding the '-q' flag changes the format to print out as one column per month resulting in table that gives a quicker overview of several months and which can be used as a year-planner. As a year-planner obviously has less space for text, only the first character of the weekday and the first 5 characters of each calendar entry are printed. Holidays are marked red but the text associated with that holiday event is not printed. The year-planner gives output only in HTML and therefore has effect only when used with the '-H' flag.

Here are a couple of examples of HTML calendars produced by PCAL:


PCAL Shortcomings

PCAL has several shortcomings, some of which may be overcome in future releases:

  • PCAL does not support the entry of a range of dates in the configuration file. Several people have requested fixes for or otherwise commented on this shortcoming.

    A work-around for some involves use of the 'pcalyacc' utility mentioned in the '3rd-Party Scripts, Utilities, and Enhancements For PCAL' section, above.

  • PCAL does not currently support UTF-8 / Unicode (for input or as output). On the input and output side, this limits its ability to support certain languages (like Japanese, Chinese, Korean) with character sets which aren't supported by the ISO 8859-* (Latin-1, Latin-2, etc) character encodings.

    On the input side, this means that you cannot (directly) use a configuration/input file (e.g. '.calendar') that's encoded in UTF-8/Unicode. This is starting to become a common problem as more GNU/Linux distributions seem to be defaulting to use of that encoding.

    A work-around (until the day that PCAL is modernized) is to convert your configuration file from UTF-8 to one of the ISO8859-* encodings (e.g. ISO8859-1 [a.k.a. "Latin-1"], if your language is covered by that encoding). The GNU 'iconv' conversion utility, which is hopefully already part of your distribution (assuming you're using some Unix/Linux variant), can do this quite simply:

    iconv -f UTF-8 -t ISO8859-1 -o iso8859.txt .calendar

    In this example, your original input file ('.calendar') is preserved and the output goes to 'iso8859.txt'. If you do that, of course, you'll need to tell PCAL to use that new configuration/input file by adding '-f iso8859.txt' somewhere in the option list on the command line.

    An alternative to the use of 'iconv' is to simply instruct your favorite editor to save the file in the appropriate ISO8859-* encoding rather than in UTF-8/Unicode.

    The current list of languages and the character encodings which should cover all of the characters needed by that language is as follows:

    • Catalan = ISO8859-1 (Latin-1)
    • Czech = ISO8859-2 (Latin-2)
    • Danish = ISO8859-1 (Latin-1)
    • Dutch = ISO8859-1 (Latin-1)
    • English = ISO8859-1 (Latin-1)
    • Esperanto = ISO8859-3 (Latin-3)
    • Estonian = ISO8859-1 (Latin-1)
    • Finnish = ISO8859-1 (Latin-1)
    • French = ISO8859-1 (Latin-1)
    • German = ISO8859-1 (Latin-1)
    • Greek = ISO8859-7 (Greek)
    • Hawaiian = ISO8859-4 (Latin-4)
    • Hungarian = ISO8859-2 (Latin-2)
    • Italian = ISO8859-1 (Latin-1)
    • Latvian = ISO8859-4 (Latin-4)
    • Lithuanian = ISO8859-4 (Latin-4)
    • Polish = ISO8859-2 (Latin-2)
    • Portuguese = ISO8859-1 (Latin-1)
    • Romanian = ISO8859-2 (Latin-2)
    • Russian = KOI8-R
    • Slovak = ISO8859-2 (Latin-2)
    • Spanish = ISO8859-1 (Latin-1)
    • Swedish = ISO8859-1 (Latin-1)
    • Ukrainian = KOI8-U

  • PCAL always uses 6 rows on a monthly-format (1 month per page) calendar. On most months, this results in a "wasted" row, but it's required to support certain months (like December 2007 and March 2008) which actually need all 6 rows.

    The 'pscal' calendar-generating script, mentioned in the 'Other Links' section, above, does not have this shortcoming. It uses 5 rows all the time and handles months like December 2007 by putting 2 days into one box. It even handles quite well the positioning of event text, moon icons, and Julian dates in the cases where 2 days share the same box. PCAL, on the other hand, doesn't currently attempt this because it complicates things like positioning of the EPS images and the issue of yearly-format (1 year per page) calendars (features not supported by 'pscal').

    Eventually, it is envisioned that PCAL would allow the user to specify '5-row' or '6-row' (and maybe even 'best-fit') as an option for monthly-format calendars and somehow deal with the issues that raises.

  • Although PCAL supports the display of EPS images in the "day-boxes" of monthly-format calendars, it does not currently support the display of a large background image shown "underneath" the calendar.

    A couple of people have used various "work-around" ways to get a large background image displayed on PCAL calendars. Someday, PCAL might support this natively.

  • The positioning of EPS images in the "day box" is rather unsophisticated. (Basically, it involves the specification of a simple X-offset and Y-offset from the default position.) It would be nice to allow some more-sophisticated options (e.g. relative positioning from the "day box" edges) and/or more automation (based on paper size, number of events, etc) in the positioning of EPS images.

  • PCAL does not allow font or color specification at the "event level". Currently, the font specified for one event applies to all events. It would be nice to optionally allow the control of fonts and colors at a finer-grained level, for events and other printed text.

    Similarly, PCAL does not allow font (or color) specification of the 'title' text based on the month. Such a feature might be nice to allow use of a font like "SnowtopCaps" in winter months. (Of course, you can achieve that effect by creating individual monthly calendars [1 or more months at a time], using the '-t' option to specify the title font.)

LCAL: The Moon Phase Calendar Program

LCAL is a multi-platform (Unix/Linux, DOS, DOS+DJGPP, Windows+Cygwin) program which generates full-year PostScript lunar (moon phase) calendars in a 2-page format, a compressed 1-page format, or an ''odd-days-only'' 1-page format.

It is run from the command line.

For much more detail on the available options and use of LCAL, use any of the following sources (which represent the same content as the LCAL 'man' page, but in alternate formats):


LCAL 2.1.0 Release Now Available! (07 Oct 2007):

The latest version (2.1.0) of LCAL was released on 07 Oct 2007.

Changes that are available in the 2.1.0 release:

  • Enhanced the colorization options that are available with the '-s' (shading) command-line option. See Figures 3b and 3c, below, for an example of the possibilities.
    Removed the now-unneeded '-i' ('invert colors') option.

Bugs/Problems in LCAL 2.1.0 (as of 31 May 2023):

  • none currently

Notes On Obsolete Releases of LCAL:

Details (features, bugs/problems, etc) about obsolete versions of LCAL.

LCAL PostScript Calendar Examples

Here are examples (click to enlarge) of PostScript lunar calendars produced by LCAL:

lcal odd-days 1-page example
Figure 3a (new in version 2.0.0) — Example of a black-and-white, 1-page, ''odd-days-only'' PostScript lunar calendar

lcal odd-days 1-page grey-scale example
Figure 3b (new in version 2.1.0) — Example of a grey-scale, 1-page, ''odd-days-only'' PostScript lunar calendar

lcal odd-days 1-page color example
Figure 3c (new in version 2.1.0) — Example of a color, 1-page, ''odd-days-only'' PostScript lunar calendar

lcal compressed 1-page example
Figure 4 — Example of a 1-page compressed PostScript lunar calendar

lcal 2-page example, page 1 of 2 lcal 2-page example, page 2 of 2
Figures 5 & 6 — Example of a 2-page PostScript lunar calendar

Note that portrait page orientation is also supported for each of the examples shown above, despite the fact that no examples are actually shown here.


Pre-Generated LCAL PostScript Lunar Calendars

For those who don't want to bother downloading and installing LCAL, you can download pre-generated, black-and-white (or grey-scale or colorized, for the 1-page odd-days-only format), landscape orientation LCAL calendars for the previous, current, and next few years (all designed for printing on 'U.S. Letter'-sized paper), in various formats:
Last Updated: 31 May 2023

Valid HTML 4.01 Transitional PCAL (Postscript calendar) project at SourceForge.net