.
Jeffrey’s Photoshop Calendar-Template-Building Script
Photo-calendar created
with Jeffrey's Photoshop Calendar-Building Script
(http://regex.info/blog/photo-tech/calendar/)
Calendar Built With My Photoshop Script
Landscape Mode

(This page last updated December 24, 2007, for Version 5 of the script)

I've made a Photoshop JavaScript script that builds calendars. The result of running it in Photoshop (CS2 or CS3) is a Photoshop document with half a dozen or so layers that you can then tweak and modify, add your own image to, etc.

It has a number of nice features:

  • It leaves the components of the calendar in separate layers, so that you can modify them at will
  • It can build calendars in English or 56 other languages
  • It supports personal annotations (holidays, birthdays, etc.)
  • It has both Landscape and Portrait modes
  • It can include week numbers (two different week-number standards are supported)
  • You can have weeks begin on Sunday or Monday
  • The calendar is built specifically for the paper size you select
  • You can configure much more by editing the script itself

Details follow below, but first, for your downloading pleasure...

Download Photoshop Calendar-Building Script
Version 5: Jeffrey's Calendar Builder.jsx       (version history)

Pre-built sample PSD files for 2008 (at 300 DPI):
(In case you don't want to — or can't — run the script)

Photo-calendar created
with Jeffrey's Photoshop Calendar-Building Script
(http://regex.info/blog/photo-tech/calendar/)
full exif & map
Portrait Mode

Overview

The script, which runs on Photoshop CS2/CS3, should work the same on both Windows and Mac, although I'll show screenshots of it with Windows.

Running the script brings up a dialog which allows for calendar configuration (page size, etc.), but a copy of the script can be edited itself for fine-tuned control over fonts, sizes, margins, etc. The result of the script is a Photoshop document with a dozen or so layers, which can then be modified/tweaked.

My goal in building this was to make landscape-mode loose-leaf calendars that my wife and I can use for our daily/weekly schedules (e.g. “preschool field trip is tomorrow”, “such-and-such a friend visiting on Sunday”, etc.). As such, I want something that is a calendar when viewed up close.... yet, when viewed from afar, it's art. That's the goal, at least.

Installing and Invoking

You can install/invoke the script in two ways:

  1. Download the script file, Jeffrey's Calendar Builder.jsx, to a convenient place, such as your desktop, then click on it. It should launch Photoshop if it's not already running, and switch to it. (If it doesn't, right-click on the script file and “Open with” Photoshop.)

    or,

  2. Install the script file to your Photoshop Scripts folder. On my Windows machine, my CS2 folder is:

    \Program Files\Adobe\Adobe Photoshop CS2\Presets\Scripts\

    on the root drive. (After installing or renaming any file here, be sure to restart Photoshop if it had been open.)

    Then, you can invoke the script from within Photoshop's File > Scripts menu item:

    How to invoke a JavaScript script from within Photoshop

Simple Calendar-Building with the Dialog

When executed, you are prompted for details on the calendar to be made:

Calendar-creation dialog from Jeffrey's Calendar-Building Photoshop script (http://regex.info/blog/photo-tech/calendar/)
Photoshop Layers pallete showing the result of building a calendar with Jeffrey's Calendar-Building Photoshop script (http://regex.info/blog/photo-tech/calendar/)

At its most simple, just select the target year and month (or select the month “All” to build 12 separate calendars), adjust the calendar style settings and the paper size to your liking, and press the “Okay” button.

The script will churn away a bit, building the calendar in a new document, leaving you with a dozen or so layers like those shown at right.

Layers making up the calendar include text layers for the month and year text, rasterized layers with text for the names of the days of the week (“Sun-Sat” in the example at right) and dates (“1-31” in the example), and the calendar grid.

The look and feel of the calendar can be changed greatly just by adjusting the style and opacity of the various layers. Small changes can have large effects on the result. Play around. (If you come across a result you really like, please tell me about it.)

Inserting a Picture

There's an empty layer named “Paste Your Photo Here” which is where, of course, you should place the photo you want to use. Actually, it needn't be on that layer, but simply within the “Picture Mask” layerset, as the mask provides a pleasing (to me, at least) drop off toward white all around the edges.

As a shorthand, if you have an image open in Photoshop when you invoke the script, it will be placed within the “Paste Your Photo Here” calendar layer, resized so that it fully fills the canvas. This works only when the already-open document has just a single layer. If you don't care for the automatic resize, you can just delete the layer and replace it with one you like.

In any case, once you drop in your picture and move/resize to suit your taste, by all means, adjust the mask as well. Sometimes it works well when the image extends all the way to the edge, and sometimes it's better to reduce the image to the center only.

Attribution and Description

There's an “attrib” layer with an attribution for the calendar. The script puts the url for this page there, but you'll likely want to change that to your home page, a copyright notice for the image, etc. Or perhaps just get rid of it. It's up to you.

There's also an “Image Description” text layer whose visibility defaults to off. It's just one idea for an image-description note: replace its text with an image description or any text of your choosing (I used “Natalie and Alan, July 14, 2006” in the first example above) and make it visible. It'll show up in the lower-right of the image.

Copyright

You own the copyright for any calendar you make. I own the copyright on the script, but not on its output. You can change the output — the document the script creates — in any way you like.

Of course, if you add a photo to the calendar, as with the use of any image, be sure you're allowed the use the image.

Options

Some of the items in the dialog are not necessarily self explanatory, so I'll go over them here...

Language

Choose English for the month and day names, or select from among: Afrikaans, Albanian, Amharic, Arabic, Armenian, Basque, Belarusian, Bosnian, Bulgarian, Catalan, Chinese, Cornish, Croatian, Czech, Danish, Dutch, Estonian, Finnish, French, German, Greek, Gujarati, Haitian Creole, Hawaiian, Hebrew, Hindi, Hungarian, Icelandic, Indonesian, Irish Gaelic, Italian, Japanese, Korean, Latin, Latvian, Luxembourgish, Maori, Norwegian, Polish, Portuguese, Romanian, Romansh, Russian, Scots, Serbian, Slovak, Slovenian, Spanish, Swedish, Tamil, Thai, Tok Pisin, Turkish, Ukrainian, Vietnamese, or Welsh.

I pulled most of the language data from this page, and had to take a guess at what font to apply for many of them. I don't even know whether some of those are real languages. Please let me know if you run into troubles.

Week Numbers

I guess it's popular in some parts of the world to annotate a calendar with week numbers, but I'd never heard of the idea until someone requested it. It turns out that there are two common but conflicting ways to count weeks:

  1. the common-sense approach (“Week 1” is the week with January 1st in it)
  2. the ISO 8601 standard (“Week 1” is the week with the first Thursday of the year in it)

In the dialog, the selection for Show Week Numbers can be changed from “No” to “at Left” or “at Right,” to indicate that you want week numbers and where the extra column should be placed. You can also select between the two methods for counting weeks.

Image Orientation

Image orientation does not refer to how you load the paper in the printer, but to what style of calendar to make. The example at the top from my brother's wedding is in Landscape style. The example with my little boy is in Portrait mode.

Annotations

Annotations (adding holidays, birthdays, etc.) are covered in a later section.

Rasterize & Merge Most Text Layers

This option is turned on by default, and compresses the many individual date-number layers (“1”, “2”, ... “31”) into one layer by rasterizing and merging. The same grouping is done for the day names (“Monday”, “Tuesday”...) and the week numbers, if you've requested them.

The advantage to this is that you can then adjust the look and feel of all the dates (or days or week numbers) at once by adjusting the style of the merged layer.

The disadvantage is that you can't adjust the font or size of the text, or other text-specific things, because the individual text layers no longer exist.

Thus, by unchecking this option, you can choose to leave the individual text layers intact. When this is done, they're put into their own group to reduce visual clutter in the Layer pallet.

Auto Save

When auto-save is turned on, the newly-created document or documents are automatically saved to files. The Directory element indicates where they should be saved to, while the PSD Filename Pattern indicates how the files should be named.

Within the filename pattern, the sequences “MM” and “YYYY” are replaced by the month and year numbers of the calendar (two and four digits each, respectively). For example, with a pattern of “Calendar_YYYY_MM”, the calendar for April 2008 will be named “Calendar_2008_04.PSD”.

Saving your Config

If you tend to always want options that differ from the defaults (different language, paper size, etc.), then set them as you like and press the “Save” button in the “Default Configuration” section of the dialog. It writes your selections to a file that's read automatically when the script starts.

Pressing the “Delete” button deletes that file, so you end up with the as-downloaded set of defaults. For safety, you have to first check a box to enable the delete button.

Printing

Because some layers are rasterized, it's best if you can print at exactly 100%, with no resizing. This should be automatic if you select the proper paper size, DPI, and reasonable page margins.

I have a Canon XP810, and find that Canon's “High-Resolution Photo Matte Paper” MP-101 to be perfect. It looks and feels like normal printer paper, albeit of a bit heavier stock. It's 100% Matte — not a bit of glossy, so you can write on it with a pencil or pen.

Annotations

You can have the script add annotations to certain dates, based upon lists found in external files. The support for annotations is rudimentary at best, but it's useful for marking holidays, birthdays, and other dates that might be important to you.

When annotations are turned on, the script reads an annotation file (the default for a 2008 calendar is “CalendarData2008.txt” in your home directory). Here's an example:

  [FontColor=0%,0%,100%] # use blue for the annotation text

  # Holidays that are on the same date every year
  01-01  New Year's Day
  02-14  St. Valentine's Day
  12-31  New Year's Eve

  # 2008 version for items with floating dates
  2008-03-09  Daylight Saving Time Starts<BR>(clocks ahead 1 hour)
  2008-05-11  Mother's Day
  2008-06-15  Father's Day
  2008-11-02  Daylight Saving Time Ends<BR>(clocks back 1 hour)
  2008-11-04  Election Day

The basic format is fairly simple:

  • Blank lines and lines beginning with “#” are ignored.
  • Annotation lines have a date followed by the annotation, where the date can be Year-Month-Day or just Month-Day. (You can use “/” or “-” as the separator in the date.)
  • The annotation itself may have “<BR>” to force a line break so that the annotation appears on multiple lines in its date box.
  • Annotation lines may pre prefixed with special “[...]” settings, as described below.

Dates without a year apply to a calendar of any year, while those with a year apply only to calendars made for that year. This allows you to add year-specific items to the annotation file without worrying that they might show up on a different year's calendar.

Special “[...]” Annotation Settings

The following special “[...]” settings may be prepended to an annotation line, or, as we'll seen in a bit, stand on their own to apply to all subsequent lines....

[FontSize=num%]
Changes the font size of the annotation, relative to the default. For example,
   [FontSize=200%]  2/30  My Birthday!
   [FontSize=50%]   7/27  Mother-in-law's Birthday
[FontName=name]

Changes the font for the annotation to the one whose name is given. You must use Photoshop's internal name for the font, which is often not apparent from the name presented in the font dialog. See my post on discovering Photoshop internal font names for the name to use here for any given font.

Here's an example showing a Japanese holiday:

   [FontName=MS-Mincho]  05/05 こどもの日

By the way, be sure to use the ASCII or UTF-8 character encodings for the file.

[FontColor=red, green, blue]
[FontColor=red%, green%, blue%]
Sets the color of the annotation font, as an RGB setting. The default is black (0,0,0 or 0%,0%,0%). You can use percents (with each number ranging from 0% to 100%) or the more traditional raw values, where the numbers range from 0 to 255. For example:
   [FontColor=100%,0%,0%] 6-18  Red Letter Day!
   [FontColor=255,0,0]   11-22  Also a red-letter day
   [FontColor=0,100%,0]  03/17  St. Patrick's Day
[FontOpacity=num%]
Sets the font opacity (100% is normal, 0% is invisible).

If these special settings appear on a line without annotation data, as the first FontColor line in the example at the top of this section, the setting applies to all subsequent lines.

This example shows three holidays to be printed in red:

   [FontColor=100%,0%,0%] 2008-03-23  Easter
   [FontColor=100%,0%,0%]      10/01  All Saint's Day
   [FontColor=100%,0%,0%]      12/25  Christmas

The following is just about the same:

   [FontColor=100%,0%,0%]
   2008-03-23  Easter
        10/01  All Saint's Day
        12/25  Christmas

except that the any lines that might be subsequently added to the end will also get the red font. This last point brings up the idea of contexts....

Annotation Contexts

You can surround a group of settings and annotations with <CONTEXT> ... </CONTEXT> to isolate any settings made within the group from applying after the group.

   [FontColor=100%,0%,0%] 2008-03-23  Easter
   [FontColor=100%,0%,0%]      10/01  All Saint's Day
   [FontColor=100%,0%,0%]      12/25  Christmas
   2008-02-06  Ash Wednesday

has “Ash Wednesday” printed in the default black, exactly the same as:

   <CONTEXT>
       [FontColor=100%,0%,0%]
       2008-03-23  Easter
            10/01  All Saint's Day
            12/25  Christmas
   </CONTEXT>
   2008-02-06  Ash Wednesday

This might be convenient for clarity when you have various sections of grouped entries...

   # US Federal holidays are in red, with a small font
   <CONTEXT>
       [FontColor=100%,0%,0%]
       [FontSize=80%]
       2008-05-26  Memorial Day
            07-04  Independence Day
       2008-09-01  Labor Day
       2008-10-13  Columbus Day
       2008-11-11  Veterans Day
   </CONTEXT>

   # Japanese holidays need their special font
   </CONTEXT>
      [FontName=MS-Mincho]
      01/01 元日
      05/05 こどもの日
      12/23 天皇誕生日
   </CONTEXT>

   # Birthdays are noted quietly
   </CONTEXT>
      [FontOpacity=30%]
      [FontSize=80%]
       4/12 David Letterman's birthday
       4/15 Dave Filo's birthday
      12/06 Steven Wright's birthday
   </CONTEXT>

Importing and Including Annotation Data

Within your annotation-data file you can have import and include lines like:

   INCLUDE "filename"
   IMPORT  "filename"

Both allow you to reference annotations in other files, with the difference being that INCLUDE does not remember any settings changed in the file, while IMPORT does. Consider this example:

  INCLUDE "US-Holidays-2008.txt"
  INCLUDE "US-Family-Birthdays.txt"

  IMPORT "My-Favorite-Japanese-Settings.txt"

  INCLUDE "Japanese-Holidays-2008.txt"
  INCLUDE "Japan-Family-Birthdays.txt"

IMPORT is used for the Japanese Settings file (font changes, etc.) so that those changes remain and apply to subsequent lines (those found in the two INCLUDE files that follow).

This allows you to create sets of annotations that you can then easily mix and match when creating specific calendars. I use different sets of files depending on whether I'm making a calendar for myself, my folks (who don't read Japanese), or my Japanese-speaking in-laws.

More on File Management

To make it easier to reuse annotation files year after year, you can put the year in an individual entry's date so that it is safely ignored when creating a calendar for a different year.

You can also segregate items into different files, putting year-specific annotations into files with the year in the name.

In filenames provided on include/import lines and in the script's configuration dialog where you provide the annotation-data filename, any set of four upper-case 'Y' in a row are replaced by the target year for the calendar. The default filename is “CalendarDataYYYY.txt” which means that “CalendarData2008.txt” is actually read for a 2008 calendar.

The previous import/include example would be better written with that in mind, so that year-specific annotation files are read only when creating a calendar for the appropriate year:

  INCLUDE "US-Holidays-YYYY.txt"
  INCLUDE "US-Family-Birthdays.txt"

  IMPORT "My-Favorite-Japanese-Settings.txt"

  INCLUDE "Japanese-Holidays-YYYY.txt"
  INCLUDE "Japan-Family-Birthdays.txt"

Sample Annotation Data

Here are two sample annotation-data files to get you started, one with some US holidays, and another with Japanese:

CalendarData2008.txt
CalendarDataJapan2008.txt

You can find lots of info on holidays for countries, religions, and cultures around the world at TimeAndDate.com, and, of course, at Wikipedia.

Future

It's a bit more full-featured than earlier versions, but it still has a ways to go. Some enhancements I can think of:

  • Better font control.
  • Putting the small previous-month / next month calendars in there somewhere.
  • Add a variety of layout options.

Let me know what you think.

I can't help wondering whether there's a feature of Photoshop whereby I could leave all the text unrasterized, yet allow one-stop tweaking of fonts and margins. With my understanding as it is now, if all the date numbers are left as individual text layers, each must be visited individually to, say, change the font. If there's a simple solution to this, please let me know.

At least with this script, you can make the change in the script, just once, and then run it.

Enjoy.


Version History

Version 5
Dec 24, 2007
  • Changes suggested by Ingus: fixes to Latvian translations; handle multiple line breaks on an annotation line.
Version 4
Dec 23, 2007
  • Although I added A3 and A5 paper sizes in the previous release, I hadn't really tested them, and it turns out that I forgot to scale the various font sizes and item spacing that I used for A4 and Letter paper. This release fixes that.
Version 3
Oct 31, 2007
  • Per request, I added A3 and A5 sized paper selections.
  • Per request, you can set weeks to start on any day, not just Sunday or Monday.
  • Fixed the "February becomes March" bug.
Version 3b1
Sep 26, 2007
  • Can now create calendars in 58 languages.
  • Added ability to display week numbers.
  • Added ability to change annotation font name/size/color/opacity.
  • Added ability to force linebreaks in annotation text.
  • Added import/include/<context> support to annotation file.
  • Annotation filename specifications with “YYYY” auto-convert to the calendar's target year.
  • Can now include the year in an annotation's date, and have that entry be safely ignored for other years.
  • Added annotation data filename to the config dialog.
  • Added tool-tips to the configuration dialog.
  • Added ability to save the current configuration as the local default.
  • Added ability to turn off annotations in the config dialog.
  • Can now leave text layers un-rasterized and un-merged.
Version 2
Dec 15, 2006
New features:
  • Added the ability to populate the calendar with holiday/birthdays/etc data read from a file.
  • Added an “auto save” feature, particularly useful when generating whole-year templates for distribution.

Bug fixes:

  • Fixed the “weeks start on Monday” option, which had been broken when building all months in one shot.
  • Fixed the pre-set margins and such for Portrait mode actually work properly (see an example above).
  • It now references only fonts that come standard with Photoshop (CS2). I thought that's what I'd done, but it turns out that I had some other fonts (perhaps from CS1, or from other Creative-Suite programs).
Version 1
Dec 4, 2006
Initial Release
 
 

Comments so far....

I want to thank you for the post of your calendar template on DP review. I was unable to download it for some reason in the script format but did so in PSD. I have Adobe CS2 and have already made the month of January. I look forward to any updates that you might create. Thanks again.

— comment by Denny Zimmerman on December 12th, 2006 at 12:23pm JST (1 year, 8 months ago) comment permalink

This is an awesome script and spanks those stone age calendar templates I had posted on DPReview! Is there a way to have the number/text part of your calendar appear only in the bottom 1/3 of the image or so? I’m sure that some people aiming for more of a fine art type of calendar don’t want all of their image behind the text.

Again… Great Job and thanks for posting this for everyone! :-)

(kinda makes me feel silly when I consider all the time I sat there getting all my text lined up perfectly on my templates when your script zipped thru it at warp speed.. I admit to consuming quite a few brews in the assembly process of my templates so if September onward is a bit out of line I have a good reason!)

— comment by Kerry (from DPreview) on December 14th, 2006 at 11:55am JST (1 year, 8 months ago) comment permalink

Thanks for the script!!! Wish I had found it a few weeks ago… I have some questions though. Specifically, the days. The font, size and color can be changed…. Will this be changed any time soon? Additionally, would be nice to be able to automatically insert holidays and birthdays into the calendar (for example via a text/csv file).

Thanks!

— comment by Matt on December 24th, 2006 at 6:52am JST (1 year, 8 months ago) comment permalink

This script has proven to be very useful. I modified it to have the months/days in spanish and it works perfectly. Thank you!

— comment by Gustavo Pacheco on December 28th, 2006 at 2:58pm JST (1 year, 8 months ago) comment permalink

I would love to use this on my mac but i have been unable to download the script from the web site. The mac does not have a right click option. When i click on the file name it just opens a text file with the code. I’ve tried draging and dropping the file name onto my desk top but when i try to install that file in CS2 i get a javascript error. Please email a copy of the file to me at seenosun@aol.com. Thanks - MW

PS… I’ll be happy to post about my experiences with the script from a mac perspective once it is installed.

— comment by Michael wright on January 9th, 2007 at 9:59am JST (1 year, 7 months ago) comment permalink

Nice script but when I run it in CS2 and select February, it compiles March, although it uses the correct data from the dates file. The other months that I have tried seem to be OK?

— comment by Dave on February 1st, 2007 at 4:58am JST (1 year, 7 months ago) comment permalink

Nice script I am glad you took the time to compile it and make it available.
It has a lot more potential for flexibility, would be nice if there would be a way to select the font and color. I haven’t got a clue how to do this sort of thing so it may be quit a task to add. Keep up the great work.

— comment by Peter on February 2nd, 2007 at 2:31pm JST (1 year, 6 months ago) comment permalink

Thanks for very nice script.

So far I’ve just played with it for a few minutes, but some coments in response to previous ones:

To “download” the script on a Mac running Safari: just use File, Save As and save it to the Applications\Adobe Photoshop CS2\Presets\Scripts\ directory. Be sure not to add a .txt extension; just use the .jsx extention. Now it should be available in PS automatically.

To shrink/move the calendar itself (e.g., if you want to put the image to the side of it instead of behind) - select the Grid layer, then use Edit/Transform/Scale to make it the size, placement you want. Then, in sequence, select the 1-31 and Sun - Sat layers (you can do the same with the month and year layers) and use Edit/Transform/Again — the days and numbers will line up perfectly with the scaled grid. Note: when using Scale, hold the shift key to keep the original proportions.

Fonts can be changed easily by selecting the particular text layer, selecting the Text tool, and changing the font from the text toolbar (at top of screen by default).

— comment by Becky on March 7th, 2007 at 12:43am JST (1 year, 5 months ago) comment permalink

Gday
Your calendar amuses me. I have been using a piece of software you wrote in the early 90s called been.pl
The number of times that it reminded me of birthdays and anniversaries and saved my bacon are too numerous to mention.
Whatever you may do in the future and however fancy it gets nothing will surpass that old text based been.

— comment by Geoff on March 10th, 2007 at 8:05am JST (1 year, 5 months ago) comment permalink

Fantastic Script thankyou very much. Awesome compiling saved Loads of time.

— comment by AJ Ferns on March 12th, 2007 at 5:06am JST (1 year, 5 months ago) comment permalink

An excellent script - many thanks for making this available.

— comment by David Williams on April 1st, 2007 at 10:43pm JST (1 year, 5 months ago) comment permalink

I was able to download the templates which are great but I would like to try the script. I have never used them before however and was hoping you could tell how to download and install them. I click on your link and am then lost?

rod

— comment by Rod Sproule on May 5th, 2007 at 4:24am JST (1 year, 3 months ago) comment permalink

thats stinking cool.

— comment by Krister Johnson on May 5th, 2007 at 5:10pm JST (1 year, 3 months ago) comment permalink

Just found your site through a link on a Digital Darkroom forum posting, I actually visited to read your colour space articles (brilliant), and found your calendar script, Jeff its great, the time this saves when I think about the time I have taken on a number of occasions making calendars in PS.
many, many thanks
Paul (UK)

— comment by Paul Tyson on July 2nd, 2007 at 12:35am JST (1 year, 2 months ago) comment permalink

thank all lot … I’v made our honey moon calendar … my wife will appreciate ;-) ) all this year

— comment by greg on July 3rd, 2007 at 12:02am JST (1 year, 1 month ago) comment permalink

I am also having trouble downloading the file. I can get it to come up in a html but can’t seem to get it into my Photoshop. I have Photoshop CS2 and would really love to try this script. Please tell me what I’m doing wrong in downloading this script.
Thanks

— comment by Janice on July 10th, 2007 at 12:43pm JST (1 year, 1 month ago) comment permalink

How about adding an option to include week numbers as well?

— comment by Tor on September 9th, 2007 at 6:59pm JST (11 months ago) comment permalink

Wow! This is just what I’ve been looking for! Thank you!

— comment by Kay on September 17th, 2007 at 11:41pm JST (11 months ago) comment permalink

Couple questions:
- does this work with CS3?
- and/or have you updated the script?

thanks in advance. I used this a bit in CS2 and quite like it.

glenn

— comment by glenn on September 24th, 2007 at 10:42am JST (11 months ago) comment permalink

To the above poster: yes it does work for CS3, I have tested it myself.

To Jeffrey: thank you for this amazing script! It saved me loads of time while I was working on a calendar project for school. One request - can you make a configuration for customizable calendar sizes (in pixels or inches or whatever) instead of only standard paper sizes?

— comment by Johnny on October 2nd, 2007 at 9:22am JST (11 months ago) comment permalink

I’d like to know if this template is suited for A3 format.

This feature added in v3 (Oct 31, 2007) —Jeffrey

— comment by Rei on October 4th, 2007 at 3:37pm JST (11 months ago) comment permalink

Wow what a great script, used it on Photoshop CS 3, i cool feature would be resize the calendar to user set type, and maybe create the calendar to a user set size.

Else i just make some workarounds, but what a great tool it is so cool.

thx for making this hard thing so easy to do now.

— comment by Glenn Møller on October 6th, 2007 at 6:27am JST (10 months ago) comment permalink

Hi Jeffrey
I saw you site, its very good, you did a very good job thanks you ,I am a photographer based in Egypt, I need your hlep if possible I would like to know if i can set the week starting day any day of the week? thanks alot in advance

cheers

Mariz

This feature added in v3 (Oct 31, 2007) —Jeffrey

— comment by Mariz on October 7th, 2007 at 5:41pm JST (10 months ago) comment permalink

Thanks a lot!!!!!
Very great tool!!!!!!

Just one question: would it be possible to have all the months in the same page?
If you do something like that let me know please.

I’ve not considered that because I’ve never needed it myself, and have never liked those kind of calendars. But if enough people would find it useful, I could look into adding it as a feature…. —Jeffrey

You are a great person sharing this tremendous work.

— comment by César Cantó on October 11th, 2007 at 7:04pm JST (10 months ago) comment permalink

Hi–this is great! I am also looking for a calendar with all the months on 1 page. I am doing one as a fundraiser and need 8 months on the front and 8 months on the back of an 11X 17 sheet. I’d love to know if you make this available–thank you!
Karen

— comment by Karen on October 15th, 2007 at 4:06pm JST (10 months ago) comment permalink

Thank you very much for sharing this with all of us. I tried it and I had a January calendar within minutes.
Do you have a template where the entire calendar from Jan to December is on one page? ;)
Godbless!

— comment by Amor on October 29th, 2007 at 10:37pm JST (10 months ago) comment permalink

This is so awesome!!! Thank you Jeffrey for making this available. i was wondering if you were able to get the February issue resolved? I too only get March when I pick February. Thanks so much!

Fixed in v3 (Oct 31, 2007) —Jeffrey

— comment by Cori on October 31st, 2007 at 12:03pm JST (10 months ago) comment permalink

This is awsome stuff. Well done and thanks heaps.

I too have hit the February issue but it also happened for April, June, September and November when I selected ALL months. It did two of the next month.

I thought this very strange as I had done this before and it worked perfectly! What had changed?
I have been doing Christmas presents for family with calendars from my last holiday to Canada & Alaska so did have copies of the months missed.
I only needed some differnt ones as I wanted to include differnt birthdays on the calendars.
I have managed to get arount it and fix it in photoshop. I am running CS3 so it works in cs3.

Fixed in v3 (Oct 31, 2007) —Jeffrey

— comment by Ron Taylor on October 31st, 2007 at 6:34pm JST (10 months ago) comment permalink

Thank you for this script, I would like to make the same kind of calendar you did in Portrait mode with your little boy, with the picture at 100% opacity and above the calendar grid,
you wrote it could be achieved by resizing the grid manually, that would be great if you could add an option in the script to automate this.

— comment by Jon on November 8th, 2007 at 11:21am JST (9 months ago) comment permalink

I loved this. I am also looking for one with all the months on one page. Let me know if you know of one. Thanks.

Laura

— comment by Laura on November 9th, 2007 at 3:16am JST (9 months ago) comment permalink

Excellent job !!! U r genius
…. just solving problem …. too small letters of daynames …. in slovak language ….. where should i change them ?

thanks a lot
Martin

— comment by Martin on November 12th, 2007 at 12:32am JST (9 months ago) comment permalink

Just wanted to say: “Thanks… Great work.”

— comment by Paul on November 13th, 2007 at 3:49am JST (9 months ago) comment permalink

I would love to try this script but when I downloaded it and placed into the scripts folder on CS2 I keep getting an error message. Can someone tell me what I am doing wrong.

It might be easier to offer suggestions if you were a bit more verbose in your description of what you’re doing and what the actual error message is…. —Jeffrey

— comment by John on November 16th, 2007 at 2:26pm JST (9 months ago) comment permalink

I keep getting an error message:
Couldn`t open the annotation file C: ………/CalendarData2008.txt

which I made in wordpad and copied your annotation data from your example CalendarData2008.txt

THE FILE IS IN MY HOME DIRECTORY …

The error message is telling you where it expects to find the file, so is the file there? If it is, then there must be some other reason that it can’t be opened (or some other error being incorrectly reported that way)…. —Jeffrey

— comment by Martin on November 18th, 2007 at 2:15am JST (9 months ago) comment permalink

When I try to open the script in photoshop, I keep getting the message “could not complete your request because it is not the right kind of document.” Can someone email me the correct script?

It sounds like you’re trying to open the script as if it’s an image, instead of invoking the script via the File > Scripts menu. —Jeffrey

— comment by Stacy on November 18th, 2007 at 8:44am JST (9 months ago) comment permalink

When I downloaded the script to my desktop, it shows as though it’s an image. How do I change it?

— comment by Stacy on November 19th, 2007 at 4:11am JST (9 months ago) comment permalink

To be more specific, the error message reads “Error 8: Syntax error, line 1 -> #target photoshop

— comment by Stacy on November 19th, 2007 at 5:56am JST (9 months ago) comment permalink

Good template. It’s easy to make a simple calendar with it. I will give you some suggestions:
- script can make CMYK mode files
- add more layout choices
- add more paper sizes(custom etc.)

That’s for now. Good luck!

— comment by Koko Delchev on November 19th, 2007 at 7:10am JST (9 months ago) comment permalink

I attempted to save the script but when I click on the link it opens to a page of code. What can I do

— comment by Maria on November 20th, 2007 at 5:58am JST (9 months ago) comment permalink

Jeffrey,

Thanks a lot for this wonderful script. That’s exactly what I was looking for! Works great!
Keep up the great work!

I just would like to report a tiny issue in the script:

I have 3 dates sections in the CalendarData file: US Federal Holidays displayed in red with a small font (just like you have in your example), Other US Dates (like St. Valentine’s day, or Mother’s day) that are displayed in gray with a small font, and Family Birthdays that I would like to show in blue with a standard (100%) font size.

Problem is when someone’s birthday falls on the same day as say Thanksgiving (Federal Holiday shown in small red), then this birthday date instead of the specified standard blue is shown in a small red.

Hmmm, if you could mail me the holiday data file you use, I’ll try to debug it….

There is of course a wonderful workaround: do NOT rasterize text layers, and later correct the problem. And that’s exactly what I did, so it’s not a big deal, but still wanted to bring it to your attention, so you can make it perfect.

One more thing. Instead of placing one large image under the grid (as shown in your example), on dates with birthdays I put small images of my beloved relatives right within the boundaries of the cell. It would be nice to have a small image masks in those cells, so I wouldn’t have to calculate what’s the size of the cell in order to crop the image I’d like to put there.

There’s a pretty easy way to do what you want:

  1. Use the marquee tool to select the date rectangle that you want to fill.
  2. Add the image with the beloved to the document, select it, then use the move tool to position it roughly over the area you just selected. Don’t worry about getting it correct… just in the vague ballpark.
  3. Click the “layer mask” button (icon of a circle within a rectangle) at the bottom of the Layers palette. This will allow the image to show through only within the rectangle you selected earlier.
  4. In the layers palette, between the thumbnail for the “beloved” image and the thumbnail for the mask you just created, there’s a “link of chain” icon. Click it to remove it. This allows the image and its mask to be transformed independently.
  5. Click on the thumbnail for the “beloved” image to ensure it’s selected.
  6. Invoke Edit > Transform > Scale, and move/scale the “beloved” image such that what shows through is what you want. Be sure to hold down the SHIFT key while scaling, so that the width/height proportion is maintained.

That might sound like a lot, but once you understand the steps, it takes about 10 seconds to actually do. Oh, and you might also consider feathering the selection made in step 1, for a different feel.
—Jeffrey

Thanks again.

— comment by Dmitriy on November 27th, 2007 at 8:46am JST (9 months ago) comment permalink

I need help…. I have downloaded the file and added to scripts but when I go to run it I get an error that says Photoshop was unable to find the JavaScript plug-in. I am running Mac and photoshop CS version 8. Can you please tell me how to proceed. Please. Thank you, Marilyn

— comment by Marilyn on November 28th, 2007 at 12:57am JST (9 months ago) comment permalink

Jeff,

This is a sample Data file I use. If you run the script for May, you’ll see that ‘Mom’, and ‘Grandpa’ birthdays are shown in blue with 100% font size as specified.
However ‘Dad’ birthday instead of standard size blue font will be shown in smaller gray font, which is derived from Cinco de Mayo attributes.

# US Federal and Religious holidays are in red, with a small font

[FontColor=100%,0%,0%]
[FontOpacity=50%]
[FontSize=80%]
01/01 New Year
2008-01-21 Martin Luther King, Jr. Day
2008-02-18 President’s Day
2008-03-23 Easter
2008-05-26 Memorial Day
07-04 Independence Day
2008-09-01 Labor Day
2008-10-13 Columbus Day
2008-11-11 Veterans Day
2008-11-27 Thanksgiving
12/25 Christmas

# Other Dates

[FontColor=128,128,128]
[FontOpacity=50%]
[FontSize=80%]
02-14 St. Valentine’s Day
2008-02-02 Groundhog Day
2008-02-06 Ash Wednesday
2008-03-09 Daylight Saving Time Starts(clocks ahead 1 hour)
2008-03-21 Good Friday
2008-05-05 Cinco de Mayo
2008-05-11 Mother’s Day
2008-06-14 Flag Day
2008-06-15 Father’s Day
2008-09-07 Grandparents’ Day
10-31 Halloween
2008-11-02 Daylight Saving Time Ends(clocks back 1 hour)
2008-11-04 Election Day

# Birthdays and anniversaries

[FontColor=0%,0%,100%]
[FontOpacity=80%]
[FontSize=100%]
05-01 Mom
05-05 Dad
05-25 Grandpa

— comment by Dmitriy on November 29th, 2007 at 3:44am JST (9 months ago) comment permalink

I recieve the following error when trying to run the script:

Error in
Line 1648: {
No matching closing brace found

I don’t have anything that can count lines otherwise I would just have added a closing brace in notepad, but counting over a thousand lines is also not cool ;(

— comment by Chris on December 6th, 2007 at 7:49pm JST (8 months ago) comment permalink

Thanx for the quick reply Jeffrey.

Solution: Incomplete download and redownloaded ;)

— comment by Chris on December 6th, 2007 at 8:38pm JST (8 months ago) comment permalink

I found your calendar work when I was browsing this morning, and I love it. Thanks Good job

— comment by Luis Gonzalez on December 12th, 2007 at 4:28am JST (8 months ago) comment permalink

I have downloaded the file and added to scripts but when I go to run it I get an error that says JavaScript code was missing.

— comment by Corey on December 14th, 2007 at 9:00am JST (8 months ago) comment permalink

Hi Jeff,

What a great script. I have run it so far on A4 landscape and portrait modes (as trials to see which I preferred). I noticed, however, that when I run the script on A5 portrait mode (which is actually what I want to use for some gift calenders for my family), the actual calendar is not formatted correctly, but is squashed into the bottom of the page. Can you please advise if this is a bug or if I have a setting wrong somewhere.

It’s not too big a deal as I can still run the script sized for A4 and then print down to A5 within the print driver, but this is not perfect as it will affect the DPI seting.

I’m using CS2 and have installed your script into the Photoshop scripts area to run from the File menu.

Thanks
Ian

Fixed in Version 4, thanks for the heads up. —Jeffrey

— comment by ian on December 22nd, 2007 at 11:02pm JST (8 months ago) comment permalink

There are a couple of things to correct in your script:

1) I keep getting syntax error in Latvian translation of wednesday. According to UTF-8 codes, the correct name should be
“Tre\u0161diena”
It looks like the name is not correcly encoded in the source

2) I think you should make a fix on line 2209, where you replace the tag with a cariage return character. Everything works well untill you have more than one line-break in one line. I think it should do a global replace:
Item.text = text.replace(/<BR>/gi, “\r”);

And finally thanks for the great script. It saved me a day of manual photoshop work! Merry christmas!

— comment by Ingus on December 24th, 2007 at 1:40am JST (8 months ago) comment permalink

You calendar scripts sounds great, however when I try to run the script through Photoshop CS I get this error “Error 8: Syntax error, line 1 -> #target photoshop” does this mean it will not work in CS?

— comment by Annelisa on December 31st, 2007 at 12:56pm JST (8 months ago) comment permalink

Thanks so much for this script! It works like a dream!

— comment by Alison on January 2nd, 2008 at 4:59am JST (8 months ago) comment permalink

Possible to add a 4R paper size?
Would be great to print calender on 4R paper :)

— comment by Arkady on January 3rd, 2008 at 11:03pm JST (7 months ago) comment permalink

Hi Jeffrey or any other kind-hearted soul out there.

This is great but I only have Photoshop 7.0. Can you please convert to javascript code for version 7.0?

Thank you.

jpgutierrez18@gmail.com

— comment by Joey on January 4th, 2008 at 11:48am JST (7 months ago) comment permalink

Thanks for the great script Jeffrey.

I noticed a little glitch. If there are two annotations defined for the same day that should render in different colours, they don’t, with both having the colour of the first one appearing in the definition file.

— comment by Steve Crane on January 6th, 2008 at 2:10am JST (7 months ago) comment permalink

Your calender script is by far the best one out there. Creates the templates I have always wanted. Its very easy to create batch actions to change the appearance of calenders by changing the text layer styles and the opacity, fill and stack order of the groups and layers you have created. The only problem I had in creating these batch actions I created for the Landscape and Portrait Calendars was I had to duplicate the portrait one for the different size calendars because I transform the scale of the picture mask to force it to the image area with proper fades borders.

Thanks again…Very well done
jjmack

— comment by John McAssey on January 6th, 2008 at 2:32am JST (7 months ago) comment permalink

I just happened past your site looking for a way to make my own calendars and this by far is better than what I could have ever imagined. I’ve only played with it a few minutes but it is GREAT….
Thank you!!!

— comment by Tanya on January 17th, 2008 at 6:46am JST (7 months ago) comment permalink

What an excellent piece of scripting! Thank you so much for sharing it.

— comment by Huw on January 22nd, 2008 at 12:58pm JST (7 months ago) comment permalink

Hello,

Thia is a great script and sharing it free is greatly appriciated. It works fine. Somehow it didn’t work (partially) in Gujarati and Hindi (Indian) languages. If u have a time then pl look into it. Thanks

— comment by pradip on February 6th, 2008 at 3:25am JST (6 months ago) comment permalink

This is AWESOME…saves lots of work.

Could you please add the all months in one….so I can place it on the back of a business card.

— comment by JD on February 17th, 2008 at 1:51pm JST (6 months ago) comment permalink

Thanks for the time saver!

— comment by Robert on March 3rd, 2008 at 1:06am JST (6 months ago) comment permalink

I have a Mac with CS3. I’ve loaded the script and it open in photoshop. I tried to setup Calendar2008Data.txt in my home directory and added your CalendarData2008.txt just to test if it works. When I save the settings in Photoshop and try to run it, I get:

Bad line in line 1; aborting data read.

I tried changing the filename to CalendarData2008.rtf.

Also tried CalendarData2008.odt. Same error message.

Do you know how to get around this? Thanks,

Bee

— comment by bee on March 4th, 2008 at 2:58pm JST (5 months ago) comment permalink

We set up the txt file through our Parallel Windows desktop and now there’s no error message. I’m wondering what the format should be for those who don’t have Windows on their system.

— comment by bee on March 4th, 2008 at 3:14pm JST (5 months ago) comment permalink

Stunning Plugin THANK YOU SO MUCH!

— comment by Nathan on April 11th, 2008 at 10:34am JST (4 months ago) comment permalink

Is it possible to get this working with CS1?

I don’t know anything about CS1’s scripting (or possible lack thereof), sorry. —Jeffrey

— comment by Jose on April 13th, 2008 at 10:56pm JST (4 months ago) comment permalink

Is it possible to enhance the month, days, grid and dates to make them clearer?
The pictures I am using are quite strong and the data seems to get lost.
Great idea and works very well.
Thanks

You can tweak this by adjusting the opacity of the various layers (lowing the opacity of the image, or increasing the opacity of the gird/dates). Personally, I think it looks nice when the image is a bit washed out – it lets you use it as a calendar when viewed up close, but as a photo when viewed from afar – so I usually lower the opacity of the image. —Jeffrey

— comment by Joyce on April 16th, 2008 at 12:17am JST (4 months ago) comment permalink

I donwloaded your script this week and have to say “thanks”! Works great and well documented for the novice to learn from. Is this what you do for a living??

— comment by Mario on April 24th, 2008 at 6:06pm JST (4 months ago) comment permalink

Thank you!
This is wonderful! And so nice of you to share with others :)
This will really save me time - I appreciate it very much!!

— comment by Tomer on April 28th, 2008 at 4:04am JST (4 months ago) comment permalink

Excellent I love It!! maybe add a calculation so it can display how old the person is on his/her birthday

I’ve already done that… I guess I haven’t pushed it out yet, though. Will do soon. —Jeffrey

— comment by Chaim on April 29th, 2008 at 11:37am JST (4 months ago) comment permalink

Wow thats great cant wait… Just got lazy changing the .txt document

— comment by Chaim on May 1st, 2008 at 12:31pm JST (4 months ago) comment permalink

For the last two years I have been looking for a “template” to make a calendar. Boy did I ever luck out on this one!! There are a few things that I would like to see, but for “free” this is ECELLENT. I will proudly give out this calendar for Christmas presents.
Thnaks so much Jeffrey for sharing this with us.

— comment by Sharon Vasas on May 7th, 2008 at 1:07pm JST (3 months ago) comment permalink

Thanks very much for taking the time and trouble to produce this great script for photoshop. I have learned so much about photoshop whilst enjoying the exercise of producing a tailor made calendar. Your blog is just fantastic….almost seems you made it just for me..it has so much information on it that I am enjoying. Your eforts are greatly apreciated…

best regards

Dennis

— comment by Dennis on June 29th, 2008 at 3:31am JST (2 months ago) comment permalink

thank you so so much!

great script !!

:)

— comment by ozg on July 8th, 2008 at 4:51am JST (1 month ago) comment permalink

I love this!!! Thank you very much. It works extremely well. I am in the process of putting together a yearly calendar for our Springer Spaniel club and your script has been a godsend.
One question though - I am able to move and/or change everything that I need to except the color of “days”; I can’t seem to change them from gray. Any hints?

Thanks so much,
Kristin

— comment by Kristin Radermacher on July 10th, 2008 at 6:41pm JST (1 month ago) comment permalink

Jeffrey, thank you for taking the time to do this. I’m a n00b at photoshop, and I really wanted to make some calendar desktop images. This really hits the spot.

Cheers and all the best.

— comment by photo Newbi on July 17th, 2008 at 11:50am JST (1 month ago) comment permalink

how can i edit this to create 2010 and so on? I know it seems like i would not need this yet, but offering some calendar options to high school seniors as a photographer means i start offering as early as their junior year. I am not a script writer, but i am saavy enough that maybe i could edit myself if you can point out how/where to do it. thanks….I am building 2009 as i type this so i hope it is what i am looking for…i am pretty sure it is.

Uh, did you actually even give it a try? What about the “Target year” entry box is not sufficient? Geez. —Jeffrey

— comment by TBLcreates on August 2nd, 2008 at 2:04am JST (4 weeks ago) comment permalink

i have never use this technic. Thanks. Very useful will be making calender.

— comment by radyo bakur on August 3rd, 2008 at 2:52am JST (3 weeks ago) comment permalink

Thanks! This script saved me tons of time. The calendars look excellent.

— comment by Trevor on August 7th, 2008 at 12:06pm JST (3 weeks ago) comment permalink
Leave a comment...

More or less plain text — see below for allowed markup

You can use the following tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>