CanvasManager · what's new · September 2026 · updated October 2026

Group Assignments & Student Schedules

Attach an assignment to a Canvas group set, give batches of students their own due dates, and let the editor fill in the settings block for you.

New to CanvasManager? Start with Getting Started.

Overview

This release adds two things you could not express in a course file before, plus a set of editor helpers that make the frontmatter block faster to write.

Group assignmentsLink an assignment to a Canvas group set and choose whether each member gets their own grade.
Per-student schedulesGive batches of students their own due date, the way a lightning-talk slot rotates through the class.
Editor helpersSuggestions for keys and values, a student picker, and a date and time picker, right in the Monaco editor.

Canvas stays the source of truth for who is enrolled and how groups are arranged. CanvasManager reads that information when a course is first opened after the server starts, keeps it in memory, and never writes it to disk. Course files only ever contain Canvas ids, so nothing identifying a student lands in your repo.

Group assignments

Canvas organizes student groups into group sets (People › Groups in Canvas; the API calls them group categories). An assignment is attached to a set, not to one group, and every group in that set works on it. That is exactly the model the file uses.

The Groups section

Course settings has a new read-only Groups section. One tab per group set, one column per group, and a dashed Not in a group column for anyone unassigned. It is there so you can see who is where without leaving the app; creating and editing groups stays in Canvas, and the Manage Groups in Canvas button takes you straight to that page.

Groups section showing the Project Teams set with four teams of four students
The Groups section in course settings. Tabs switch between group sets; the counts show groups and how many of the roster are placed.
Groups section showing the Lab Partners set with seven pairs and two students not in a group
A set with unassigned students shows them in a dashed column so you can spot them before publishing.

Sync Groups from Canvas re-reads sets, groups and memberships. Use it after you change groups in Canvas or when a student joins late.

GroupSet in the file

Two new lines go in the settings block above the ---. AssignmentGroupName still means the grading category (Assignments, Quizzes, Final Project); GroupSet is the student group set.

UnlockAt: 
LockAt: 12/16/2026 23:59:00
DueAt: 12/16/2026 23:59:00
AssignmentGroupName: Final Project
GroupSet: Project Teams
GradeIndividually: false
SubmissionTypes:
- online_upload

Put the cursor after GroupSet: and the sets from Canvas appear, with group and student counts to tell them apart. GradeIndividually offers true and false the same way.

Editor showing the GroupSet suggestion list with Lab Partners and Project Teams
GroupSet suggestions come from the same Canvas data the Groups section shows.
Editor showing true and false suggestions for GradeIndividually
GradeIndividually offers true or false.

The preview panel gains a Group Set row that spells out the grading choice.

Assignment preview with a Group Set row reading Lab Partners, one grade per group
The preview shows the group set and whether it is one grade per group or per member.

What Canvas gets

Add to canvas and Update in Canvas send the group category and the grade-individually flag along with everything else. Removing GroupSet from a file and updating clears the group setting in Canvas. The calendar's sync check compares both values, so an assignment whose file and Canvas disagree shows the red out-of-sync border with a message saying which one differs.

Canvas refuses to change an assignment's group set once it has submissions. If you see that error on Update, the fix is in Canvas, not in the file.

Quizzes are not group assignments in Canvas, so GroupSet is assignment-only.

Per-student schedules

Some assignments are the same for everyone but happen on different days for different people: a lightning talk, a demo slot, a presentation rotation. A Schedule block lists which students are due on which date. Everyone not listed keeps the assignment's normal DueAt.

The Students section

Course settings also has a new Students section: the Canvas roster with name, email and Canvas id. It loads the first time the course is opened after the server starts, and Sync Students from Canvas reloads it. The Schedule autocomplete reads from this list.

Students section listing sixteen students with names, emails and Canvas ids
The Students section. Names shown here are invented for this document.

The Classroom 50 section's own Sync Roster with Canvas button is unchanged; it does a different job (matching GitHub classroom members to Canvas by email).

The Schedule block

DueAt: 12/11/2026 23:59:00
AssignmentGroupName: Assignments
Schedule:
  09/18/2026:
    - 100202
    - 100203
    - 100208
  10/09/2026:
    - 100211
    - 100214

Storing ids instead of names keeps student names out of version control. Someone with the repo but without Canvas access to the course cannot tell who is enrolled from these files.

Building a schedule in the editor

You rarely type any of this by hand. In the editor the grey names after each id are inlay hints drawn from the roster; they are not in the file.

Editor showing a Schedule block with Canvas ids followed by grey student names, and a preview listing the scheduled dates
Ids in the file, names beside them. The preview lists each date with its students and reminds you what everyone else's due date is.

Adding a date. On a blank line indented two spaces under Schedule:, a date-only picker opens. Pick a day and the editor writes the date key, drops you onto a new student line, and opens the student list.

Date-only picker open on a blank indented line under Schedule
A new date line opens the date-only picker. Class days are lifted, holidays struck through.
After choosing a date the editor added the date key and a student line, and the student list is open
After picking September 23 the date key is written and the student list opens for the first student.

Adding students. Under any date, press Enter after the last student (or type - ) and the list appears. It only shows students who are not yet scheduled anywhere in this file, so it shrinks as you fill the semester. Type part of a name or an id to filter. Choosing a student inserts their id.

Student suggestion list showing eleven unscheduled students with their Canvas ids
Only unscheduled students are offered. The id shown at the right is what gets inserted.

Editing a date. Put the cursor on an existing date line and the picker reopens on that month.

Date-only picker open beside an existing schedule date of October 9, 2026
The picker for an existing date opens beside the line so the students underneath stay clickable.

Mistakes are flagged. An id that is not a student in the course gets a red squiggle with an explanation, and a student listed twice gets a yellow one. The file still saves, but publishing stops with the same message so nothing half-right reaches Canvas.

Editor showing an error marker under the id 999999 with a message that it is not a Canvas id of a student in this course
Hovering the squiggle explains the problem.

On the calendar

A scheduled assignment shows up on its normal due date as usual, and once more on each schedule date as a pill with a dashed border and a count. Hover to see who is due that day. Dragging a dashed pill to another day moves just that batch; dragging the solid pill moves the assignment's own dates as before.

Calendar with a dashed Lightning Lab pill on September 18 showing a count of 3, and a hover card listing three students
The dashed pill marks a scheduled batch. The hover card lists the students and shows the sync state for that batch.

What Canvas gets

Editor helpers

These work in every file type that has a settings block: assignments, quizzes and pages.

Date and time picker

Put the cursor on a DueAt, LockAt, UnlockAt or DueDateForOrdering line and the picker opens beside it. Every click writes the line immediately; there is no OK button. Escape or close hides it until the cursor leaves the line.

Date and time picker open beside the DueAt line, showing December 2026 with class days highlighted and holidays struck through
Class days from the course's days-of-week setting are lifted; holidays from settings are struck through. The selected day is blue.
After clicking the 18th the DueAt line reads 12/18/2026 23:59:00 and the preview updated
Clicking a day rewrites the line in the file's format and the preview follows.

Key and value suggestions

Suggestions open on their own when the cursor lands somewhere they apply, and Ctrl+Space reopens them anywhere on the line.

WhereWhat you get
A blank line above the ---Keys this file type accepts but does not have yet. Picking one inserts Key: and, where it makes sense, opens the value list.
AssignmentGroupName: / AssignmentGroup:The course's grading categories.
GroupSet:Group sets from Canvas, with counts.
GradeIndividually:, ShuffleAnswers:, ShowCorrectAnswers:, OneQuestionAtATime:true / false
- under SubmissionTypes:The Canvas submission types.
- under AllowedFileUploadExtensions:The course's default upload types first, then common ones.
- under a Schedule dateStudents not yet scheduled in this file.
Blank frontmatter line showing suggestions for GroupSet and GradeIndividually, the two keys this file does not have
On a blank line only the keys the file is missing are offered.
Suggestion list under SubmissionTypes showing the Canvas submission types
Submission types.
Suggestion list under AllowedFileUploadExtensions with the course defaults marked
Upload extensions, course defaults first.

The help panel (the ? button at the bottom left of the editor) documents the new keys and lists the course’s group sets. Search it for group or schedule to jump straight to these topics.

Assignment editor with the help panel open to the Group assignments and Per-student due dates topics, listing the Lab Partners and Project Teams group sets and a Schedule example
The help’s Group assignments and Per-student due dates topics.

Things to know

Cheat sheet

UnlockAt: 
LockAt: 12/11/2026 23:59:00
DueAt: 12/11/2026 23:59:00
AssignmentGroupName: Assignments        # grading category
GroupSet: Project Teams                 # Canvas group set (optional)
GradeIndividually: false                # true = each member graded separately
Schedule:                               # per-student due dates (optional)
  09/18/2026:
    - 100202                            # Canvas ids; the editor shows names
    - 100203
  10/09/2026:
    - 100211
Classroom50Slug: 
SubmissionTypes:
- online_text_entry
AllowedFileUploadExtensions:
---

Description in markdown.

## Rubric

- 5pts: Clear explanation of what failed and why