The Instructure Community will enter a read-only state on November 22, 2025 as we prepare to migrate to our new Community platform in early December.
Read our blog post for more info about this change.
Found this content helpful? Log in or sign up to leave a like!
We’re refactoring our synchronization process between our internal calendar database and Canvas LMS.
Currently, whenever a course is modified — for example, when a calendar event is added, updated, or deleted — all enrolled students with verbose notification settings receive notifications. This causes complaints from students who feel spammed during synchronization runs.
Previously, we worked around this by disabling notifications for all enrolled students, performing the updates, and then re-enabling notifications. This is cumbersome, and we’d like to avoid such solutions going forward.
Is there a way to add, modify, or delete calendar events for courses (or other entities) silently through the API, without triggering notifications?
I don't see anything in the creation process that would disable notifications. The only place I can think of that I've seen something similar with enrollments and you can disable the verification or the notification.
That leaves limited options.
The first is your cumbersome approach of disabling notifications, updating, and then re-enabling notifications.
The second requires thinking about settings and how you're doing things. If a user has turned on a notification, then Canvas is going to assume that they want that notification. You updating things without sending a notification would go against its intended purpose.
That means that perhaps you rethink the notification settings and change the default settings for users to be what you think most people would want. If you think they don't want to know about new or changed items on the course calendar, then turn that off. Then, if a student turns it on, it will be their decision. Be sure to explain what it means. Students could turn off calendar notifications for the account but turn them on for their courses -- I don't recommend that, it's too much work and students should be able to just use Canvas without having to jump through hurdles.
Related to that is do you really need to update the Canvas calendar so frequently? I don't know. Is there a different way to handle it? Do you need everything on the school calendar inside Canvas? It may be easier to have a global calendar outside of Canvas that you can share and the students can add to the calendar on their phone or computer.
I don't know how your synchronization run happens, but do you just send changes or do you send the entire batch? If so, does it only send a notification for things that have actually changed or does it send a message for all of the items regardless of whether it changed? If everything, then perhaps you can just send the changes?
Hi @James
Thank you for your reply — I appreciate your insights.
Canvas seems to send notifications differently depending on each user’s notification settings. Some receive a message for each change, creation, or deletion, while others receive a single digest notification for multiple changes. Unfortunately, this is not something we can control, so it’s inevitable that some users would be spammed unless we disable notifications before making any changes to course and user schedules.
Given the behavior of notifications, it wouldn’t matter if we updated the schedule less frequently, as there would simply be more changes per batch — the updates need to be made either way.
I wish we could have a one-to-one relationship (only sending the changes) between calendar events in Canvas and the schedule rows in our internal schedule database. Unfortunately, there are administrative and infrastructure challenges that prevent us from ensuring that users wouldn’t be spammed with unnecessary notifications due to the administration changing a single schedule row several times in a day, which often happens while they’re actively working on a course schedule.
We’ve already explored several options, which has led us to adopt the cumbersome approach I mentioned previously. We don’t see an alternative other than introducing schedule changes silently.
The fact that enrollments have a notify flag on creation suggests that the canvas notification infrastructure might support such functionality for other endpoints.
Community helpTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign inTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign in