Put the following into text field and it will generate a calendar in your form. Make sure that the text area uses a fixed width font.
REM "Controllable spacing version from MStevenson@symantec.com";
TmpDate := @Date(@Today); REM "HSP controls the horizontal size of the calendar."; REM "Use 1 space for a really small calendar."; REM "Default is 2 spaces."; hsp := " "; REM "VSP controls the vertical size of the calendar"; REM "Default is 1 @Newline"; vsp := @Newline; REM "DSP is used for the day headings"; dsp := hsp + " "; REM "-------------------------- Calculate the days for this month"; A := @Adjust(TmpDate; 0; 0; -(@Day(TmpDate) - 1); 0; 0; 0); A1 := @Weekday(A); A2 := A; A3 := @Month(A); C1 := @Adjust(A2; 0; 0; (1 - A1); 0; 0; 0); C2 := @Adjust(A2; 0; 0; (2 - A1); 0; 0; 0); C3 := @Adjust(A2; 0; 0; (3 - A1); 0; 0; 0); C4 := @Adjust(A2; 0; 0; (4 - A1); 0; 0; 0); C5 := @Adjust(A2; 0; 0; (5 - A1); 0; 0; 0); C6 := @Adjust(A2; 0; 0; (6 - A1); 0; 0; 0); C7 := @Adjust(A2; 0; 0; (7 - A1); 0; 0; 0); C8 := @Adjust(A2; 0; 0; (8 - A1); 0; 0; 0); C9 := @Adjust(A2; 0; 0; (9 - A1); 0; 0; 0); C10 := @Adjust(A2; 0; 0; (10 - A1); 0; 0; 0); C11 := @Adjust(A2; 0; 0; (11 - A1); 0; 0; 0); C12 := @Adjust(A2; 0; 0; (12 - A1); 0; 0; 0); C13 := @Adjust(A2; 0; 0; (13 - A1); 0; 0; 0); C14 := @Adjust(A2; 0; 0; (14 - A1); 0; 0; 0); C15 := @Adjust(A2; 0; 0; (15 - A1); 0; 0; 0); C16 := @Adjust(A2; 0; 0; (16 - A1); 0; 0; 0); C17 := @Adjust(A2; 0; 0; (17 - A1); 0; 0; 0); C18 := @Adjust(A2; 0; 0; (18 - A1); 0; 0; 0); C19 := @Adjust(A2; 0; 0; (19 - A1); 0; 0; 0); C20 := @Adjust(A2; 0; 0; (20 - A1); 0; 0; 0); C21 := @Adjust(A2; 0; 0; (21 - A1); 0; 0; 0); C22 := @Adjust(A2; 0; 0; (22 - A1); 0; 0; 0); C23 := @Adjust(A2; 0; 0; (23 - A1); 0; 0; 0); C24 := @Adjust(A2; 0; 0; (24 - A1); 0; 0; 0); C25 := @Adjust(A2; 0; 0; (25 - A1); 0; 0; 0); C26 := @Adjust(A2; 0; 0; (26 - A1); 0; 0; 0); C27 := @Adjust(A2; 0; 0; (27 - A1); 0; 0; 0); C28 := @Adjust(A2; 0; 0; (28 - A1); 0; 0; 0); C29 := @Adjust(A2; 0; 0; (29 - A1); 0; 0; 0); C30 := @Adjust(A2; 0; 0; (30 - A1); 0; 0; 0); C31 := @Adjust(A2; 0; 0; (31 - A1); 0; 0; 0); C32 := @Adjust(A2; 0; 0; (32 - A1); 0; 0; 0); C33 := @Adjust(A2; 0; 0; (33 - A1); 0; 0; 0); C34 := @Adjust(A2; 0; 0; (34 - A1); 0; 0; 0); C35 := @Adjust(A2; 0; 0; (35 - A1); 0; 0; 0); C36 := @Adjust(A2; 0; 0; (36 - A1); 0; 0; 0); C37 := @Adjust(A2; 0; 0; (37 - A1); 0; 0; 0); REM "----------------------------------- Create display values"; B1 := @If(@Month(C1) != A3; " "; @Right("0" + @Text(@Day(C1)); 2)); B2 := @If(@Month(C2) != A3; " "; @Right("0" + @Text(@Day(C2)); 2)); B3 := @If(@Month(C3) != A3; " "; @Right("0" + @Text(@Day(C3)); 2)); B4 := @If(@Month(C4) != A3; " "; @Right("0" + @Text(@Day(C4)); 2)); B5 := @If(@Month(C5) != A3; " "; @Right("0" + @Text(@Day(C5)); 2)); B6 := @If(@Month(C6) != A3; " "; @Right("0" + @Text(@Day(C6)); 2)); REM "These days always have values, so do not bother with the extra check"; B7 := @Right("0" + @Text(@Day(C7)); 2); B8 := @Right("0" + @Text(@Day(C8)); 2); B9 := @Right("0" + @Text(@Day(C9)); 2); B10 := @Right("0" + @Text(@Day(C10)); 2); B11 := @Right("0" + @Text(@Day(C11)); 2); B12 := @Right("0" + @Text(@Day(C12)); 2); B13 := @Right("0" + @Text(@Day(C13)); 2); B14 := @Right("0" + @Text(@Day(C14)); 2); B15 := @Right("0" + @Text(@Day(C15)); 2); B16 := @Right("0" + @Text(@Day(C16)); 2); B17 := @Right("0" + @Text(@Day(C17)); 2); B18 := @Right("0" + @Text(@Day(C18)); 2); B19 := @Right("0" + @Text(@Day(C19)); 2); B20 := @Right("0" + @Text(@Day(C20)); 2); B21 := @Right("0" + @Text(@Day(C21)); 2); B22 := @Right("0" + @Text(@Day(C22)); 2); B23 := @Right("0" + @Text(@Day(C23)); 2); B24 := @Right("0" + @Text(@Day(C24)); 2); B25 := @Right("0" + @Text(@Day(C25)); 2); B26 := @Right("0" + @Text(@Day(C26)); 2); B27 := @Right("0" + @Text(@Day(C27)); 2); B28 := @Right("0" + @Text(@Day(C28)); 2); B29 := @Right("0" + @Text(@Day(C29)); 2); B30 := @If(@Month(C30) != A3; " "; @Right("0" + @Text(@Day(C30)); 2)); B31 := @If(@Month(C31) != A3; " "; @Right("0" + @Text(@Day(C31)); 2)); B32 := @If(@Month(C32) != A3; " "; @Right("0" + @Text(@Day(C32)); 2)); B33 := @If(@Month(C33) != A3; " "; @Right("0" + @Text(@Day(C33)); 2)); B34 := @If(@Month(C34) != A3; " "; @Right("0" + @Text(@Day(C34)); 2)); B35 := @If(@Month(C35) != A3; " "; @Right("0" + @Text(@Day(C35)); 2)); B36 := @If(@Month(C36) != A3; " "; @Right("0" + @Text(@Day(C36)); 2)); B37 := @If(@Month(C37) != A3; " "; @Right("0" + @Text(@Day(C37)); 2)); ShowMonth := @Select(@Month(A2); "January"; "February"; "March"; "April"; "May"; "June"; "July"; "August"; "September"; "October"; "November"; "December"); REM "---------------------- Display the calendar"; sp + sp + sp + ShowMonth + " " + @Text(@Day(TmpDate)) + ", " + @Text(@Year(A2)) + vsp + " " + "S" + dsp + "M" + dsp + "T" + dsp + "W" + dsp + "T" + dsp + "F" + dsp + "S" + vsp + B1 + hsp + B2 + hsp + B3 + hsp + B4 + hsp + B5 + hsp + B6 + hsp + B7 + vsp + B8 + hsp + B9 + hsp + B10 + hsp + B11 + hsp + B12 + hsp + B13 + hsp + B14 + vsp + B15 + hsp + B16 + hsp + B17 + hsp + B18 + hsp + B19 + hsp + B20 + hsp + B21 + vsp + B22 + hsp + B23 + hsp + B24 + hsp + B25 + hsp + B26 + hsp + B27 + hsp + B28 + hsp + vsp + B29 + hsp + B30 + hsp + B31 + hsp + B32 + hsp + B33 + hsp + B34 + hsp + B35 + hsp + vsp + B36 + hsp + B37