The Canvas calendar feed's hard limits
The Canvas calendar iCal feed — the thing you subscribe to from Google Calendar — is not a live window into Canvas. It is a file Canvas generates and a separate app fetches on a schedule of its own. One university's Canvas documentation puts the Canvas-side delay at roughly an hour before a change even reaches the file, and Google Calendar refreshes subscribed calendars on its own schedule, so a change your professor makes today may not appear right away.
What you see
You did the responsible thing. You found Canvas's Calendar Feed link, pasted it into Google Calendar, and assumed the problem was solved. Then a due date you know exists isn't in your calendar. Or a date your professor moved last week still shows the old time.
Most of that is not a bug you can fix by re-adding the feed (a refresh delay is a different matter — see below). It is the feed behaving the way a subscribed calendar behaves: you are looking at a copy, and a copy can be stale, or missing something that never went into the file in the first place.
Why it happens
A subscribed calendar is not a live window into Canvas. It is a file Canvas generates and another calendar app fetches on a schedule of its own. Two things stack up in that handoff:
- A delay before a change reaches the file. Canvas does not regenerate the export the instant your instructor edits a due date. One university's Canvas documentation states that updates "do not happen instantaneously, there is approximately a 1 hour response time for the updates to be pushed from Canvas calendar."
- A second delay before your app fetches it. Once you subscribe by URL, the fetching app decides when to fetch. Google Calendar refreshes subscribed calendars on its own schedule; Google's own help page for calendars added by URL does not document an interval, so there is no number you can plan around. The two delays add up, and neither one shows you a progress bar.
Put together, that is the shape of the failure: not an error message, just a calendar that is quietly a little bit behind.
What you can do about it
Check the feed itself before blaming your calendar app. Paste the Canvas feed URL straight into a browser address bar and open the .ics file it returns. That is exactly what Canvas is publishing right now. If the missing item isn't in that file, the problem is upstream in Canvas and no amount of refreshing Google Calendar will produce it. If it is in the file, you are looking at a refresh delay, not a missing assignment.
If it is missing from the file itself, stop refreshing. Nothing your calendar app does can add an item Canvas didn't export. Anything you genuinely depend on belongs in your own task app, or on paper, rather than only in Canvas.
If you need a current copy right now, read the file. Open the feed URL in a browser and read the .ics directly — that is the freshest thing available to a subscriber. Removing the subscription and adding it again by the same URL is the only other lever most calendar apps expose.
For anything time-critical, read Canvas. Use the Canvas calendar or the course page for the next 48 hours of work, and let the subscribed copy be your planning view rather than your source of truth. A mirrored calendar is always at least a little behind by design.
Don't assume the export is an archive. If you want a record of a finished term, export or screenshot it while the term is still current rather than counting on the subscription to hold it.
Keep the feed URL private. In building Margin's feed sync we treat these URLs as identity-bearing — don't paste yours into a forum post, a support ticket, or a shared doc.
And the syllabus still outranks all of this. Anything an instructor never entered into Canvas was never going to be in the export.
Evidence
- University System of New Hampshire Canvas KB, Article 932 (retrieved 2026-07-30): "The updates from Canvas calendar to another calendar do not happen instantaneously, there is approximately a 1 hour response time for the updates to be pushed from Canvas calendar."
- Google Calendar Help, Add a calendar using a link (support.google.com/calendar/answer/37100, retrieved 2026-07-30): documents no refresh interval for calendars subscribed from a URL — which is why this page states only that Google refreshes on its own schedule and quotes no figure.
- Margin repo,
sanitize.js(comment: school feed URLs carry per-user signed tokens) — the basis for the first-person feed-URL caution above. REPO-graded: it supports how we treat these URLs, not a universal statement about Canvas.