aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDouglas B. Rumbaugh <doug@douglasrumbaugh.com>2026-01-11 14:20:59 -0500
committerDouglas B. Rumbaugh <doug@douglasrumbaugh.com>2026-01-11 14:30:25 -0500
commita9485e7458a2f23ee4805d926f45fc4908e3420a (patch)
tree83f1ef621e39395176d4a4a3b7ae02c8c4ecd7fb
parent83d1cc38f7462dfee1d174a2ae64528e49eb0331 (diff)
downloadweekschedule-a9485e7458a2f23ee4805d926f45fc4908e3420a.tar.gz
Organized as a proper git repo
-rw-r--r--.gitignore43
-rw-r--r--LICENSE28
-rw-r--r--README.md80
-rw-r--r--doc/weekschedule-doc.pdfbin0 -> 177611 bytes
-rw-r--r--doc/weekschedule-doc.tex372
-rw-r--r--events.txt10
-rw-r--r--examples/schedule_example.tex56
-rw-r--r--examples/schedule_example_fullweek.tex58
-rw-r--r--examples/schedule_example_mondaysunday.tex58
-rw-r--r--examples/weekly_schedule.tex (renamed from weekly_schedule.tex)4
-rw-r--r--weekschedule.cls32
11 files changed, 728 insertions, 13 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b6db5da
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,43 @@
+# LaTeX build artifacts
+*.aux
+*.log
+*.out
+*.toc
+*.lof
+*.lot
+*.fls
+*.fdb_latexmk
+*.synctex.gz
+*.synctex(busy)
+*.pdfsync
+*.bbl
+*.blg
+*.idx
+*.ilg
+*.ind
+*.hd
+*.nav
+*.snm
+*.vrb
+*.bcf
+*.run.xml
+*.figlist
+*.makefile
+*.figlist
+*.fls
+
+# Compiled PDFs (optional - you may want to track these)
+# Uncomment the next line if you want to ignore PDFs
+# *.pdf
+
+# Editor/IDE files
+*~
+*.swp
+*.swo
+.DS_Store
+.vscode/
+.idea/
+
+# Backup files
+*.bak
+*.backup
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..7e26d79
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,28 @@
+Copyright (c) 2026, Douglas B. Rumbaugh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a97facf
--- /dev/null
+++ b/README.md
@@ -0,0 +1,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.
+
diff --git a/doc/weekschedule-doc.pdf b/doc/weekschedule-doc.pdf
new file mode 100644
index 0000000..729ee9b
--- /dev/null
+++ b/doc/weekschedule-doc.pdf
Binary files differ
diff --git a/doc/weekschedule-doc.tex b/doc/weekschedule-doc.tex
new file mode 100644
index 0000000..7b9d8cd
--- /dev/null
+++ b/doc/weekschedule-doc.tex
@@ -0,0 +1,372 @@
+\documentclass{ltxdoc}
+\usepackage{hyperref}
+\usepackage{booktabs}
+\usepackage{array}
+
+% Metadata
+\title{The \texttt{weekschedule} Class\\
+\large A LaTeX Class for Creating Weekly Schedule Calendars}
+\author{Douglas B. Rumbaugh}
+\date{Version 1.0\\January 2026}
+
+\begin{document}
+\maketitle
+
+\begin{abstract}
+The \texttt{weekschedule} class provides a simple and flexible way to create
+professional weekly schedule calendars in LaTeX. It supports customizable time
+ranges, multiple event classes with color coding, and various display options
+including 12-hour and 24-hour time formats. The class uses TikZ for rendering,
+producing high-quality vector graphics suitable for both screen viewing and
+printing.
+\end{abstract}
+
+\tableofcontents
+\newpage
+
+\section{Introduction}
+
+The \texttt{weekschedule} class is designed to create clean, professional
+weekly schedule calendars. It automatically handles layout, time formatting,
+and event placement, allowing you to focus on your schedule content rather
+than formatting details.
+
+\subsection{Requirements}
+
+The class requires the following packages, which are automatically loaded:
+\begin{itemize}
+\item \texttt{geometry} (for page layout)
+\item \texttt{tikz} (for drawing the schedule)
+\item \texttt{xcolor} (for color definitions)
+\item \texttt{pgfmath} (for mathematical calculations)
+\end{itemize}
+
+\subsection{Installation}
+
+Place the \texttt{weekschedule.cls} file in the same directory as your
+document, or in your local TeX tree. No additional installation steps are
+required.
+
+\section{Quick Start}
+
+Here is a minimal example to get you started:
+
+\begin{verbatim}
+\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}
+\end{verbatim}
+
+This creates a simple schedule with one event on Monday from 9:00 to 10:00.
+
+\section{Command Reference}
+
+\subsection{Basic Configuration}
+
+\DescribeMacro{\scheduletitle}
+Sets the title that appears at the top of the schedule.
+\begin{verbatim}
+\scheduletitle{Weekly Schedule - Spring 2026}
+\end{verbatim}
+Default: \texttt{Weekly Schedule}
+
+\DescribeMacro{\scheduleauthor}
+Sets the author name that appears below the title (optional).
+\begin{verbatim}
+\scheduleauthor{Douglas B. Rumbaugh}
+\end{verbatim}
+Default: empty (no author displayed)
+
+\DescribeMacro{\timefrom}
+Sets the start time for the schedule display. The time should be in
+\texttt{HH:MM} format (24-hour format).
+\begin{verbatim}
+\timefrom{8:00}
+\end{verbatim}
+Default: \texttt{8:00}
+
+\DescribeMacro{\timeto}
+Sets the end time for the schedule display. The time should be in
+\texttt{HH:MM} format (24-hour format).
+\begin{verbatim}
+\timeto{18:00}
+\end{verbatim}
+Default: \texttt{18:00}
+
+\subsection{Time Format}
+
+\DescribeMacro{\twelvehourtime}
+\DescribeMacro{\twentyfourhourtime}
+These commands control how times are displayed in the schedule.
+\begin{verbatim}
+\twelvehourtime % Display as 9:00 AM, 2:00 PM, etc.
+\twentyfourhourtime % Display as 9:00, 14:00, etc.
+\end{verbatim}
+Default: 12-hour format
+
+\subsection{Week Configuration}
+
+\DescribeMacro{\weekworkweek}
+\DescribeMacro{\weekfullsunday}
+\DescribeMacro{\weekfullmonday}
+These commands control which days of the week are displayed.
+
+\begin{verbatim}
+\weekworkweek % Monday through Friday (default)
+\weekfullsunday % Sunday through Saturday (Sunday first)
+\weekfullmonday % Monday through Sunday (Monday first)
+\end{verbatim}
+
+Default: work week (Monday--Friday)
+
+\subsection{Minute Lines}
+
+\DescribeMacro{\minutelinesoff}
+\DescribeMacro{\minutelinesthirty}
+\DescribeMacro{\minutelinesfifteen}
+These commands control the display of dashed lines between hours.
+
+\begin{verbatim}
+\minutelinesoff % No minute lines (default)
+\minutelinesthirty % Half-hour lines (e.g., 9:30, 10:30)
+\minutelinesfifteen % Quarter-hour lines (e.g., 9:15, 9:30, 9:45)
+\end{verbatim}
+
+Default: no minute lines
+
+\subsection{Event Classes}
+
+\DescribeMacro{\eventclass}
+Defines an event class with a name and RGB color. Event classes are used to
+categorize events and appear in the legend.
+
+\begin{verbatim}
+\eventclass{ClassName}{R,G,B}
+\end{verbatim}
+
+The color is specified as three comma-separated RGB values (0--255).
+Examples:
+\begin{verbatim}
+\eventclass{Courses}{173,216,230} % Light blue
+\eventclass{Meetings}{255,218,185} % Peach
+\eventclass{OfficeHours}{144,238,144} % Light green
+\eventclass{Personal}{221,160,221} % Light purple
+\end{verbatim}
+
+\subsection{Events}
+
+\DescribeMacro{\event}
+Adds an event to the schedule.
+
+\begin{verbatim}
+\event{ClassName}{Event Name}{Days}{Start}{End}
+\end{verbatim}
+
+\begin{description}
+\item[\texttt{ClassName}] The name of the event class (must be defined with
+ \texttt{\textbackslash eventclass} first).
+\item[\texttt{Event Name}] The text to display in the event box.
+\item[\texttt{Days}] Comma-separated list of days: \texttt{Monday},
+ \texttt{Tuesday}, \texttt{Wednesday}, \texttt{Thursday}, \texttt{Friday},
+ \texttt{Saturday}, \texttt{Sunday}. Days must match the capitalization
+ exactly.
+\item[\texttt{Start}] Start time in \texttt{HH:MM} format (24-hour).
+\item[\texttt{End}] End time in \texttt{HH:MM} format (24-hour).
+\end{description}
+
+Examples:
+\begin{verbatim}
+\event{Courses}{MATH 220 01}{Tuesday,Thursday}{9:00}{10:30}
+\event{Meetings}{Faculty Meeting}{Monday}{10:00}{10:30}
+\event{OfficeHours}{Office Hours}{Tuesday,Thursday}{13:00}{14:30}
+\end{verbatim}
+
+\subsection{Layout Customization}
+
+\DescribeMacro{\setpadding}
+This command allows fine-tuning of the padding around events in the schedule.
+It accepts a dimension in centimeters.
+
+\begin{verbatim}
+\setpadding{0.08} % Padding around events (default: 0.08cm)
+\end{verbatim}
+
+Note: The day column width and hour row height are automatically calculated
+based on the page width and number of days displayed, so they cannot be
+manually overridden.
+
+\subsection{Generating the Schedule}
+
+\DescribeMacro{\printschedule}
+This command must be called within the \texttt{document} environment to
+render the schedule. It draws the grid, places all events, and displays the
+legend.
+
+\begin{verbatim}
+\begin{document}
+\printschedule
+\end{document}
+\end{verbatim}
+
+\section{Complete Example}
+
+Here is a complete example demonstrating many features:
+
+\begin{verbatim}
+\documentclass{weekschedule}
+
+% Title and author
+\scheduletitle{Weekly Schedule - Spring 2026}
+\scheduleauthor{Douglas B. Rumbaugh}
+
+% Time range
+\timefrom{8:00}
+\timeto{18:00}
+
+% Display format
+\twelvehourtime
+\weekfullmonday
+\minutelinesthirty
+
+% Define Event Classes
+\eventclass{Courses}{173,216,230} % Light blue
+\eventclass{Meetings}{255,218,185} % Peach
+\eventclass{OfficeHours}{144,238,144} % Light green
+\eventclass{Personal}{221,160,221} % Light purple
+
+% Define Events
+\event{Meetings}{CIE Project Meeting}{Monday}{9:00}{9:30}
+\event{Meetings}{Faculty Meeting}{Monday}{10:00}{10:30}
+\event{Personal}{(Out of Office)}{Monday}{14:30}{17:00}
+
+\event{Courses}{MATH 220 01}{Tuesday,Thursday}{9:00}{10:30}
+\event{Courses}{CISC 460 01}{Tuesday,Thursday}{11:15}{12:45}
+\event{OfficeHours}{Office Hours}{Tuesday,Thursday}{13:00}{14:30}
+
+\event{Meetings}{Faculty Meeting}{Wednesday}{10:00}{11:00}
+\event{Meetings}{Research Meeting}{Wednesday}{14:30}{15:30}
+
+\event{Courses}{CISC 225 01}{Monday,Wednesday,Friday}{11:00}{12:00}
+\event{Courses}{GEND 112 01}{Monday,Wednesday,Friday}{13:30}{14:30}
+
+\begin{document}
+\printschedule
+\end{document}
+\end{verbatim}
+
+\section{Notes and Tips}
+
+\subsection{Time Format}
+\begin{itemize}
+\item Times are always specified in 24-hour format when using
+ \texttt{\textbackslash timefrom}, \texttt{\textbackslash timeto}, and
+ \texttt{\textbackslash event}, regardless of the display format setting.
+\item The display format (12-hour vs. 24-hour) only affects how times appear
+ in the schedule labels, not how you specify them.
+\end{itemize}
+
+\subsection{Day Names}
+\begin{itemize}
+\item Day names are case-sensitive and must match exactly: \texttt{Monday},
+ \texttt{Tuesday}, \texttt{Wednesday}, \texttt{Thursday}, \texttt{Friday},
+ \texttt{Saturday}, \texttt{Sunday}.
+\item When using \texttt{\textbackslash weekfullsunday} or
+ \texttt{\textbackslash weekfullmonday}, you can include weekends in your
+ events.
+\item Days in the \texttt{\textbackslash event} command can be listed in any
+ order.
+\end{itemize}
+
+\subsection{Event Placement}
+\begin{itemize}
+\item Events that extend beyond the time range specified by
+ \texttt{\textbackslash timefrom} and \texttt{\textbackslash timeto} are
+ automatically clipped to the visible range.
+\item Events are drawn with rounded corners and padding for a clean
+ appearance.
+\item Long event names will be automatically wrapped within the event box.
+\end{itemize}
+
+\subsection{Layout}
+\begin{itemize}
+\item The document is automatically set to landscape orientation.
+\item The schedule automatically adjusts column widths based on the number of
+ days displayed.
+\item The class uses a minimal page style (no page numbers or headers).
+\end{itemize}
+
+\section{Technical Details}
+
+\subsection{Class Options}
+The class is based on the \texttt{article} class with landscape orientation
+and 11pt font size. These are hardcoded and cannot be changed via class
+options.
+
+\subsection{Internal Commands}
+All internal commands use the \texttt{@} prefix and should not be called
+directly by users. The class uses TikZ for all drawing operations and PGF
+mathematics for layout calculations.
+
+\section{Version History}
+
+\begin{description}
+\item[Version 1.0 (2026-01-11)] Initial release
+ \begin{itemize}
+ \item Basic schedule functionality
+ \item Support for 12-hour and 24-hour time formats
+ \item Multiple week configurations (work week, full week)
+ \item Event classes with custom colors
+ \item Minute line options
+ \item Layout customization options
+ \end{itemize}
+\end{description}
+
+\section{License}
+
+Copyright \copyright{} 2026, Douglas B. Rumbaugh
+
+This work is licensed under the Modified BSD License (also known as the
+3-clause BSD License).
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+\begin{enumerate}
+\item Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+\item Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+\item Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+\end{enumerate}
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+The full license text is also available in the \texttt{LICENSE} file
+distributed with this package.
+
+\end{document}
diff --git a/events.txt b/events.txt
deleted file mode 100644
index bfbae92..0000000
--- a/events.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-CIE Project Meeting Monday 9:00 - 9:30
-Faculty Meeting Monday 10:00 - 10:30
-CISC 225 01 Monday, Wednesday, Friday 11:00 - 12:00
-GEND 112 01 Monday, Wednesday, Friday 13:30 - 14:30
-Personal (OO) Monday 14:30 - 17:00
-MATH 220 01 Tuesday, Thursday 9:00 - 10:30
-CISC 460 01 Tuesday, Thursday 11:15 - 12:45
-Office Hours Tuesday, Thursday 13:00 - 14:30
-Research Meeting Wednesday 14:30 - 15:30
-Faculty Meeting Wednesday 10:00 - 11:00
diff --git a/examples/schedule_example.tex b/examples/schedule_example.tex
new file mode 100644
index 0000000..0236066
--- /dev/null
+++ b/examples/schedule_example.tex
@@ -0,0 +1,56 @@
+% Example usage of the weekschedule class
+\documentclass{weekschedule}
+
+% ============================================
+% Schedule Configuration
+% ============================================
+
+% Title and author
+\scheduletitle{Weekly Schedule - Spring 2026}
+\scheduleauthor{Dr. Rumbaugh}
+
+% Time range (use 24-hour format for input)
+\timefrom{8:00}
+\timeto{18:00}
+
+% Display format: \twelvehourtime (default) or \twentyfourhourtime
+\twelvehourtime
+
+% ============================================
+% Define Event Classes (name and RGB color)
+% ============================================
+\eventclass{Courses}{173,216,230} % Light blue
+\eventclass{Meetings}{255,218,185} % Peach
+\eventclass{OfficeHours}{144,238,144} % Light green
+\eventclass{Personal}{221,160,221} % Light purple
+
+% ============================================
+% Define Events
+% Usage: \event{Class}{Name}{Day(s)}{Start}{End}
+% Days can be comma-separated: Monday,Wednesday,Friday
+% ============================================
+
+% Monday-only events
+\event{Meetings}{CIE Project\\Meeting}{Monday}{9:00}{9:30}
+\event{Meetings}{Faculty Meeting}{Monday}{10:00}{10:30}
+\event{Personal}{(Out of Office)}{Monday}{14:30}{17:00}
+
+% Tuesday/Thursday events
+\event{Courses}{MATH 220 01}{Tuesday,Thursday}{9:00}{10:30}
+\event{Courses}{CISC 460 01}{Tuesday,Thursday}{11:15}{12:45}
+\event{OfficeHours}{Office Hours}{Tuesday,Thursday}{13:00}{14:30}
+
+% Wednesday-only events
+\event{Meetings}{Faculty Meeting}{Wednesday}{10:00}{11:00}
+\event{Meetings}{Research Meeting}{Wednesday}{14:30}{15:30}
+
+% Monday/Wednesday/Friday events
+\event{Courses}{CISC 225 01}{Monday,Wednesday,Friday}{11:00}{12:00}
+\event{Courses}{GEND 112 01}{Monday,Wednesday,Friday}{13:30}{14:30}
+
+% ============================================
+% Generate the schedule
+% ============================================
+\begin{document}
+\printschedule
+\end{document}
diff --git a/examples/schedule_example_fullweek.tex b/examples/schedule_example_fullweek.tex
new file mode 100644
index 0000000..708bd0f
--- /dev/null
+++ b/examples/schedule_example_fullweek.tex
@@ -0,0 +1,58 @@
+% Example using the weekschedule class with full week (Sunday-Saturday)
+\documentclass{weekschedule}
+
+% ============================================
+% Schedule Configuration
+% ============================================
+
+% Title and author
+\scheduletitle{Weekly Schedule - Spring 2026}
+\scheduleauthor{Douglas B. Rumbaugh}
+
+% Time range
+\timefrom{8:00}
+\timeto{18:00}
+
+% Display format
+\twelvehourtime
+
+% Week configuration - show full week starting with Sunday
+\weekfullsunday
+
+% ============================================
+% Define Event Classes (name and RGB color)
+% ============================================
+\eventclass{Courses}{173,216,230} % Light blue
+\eventclass{Meetings}{255,218,185} % Peach
+\eventclass{OfficeHours}{144,238,144} % Light green
+\eventclass{Personal}{221,160,221} % Light purple
+
+% ============================================
+% Define Events
+% Usage: \event{Class}{Name}{Day(s)}{Start}{End}
+% ============================================
+
+% Monday events
+\event{Meetings}{CIE Project Meeting}{Monday}{9:00}{9:30}
+\event{Meetings}{Faculty Meeting}{Monday}{10:00}{10:30}
+\event{Personal}{(Out of Office)}{Monday}{14:30}{17:00}
+
+% Tuesday/Thursday events
+\event{Courses}{MATH 220 01}{Tuesday,Thursday}{9:00}{10:30}
+\event{Courses}{CISC 460 01}{Tuesday,Thursday}{11:15}{12:45}
+\event{OfficeHours}{Office Hours}{Tuesday,Thursday}{13:00}{14:30}
+
+% Wednesday events
+\event{Meetings}{Faculty Meeting}{Wednesday}{10:00}{11:00}
+\event{Meetings}{Research Meeting}{Wednesday}{14:30}{15:30}
+
+% Monday/Wednesday/Friday events
+\event{Courses}{CISC 225 01}{Monday,Wednesday,Friday}{11:00}{12:00}
+\event{Courses}{GEND 112 01}{Monday,Wednesday,Friday}{13:30}{14:30}
+
+% ============================================
+% Generate the schedule
+% ============================================
+\begin{document}
+\printschedule
+\end{document}
diff --git a/examples/schedule_example_mondaysunday.tex b/examples/schedule_example_mondaysunday.tex
new file mode 100644
index 0000000..21e7f66
--- /dev/null
+++ b/examples/schedule_example_mondaysunday.tex
@@ -0,0 +1,58 @@
+% Example using the weekschedule class with full week (Monday-Sunday)
+\documentclass{weekschedule}
+
+% ============================================
+% Schedule Configuration
+% ============================================
+
+% Title and author
+\scheduletitle{Weekly Schedule - Spring 2026}
+\scheduleauthor{Douglas B. Rumbaugh}
+
+% Time range
+\timefrom{8:00}
+\timeto{18:00}
+
+% Display format
+\twelvehourtime
+
+% Week configuration - show full week starting with Monday
+\weekfullmonday
+
+% ============================================
+% Define Event Classes (name and RGB color)
+% ============================================
+\eventclass{Courses}{173,216,230} % Light blue
+\eventclass{Meetings}{255,218,185} % Peach
+\eventclass{OfficeHours}{144,238,144} % Light green
+\eventclass{Personal}{221,160,221} % Light purple
+
+% ============================================
+% Define Events
+% Usage: \event{Class}{Name}{Day(s)}{Start}{End}
+% ============================================
+
+% Monday events
+\event{Meetings}{CIE Project Meeting}{Monday}{9:00}{9:30}
+\event{Meetings}{Faculty Meeting}{Monday}{10:00}{10:30}
+\event{Personal}{(Out of Office)}{Monday}{14:30}{17:00}
+
+% Tuesday/Thursday events
+\event{Courses}{MATH 220 01}{Tuesday,Thursday}{9:00}{10:30}
+\event{Courses}{CISC 460 01}{Tuesday,Thursday}{11:15}{12:45}
+\event{OfficeHours}{Office Hours}{Tuesday,Thursday}{13:00}{14:30}
+
+% Wednesday events
+\event{Meetings}{Faculty Meeting}{Wednesday}{10:00}{11:00}
+\event{Meetings}{Research Meeting}{Wednesday}{14:30}{15:30}
+
+% Monday/Wednesday/Friday events
+\event{Courses}{CISC 225 01}{Monday,Wednesday,Friday}{11:00}{12:00}
+\event{Courses}{GEND 112 01}{Monday,Wednesday,Friday}{13:30}{14:30}
+
+% ============================================
+% Generate the schedule
+% ============================================
+\begin{document}
+\printschedule
+\end{document}
diff --git a/weekly_schedule.tex b/examples/weekly_schedule.tex
index ec5376a..61def84 100644
--- a/weekly_schedule.tex
+++ b/examples/weekly_schedule.tex
@@ -7,7 +7,7 @@
% Title and author
\scheduletitle{Weekly Schedule - Spring 2026}
-\scheduleauthor{Dr. Douglas B. Rumbaugh}
+\scheduleauthor{Douglas B. Rumbaugh}
% Time range
\timefrom{8:00}
@@ -17,6 +17,8 @@
\twelvehourtime
% \twentyfourhourtime
% \weekfullmonday
+%
+\minutelinesthirty
% ============================================
% Define Event Classes (name and RGB color)
diff --git a/weekschedule.cls b/weekschedule.cls
index 9b387ee..abc35be 100644
--- a/weekschedule.cls
+++ b/weekschedule.cls
@@ -1,4 +1,34 @@
% weekschedule.cls - A LaTeX class for creating weekly schedule calendars
+%
+% Copyright (c) 2026, Douglas B. Rumbaugh
+% All rights reserved.
+%
+% Redistribution and use in source and binary forms, with or without
+% modification, are permitted provided that the following conditions are met:
+%
+% 1. Redistributions of source code must retain the above copyright notice,
+% this list of conditions and the following disclaimer.
+%
+% 2. Redistributions in binary form must reproduce the above copyright notice,
+% this list of conditions and the following disclaimer in the documentation
+% and/or other materials provided with the distribution.
+%
+% 3. Neither the name of the copyright holder nor the names of its
+% contributors may be used to endorse or promote products derived from this
+% software without specific prior written permission.
+%
+% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+% AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+% IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+% ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+% LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+% CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+% SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+% INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+% CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+% ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+% POSSIBILITY OF SUCH DAMAGE.
+%
% Usage:
% \documentclass{weekschedule}
% \scheduletitle{Weekly Schedule - Spring 2026}
@@ -95,8 +125,6 @@
}
% Layout customization
-\newcommand{\setdaywidth}[1]{\renewcommand{\@daywidth}{#1}}
-\newcommand{\sethourheight}[1]{\renewcommand{\@hourheight}{#1}}
\newcommand{\setpadding}[1]{\renewcommand{\@padding}{#1}}
% Minute line configuration