With the world turned upside down due to COVID-19 schools have had to quickly adapt to the ever-changing educational landscape. This means that schools are now delivering classes online, via platforms such as Google Classrooms and Microsoft Teams.

SEQTA is a popular Learning Management System (LMS) used in Australian schools, it provides timetabling, attendance, program delivery, and more. In order to deliver classes online in an environment as close to face-to-face delivery as possible, video conferencing and real-time text chat would be required. Microsoft Teams was ideal to provide this functionality.

With 233 classes the problem is taking classes from the LMS and creating Teams for each of them, with the students and teachers as members and then keeping them up to date as class membership changes.

Enter Microsoft School Data Sync. SDS reads classes from your School Information System (SIS) or Learning Management System and creates classes and groups for Microsoft Teams, Intune for Education, and other third-party applications. Best of all, it’s free.

SDS works by creating sync profiles, either using as established API with your SIS or LMS, or importing formatted CSV files.

The python script that I have written below will pull class data from SEQTA and correctly format it for Microsoft SDS CSV files.

These files can then be imported into Microsoft SDS in order to create a Microsoft Team for classes.


  • You will need to have SEQTA set up read-only access to your PostgreSQL database. This should be limited to a single or minimal range of local IP’s for security.
  • A Microsoft Office 365 tenant with SDS enabled (this is only enabled for Education tenants)

How it works:

The script takes a CSV file that contains the SEQTA class codes of approved classes you wish to synchronise. Then class data is queried from the SEQTA database along with student and teacher data which is then correctly formatted. The script will check the current date and look for the class instance closest to the current date.

Known issues:

If you have a class that you wish to synchronise from SEQTA is must contain teachers and students otherwise the script will fail to pull the class information. This is because SDS will throw an error if you try to import a class without teacher and student data.