Package: cycle-calendar-generator
Cycle Calendar GeneratorGenerates iCal files for class schedules for schools using an N-day cycleIf you’re a teacher or a student, you probably have a 6 or 7-day cycle.
You’d like to enter your schedule into your calendar, but calendar software doesn’t support “recur every n weekdays”.
So you’re out of luck, right? That’s where Cycle Calendar Generator comes in.
You just need to make an Excel file with your school’s schedule, and another Excel file for each teacher/student’s schedule, and Cycle Calendar Generator does the rest.Documentation:https://cycle-calendar-generator.readthedocs.io.Installation$ pip install cycle_calendar_generatorUsageMake a “Schedule Setup” Excel fileFilename must be schedule_setup.xlsxHas 3 sheets, named “Period Timing”, “Cycle Days List”, and “Yearly Schedule”“Period Timing” sheet gives the period name/number, start time, and end time for each period“Cycle Days List” sheet lists the name/number of each day in the cycle“Yearly Schedule” sheet lists all dates in the school year and the matching day in the cycleDates and times should be in the standard Excel date/time formatAll other data should be in text format, including numbers.See below for examplesMake an Excel file for each user that wants a schedule calendarThe filename should match the user’s name, and will be used to name the output calendar file. (Ex. Eric Idle’s Excel file should be named “Eric Idle.xlsx”, and  will generate “Eric Idle.ics”)Has 1 sheet, named “User Schedule”, that has the user’s usual schedule for a cycleAll data here should be in text formatSee below for examplesPut all files in any folderRun the application as follows:$ cycle_calendar_generator path/to/schedule/filesSchedule iCal files are found in the /output folder under the folder with your input Excel files.ExamplesPeriod TimingPeriod NumberStart TimeEnd Time18:009:0029:0010:00310:0011:00411:0012:00512:0013:00Times can be in either 24h or 12h format. “Period Number” should be text format, not number.Cycle Days ListA1B2C3D4E5F6The entries here are the official names for all cycle days. Every cycle day entry in other sheets must match these values.Yearly ScheduleDateCycle Day8/31/18A19/3/18B29/4/18C39/5/18D49/6/18E59/7/18F6Dates can be displayed any way, but must be date format. Entries in the “Cycle Day” column must be an official cycle day as defined in Cycle Days List.User SchedulePeriod NumberA1B2C3D4E5F61Grade 8Grade 11Grade 82Grade 11Grade 83LunchLunchLunchLunchLunchLunch4Grade 11Grade 8Grade 115Grade 8Grade 11“Period Number” should be text format, not number. The “Cycle Days” in the top row must be official cycle days as defined in Cycle Days ListTestsFor current Python version:python3 setup.py testFor versions 3.5+toxIt’s recommended to usepyenvto install Python versions required by tox.
pyenv can be installed usingHomebrew:brew update
brew install pyenv
pyenv install 3.6.6 3.7.6ContributeContributions are always welcome! For thoughts on features or bug reports see Issues. If you’re interested in contributing to this library, see details on doing so in the CONTRIBUTING.rst file in this repository.CreditsThis package was created withCookiecutterand theelgertam/cookiecutter-pipenvproject template, based onaudreyr/cookiecutter-pypackage.Excel file reading was made possible by theopenpyxlpackage, while iCal file reading and writing uses theicspackage.LicenceFree software: GNU General Public License v3History0.1.0 (2018-08-09)First release on PyPI.0.1.1 - 0.1.8 (2018-10-18 to 10-19)Attempts to fix issues with Travis CI’s PyPI deployment0.2.0 (2018-10-19)Program can now be installed as a Unix-style command line application1.0.0 (2020-02-25)No longer works on Python 3.5Dependency update