Showing results for 
Search instead for 
Did you mean: 
Learner II

Hiding unpublished courses

Is there a way for students to hide unpublished courses from their list of all courses? Our system automatically provisions dozens of courses that will never be used or published, and students are left with course lists choked with more unpublished courses than published ones.

Student course list with many unpublished courses

Tags (1)
6 Replies
Community Coach
Community Coach

 @emily , there’s no way on the front end of Canvas to do this. Yet, I’ve shared this with the Canvas Developers‌ group to see if they can help. 

Honestly it seems like like it would be easier to clean up the backend of Canvas by removing - deleting - all of those unused courses. As an Admin it would drive me crazy to search through all of them to find what I need. 

Community Coach
Community Coach

Hi  @emily ,

 @kona  is spot on. I did want to reach out and ask what the auto provisioning of courses is for, i.e. the methodolgy behind it and what purpose they serve? Perhaps this is something we could help with to find out if there is a better way to achieve what they are doing without necessarily having to create the courses.

The only way to get around this would be never to enrol the students in the first place, or remove their enrolments (which would remove it from their list).

I would be very curious to hear what the purposes of these are, and hopefully we can give you some guidance.


I also have a similar question, but for a different reason.

We are a PK-8 institution and our SIS (PowerSchool) syncs courses and enrollments directly to Canvas, which is AWESOME! Every course and section that is created in PowerSchool, automatically generates a course shell and enrollment in Canvas. The problem occurs when we need to create courses merely for the purpose of reporting in PowerSchool and NOT for the purpose of creating on online learning space in Canvas.

Because Canvas syncs with PowerSchool, if I manually delete a course in Canvas, it will just re-provision at the next sync.

When we synced last year, parents seemed OK with seeing a bunch of unpublished courses as observers, but this year I've already had a dozen or so ask about.

Any more thoughts? Sounds like this will have to be a feature request?


Community Coach
Community Coach

Hi  @emily ‌

I will echo Stuarts question!

Our SIS/Canvas integration automatically creates a course shell for every course in our schedule each term, and automatically adds the student and teacher enrollments into those section shells. If a student is not enrolled in one of those unused shells, then the student will not see it in their courses list.

If a student is enrolled in a shell that is not used by the teacher, thus never published, I would still want that shell to reflect the actual enrollments in that shell and show on the students' course lists. We have several reasons why this would be important at our school.........

  • Teachers in hybrid/blended courses may not publish their courses until later in the term. But, when they they are ready to use them, they need to have their students in there.
  • We deliver end-of-term course evaluations via Canvas, and those survey need to be available to students irregardless of faculty use,
  • Many faculty will start using Canvas, even minimally, based on student feedback.

I'm sure there are more reasons, but that will do for now.


Learner II

Hi, folks! Here's the situation:

  • All courses in the SIS are provisioned automatically some weeks/months ahead of the start of the semester (I want to say it's 6 wks or 6 mos, but not 100% sure). So, the registrar's database knows that DENT123 is being taught in Winter, 2018, so in August (or whenever), Canvas creates an empty "shell". As students register for DENT123, they are automatically added to the course roster. This is actually pretty fabulous in most cases.
  • However... (there's always a BUT, right?) we have a number of clinical courses that are listed with the registrar as Winter courses (say, Jan-April 2018), because that's when grades are submitted. But they actually run all year (May 2017-April 2018). Students can complete their clinical cases at any time during the year, so a course needs to be set up a full 12 months in advance. The only way I know to do that is to create the course and add students manually. This is not a huge problem, since all our students take the same courses at the same time (lockstep curriculum) and there's little drop/add. 
  • So, in April 2017, we set up a dozen or so courses that would open in May 2017 and run through the next April 2018. But along comes January 2018, the "official" start date of those courses, and suddenly a dozen more (empty, unpublished) sites show up on everyone's course lists. I was talking to students who were complaining that they couldn't access any of their course sites, simply because this stack of unpublished courses so dominated their course lists, they didn't know they had to keep scrolling (and scrolling...) to get to the "real" courses. We will never use these courses, because the ones that were set up in April are still going strong.

So...any thoughts? I'm always open for a better method!


Hi  @emily ,

Thank you for the extra information, that is a bit of a conundrum, though I have a couple of ideas of things you could do.

This largely depends on the capabilities of your SIS, and how that integrates with Canvas, however I would be aiming to do something similar to the following:

  1. If possible, have a date in the SIS that filters the course creation until closer to the date (best first option), or if you have a middleware system that handles the integration this may be easier to do there.
  2. If that is not possible, could you potentially filter the students out until closer to the date? For example, create the course ahead of time, but filter out the enrolment of students until closer to the date? On musing over this further, I am wondering why the students are being enrolled in these new courses automagically anyhoo? Generally I would have thought they would only be enrolled in the course that runs for the year they are completing those assessment tasks in? Would be curious to understand this one a little more.
  3. I would also suggest having a look at the Terms functionality of Canvas, if you set up Future Term, set the Term to not permit students access until X date (i.e. next year), they will not see the course until then, regardless of whether it is published or not. I have tested this in our Beta environment to confirm. It doesn't fix the problem at the source, but could be a handy workaround. You could either automatically (or manually) move all the future courses into the Future term, then it won't show for students. Note however, they will still receive notifications from the course if it is published, something that has caught us out previously.
  4. If there is no other way to get around this and the Terms work around doesn't work sufficiently for you, you *could* look to develop a script which uses the APIs to inactivate all the students in the courses which aren't running till the next year. In theory (if I remember correctly) this should remove the course form their course list.

Would any of those potentially suit?