aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: a97facf87fa67ddd513fb525d950f61e9e528998 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# weekschedule

A LaTeX class for creating reasonably attractive (or at least not
hideously ugly) schedules.

## Description

I created the `weekschedule` class to make visual representations of my
semester schedule to post on the door of my office. It supports a small
range of options for configuring how the schedule renders, including
12 vs 24 hour time and 5 or 7 day weeks. It's based on TikZ and produces
a landscape, single page document ready for taping to any office door.

This project was almost 100% vibe coded, so user beware. I seems to work
fine for my use cases, but I have not pushed it terribly hard. If you
do encounter any issues, feel free to reach out and I can take a look at
getting it fixed. If you're interested, it was made by first having Claude
Sonnet create a one-off, hard coded schedule, and then having Opus write a
class to emulate the schedule using an interface that I specified. It did
take a little iteration, but the whole thing went surprisingly smoothly.

## Installation

LaTex looks for class files within the working directory, as well as
within standardized directories (called a Tex tree) on your machine. The
easiest way to use this class is to simply dump it into the same
directory as the LaTex file you're working on, and use `weekschedule`
as the document class. You'll need to refer to the documentation for
your LaTex distribution for details on where to put the `.cls` file for
systemwide use.

## Using Examples

Example files are located in the `examples/` directory. They can be
compiled directory from the project root using,

```bash
$ pdflatex examples/weekly_schedule.tex
```

## Quick Start

```latex
\documentclass{weekschedule}

\scheduletitle{My Weekly Schedule}
\timefrom{8:00}
\timeto{17:00}
\twelvehourtime

\eventclass{Work}{255,200,200}
\event{Work}{Meeting}{Monday}{9:00}{10:00}

\begin{document}
\printschedule
\end{document}
```

## Documentation

Out of laziness, I AI generated some docs. I'll eventually get around
to writing "real" documentation, but for now this appears correct and
may be useful. The slop docs are available in the `doc/` directory.


## TODO

There are a couple of specific features that are currently missing from
the class.

- Support for overlapping events
- Actual documentation--the existing docs file was one-shot AI generated from the source code.

## License

Copyright (c) 2026, Douglas B. Rumbaugh

This work is licensed under the Modified BSD License (3-clause BSD License).
See the `LICENSE` file for the full license text.