top of page


Since 2005 I have been using Q++Studio to automate the typesetting of diaries and calendars.

Most of the world's foremost diary publishers use Q++Studio, as you can see if you visit, in the "References" section. It has no rival; there are no other software like it.

WHY automate?

Above all, to avoid mistakes. Let me explain in detail how I do so.

You know that proofreading a diary or calendar is so monotonous that it becomes almost sleep-inducing. However, a major typo can ruin a diary.


The best way to avoid mistakes is to render their existence almost impossible. Don't type anything, don't copy/paste anything, don't use text strings flowing through endless linked textboxes. Use programming and databases.


With Q++Studio, all the elements that are variable in an agenda, such as days, months, public holidays, moon phases, languages, etc., are stored in databases. Then, they are placed on the right date, accurately, flawlessly, in the format that we choose. Automatically.


In addition, Q++Studio will apply all the changes to the layout that we have previously programmed in line with any particular circumstances of the day, week, month or year in question, or the wording of any of the texts generated:

  • All kinds of text formatting changes: font, colour, size, etc.

  • Changes to the wording of the text generated, using automatic search and replace instructions, which include the use of "regular expressions".

  • Highlighting the current day or week in monthly mini-calendars.

  • Inserting, scaling and moving images.

  • Inserting all kinds of additional pages throughout the diary: planners, covers, information pages, etc.

  • In general, almost any layout change you could wish for.


When programming a diary or calendar with Q++Studio, my goal is not to have to do anything manually. In the vast majority of cases, I manage to generate each year's product by simply clicking a button. The whole product: from the first page to the last, including front and back pages.

Obviously, I have to check the result afterwards. But if there are any errors, they will be recurrent and very easy to spot during my proofread. Not the "I have made a mistake on a certain Monday" kind of errors, but the "I have made a mistake on every Monday" kind of errors. Programming errors, not typing errors. I spot them, correct the programming and generate the product again. I can promise that the proofreader in your team is going to get really bored checking my PDFs.


HOW does
Q++Studio work?


In case you are curious, here are the different steps involved my work with Q++Studio:

  1. I need my client to send me a sample; if possible, the complete InDesign or QuarkXPress document from the previous year, in any version. Failing that, the PDF of the previous year. But I can also do the design myself, following my client's instructions, and send design proofs for the client's approval.

  2. I select sample pages and convert them into templates, replacing by source code everything that is variable: days, months, public holidays, moon phases, saints' days, mini-calendars, etc., with their original typography. For example, instead of the day I put "[d]". Instead of the month I put "[Mmmm]". And so on, from the simplest to the most complex.

  3. I tell Q++Studio which databases to use. Q++Studio has its own databases, which include everything you need to make any diary, in 33 different languages. Of course, said databases include the calendar of any year but also the public holidays of all the countries in the world, and all kinds of astronomical events. If you want a particular kind of data or language not supported by Q++Studio, I create a database to add that data or language.

  4. I tell Q++Studio from which date to which date I want it to generate the product.

  5. I press a button and get all the pages of the diary or calendar.

  6. I check the result, correct any programming errors and keep repeating the previous step until the product is generated without any errors.

Phases of automation (very simplified example):

bottom of page