Celebrate Excellence in Education: Nominate Outstanding Educators by April 15!
Found this content helpful? Log in or sign up to leave a like!
Each week, I have labs and quizzes that open up at different times for different sections. For example, section A might have their quiz and lab become available at 9:10 AM, be due at 11:05AM, and be available until 11:59PM. Section B might have their quiz and lab become available at 4:05PM, be due at 6:00PM, and be available until 11:59PM. Propagate this through the remaining sections, and as you might imagine it gets extremely tedious and cumbersome to repeatedly type. Copying quizzes doesn't seem to be a possibility, at least not with saving due dates and times, and duplicating a Canvas assignment also does not save the due dates and times.
Is there an easier way to do this without having to repeatedly add the due dates and availability times? I teach a rather large class with many labs (upwards of 15 a semester).
Solved! Go to Solution.
It depends on how your course and sections are set up in Canvas.
If you have multiple courses, one course for each section, then you might find my adjust all due dates Google Sheet a solution.
I would duplicate the sheet after you have one course set up properly and then you can use it to adjust the other classes. I've done this with my classes -- not multiple sections -- to add the starting time and ending time to all of the assignments. I put the starting time in row 1 off to the right of the data and then create a formula which is the existing due date for the row plus the time from the column. I do that for the due_at, unlock_at, and lock_at columns. Once I have those right, I do a copy and then paste special as values over the original dates. Then I can update the assignments in Canvas.
If you have one Canvas course with multiple sections, then things get a lot tougher. My script does not support differentiated assignments.
Through the web interface, using differentiated assignments and manually assigning to each section and then repeating for each assignment is the only way to go. Once you have it assigned to each section, you could edit the times using the bulk due date editing capability (I wrote my spreadsheet before Canvas had this feature), but since you've already assigned them, it's unlikely you would want to do this.
If you can do some programming, or know someone who can, Canvas has an Assignment Overrides API that allows you to set the dates for differentiated assignments. In particular, the Create an assignment override allows you to do this. There are various flavors of overrides, including some batch tools that allow you to specify more than one override at a time.
Showing sample code would be difficult as the solution is going to be highly tailored to your needs. It may change depending on whether all of your labs are due on the same day or on different days.
What I would do is something like this.
I find it hard to believe there has been little request for this. I teach a class which takes attendance via a quiz- for five different sections. Section 1 will always have their quiz Monday at 10 AM, Section 2 will always be Monday at 1 PM, etc... Which requires manually creating five different due dates, every week. It's pure tedium. Currently there is no way to make the quiz, duplicate it, and then adjust the dates without affecting the '10 AM' bit. It's been a complaint in my department for *years* that there is no sensible way to clone an assignment and then adjust it after.
It depends on how your course and sections are set up in Canvas.
If you have multiple courses, one course for each section, then you might find my adjust all due dates Google Sheet a solution.
I would duplicate the sheet after you have one course set up properly and then you can use it to adjust the other classes. I've done this with my classes -- not multiple sections -- to add the starting time and ending time to all of the assignments. I put the starting time in row 1 off to the right of the data and then create a formula which is the existing due date for the row plus the time from the column. I do that for the due_at, unlock_at, and lock_at columns. Once I have those right, I do a copy and then paste special as values over the original dates. Then I can update the assignments in Canvas.
If you have one Canvas course with multiple sections, then things get a lot tougher. My script does not support differentiated assignments.
Through the web interface, using differentiated assignments and manually assigning to each section and then repeating for each assignment is the only way to go. Once you have it assigned to each section, you could edit the times using the bulk due date editing capability (I wrote my spreadsheet before Canvas had this feature), but since you've already assigned them, it's unlikely you would want to do this.
If you can do some programming, or know someone who can, Canvas has an Assignment Overrides API that allows you to set the dates for differentiated assignments. In particular, the Create an assignment override allows you to do this. There are various flavors of overrides, including some batch tools that allow you to specify more than one override at a time.
Showing sample code would be difficult as the solution is going to be highly tailored to your needs. It may change depending on whether all of your labs are due on the same day or on different days.
What I would do is something like this.
You would think that clicking "DUPLICATE" would actually DUPLICATE the quiz EXACTLY. But NO, it doesn't DUPLICATE the Assigned Access dates and times which, you know, you would think would be part of the point of DUPLICATING something, especially since adding in individual dates and times for different sections is very tedious, but I suppose nobody would ever do something like that huh.
**TLDR: MAKE IT SO DUPLICATE ACTUALLY DOES WHAT IT SAYS AND DUPLICATES EVERYTHING**
@JasonRandall, I would not think or want that duplicating a quiz copied who it was assigned to or the date and time on the original quiz.
There is already a date-time assignment for that quiz. It would be a hard-sell to justify that the majority of the users would want two identical assignments due at the same date and time. I know that I wouldn't want two due at the same time. What I would like is the ability to give assess learning by repeating a quiz at a different time.
Canvas is currently experiencing an issue where late and missing penalties are being applied for assignments that aren't due yet. Level 1 support blames the user and gives bad advice on how to correct it, but it's an issue with Canvas they haven't admitted to yet. Duplicating the date and time would definitely lead to more of the situation happening as I can see people giving a quiz, students doing poorly, so the instructor remediates and then gives the quiz again. But if the quiz is now past due and gets those zeros in the gradebook if you duplicate the date and time.
People have different use cases and you're welcome to make a feature request for this capability. This thread is for a question someone asked and Canvas doesn't actively track these for future improvements. Posting your comment here lets you vent, but generally won't lead toward changes.
The end goal is to have an easy way to create different quizzes but keep the same time-slots (a class section that would always take the quiz at the same time on the same day of the week). In my mind, the easiest most bare-bones way to do this would have been to just duplicate a quiz with no questions created yet and just manually change the dates of availability for each section instead of having to start from the beginning and manually enter each section and time availability again for each quiz.
Yes you are correct there should be an even easier more intuitive way to do this like repeating a quiz at a different time but as far as I can tell that option is not available. Even when tracking down some information on locating the "Edit Assignment Dates" part of canvas, all you can do is "Batch Edit" selected quizzes/assignments and shift days forward or remove dates which is not helpful in what I would need which is to be able to select multiple quizzes and enter a time availability for all of them to share and then I could possible just manually change the dates which is still easier than doing everything from scratch.
Is there one quiz per section or is the same quiz used for multiple sections? I'm going to write like it's the same quiz and you're using differentiated assignments because that's the more common usage.
Setting assignment overrides can be done through the REST API, but it is a pain through the web interface. The batch edit of dates supports assignment overrides, but you have to have it already set up ahead of time.
The demand for what you're asking for hasn't risen to what Canvas needs to justify development. It's not glitzy or glamourous. It doesn't make the masses go "ooh and ahh". It saves a lot of time for some people, just not the masses. Even groups you would think have the numbers go unheard. Math and science teachers have been asking for improvements needed for our quizzes for years without movement. For other things, they develop what seem to be very niche requests that [seemingly] no one would want. I think it may have to do with pet projects or code that someone contributed.
If I had to do what you had to do, I would write API code. That's only because I know how to do that. If you don't know how to use the API, there's such a steep learning curve that it would be quicker to manually do it. If you do this every term, then it might be worth looking into or looking into alternatives -- like not combining the sections together. Then you can set a default time for each class and it works. There are trade-offs on that, though.
Before I knew how to use the API, I would use AutoHotKey (Windows app) to automate sending the keystrokes necessary to do what I needed. Depending on the situation, I might read the date from a spreadsheet or I might put the date in the clipboard and then define Alt+1 to send the first timestamp, Alt+2 to send the second timestamp, Alt+3 to send the third timestamp, and so on. Then it's a combination of Ctrl+V Alt+1, Ctrl+V Alt+2, etc. I might even consider adding the Ctrl+V to the hotkey macro. This is definitely where using keyboard navigation wins out over mouse clicks.
If I was forced to use the web interface, I would make heavy use of the clipboard to set the times. I would the quizzes in different browser tabs, then cycle through them. I would add a section to the Assign to and get the date set. Then I would paste the time from the clipboard. I would do this for each browser tab/quiz. Then I would go back to the first and repeat that information for the section section. For the first one I would type the right time and then copy/paste it for the others.
I find it hard to believe there has been little request for this. I teach a class which takes attendance via a quiz- for five different sections. Section 1 will always have their quiz Monday at 10 AM, Section 2 will always be Monday at 1 PM, etc... Which requires manually creating five different due dates, every week. It's pure tedium. Currently there is no way to make the quiz, duplicate it, and then adjust the dates without affecting the '10 AM' bit. It's been a complaint in my department for *years* that there is no sensible way to clone an assignment and then adjust it after.
To participate in the Instructure Community, you need to sign up or log in:
Sign In