Full Slate for Canvas by Noah Albert
Every Canvas deadline in one list, including the pages, discussions and events the Canvas To Do list cannot show. Exports to your calendar. No account, no server.
Extension Metadata
Screenshots
About this extension
The Canvas To Do list is not showing you everything, and it is not a bug.
Canvas builds that sidebar from work that needs a submission. Anything else is structurally incapable of appearing in it, no matter what you or your instructor do:
A page you were told to read by Tuesday. An ungraded discussion with a due date. A lab session or guest lecture on the course calendar. A note you wrote to yourself in the planner.
Canvas already knows about all of them. Its own planner holds the complete picture. The To Do list just does not use it.
Full Slate does.
WHAT YOU GET
One list, in due order. Assignments, quizzes, discussions, pages, events and your own notes together, grouped into overdue, today, tomorrow, the next seven days and later.
The hidden ones, marked. Every item the Canvas To Do list cannot display is tagged, and the header counts them, so you can see at a glance how much was missing.
A look backwards. Canvas stops reminding you the moment a due date passes. Full Slate looks 30 days back by default, because the thing you most need to see is the work that is already late.
Calendar export that behaves. One click produces a standards-clean .ics file for Google Calendar, Apple Calendar, Outlook or anything else. Events carry stable identifiers, so re-exporting later updates what is already in your calendar instead of duplicating it. Optional reminders.
More than one school. Connect a community college and a university and get one merged list.
Honest failures. If your Canvas session has expired, it says so and keeps showing the last list it had. It will never quietly show you an empty slate and let you believe you are clear.
PRIVACY, IN FULL
There is no server behind this extension. Nothing is uploaded anywhere, and there is no account to make.
Full Slate talks only to the Canvas sites you explicitly connect, using the session already in your browser. Those are the same read-only requests the Canvas web app already makes on your behalf.
It asks for no website access when you install it. When you connect your Canvas, Firefox asks about that one domain. Remove the site and the permission is handed straight back.
Your deadlines are stored in your own browser profile and are erased when you remove a site or uninstall. Declared data collection is none.
There is no build step, so the reviewed source is exactly what runs.
Full Slate is an independent tool. It is not affiliated with, endorsed by, or connected to Instructure or Canvas.
Canvas builds that sidebar from work that needs a submission. Anything else is structurally incapable of appearing in it, no matter what you or your instructor do:
A page you were told to read by Tuesday. An ungraded discussion with a due date. A lab session or guest lecture on the course calendar. A note you wrote to yourself in the planner.
Canvas already knows about all of them. Its own planner holds the complete picture. The To Do list just does not use it.
Full Slate does.
WHAT YOU GET
One list, in due order. Assignments, quizzes, discussions, pages, events and your own notes together, grouped into overdue, today, tomorrow, the next seven days and later.
The hidden ones, marked. Every item the Canvas To Do list cannot display is tagged, and the header counts them, so you can see at a glance how much was missing.
A look backwards. Canvas stops reminding you the moment a due date passes. Full Slate looks 30 days back by default, because the thing you most need to see is the work that is already late.
Calendar export that behaves. One click produces a standards-clean .ics file for Google Calendar, Apple Calendar, Outlook or anything else. Events carry stable identifiers, so re-exporting later updates what is already in your calendar instead of duplicating it. Optional reminders.
More than one school. Connect a community college and a university and get one merged list.
Honest failures. If your Canvas session has expired, it says so and keeps showing the last list it had. It will never quietly show you an empty slate and let you believe you are clear.
PRIVACY, IN FULL
There is no server behind this extension. Nothing is uploaded anywhere, and there is no account to make.
Full Slate talks only to the Canvas sites you explicitly connect, using the session already in your browser. Those are the same read-only requests the Canvas web app already makes on your behalf.
It asks for no website access when you install it. When you connect your Canvas, Firefox asks about that one domain. Remove the site and the permission is handed straight back.
Your deadlines are stored in your own browser profile and are erased when you remove a site or uninstall. Declared data collection is none.
There is no build step, so the reviewed source is exactly what runs.
Full Slate is an independent tool. It is not affiliated with, endorsed by, or connected to Instructure or Canvas.
Rated 0 by 0 reviewers
Permissions and data
More information
- Add-on Links
- Version
- 1.0.0
- Size
- 43.37 KB
- Last updated
- 4 days ago (Sep 19, 2026)
- Related Categories
- License
- MIT License
- Version History
- Add to collection
The developer of this extension asks that you help support its continued development by making a small contribution.
No host permissions are requested at install time. optional_host_permissions is declared as :/// so that the user can grant a single concrete origin (their school's Canvas, which may be any domain) from a click in the popup. The extension never requests :/// itself, only the specific origin of the tab the user is on, and src/background.js hands the permission back with permissions.remove() when a site is removed or verification fails.
Before an origin is stored, src/api.js verifyHost() requires GET /api/v1/users/self to return a JSON object carrying a user id, so a non-Canvas site cannot be added. All requests are GETs to /api/v1/planner/items, /api/v1/courses and /api/v1/users/self. Pagination refuses to follow a Link header that leaves the origin it started on and is bounded at 30 pages.
The extension makes no requests to any server of ours; there is no such server. Data is stored via storage.local only. The alarms permission drives a periodic background refresh.
Source, tests and the mutation harness: https://github.com/Android-Tipster/full-slate