Adjust all assignment and quiz dates on a single page

The Problem:

Managing dates one item at a time is tedious when you are planning an entire semester. This is true for new classes, but also for existing classes since the ability to globally adjust imported dates never works for the way my institution designs new semesters.

 

I would like a spreadsheet format that shows all date related events on one page. I could then set up all events and synchronize them where necessary. This could be an online form, or the ability to download a csv template and reupload the dates.

 

I have attached a simplified snapshot of this kind of spreadsheet.

This idea has been developed and deployed to Canvas

Please read through the Ready Release Notes (2020-04-18) 

172 Comments
lisaarter
Community Novice

Great idea.  Additionally, I wish we could drag and drop assignments on the calendar page to change the day.

Beth_Young
Community Contributor

We actually can drag and drop assignments on the calendar page to change the day (which is GREAT!) Unfortunately, doing that changes only the due date, not the availability dates. A feature idea about this ( ) has been archived for now, but the Canvas team promises to revisit it later.

James
Community Champion

January 9, 2016 Update

I've updated the spreadsheet to use a new interface. The main visible difference between the original one and the new one is that the new one doesn't have a Setup page, everything is now done through the menu, which has been renamed to be Canvas.

When entering the Course ID (under the Specify Course menu item), you can enter either a number or paste a URL from your course.

The other major change is that quizzes that are also assignments are no longer duplicated, they just show up as assignments.

I'm working on the ability to mute an assignment. This is complicated in the case of quizzes because the quiz contains the extra date information but the muting has to happen to the assignment.

Revised Instructions

  1. Open up the Google Spreadsheet: Course Due Dates - Google Sheets
  2. This will open in view-only mode, you need to make your own copy. Go to File > Make a Copy.
  3. Check your timezone settings under File > Spreadsheet Settings.
  4. There will be new Menu item called "Canvas". It contains the menu. The first thing to do is choose "Configure API Settings". It will ask for authorization. Then put in the hostname of your Canvas instance and an API access token.
  5. After you configure that, go to the Canvas menu and choose Specify Course.
  6. Then choose Load Due Dates from the Canvas menu.
  7. Watch the magic occur on a new sheet called "Dates"
  8. Change the dates and times. Use "Reformat Due Dates" from the Canvas API menu to fix the display / column widths / re-sort. This is completely optional.
  9. After you're happy, choose "Save Due Dates" from the Canvas API menu.
  10. Go into Canvas and hopefully things will be changed.

Original Message

While you're waiting on Canvas to write something, I whipped up something that does what harris60​ proposed in his original post. It's not fancy, but it has an easier-to-use (famous last words) interface than the last Google Spreadsheet I made available: How to Count Student Discussion Posts . At least you don't have to go in and edit the source code on this one.

I've had  @kona ​ test it with her summer course and provide feedback. I think it's ready to open up for wider testing and hopefully general use.

Instructions

  1. Open up the Google Spreadsheet: Course Due Dates - Google Sheets
  2. This will open in view-only mode, you need to make your own copy. Go to File > Make a Copy.
  3. In cell A1, put the Canvas Course ID for your course. This is the number at the end of the URL when you're on your course homepage.
  4. There will be new Menu item called "Canvas API". It contains the menu. The first thing to do is choose "Configure API Settings". It needs the hostname of your Canvas instance and an API access token.
  5. After you configure that, go to the Canvas API menu and choose Load Due Dates.
  6. Watch the magic occur on a new sheet called "Data"
  7. Change the dates and times. Use "Reformat Due Dates" from the Canvas API menu to fix the display / column widths / re-sort.
  8. After you're happy, choose "Save Due Dates" from the Canvas API menu.
  9. Go into Canvas and hopefully things will be changed.

If things don't happen like you think they should, it's probable than an error of some kind occurred. Go to Tools > Script Editor and press Ctrl-Enter after it loads to look for any error messages or warnings.

Notes

  • At some point, it will ask you to authorize Google Spreadsheets app to run. Be sure to grant access when it does or you won't get anything.
  • The Show Answers and Hide Answers columns are only valid for quizzes and you must have the "Show Correct Answers at" item checked in Canvas.
  • Quizzes may also have an assignment if they are graded. Just change the quiz settings and it will automatically update the assignment ones as well.
  • Technically, you can rename and publish assignments from this interface, but it's not fully tested for consequences.
  • Read the Setup page for more information
  • It does NOT automatically make assignments due at the end of the day like Canvas does. You'll need to put the 11:59 pm in there if you want that to happen.
  • It gets your timezone from Google and I did not try to handle international date/time formats.
  • Report any actual bugs to me (after you check the log under Tools > Script Editor > Ctrl-Enter)

After a few days to see if there are any additional problems, I'll write something fancy up and make a video.

Here's a screenshot of what it looks like, but it's essentially what Michael asked for.

adjust_dates.png

Finally, if you haven't seen  @jblumberg ​'s presentation Course Analysis Tool  at InstructureCon, please do. His tool does amazing things and will check a lot more in a course than mine will. I don't attempt to do any validation of the information you supply and it was astonishing how much his did. I don't think his allowed editing dates on one page like this feature request asked for. However, if it did, I just wasted a couple of days that I could have been getting ready for the fall semester.

jblumberg
Community Contributor

James,

Thanks for putting this together.  I like your approach to saving the API token... I may need to update mine to use your technique, I'll need to investigate it more.

We made a decision to not post any data back to Canvas when developing our tool.  I am beginning to wonder about that decision... your tool seems so useful.

Josh

kona
Community Coach
Community Coach

I helped with the testing and it was VERY easy to use and should save faculty a LOT of time!

James
Community Champion

 @jblumberg ​,

I remembered your talk at InstructureCon about being sure to not share the spreadsheet with your AccessToken in it. My first attempt had people edit the source code, put in the token long enough to save it to the User Properties, and then take it out. The addition of the dialog box and the menu items means they don't even have to look at the source code (unless something goes wrong). Definitely more user friendly.

The Properties Service​ of Google Apps says that the User Properties is specific to the current user of the current document, so if you do share the spreadsheet with someone, you don't have to worry about the token going along with them.

ezaurova
Community Participant

Thanks!  I've started playing around with this and it has a lot of potential.  Is there a way to manipulate the spreadsheet to deal with assignments that have multiple due dates, for those like me who have more than one section of a course?  Also, and I could probably figure this out, it's defaulting to central time, rather than my time zone.  Any ideas what the culprit might be?

James
Community Champion

 @ezaurova ​

You can modify the code as to do a lot of things. I was just trying to get something out there for people to use, but realizing that it isn't a full-fledged all the bells and whistles tool. I don't use it myself, I just found the feature request in the Community and thought it was something I might be able to help with.

Sections and Groups are not handled for several reasons. First is the complexity it would add. I'm putting off getting my fall classes read to play with this. I also tend to be a perfectionist and that means that the things I start sometimes never get finished to my satisfaction, but they would be "good enough" for anyone else. So I made a conscious decision to put some stuff out there to get feedback or see if there was interest or maybe encourage someone who knew what they were doing to pick up the ball and fancy it up.

Sections and groups come from assignment overrides, and the API documentation said to consider those Beta and it might possibly change. Recently, I've not had much luck with things in Beta doing what they're supposed to. It also added a lot of complexity that I personally felt was best done through Canvas. It's also a design issue. Overrides are only useful if you specify who is getting the override and that didn't fit within the context of the page as is -- all one course and no other identifiers. That would be extra columns in the spreadsheet, and that could certainly be programmed, but then it might make it so hard for the others to use that it has become a program for one or two rather than for the masses.

Hopefully people do find it useful. I've already had an (what I consider) awesome thought. There's another discussion about the ability to copy assignments within a course. I was thinking I could take the Published column and replace it with a Copies? column and then also use the form to make the indicated number of copies of that assignment. Alas, classes start on Monday, so it may not happen this week.

The time zone is theoretically determined by whatever your Google Spreadsheets timezone is set to (probably through your Google Account settings). I did not hard-code America/Chicago, which is what I used. So there are two possibilities - you never told Google where you are or it copied the timezone over when you copied the spreadsheet. While it's possible it's the first one, it's more likely the second. To fix it, open up the spreadsheet in Canvas and then go to File > Spreadsheet Settings. There is a Time zone setting there.

smithr2
Community Participant

This is absolutely a time waster. The technology is out there- we use a homework management system from Pearson that allows all dates to be changed on one screen.

harris60
Community Contributor
Author

James,

Wow!

Thanks for the work. I haven't tried it yet, but it looks great!

I'm curious whether it will support another pet peeve of mine -- I guess I will try it and see. I always want to show answers after the quiz has closed. It will be neat if this lets me put a formula into the show answers field to refer to the available until column.

I hope the vote total continues to climb so that this gets officially integrated into Canvas. However, it looks like you have delivered a great solution.

Michael