Ask students how they plan their week and many will describe two places. Deadlines come from Moodle or Blackboard: the timeline and calendar on the Moodle dashboard, the calendar and due dates in Blackboard Learn. Classes come from the SIS portal, or from whatever copy of the timetable they made in the first week.
Two places means two checks, and the gaps show at the worst moments: a quiz that closes at 6 p.m. while the student is in a lab until 6, three deadlines on the day of a field trip, an online session forgotten because it wasn't next to the work due for it.
Why are class sessions missing from the LMS calendar?
The LMS calendar fills itself from course activities. Give a Moodle assignment a due date or a quiz a closing time and the event appears in the calendar and on the timeline; Blackboard Learn does the same with due dates on course items.
Class sessions aren't activities. They are SIS data: section, day, time, room, mode. Whatever creates the LMS course and enrolls the students, whether a provisioning tool or a manual process, brings over the course and the roster, not the meeting times.
So class sessions reach the LMS calendar only when an instructor adds them by hand, course by course. Few do it for a full term, and those who do have to redo it after every change.
Merged courses make it harder. When several SIS sections share one LMS course, each section may meet at different times, and a single course-level event is wrong for part of the class.
What does it cost?
Students plan with half the picture. They miss conflicts between deadlines and class time until the day itself, and online sessions, which have no room to walk past, are the easiest to forget.
Instructors set deadlines without seeing the rhythm of their own sections and of the program around them. Those who add sessions to the LMS calendar spend time copying data that already exists in the SIS.
The experience is uneven. In one course the calendar shows every session; in the next, nothing. Students can't rely on the LMS calendar when only some courses use it.
Teaching and learning teams lose a design tool. When sessions and deadlines sit side by side, it is easy to see that a weekly quiz should close the day before class rather than an hour into it, or that a lab report is due before the lab it prepares. Without sessions in the calendar, that rhythm has to be reconstructed by hand for each course.
What doesn't work
Asking instructors to add sessions manually. It works for a motivated instructor and a stable timetable. It doesn't survive a room change, a cancellation or a merged course.
Pasting the timetable into the course page. A table of session dates at the top of the course is better than nothing, but it isn't in the calendar or the timeline, it shows every section's times to everyone, and it is out of date after the first change.
Importing an ICS feed into the LMS. Moodle can import a calendar from a URL and refresh it on a schedule. Someone still has to set up an import per course or group, the refresh is periodic, and the imported events don't know which student belongs to which section.
Exporting the LMS calendar to Outlook or Google. Moodle and Blackboard can publish their calendar as a subscription link, and that's useful: it brings due dates into personal calendars. But it works in the opposite direction. It doesn't put class sessions in the LMS, and it carries the refresh delays of any ICS subscription, described in ICS feed vs calendar sync.
How to fix it
Start by agreeing on who owns what. Each item in a student's week has one source of truth, and every calendar should follow it.
| Item | Source of truth | Where it should appear |
|---|---|---|
| Class session (time, room, mode) | SIS | LMS calendar and personal calendars |
| Assignment or quiz due date | LMS | LMS calendar, and personal calendars if students subscribe |
| Office hours | Instructor | Instructor's calendar and course page |
Then decide what a session event contains. A useful one holds:
- the course code, title and section;
- the date, start and end time;
- the room code for in-person and hybrid sessions, or "Online";
- the teaching mode, written at the start of the title;
- the Teams meeting link for online and hybrid sessions, so students can join from the LMS;
- nothing about other students, since course events are visible to the whole course.
With that settled, put class sessions in the LMS in six steps.
1. Map SIS sections to LMS courses
Use the identifiers both systems share, such as the course ID number or short name plus the term. For merged or cross-listed courses, list every SIS section attached to the LMS course.
2. Scope each event to the right students
In Moodle, calendar events can be course, group or user events. Use course events when everyone in the course meets at the same time, and group or user events when sections differ. In Blackboard Learn, check how merged courses and their sections are set up before choosing the approach.
3. Leave what the LMS owns alone
Due dates and activity events belong to the LMS and to the instructor. The sync owns only the class session events it created, identified by its own IDs, and never edits anything else.
4. Update sessions in place
Give each session a stable ID so that a room change or a cancellation updates the existing event in the LMS calendar instead of adding a second one.
5. Keep personal calendars in step
Push the same session, from the same SIS record, to Outlook, the Teams calendar or Google Calendar, so that the LMS and the phone always agree. The method for personal calendars is in how to sync class schedules to Outlook, Teams and Google Calendar.
6. Pilot with one program
Pick a program with merged courses and online sessions, since that is where scoping errors show up. Ask a few students and instructors to compare the LMS calendar with the SIS for two weeks before extending to every course.
How Calendo handles it
Calendo treats the Moodle and Blackboard calendars as sync targets alongside Outlook, the Teams calendar and Google Calendar. It reads class sessions from the SIS (supported systems) and writes them into the LMS calendar, so students see Tuesday's lab next to the report due Thursday. The same session reaches their personal calendar from the same SIS record, with the room code, the mode and, for online sessions, the Teams meeting link.
When the timetable changes, the change reaches the LMS calendar and the personal calendars within minutes, and the existing event is updated rather than duplicated. Due dates stay exactly as instructors set them. There is nothing for students to install or subscribe to: sessions appear in the LMS calendar they already open, and in the personal calendar they already carry.
Calendo is not an LMS. It doesn't create courses, manage enrollments or change activities; Moodle and Blackboard keep doing that. The specifics for each platform are on the Moodle calendar sync and Blackboard calendar sync pages. For online sessions, putting the right link in the right event matters as much in the LMS as anywhere else, as explained in in-person, online or hybrid: the right room or Teams link in every event.
Key takeaways
- LMS calendars fill up with due dates automatically, but class sessions stay in the SIS unless something puts them there.
- Class sessions belong to the SIS and due dates to the LMS; a sync should write only the session events it owns.
- Merged courses need events scoped to each section, such as Moodle group or user events, not one course-level event.
- The same SIS record should feed both the LMS calendar and personal calendars, so the two always agree.
See class sessions next to due dates
A 30-minute demo of SIS class sessions appearing in the Moodle or Blackboard calendar and in students' personal calendars.
Book a demoFrequently asked questions
Can class times appear in the Moodle calendar automatically?
Not by default. Moodle fills its calendar from course activities such as assignment due dates and quiz closing times, while class sessions live in the student information system. A calendar sync can read each session from the SIS, write it into the Moodle calendar as a course, group or user event, and update it whenever the timetable changes.
Will synced class sessions overwrite assignment due dates?
They shouldn't. A well-designed sync writes only the class session events it created, identified by its own IDs, and never edits activity events. Due dates stay owned by the LMS and the instructor. In Moodle and Blackboard alike, the two kinds of events simply appear side by side in the same calendar, which is the whole point.
How do merged courses work in the LMS calendar?
When several SIS sections share one LMS course, their sessions may happen at different times. Instead of one course-level event, each section's sessions should be scoped to its own students, through group events (one group per section) or user events in Moodle. In Blackboard Learn, check how merged courses and their sections are set up before choosing the approach.
If class sessions are in the LMS, do students still need them in Outlook or Google Calendar?
Usually, yes. The LMS calendar is where students plan coursework; their personal calendar is what sends a reminder before class and sits next to work and appointments. Feeding both from the same SIS record keeps them consistent, so a room change shows up identically in Moodle or Blackboard and on the student's phone.





