If students enrol via the enrolment plugin "Waitlist & Custom course fields" they are put into a waitlist in case the maximum amount of course participants is reached. They later get enrolled automatically as soon as free seats are available.
The plugin also can be used to add custom course fields.
Related moodle forum: https://moodle.org/mod/forum/discuss.php?d=220078
With this moodle block you can generate a report containing courses with free seats AND which having the starting date (course settings) within the upcoming n weeks. The information about free seats is taken from the activated self enrolment plugin AND/OR waitlist enrolment plugin.