This is a documentation of the Calendar Automation Project that @Chong-source completed during his senior year of high school. He used javascript as the language and used the API platform that Google provided to create this program. The code autopopulates Google Calendar with events that follow a 4-day rotation.
More background information:
This project started from a desire for teachers and students at a high school to be able to create repeating events on Google Calendar. By default, Google Calendar does allow users to create repeating events, however, it is not possible to create repeating events that run on a waterfall schedule with Google Calendar.
To clarify: The target school's schedules run on a 4 day rotation and then reset (Day A, Day B, Day C, Day D). If there is a holiday, the pattern is paused, and then after the holiday the rotation continues with the next day in the pattern. A set of 4 weeks might look something like this:
Week # | Mon | Tue | Wed | Thu | Fri | Sat | Sun |
---|---|---|---|---|---|---|---|
1 | A | B | C | D | A | - | - |
2 | B | C | D | A | B | - | - |
3 | C | Holiday | D | A | B | - | - |
4 | C | D | A | B | C | - | - |
In updating this project, the hope is to also allow functionality for waterfall schedules of other lengths (i.e. 2 day, 3 day, 5 day, or more). This will allow for other organizations to make use of this project to help them with their own unique scheduling needs.
- Rewrite with Python and use Google Calendar API.
- Allow script to be run from the command line.
- Make use of CSV files instead of Google Sheets.
- Create a GUI for the scheduler.
- The standard waterfall schedule needs to be defined.
- Allow for other schedules to be easily created so that the standard waterfall time schedule can be altered as needed.
- It must be possible to populate calendars with events (based on a given time schedule) both individually and in bulk. Single or many events should be able to be created for just one calendar, or for many calendars at once.
- It must be possible to delete events both individually and in bulk. Single or many events should be able to be deleted from just one calendar, or from many calendars at once.
- Allow date ranges to be specified for when calendars should be populated.
- The program needs to know when holidays are so that they can be skipped.
- A preview of a schedule should be displayed before sending events to Google Calendar.