Maybe TeX isn't the best for this particular problem, but any teachers out there use a particular class or package to plan lessons? Right now I'm just using a spreadsheet, but I always find myself wishing there was a 'lessonplan.sty' or 'classschedule.sty' file out there somewhere so I could still use the LaTeX for equations, tables, lists etc.

A bit of searching yielded a few results, but there doesn't seem to be a consensus. Anyone used any of these:




Any recommendations from anyone on best way to make calendar-based class schedules and/or lesson plans?

6 Answers 6


I use termcal for planning lessons and creating syllabi. I usually start by creating a blank calendar for one semester for just specific days of the week, with holidays marked etc. When I finish the plan, I fill in topics, quizzes and exams, homework info and other details for individual days.

A great advantage is that when I teach the same class again, usually I just need to change the starting day and the holidays, and can keep everything else pretty much unchanged.

This is my typical schedule (parts omitted to make it shorter):


% Few useful commands (our classes always meet either on Monday and Wednesday 
% or on Tuesday and Thursday)

\calday[Monday]{\classday} % Monday
\skipday % Tuesday (no class)
\calday[Wednesday]{\classday} % Wednesday
\skipday % Thursday (no class)
\skipday % Friday 
\skipday\skipday % weekend (no class)

\skipday % Monday (no class)
\calday[Tuesday]{\classday} % Tuesday
\skipday % Wednesday (no class)
\calday[Thursday]{\classday} % Thursday
\skipday % Friday 
\skipday\skipday % weekend (no class)


\paragraph*{Tentative Schedule:}
\begin{calendar}{1/11/2010}{16} % Semester starts on 1/11/2010 and last for 16
                    % weeks, including finals week
% schedule
\caltexton{1}{1.1, 1.2 Review}
\caltextnext{1.3, 1.4 Review}
\caltextnext{2.1, 2.2 Linear Equations}
% ... and so on

% Holidays
\Holiday{1/18/2010}{Martin Luther King Day}
\Holiday{3/8/2010}{Spring Break}
% ... and so on

\options{4/26/2010}{\noclassday} % finals week
\options{4/27/2010}{\noclassday} % finals week
\options{4/28/2010}{\noclassday} % finals week
\options{4/29/2010}{\noclassday} % finals week
\options{4/30/2010}{\noclassday} % finals week
\caltext{4/27/2010}{\textbf{Final Exam}}
  • 2
    Jan, I love your calendar. I was wondering if you know how to make the width of the calendar boxes wider? I am teaching a M-F class and the boxes are too small. Thanks, Tricia
    – user17253
    Commented Aug 3, 2012 at 23:23
  • 4
    @user17253 This post is old, but I had the same question. The answer is: \setlength{\calwidth}{X in} where "X" is replaced by the amount of inches you wish for the width of the calendar. This may put your calendar off-center. You can adjust the margins by using the geometry package: \usepackage[margin=Yin]{geometry} You can tinker with the X and Y until your calendar is wide enough and centered. Commented Feb 6, 2014 at 9:45

TikZ/PGF has a nice Calendar library and an example of using it to produce a course schedule.



Requires Python to generate the calendar data for the selected year.

I wanted something to look 'modern' 'light' and 'open plan'.

Can be easily internationalized to most European languages (e.g. French, German, Spanish, etc.)

alt text


I don't know of one, but a few years' back I developed a layout for a scheme-of-work. It's a bit long to cut-and-paste here so I've put the tex file and pdf file on my website.

It's not very sophisticated: at heart, it's simply a big table and a load of wrapper commands to make it obvious how to put the right pieces in to the right places. If it's of any use, you're welcome to use it!

  • This looks great for lesson planning, I will certainly use it. (I wish there was also a way to integrate this with a calendar view). Thanks for the links!
    – crlane
    Commented Aug 3, 2010 at 19:37
  • @PolyCode, Leo: Leo's answer reminded me of the TikZ calendar library (which I've never used before) so I thought I'd give it a go to see if it could be integrated with my scheme of work. All I can say is: TikZ is awesome! I don't know exactly what you (PolyCode) want, but I've added a calendar view to my layout and updated the above links. Take a look - it may not be pretty, but it does work. Commented Aug 4, 2010 at 11:56
  • 12
    Links are dead.
    – luchonacho
    Commented Jan 6, 2017 at 11:50

Just found this question. There is also a very nice ConTeXt module; also, Emacs can export a calendar view to LaTeX (an old feature - it produces LaTeX2.09 code - but works quite nicely. I usually print a month view and stick it to my fridge;).

  • Link is dead :( Commented Nov 13, 2018 at 17:33
  • Could you please update the link to a working one or include the model here directly? As it is now, this answer is not very useful.
    – schtandard
    Commented Jul 29, 2019 at 20:56
  • 1
    @schtandard, thanks for pointing this out, done.
    – mbork
    Commented Jul 30, 2019 at 11:38

OS: Ubuntu 18.04
TeXlive: texlive 2019, using tlmgr in command line

I saw the link http://www.diyplanner.com/node/6270 in another answer, however it does not offer much explanation of how to use it. I have used that script many times to make different calendars, and it took some time to figure out how it works.

First, you have to run the python script. In Ubuntu 18.04, the default python is python3. So, you can run

cd ~/Downloads/DIY_Organizer/

to go to that directory. In case you extracted the zip file in another location, change the command correspondingly. Then run

python3 gen_Current_Macros.py

. After that, you can run


to start compiling the tex files. If there are errors, you can check them in the .log files. Run

ls -laS *.log 

to find them. You can change the .tex files to obtain the design you want.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .