AUTO-CAL: A Calendar Automation Utility2016-09-18
At the beginning of every school quarter as I'm preparing my course documents, I get frustrated with the amount of time I waste fiddling around with Microsoft Word tables in order to create a simple class schedule. Word provides several calendar templates but they're stylistically overdone, clunky to use, and usually divided into individual months or years rather than quarters or semesters. I wanted a tool that could create a simple, no-nonsense MS Word table and populate it with whatever dates I desire. That's when I decided to make AUTO-CAL.
AUTO-CAL is by no means a robust or dynamic script--it was created with my own selfish interests in mind, and so it contains relatively few features. There are only two styling options that essentially allow for two different types of calendars to be created--one that gives each day its own row in the table, and one that dedicates a "week" to each row. I put the word "week" in quotes because, unlike the ubiquitous seven-day week calendars offered via Word templates, AUTO-CAL allows for user-defined weeks. The ability to define weeks is particularly useful for teachers who will probably never need to include Saturday or Sunday on their calendars, and may in fact have classes that only meet two or three days per week, rendering the other four or five slots on the calendar wasted space.
A large part of my teaching ethos is keeping things simple for students and for myself. As a former student I'm familiar with the confusion and fatigue that over-complicated and document-heavy course materials can cause. De-cluttering a curriculum has benefits similar to keeping a clean desk or workspace: it removes potential distractions and leaves room to focus on the important, often complex things. As such, I've vowed to take a minimalist approach to constructing my course materials. AUTO-CAL allows me to create clean, simple course schedules in a fraction of the time it used to take me, and since I create a new calendar from scratch for each class I teach each quarter (I refuse to stagnate as an instructor), the saved time really adds up. There may be easier ways to make quick table calendars in Word, but I was unable to find any that met my needs.
Aside from the obvious practical use of AUTO-CAL, I learned a lot from the process of coding it. We're all aware of the inherent imperfections in our month/week/day numbering system (some months have greater/fewer days, weeks don't divide evenly into months, etc.) and these imperfections posed some real challenges in figuring out how to generate accurate tables. I made good use of PHP's awesome date() and DatePeriod() functions to do most of the heavy lifting, but there were still lots of little logical problems I had to solve on my own. I've had to work with date sorting to create this website and the one that came before it, and those were no doubt useful experiences to my work on AUTO-CAL, which took me only a few hours to prototype and maybe another ten to polish and troubleshoot. In the end, I'm satisfied with the outcome, and I'm excited to find other creative ways to save time and keep my teaching simple.