Personal

Cycle Calendar Generator

Makes n-day schedule iCal files

At my last school, we had a problem. Our teaching schedules were on a 6-day cycle, but there's no calendar software that does "repeat every 6 weekdays". To solve this, I built this script.

To ensure that this worked properly for everyone, I used every software design best practice I could find. I used TDD processes and CI (via Travis) for the first time, and it seemed to work well with my testing group of other science teachers.

The script simply looks for a folder of formatted Excel files. One stores the general configuration for the school (i.e. how many days in the cycle, exact calendar dates of each cycle day, etc.), while the rest hold teacher schedules. The excel files are parsed using openpyxl, then an iCal file is generated using ics.

I tested it with several other science teachers, and the script looked promising. However, by the time I felt ready to deploy it in the school, I learned that we would be implementing PowerSchool, so this script wouldn't be needed. I also realized that I didn't have the time to write enough documentation for my colleagues. However, I'm proud enough of this to deploy it to the PyPI repository.

(Header image by Bru-nO from Pixabay)


Update: I was able to package this as a command line app, so it's much easier to run.

09 August, 2018
  • python
  • script
  • SHARE :