diary generator
Makes very small diary (appr. 6.5 wide by 5.5 high)
Generates RTF file that can be read in in Word5.1 (or higher?)

Notes for use:
    Adjust variables  firstdayofyear and  schrikkeljaar
Translate days and months of year as you like
Run the program
Open the generated file bla.txt in word. It should interpret it
as an RTF file (Word5.1 recognises the header in the file itself).
Print the file DOUBLE-SIDED. You may have to adjust slightly
if the "--" are not on exactly the same place on the other side of the page.
Use the left and right margin to adjust this, and use odd and even headers to adjust heights.

After printing:
Fold each page on the middle of the  "--"
cut the page in slices. Cut carefully and perpendicular above the month 
order all pages
Align upsidedown, so that the months are properly at top of all pages
add kaft
stamp 
cut all square at once, with strong cutting machine

\(\(days = {"M", "D", "W", "D", "V", "Z", "Z"};\)\)

Day names for monday, tuesday, wednesday...
that you would like to see in diary

firstdayofyear = 6;

schrikkeljaar = False;

\(\(months = {"Januari", "Februari", "Maart", "April", 
"Mei", "Juni", "Juli", "Augustus", "September", 
"October", "November", "December", "January", "February"};\)\)

daysinmonth = {31, 
If[schrikkeljaar,  29, 28], 
          31, 30, 31, 30, 31, 31, 30, 31, 30, 
          31, 
  
31, 28};

daysinmonth

day = firstdayofyear;

GetDay := 
        Module[{thisday}, 
thisday = 
            day; 
day = 
            Mod[day, 7] + 
              1; 
thisday
];

daysofyear = 
        Flatten[
Table[{GetDay, d, 
              months[[m]]}, 
{m, 1, 
              14}, 
{d, 1, 
              daysinmonth[[m]]}], 
1];

startnumber = 1;
While[
        daysofyear[[startnumber, 1]] ≠ 
          1, startnumber++];

daysofyear[[startnumber]]

Run through year, generate pages for diary

Make std header in RTF

output = "{\\rtf1\\mac\\deff2 
{\\fonttbl
{\\f2\\froman New York;}
{\\f3\\fswiss Geneva;}
{\\f16\\fnil Palatino;}
{\\f20\\froman Times;}}\n
{\\colortbl\\red0\\green0\\blue0;\\red0\\green0\n
\\blue255;\\red0\\green255\\blue255;\\red0\\green255\n
\\blue0;\\red255\\green0\\blue255;\\red255\\green0\n
\\blue0;\\red255\\green255\\blue0;\n
\\red255\\green255\\blue255;}\n
{\\stylesheet{\\f16 \\sbasedon222\\snext0 Normal;}} \n
{\\info{\\title bla1}{\\author Pasman}} \n
\\paperw11900\\paperh16840\\widowctrl\\ftnbj
\\fracwidth \\sectd \\sbknone\\linemod0\n
\\linex0\\cols1\\endnhere \\pard\\plain \n
\\f16\n";

we can fit 4 x2 pages = 4x1 week per A4 
on front each block is a week, we skip one week each time
on the back we have on the left the first half of next week,
on the right the last half of previous week

Generate month title for days i1..i2
checks whether both days fall in same month
if not, appends two month names with "/"

daysofyear[[1]]

MonthTitle[i1_, i2_] := 
        If[daysofyear[[i1, 3]] == daysofyear[[i2, 3]], 
          daysofyear[[i1, 3]], 
          daysofyear[[i1, 3]] <> "/" <> 
            daysofyear[[i2, 3]]];

\(\(DayTitle[i_] := 
        If[daysofyear[\([i, 1]\)] ≠ 
            6, 
days[\([daysofyear[\([i, 
                    1]\)]]\)]\  <> \ " "\  <> \ 
            ToString[
              daysofyear[\([i, 
                  2]\)]], 
days[\([daysofyear[\([i, 
                    1]\)]]\)]\  <> \ " "\  <> 
\ 
            ToString[
              daysofyear[\([i, 
                  2]\)]]\  <> 
" \bullet "\  <> 
ToString[
              daysofyear[\([i + 1, 2]\)]]
];\)\)

AddDays creates 3 days in left column and
3 "days" (saturday+sunday) in right, starting with left and right day index.

\(AddDays[left_, right_] := \(output = output <> 
"\par 
\trowd \trqc\trgaph80\trleft-80 \clbrdrb\brdrs \clshdng0\cellx2686\clshdng0\cellx5452\clbrdrb\brdrs \clshdng0\cellx8218\pard \intbl "
 <> 
          MonthTitle[left, 
            left + 2] <> "\cell \pard \qc\intbl --\cell \pard \qr\intbl " <> 
\ 
          MonthTitle[right, 
            right + 3] <> "\cell \pard \intbl \row \trowd \trqc\trgaph80\trleft-80 
\clbrdrt\brdrs \clbrdrb\brdrs \clshdng0\cellx2686\clshdng0\cellx5452\clbrdrt\brdrs \clbrdrb\brdrs \clshdng0\cellx8218\pard \intbl " <> 
DayTitle[
            left] <> "\par 
\par 
\cell \cell "
 <> 
          DayTitle[
            right] <> "\cell \pard \intbl \row \pard \intbl " <> 
DayTitle[left + 1] <> 
"\par 
\par 
\cell \cell "
 <> 
          DayTitle[
            right + 1] <> "\cell \pard \intbl \row \trowd \trqc\trgaph80\trleft-80 \clbrdrt\brdrs \clbrdrb\brdrs \clshdng0\cellx2686\clshdng0\cellx5452\clbrdrt\brdrs \clbrdrb\brdrs \clshdng0\cellx8218\pard \intbl " <> 
DayTitle[
            left + 2] <> "\par 
\par 
\cell \cell " <> 
DayTitle[
            right + 2] <> "\cell \pard \intbl \row \pard 
\par \par"\)\)

\(\(\(For[week = 1, \ week < 52, \ 
        week += 8, 
AddDays[startnumber + week*7, 
          startnumber + week*7 + 3]; 
AddDays[
          startnumber + \((week + 2)\)*7, 
          startnumber + \((week + 2)\)*7 + 3]; 
        AddDays[startnumber + \((week + 4)\)*7, 
          startnumber + \((week + 4)\)*7 + 3]; 
        AddDays[startnumber + \((week + 6)\)*7, 
          startnumber + \((week + 6)\)*7 + 3]; 
output = 
          output\  <> \ "\page"; 
AddDays[
          startnumber + \((week + 1)\)*7, 
          startnumber + \((week - 1)\)*7 + 3]; 
AddDays[
          startnumber + \((week + 3)\)*7, 
          startnumber + \((week + 1)\)*7 + 3]; 
        AddDays[startnumber + \((week + 5)\)*7, 
          startnumber + \((week + 3)\)*7 + 3]; 
        AddDays[startnumber + \((week + 7)\)*7, 
          startnumber + \((week + 5)\)*7 + 3]; 
output = 
          output\  <> \ "\page";
];\)\(
\)\(
\)\)\)

output = output <> "}";

Export["Applications:Desktop Folder:cal.txt", output]

Note for OSX. Files dumped here don't become visible on the Desktop. DOn't know why . You can use the shell to move the file to $HOME/Desktop.