Bulk assign assignments to a new section

Jump to solution
AndyEMC
Community Explorer

Hello,

We are finding ourselves creating new Sections in the middle of the school year as we get more students signing up.

Is there a way to bulk assign all the Assignments we have added so far to a new Section, based on an existing section?

I already know how to do it one at a time on each Assignment page under Edit Assignment >> Assign >> Add >> Sectionname

Example Scenario:
We have 4 weekly assignments ; 1 Lesson, 1 Practice, 1 Assessment, 1 Printable Copy of all three.

  • We also have unique assignments to find links to the correct virtual classroom assigned for each section.
  • We do not want the students in the same section since we do not want them to be unsure which link to follow.
  • We have section 1 - 9 already set up with due dates on certain days of the week based on when that section runs.
  • Section 3 is full, student is added onto waitlist.
  • We decide to split section 3 into section 3 and section 10.
  • How do I assign all the same due dates to section 10 as section 3 WITHOUT going into all four weekly assignments times 4 weeks = 16 different assignments (so far!) separately and adding the section to that one?
  • I don't want to get to week 20 and have to do this ALL over again for 80 assignments if we split a section again.


I have tried: the "Edit Assignment Dates" for all Assignments on the Course >> Manage Subject >> Assignments page, but the new section is not in the list of dates I can change unless I go in manually one assignment at a time and add them. I also cannot see an SIS upload method for bulk assignments.

0 Likes
1 Solution

@AndyEMC  

You will need to know the ID (not sis ID) of the section and ID of each assignment, also the course ID if you're using API. You can also do it with GraphQL mutation with the following query, GraphQL doesn't require course id.

mutation MyMutation {
  __typename
  updateAssignment(input: {id: "canvas assignment id", assignmentOverrides: {sectionId: "canvas section id, not sisID (E.g. yourschool.com/courses/10/sections/20", unlockAt: "2023-09-17"}}) {
    assignment {
      _id
      course {
        courseCode
      }
        name
    }
  }
}

The easiest way to code this is using either Google Sheet app script or VBA through Excel. You can try to follow these steps:

  1. First, pull the list of assignments and their IDs on the spreadsheet(Using this API  https://canvas.instructure.com/doc/api/assignments.html#method.assignments_api.index)
  2. Get the section ID either manually or through API (https://canvas.instructure.com/doc/api/sections.html#method.sections.index)
  3. Enter due date then loop through each item on the list of assignments to call the API or GraphQL query above

 

View solution in original post