Canvas already knows every assignment your professors posted. What it does not do is tell you that three of them land in the same 48 hours, or remind you the night before, or show you what your grade looks like if you skip the discussion post. It gives you six course pages and leaves the arithmetic to you.
So most students end up doing the copying by hand. You open each Canvas course, scroll the assignments tab, and retype the due dates into a planner or a phone calendar. It takes an hour at the start of the semester and it is wrong by week three, because a professor pushed the paper back a week and you were the last person to hear about it.
Canvas Sync is Semora's way of skipping that copying step. The shipping connector currently asks for your school's Canvas URL and a personal access token generated in Canvas. Some institutions disable token creation or prohibit third-party token use, so confirm your school's policy before connecting. If the connector is unavailable or not permitted, scan the syllabus or paste the assignment list into Semora instead.
The current Canvas connector and its limits
Semora's shipping clients currently connect to Canvas with a personal access token generated inside the student's Canvas account. They do not currently provide a Semora OAuth or institution-managed sign-in flow.
Canvas administrators can disable token creation, and an institution may prohibit entering a user-generated personal access token into a third-party service. Canvas documents OAuth as the approved authorization route for applications used by multiple users. Do not use the token connector unless your institution permits it.
If the connector is unavailable or not permitted, scan the course syllabus or copy the Canvas assignment list and paste it into the scanner on the web app. Both routes keep a review step before deadlines are added.
Checking availability and importing courses
Learning-platform import is a Pro feature. Start from Semora's connection screen and choose Canvas only after confirming that your institution permits third-party use of a personal access token.
The current screen asks for your school's Canvas address, often a school-specific instructure.com URL, and the access token generated in Canvas. Semora requires a valid HTTPS address and reports an invalid address before attempting the connection.
After the token is accepted, choose the active courses you want to import and the Semora semester where they belong. If token use is unavailable or not permitted, use the syllabus scanner or paste the assignment list instead.
- Open learning-platform connections in Semora and choose Canvas.
- Enter your school's HTTPS Canvas address if prompted.
- Enter a Canvas access token only if your institution permits third-party token use.
- Choose the active courses and semester you want to import.
- If no direct connection is available, scan the syllabus or paste the assignment list.
Choosing which courses come in
Tap “Find my courses” and Semora asks Canvas for your active enrollments only. Dropped courses and finished semesters still sitting in your Canvas account do not show up, which spares you from scrolling past last spring's classes to find this term's.
Everything that comes back is pre-selected. Tap any course to deselect it, or use Clear and Select all to flip the whole list at once. You also name the connection, it defaults to “Canvas”, and pick which semester the imported courses belong to, defaulting to your active one. If you have not created a semester yet, the screen links you straight to that step instead of failing on save.
Each course you keep becomes a real Semora course, not a read-only mirror. It gets a color from a rotating set of six, a book icon, and a permanent link back to its Canvas counterpart, and exactly one Canvas course maps to exactly one Semora course. From there it behaves like every other course in the app: rename it, add your own tasks alongside the imported ones, track grades in it.
The import is all-or-nothing. If something fails partway through — a network drop or an authorization error — Semora rolls back the connection and any courses it had started creating before reporting that nothing was saved. You do not end up with three of your five classes imported and no clear way to tell which two are missing.
What actually gets imported from each assignment
For every assignment in the courses you selected, Semora pulls the full record, not just a title and a date. Descriptions arrive with the HTML stripped out (script and style blocks removed, tags flattened, the common entities decoded, whitespace collapsed) so you get readable text instead of Canvas markup pasted into your planner.
Semora also guesses a type for each item so your calendar is not one undifferentiated wall of “assignment.” If Canvas marks the submission type as a quiz, it becomes a quiz. Otherwise the title is matched: midterm, final, exam, or test becomes an exam; quiz becomes a quiz; project becomes a project; read, reading, or chapter becomes a reading; everything else stays an assignment. It is a keyword match, not comprehension, so a paper called “Unit 3 Response” lands as a plain assignment. You can change the type on any task in two taps.
Here is what ends up on each imported task:
- The title, and the description as plain readable text.
- The due date and time, converted to your device's local clock from the absolute timestamp Canvas returns, so an 11:59 p.m. deadline stays 11:59 p.m. instead of drifting by your UTC offset.
- Points possible, your points earned, and a percentage score computed from the two when both exist.
- Submission status: whether Canvas shows the work as submitted, graded, or pending review, when it was submitted, and whether Canvas flagged it late.
- A link back to the assignment's own Canvas page, opened straight from the task in Semora.
How refreshing works after the first import
Refreshes use the same personal access token as the initial Canvas import. Semora shows the current connection state so you can tell whether imported coursework is up to date or needs attention.
When the token is valid and your device is online, Semora can refresh coursework during normal app use. If a refresh fails, the connection records a status instead of silently presenting the import as current.
You can also force one. Every connection in Settings has a “Sync now” button, and it reports back exactly what happened: how many assignments were updated, and how many were skipped for not having a usable due date. Each connection carries a plain-language health state you can read at a glance — never, syncing, success, partial, error, or credentials required.
After each successful sync, Semora reschedules the reminders on your tasks. That is the part that makes a moved deadline actually useful: when a professor pushes a paper from Tuesday to Friday, the notification moves with it instead of firing on the old date.
If the token expires or is revoked, Semora marks the connection as needing attention. Reconnect only if your institution permits third-party token use, or use a syllabus scan or pasted assignment list instead.
What Semora can do with a Canvas connection
The current Canvas connector uses a personal access token generated in Canvas. Confirm that your institution permits third-party token use before connecting.
Semora uses the connection to list courses and read assignments and gradebook data. It does not submit coursework, post, edit, or delete anything in Canvas.
There are guardrails on any school address you enter. The URL must be HTTPS; localhost, .local hostnames, and private network ranges are refused, while redirects are limited to the same origin.
Disconnecting removes the connection from Semora. Coursework already imported into your planner, including your completion history and grades, remains available unless you delete it separately.
What a sync will never overwrite
Every synced assignment is matched on a composite key: the connection, the Canvas course, and the Canvas assignment ID. Running a sync twice does not create duplicates, and the same import repeated ten times produces the same result as running it once.
Nothing gets deleted, either. If an assignment disappears from Canvas, Semora keeps the task along with your completion state and any grade attached to it. The sync function explicitly declines to authorize removals, on the reasoning that bounded pagination or a visibility rule on the school's side could make a perfectly valid assignment look like it vanished. Even where a removal is authorized, the database marks the task rather than deleting it, and the task screen labels it as no longer listed in the LMS but kept in Semora.
Fields Canvas owns get refreshed on every pass — title, description, type, due date, due time, and which course it belongs to. Fields you own are protected, and the rules are specific rather than vague:
- Grades merge instead of replacing. If Canvas returns nothing for a score, Semora keeps the number you typed in rather than blanking it.
- Completion is a logical OR. If you have checked a task off in Semora, no sync will un-check it, even if Canvas has not registered the submission yet.
- The same applies to the late flag: once something is marked late, a later sync will not quietly clear it.
- If Canvas cannot supply a trustworthy submission timestamp, Semora leaves the completion time unknown rather than stamping the sync time, because using sync time could make on-time work look late.
Blackboard and Moodle, honestly
Semora lists Canvas, Blackboard, and Moodle. The current Canvas connector uses a user-generated personal access token and may be disabled or disallowed by your institution; Blackboard and Moodle availability also depends on school configuration.
When Blackboard import is available, Semora can read course lists and gradebook columns for titles, due dates, and point totals. Depending on the institution's setup, score or submission detail may be more limited than Canvas.
When Moodle import is available, Semora can read enrolled courses and assignment activities. Separately configured quiz activities may sit outside that scope, and non-numeric grade scales are ignored rather than treated as negative points.
For Canvas, the connection screen uses a personal access token. If your institution disables or prohibits that token use, scan a syllabus or paste an assignment list instead.
What it costs, who it is for, and where it gets awkward
Connecting a learning platform is a Pro feature. The current Canvas connector uses a personal access token and may be disabled or prohibited by an institution; Blackboard and Moodle setup also varies by school. Pro is $3.99 per month or $19.99 per year, which works out to about $1.67 a month on the annual plan. It is purchased inside the iOS app and applies to your whole account, including the web app; there is no separate web checkout. The entitlement check happens on Semora's server before your school is ever contacted, so a free account gets a clear upgrade screen rather than a connection that mysteriously fails halfway.
You still get full deadline and task tracking, grade tracking with weighted averages, same-day reminders, joining a classmate's Course Space (hosting your own is Pro), five syllabus scans per calendar month, and up to four courses within one semester, with one semester total on free. There is also a manual route that costs nothing extra: copy the text off a Canvas page or a syllabus PDF, paste it into Semora's scanner, and it pulls every deadline out of it. That uses one of your five monthly scans and takes under a minute per course.
Canvas Sync is not for everyone. If your professor never posts assignments to Canvas and keeps everything in the syllabus, scanning the syllabus is the better path and it is free. If you want to submit work or message your instructor, Canvas stays where that happens — Semora is an organizing layer on top, deliberately read-only. And a few edges are worth knowing before you connect:
- Assignments with no due date in Canvas are skipped. Semora marks the connection “partial” and tells you exactly how many were skipped, so it is visible rather than silent.
- If you already created a course by scanning its syllabus, importing that same class from Canvas creates a second course. Semora does not merge the two — pick one route per class.
- Semora does not pull instructor names from the Canvas course list, so imported courses arrive with the instructor field blank. You can fill it in yourself.
- A sync covers up to 50 courses at a time, and pagination through each course's assignments stops at a bounded number of pages — generous for a normal course load, but not unlimited.
- There is no per-course on/off switch after import. To change which courses sync, disconnect and reconnect with a different selection.
- If the Canvas token expires or is revoked, the connection shows “credentials required” and offers a Reconnect action. Reconnect only if your institution permits third-party token use.