Scheduling is the part of higher-ed IT that looks boring until you realize how much of campus life depends on the calendar being correct. A wrong room. A wrong time. An unlabelled hybrid class that half the students thought was in-person. We've worked with over 20 institutions to push schedules from their student information system (SIS/ERP) — Jenzabar, PeopleSoft, Banner, Workday Student, Omnivox, Clara, and COBA — into Microsoft Teams, Outlook, and Google Calendar. This is what we learned.

Why calendar sync is harder than it looks

A class schedule in the SIS is a compact record: section, instructor, day of week, start time, end time, room, format. Turning that into something a student's personal calendar understands is surprisingly involved. You have to:

Every one of those is a place custom scripts fail. Calendo was built specifically to handle all of them reliably.

Mapping SIS → calendar, step by step

Step 1: Get the schedule feed right

Your SIS needs to expose, per class meeting:

{ section_id, instructor_ids, start_datetime, end_datetime, room, format, term_id }

The key field that trips people up is format. If your SIS stores it as a flag (in-person, online, hybrid), you can push that into the event title. If your SIS doesn't track it, now is the time to add it. Students deeply care whether they need to physically show up.

Step 2: Pick a sync target per user role

Don't push everything to everyone. Our recommended mapping:

Step 3: Color-code by format and department

This is the single change that earns Calendo the most unsolicited praise from instructors. When students can see at a glance which classes are in-person (purple), which are online (orange), and which are hybrid (teal), they stop showing up to the wrong place. The ROI is measured in reduced tickets to the registrar.

In one CEGEP, switching from unlabelled calendar entries to color-coded format markers reduced "which classes are actually in person?" help-desk tickets by 71% in the first semester.

Step 4: Handle holidays and make-up days

Never push a recurring event that ignores the calendar of holidays. If Monday Oct 14 is Thanksgiving in Canada, the Monday MAT-103 class should not show up. When a make-up class is scheduled for a different day, the sync needs to create a one-off event, not add it to the recurrence master.

Step 5: Preserve instructor edits on resync

This is the hardest engineering problem. The instructor added attachments to their Monday lecture. The SIS pushed a small correction to the room. A naive sync would either overwrite the attachments or create a duplicate event. The correct pattern: identify events by a stable external ID, update only the fields the SIS owns (time, room, format), and leave everything else alone.

Multi-platform gotchas (Teams / Outlook / Google)

Microsoft Teams

Teams reads from Outlook. If you push to Outlook, Teams picks it up. But Teams also has its own "channel meetings" concept — be clear whether each class event is a personal calendar event or a recurring channel meeting. Mix them up and you get duplicate reminders.

Outlook

Outlook's recurring-event model is forgiving until you try to modify a single occurrence. Always identify events with a deterministic ID that includes the occurrence date, not just the series ID.

Google Calendar

Google uses a different concept of "event ID" than Microsoft. Calendo maintains a mapping table so the same class event has a stable identity across all three platforms — and so modifications push correctly to each.

Key takeaways

  • Schedule sync is about correctness under change, not just initial push. Plan for what happens when the ERP moves a class to a new room on Week 3.
  • Push the right subset to each role — students, instructors, and rooms see different slices.
  • Color-code by format. Students will love you.
  • Respect holidays. Resync without clobbering instructor customizations. Use stable external IDs across Teams / Outlook / Google.

Want to see your schedule in Teams, Outlook, and Google Calendar?

30-minute demo with your ERP and calendar stack. We'll show Calendo synchronizing real events, color-coded, in real time.

Book a Demo