Generates iCal files for class schedules for schools using an N-day cycle
Project description
Cycle Calendar Generator
Generates iCal files for class schedules for schools using an N-day cycle
If 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_generator
Usage
- Make a “Schedule Setup” Excel file
Filename must be schedule_setup.xlsx
Has 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 cycle
Dates and times should be in the standard Excel date/time format
All other data should be in text format, including numbers.
See below for examples
- Make an Excel file for each user that wants a schedule calendar
The 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 cycle
All data here should be in text format
See below for examples
Put all files in any folder
Run the application as follows:
$ cycle_calendar_generator path/to/schedule/files
Schedule iCal files are found in the /output folder under the folder with your input Excel files.
Examples
Period Timing
Period Number |
Start Time |
End Time |
---|---|---|
1 |
8:00 |
9:00 |
2 |
9:00 |
10:00 |
3 |
10:00 |
11:00 |
4 |
11:00 |
12:00 |
5 |
12:00 |
13:00 |
Times can be in either 24h or 12h format. “Period Number” should be text format, not number.
Cycle Days List
A1 |
B2 |
C3 |
D4 |
E5 |
F6 |
The entries here are the official names for all cycle days. Every cycle day entry in other sheets must match these values.
Yearly Schedule
Date |
Cycle Day |
8/31/18 |
A1 |
9/3/18 |
B2 |
9/4/18 |
C3 |
9/5/18 |
D4 |
9/6/18 |
E5 |
9/7/18 |
F6 |
Dates 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 Schedule
Period Number |
A1 |
B2 |
C3 |
D4 |
E5 |
F6 |
1 |
Grade 8 |
Grade 11 |
Grade 8 |
|||
2 |
Grade 11 |
Grade 8 |
||||
3 |
Lunch |
Lunch |
Lunch |
Lunch |
Lunch |
Lunch |
4 |
Grade 11 |
Grade 8 |
Grade 11 |
|||
5 |
Grade 8 |
Grade 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 List
Tests
- For current Python version:
python3 setup.py test
- For versions 3.5+
tox
It’s recommended to use pyenv to install Python versions required by tox. pyenv can be installed using Homebrew:
brew update brew install pyenv pyenv install 3.6.6 3.7.6
Contribute
Contributions 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.
Credits
This package was created with Cookiecutter and the elgertam/cookiecutter-pipenv project template, based on audreyr/cookiecutter-pypackage.
Excel file reading was made possible by the openpyxl package, while iCal file reading and writing uses the ics package.
Licence
Free software: GNU General Public License v3
History
0.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 deployment
0.2.0 (2018-10-19)
Program can now be installed as a Unix-style command line application
1.0.0 (2020-02-25)
No longer works on Python 3.5
Dependency update
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file cycle_calendar_generator-1.0.0.tar.gz
.
File metadata
- Download URL: cycle_calendar_generator-1.0.0.tar.gz
- Upload date:
- Size: 37.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94f385329a53361bc611ded17fabdc62886f5a77cffb9d16dd204bf855edb1c7 |
|
MD5 | 5aac6050e39ac9a1151703828df1cb94 |
|
BLAKE2b-256 | 07831a802099e793472a93c1af1614565a614b3a48081010fab01f5a534e12d3 |