Week one hands you four or five syllabi, each eight to twenty pages, and the dates you actually need are buried somewhere between the attendance policy and the academic-integrity statement. When the midterm is. What the final project is worth. Whether Friday is a lecture or a lab. It is all in there, and getting it out means reading every page and then typing all of it into something else.
So most people do neither. The PDF stays in the email attachment, the dates live in your head until they do not, and the first real surprise shows up in week six when two exams land in the same 48 hours and a project you forgot about is worth 25 percent.
The scanner is the shortcut. Photograph the syllabus, upload the PDF, or paste the text, and roughly 10 to 30 seconds later you have a course with an instructor, a class schedule with days and rooms, the letter-grade cutoffs your professor printed, and a list of every assignment, quiz, exam, project, and reading it could find, each with a due date, a due time if one was stated, and its weight toward your final grade. Then it stops. The course, its meeting times and its grading scale are filed for you, but not one deadline is saved until you look at the list and approve it.
Four ways in on your phone, two more on the web
The Scan tab is one screen with a short list of options, because the input is never the same twice. Sometimes the syllabus is a PDF in your inbox. Sometimes it is a stapled handout the professor passed around. Sometimes it is a Canvas page you can select and copy but not download.
Photo scans support up to five pages per scan, and all five count as one scan. The camera path reopens the shutter after every shot and asks whether you want to add another page or scan what you have; the library path lets you multi-select up to five images and keeps them in the order you tapped them, not the order your camera roll happens to be in. PDFs are read in full, so a long syllabus should go in as a PDF rather than as photos.
There is also a size ceiling, and Semora enforces it while you are still capturing rather than after you have finished. The combined raw size of a photo scan is budgeted at 10 MB. The first page is always allowed through; if a later page would push you past the budget, that page is dropped and you get told exactly how many pages the scan will proceed with. The first camera shot is captured at higher quality than the ones after it, on the theory that a single-page scan should be as sharp as possible while five pages need to fit in one request.
- Take a photo: up to 5 pages in one scan, captured page by page, with a prompt after each shot. Back out mid-way and it asks whether to keep or discard what you already captured.
- Upload PDF: the file picker is restricted to PDFs, and the whole document goes to the parser at once. No page cap.
- Choose from Photos: multi-select up to 5 images from your library, in your tap order.
- Pick from Files: iCloud Drive, Google Drive, or anywhere else the Files app reaches. Accepts PDF, JPG, PNG, HEIC, HEIF, and WEBP; if the storage provider does not report a file type, Semora infers it from the extension instead of guessing PDF.
- Drag and drop (web): the scan frame itself is the drop target. Its border lights up and the label changes to "Drop it here" while a file is over it.
- Paste text (web only): between 20 and 60,000 characters, with a live character counter. This path skips image reading entirely and sends the raw text, which is the fastest and most accurate route when you are on a laptop and can select the syllabus text directly.
What actually comes off the page
The extraction is not a wall of text with dates highlighted. The model is asked for one structured object with named fields, and every field is validated on the server before it reaches you, so a mangled value becomes a null instead of a corrupt row in your course.
Meeting times are the part most students do not expect. A class that meets MWF for lecture and Tuesday afternoon for lab comes back as two separate meeting blocks, not one blurred entry, with weekdays mapped to real day numbers, start and end times in 24-hour form, a kind, and a room. Office hours are extracted the same way, including "by appointment" blocks that have a location but no fixed days.
Grading scales are the other quiet win. If your syllabus lists cutoffs anywhere in it, they come back as letter plus minimum percentage, sorted from highest to lowest, with plus and minus grades included when the professor specified them. That is what turns a raw weighted average into an actual letter grade later on.
- Course name and course code, combined into a single readable title like "CS 101 - Intro to Computer Science" and trimmed to 50 characters if it runs long.
- Instructor name, when it appears on the document.
- Meeting blocks: days of the week, start and end time, kind (lecture, lab, discussion, or other), and location. One block per recurring time slot.
- Office hours blocks: days, times, and location, with days left empty for by-appointment hours.
- Semester name plus term start and end dates, each validated as a real calendar date before it is stored.
- Grading scale: letter and minimum percentage, sorted high to low.
- Deadlines: title, type (assignment, quiz, exam, project, reading, or other), due date, due time, percentage weight, a description, and a confidence score between 0 and 1.
Nothing saves until you approve it
The review screen is not a formality, and it is not skippable. It opens with a count of items found and a count selected, a select-all toggle, and one card per extracted item. Each card has a checkbox and a pencil. The pencil opens type chips and free-text fields for the date, the time, the weight, and the description, so a wrong title or a shifted date is a five-second fix rather than a reason to abandon the import.
The screen also flags its own uncertainty rather than hiding it. Any item the model scored below 0.8 confidence carries a "Low confidence — please verify" badge. Any date that parses but falls outside the plausible window for the term is tagged "Date looks outside this term — double-check" - and the moment you edit that date, the flag clears, because you have now looked at it. If most of the dated items are already in the past, a banner across the top says these dates look like a previous term, which is almost always a professor reusing last year's PDF.
Items the syllabus mentions without a date get their own section at the bottom called "Needs a date." A final exam listed as TBA is not thrown away and not silently saved with a made-up date. It sits there deselected, and you can set a date to include it or leave it out. Select-all deliberately skips that section, and a card never jumps between sections while you are typing a date into it.
Saving is all or nothing. Every selected item goes in as a single batch, so you never end up with nine of your twelve deadlines and no idea which three vanished. If the save fails, you stay on the screen with your selections intact and can retry.
What Semora builds out of the extraction
The extraction is only useful if it becomes real structure, so the app files it the way you would have by hand. The semester comes from the syllabus itself when it names one; if it does not, Semora falls back to the term you picked during onboarding (only for your very first semester, so a scan a year later does not land in a stale term) and then to a term inferred from today's date. If a semester with that name already exists, the course joins it instead of creating a duplicate.
Course matching is deliberately strict. Semora matches on the course code as a prefix and then checks that the next character is a real boundary, so scanning "CS 10" does not silently merge into your existing "CS 101." A genuinely new course gets a color and an icon picked from the ones you are not already using that semester, so your courses stay visually distinguishable without you choosing anything.
Re-scanning is treated carefully. Meeting times and office hours are written only when the course is newly created, so importing an updated syllabus never wipes out a room number you corrected by hand. The extracted grading scale is applied to a new course, or to an existing one that is still on Semora's default A/B/C/D/F scale, and left alone if you have already customized it. Saved deadlines are tagged as parsed from a scan, reminders are scheduled for each one right after the save commits, and the file you scanned is kept in private storage so you can reopen it from the course screen later through a short-lived signed link. Multi-page photo scans keep every page, and reopening one gives you a page chooser.
The free limit, stated precisely
Scanning is a free feature with a real number attached: five scans per calendar month. The window is the calendar month in UTC, so the count resets on the 1st, and the same boundary is used by the app, the server, and the database so the three never disagree with each other about how many you have left.
You are not left guessing where you stand. The Scan tab shows a pill reading something like "3 of 5 free scans left this month," which turns red at zero. Before you spend the last one, Semora interrupts with a confirmation that says exactly that and offers three choices: cancel, upgrade, or use the last scan. At zero, the scan buttons explain that they reset on the 1st and offer the upgrade path.
Two other limits are worth knowing because they are separate from the scan count. A free account holds up to four courses within one semester, and one semester total. That matters here because a scan that extracts a brand-new course can hit the course cap even when you still have scans left, so the Scan tab shows a specific note when you are at four courses, telling you to re-scan a course you already have or upgrade rather than letting you discover it mid-import. There is also a rolling cap of 20 scan attempts per 24 hours on every account, free or Pro, which exists to stop runaway automation and which no ordinary semester setup will ever approach.
Pro removes the scan and course caps entirely, at $3.99 per month or $19.99 per year, which works out to about $1.67 a month on the annual plan. Pro is purchased inside the iOS app and the entitlement applies to your whole account, including the web app; there is no separate web checkout.
When the document is not a syllabus, and other awkward cases
The first thing the model is asked is not "what are the deadlines" but "is this actually a syllabus." A receipt, a boarding pass, an article, a random screenshot, or a photo of the wrong page is classified as not-a-syllabus and returned as exactly that, before a single row is written. You get a calm "Not a syllabus" message with two buttons, Pick Another and Try Again, instead of a phantom course called Unknown Course full of invented dates. The same gate catches an extraction that comes back completely empty: no course name, no items, no meetings, nothing usable.
That rejection does not cost you a free scan. Only successful extractions count toward your five. It does count as one of the 20 attempts allowed in a rolling 24-hour window, so pointing the camera at your lunch receipt eleven times in a row is not free forever, but a genuine mistake costs you nothing that matters.
The other failure modes have their own handling instead of one generic error. A syllabus so dense that the response gets cut off mid-structure returns a specific message suggesting you scan one course, or fewer pages, at a time. If the AI service is overloaded, the request retries with backoff and then falls back to a second model before giving up, so a capacity blip usually resolves itself rather than becoming your problem. A scan that hangs is aborted after 120 seconds, and the abort cancels the in-flight request before any database writes happen, so a timeout never leaves you with a half-created course. If the extraction did finish server-side just as the client gave up, that one still counts — the work was done and delivered. While a scan is running, the modal is locked - you cannot swipe it away and strand an extraction you will never see.
Re-scanning a syllabus you already imported is caught too. Semora tells you the course already exists in that semester and offers two honest options: open the existing course, or create a separate duplicate. It does not offer to merge, because the review screen has no per-item comparison against your existing tasks and merging would silently double every deadline you already have.
Multi-page scans and genuinely long syllabi
Paper syllabi are usually stapled, and a schedule table almost never fits on one page. When you take several photos in one go, they are sent to the model together with an explicit instruction that the images are sequential pages of the same document and must be read as one thing, then returned as one combined result. Without that, each photo would be treated as its own syllabus and you would get three fragmentary courses instead of one complete one.
Five pages is the photo ceiling, and the app tells you when you hit it rather than silently disabling the shutter: it says photo scans support up to five pages, offers to scan what you captured, and points you at PDFs for longer documents. That advice is real. PDFs are inherently multi-page and are sent whole, so a 14-page syllabus is a better PDF than a photo set - and if it is dense enough that the structured response gets truncated, the fix is to scan one course at a time rather than to try again identically.
Every page you scan is kept. The first page is stored at the path recorded on the scan, and the rest land beside it with numbered suffixes, so the course screen can offer you a page chooser later without any of it depending on a page having uploaded successfully. A page whose upload failed is skipped in the chooser rather than renumbering the others, because storage is treated as non-critical: losing a copy of a photo must never fail the scan that produced your deadlines.
Where a scan shows up in the rest of Semora
The scan is the front door, not a standalone tool. Everything it produces is ordinary Semora data from the moment you save it, which is why the scanner is free: it is what makes the rest of the app worth opening.
Deadlines become tasks on your Today tab — sorted into overdue, due today, and this week — with same-day reminders on the free tier. Weights become the input to grade tracking, so a weighted average appears as soon as you start entering scores - and because the scanner pulled the grading scale off the syllabus, that percentage maps to the letter your professor actually uses rather than a generic 90/80/70. Meeting blocks become your class schedule. The stored syllabus file stays one tap away on the course screen. All of it syncs across iPhone, iPad, and the web app on one account.
On the Pro side, the same extraction feeds Smart Plan's study schedule and the Workload dashboard's crunch-week view, both of which are only as good as the deadlines they have. The AI Tutor answers from the syllabus you scanned and the deadlines it produced. Flashcards can be generated from a scanned syllabus, or scoped to one specific exam pulled from your tracked deadlines. Canvas import is part of Pro and currently uses a personal access token generated in Canvas. Some institutions disable or prohibit third-party token use, so confirm your school's policy. If the connector is unavailable or not permitted, paste the Canvas assignment list into the web scanner.
Who this is genuinely for, and when to use something else
This is built for a student holding a syllabus that contains a schedule - a table of weeks and dates, an exam list, a grading breakdown. If your professor writes a real syllabus, this turns thirty minutes of typing into about thirty seconds of reviewing, and the multi-page photo path means you do not need a scanner or a desk to do it.
It is a weaker fit in a few honest cases. If your syllabus contains no dates because everything lives in the LMS, use the current Canvas token connector only if your institution permits it; otherwise, paste the Canvas assignment list into the web scanner. Scan the syllabus separately for the grading scale and class times. If the document is a photo of a whiteboard or handwriting at an angle in bad light, expect low-confidence flags and plan on editing in the review screen. If you have more than five pages of photos, use a PDF. And if you want to re-import an updated syllabus and merge only the changed deadlines into an existing course, that is not what this does - it will offer you a duplicate course instead, and the honest workaround is to edit the handful of tasks that moved.
One more thing worth setting expectations on: the scan is counted when the extraction succeeds, not when you save. If the results come back and you close the app without saving anything, the work was still done and delivered, and it counted. Review first, then decide - the review screen is where the value is anyway.