Margin and D2L Brightspace — how the calendar feed works
Margin supports D2L Brightspace through connected through the iCal calendar feed your school publishes, added once at setup — you paste your school's calendar feed URL once at setup, and upcoming due dates flow to your Todoist and dashboard. D2L Brightspace publishes that feed itself; the steps are below, from D2L's Brightspace Community documentation for the Calendar tool.
Finding your feed URL in D2L Brightspace
In the Calendar tool, open Settings and turn on Enable Calendar Feeds, then use Subscribe to get the feed URL.
Source: D2L's Brightspace Community documentation for the Calendar tool, retrieved 2026-08-02. D2L Brightspace calls the feature “Subscribe”. Vendor interfaces change — if what you see differs, the vendor's own page is the authority, not this one.
What D2L Brightspace feeds carry, and what they don't
Calendar feeds have to be switched on before a subscription URL exists — the setting is called Enable Calendar Feeds.
If you cannot find a Subscribe option, that setting is usually why. Some institutions disable feeds for everyone, and no amount of clicking will surface a URL.
Brightspace lets you pick the scope of the feed — all calendars and tasks, tasks only, or a particular course.
Margin works with any of them. The widest scope means one feed instead of one per course.
What calendar feeds can and can't carry
In building Margin's feed reader we learned calendar feeds have sharp edges. Here is where ours are, including the one we have not solved.
- All-day events end on an exclusive date. A deadline written as ending on the 5th actually ends at the start of the 5th. Margin reads that the way the spec means it, so an all-day deadline doesn't land a day late.
- Times with no timezone are ambiguous by design. The spec calls these “floating” and leaves them for the reader to interpret. Margin resolves them against your own computer's timezone — the reading the spec intends — and falls back to UTC only if your browser cannot report a timezone at all. Reading floating times as UTC is exactly what used to shift Moodle and D2L exports by your offset: on US Central that was enough to bump a 23:59 deadline onto the next day.
- Repeating events expand, up to a point. Margin expands weekly and daily repeats across the term, so a semester of weekly homework arrives as a semester of weekly homework. Less common patterns — monthly, yearly, and the rarer rules — come through as a single event rather than the whole series.
Why a feed, and not a direct reader
In building Margin we did not find a practical student-facing API for assignment data on D2L Brightspace, so we read the calendar feed your school already publishes — that's what Margin uses.
Schools
D2L Brightspace campuses are compatible pending verification — the feed format is standard, and we confirm a school once someone there has run it.