Script Share for Teacher Schedules: Create Importable Google Calendar CSV Files

Not sure if anyone is interested, but I wrote a quick script that leverages the School API to create CSV files, one per teacher, that can be imported into their Google calendars. Mainly to populate the teacher calendars with free/busy information. Unlike importing the ICS off the website, you can choose the date range of events you want to import (semester, etc.) and also it does not import block information as all-day events like the ICS import. The script supports filtering by different meeting types (academic, advisory, etc.).

Right now, it's a manual process for teachers to import with the CSVs. If I ever have time, I may try and write something up that skips the entire CSV part and syncs the calendar to Google or MS using their respective APIs. If anyone has something along those lines, I'd love to take a look.

Some caveats with the CSV import to be aware of:

  • The CSV import into Google creates an event entry on the calendar for each meeting. It does not support recurring meetings. If you need to make a change for a class, you have to edit/delete each event individually.
  • There is a Google Workspace bug with the CSV import in Google Calendar and I have not been able to make imported events have 'public' visibility automatically. The events will always be created with "Default visibility." While other faculty can't see what the event is, they will still be able to see the free/busy information for scheduling.
  • If a teacher is scheduled for a class, but the student roster is empty (i.e., zero students), the API will not currently return the class. I have a bug report in with Blackbaud on this but it may just be intendended behavior.

https://github.com/Sekers/SKYAPI/tree/master/Sample_Usage_Scripts/Blackbaud%20SIS%20Teacher%20Schedules%20to%20Google%20Calendar%20CSVs