Skip to documentation

    Course Availability Delay

    Local Plugin
    v1.0.9
    Ready
    1,000 Credits

    Control exactly when each course appears on a student's My Courses tab. Set a rolling delay (days since enrolment) or a fixed unlock date — with per-user overrides and bulk CSV import.

    ⭐ Why this plugin is unlike anything else available

    Per-learner delay from enrolment date — not a universal release date

    ▸ Moodle's built-in 'restrict by date' applies the same calendar date to every learner. Course Availability Delay triggers from the individual enrolment event: a learner who joins on day 1 and a learner who joins on day 30 both get the same N-day delay relative to their own start. Rolling intake cohorts are handled correctly with no date reconfiguration.

    ▸ The delay applies to course visibility, not just activity completion. The course does not appear in the learner's dashboard until their personal delay period has elapsed.

    ▸ Configurable per-course, per-enrolment-method, or site-wide. Each course can have a different delay period without any theme or core code changes.

    How to Use Course Availability Delay

    From installing the plugin through to students seeing courses unlock on their My Courses tab — here is exactly how everything works, step by step.

    1

    Install via the Quick Links Block

    On your Moodle dashboard, open the AI Dashboard Quick Links block. Click Check for Updates — the block contacts lms-labs.com and shows the latest version for each plugin. Find Course Availability Delay and click Install Now (or Auto Update if already installed). The block downloads, extracts, and places the plugin in /local/courseavailabilitydelay/ automatically. On your next admin page load, Moodle prompts you to run the database upgrade — click Upgrade Moodle database now.

    Open the AI Dashboard Quick Links block on your Moodle dashboard (Site Admin view only).
    Click Check for Updates to contact lms-labs.com and check plugin versions.
    Find Course Availability Delay — click Install Now if new, or Auto Update if a yellow badge appears.
    The block downloads and extracts the ZIP to /local/courseavailabilitydelay/ automatically.
    On your next admin page load, click Upgrade Moodle database now to create the delay rules tables.
    You will see a success confirmation — the plugin is now active.

    Note

    To check for future updates, click Check for Updates in the Quick Links block at any time. A yellow badge means a newer version is available.

    2

    Navigate to Manage Rules

    The Manage Rules page is your central control panel for all course delay rules.

    Go to Site administration → Plugins → Local plugins → Course Availability Delay → Manage Rules.
    Or navigate directly to /local/courseavailabilitydelay/manage.php.
    The page shows a table of all configured delay rules. Initially it will be empty.
    The header shows the total rule count plus Upload CSV and Add Rule buttons.
    3

    Add a Rolling Delay Rule (Days Since Enrolment)

    A rolling delay counts from each student's individual enrolment date — perfect for self-paced programs where students join at different times.

    On the Manage Rules page, click Add Rule.
    In the Course field, type the course name or short name — an autocomplete will appear.
    Select the course from the dropdown.
    Set Delay Type to Days since enrolment.
    Enter the number of days in the Delay Days field (e.g. 14 means the course appears 14 days after each student's enrolment date).
    Leave Unlock Date blank — it is not used for rolling delays.
    Click Save Rule. The rule appears in the Manage Rules table.
    Log in as a test student enrolled today — the delayed course should not appear on their My Courses tab.

    Note

    The delay is calculated from the student's enrolment date, not the rule creation date. A student enrolled 10 days ago with a 7-day rule will see the course immediately.

    4

    Add a Fixed Unlock Date Rule

    A fixed unlock date hides the course from all enrolled students until a specific calendar date — ideal for cohort programs with defined term start dates.

    On the Manage Rules page, click Add Rule.
    Select the course from the autocomplete field.
    Set Delay Type to Fixed unlock date.
    Leave Delay Days blank.
    Click the Unlock Date calendar picker and choose a future date.
    Click Save Rule.
    All enrolled students (regardless of enrolment date) will see this course hidden until the chosen date.
    Log in as any enrolled test student before the unlock date — the course should not be visible.

    Note

    Setting an unlock date in the past makes the course immediately visible for all enrolled students. Use this to quickly un-delay a course in bulk.

    5

    Bulk Import Rules via CSV

    Configure delays across hundreds of courses at once by uploading a simple CSV file.

    Prepare a CSV with headers: course_shortname, delay_days, unlock_date.
    Rolling delay row: fill course short name and delay_days, leave unlock_date blank.
    Fixed date row: fill course short name and unlock_date (YYYY-MM-DD), leave delay_days blank.
    You can mix both types in the same file.
    On the Manage Rules page, click Upload CSV and select your file.
    Click Import. The system reports how many rules were created and lists any failed rows with reasons.
    Verify the imported rules appear in the Manage Rules table.

    Note

    Course short names must match exactly (case-sensitive) to the shortname field in Moodle. Find a course's short name at Course administration → Edit settings.

    6

    Grant a Per-User Override

    Give an individual student early access to a delayed course without affecting anyone else.

    Navigate to /local/courseavailabilitydelay/assign.php or via Site administration → Local plugins → Course Availability Delay → Per-User Overrides.
    Use the student search field to find the student who needs early access.
    Select the student — a list of their currently delayed courses appears.
    Find the course you want to unlock and click Unlock Now.
    Log in as that student and confirm the course is now visible on their My Courses tab.
    Other students without an override still see the course hidden.

    Note

    Overrides are per-student per-course. Granting one override does not affect any other student or any other course for that student.

    7

    Delete a Rule

    Rules can be removed at any time — changes take effect on the next student page load. To change a rule, delete it and add a new one.

    On the Manage Rules page, find the rule you want to remove.
    Click Delete and confirm the prompt to remove the rule entirely.
    Deleting a rule removes the delay immediately — the course becomes visible on all enrolled students' next page load.
    To update a rule (change days or unlock date), delete the existing row and add a new rule from the Add Rule form at the top of the page.
    To revoke a per-user override, go to the Per-User Overrides page, search for the student, and click Revoke next to the relevant course.
    8

    Verify the Student Experience

    Confirm everything works as expected from the student's perspective.

    Log in as a test student account (use a second browser or private/incognito window).
    Go to the student's My Courses tab.
    Courses with an active delay rule should be absent — not shown as hidden tiles, simply not there.
    Go to the Moodle gradebook as a teacher and confirm the student is still enrolled and grades record normally.
    Once the delay expires, reload the student's My Courses tab — the course tile should now appear automatically.
    Confirm the student can access the course normally once it appears.

    Note

    From the student's perspective, a delayed course is completely invisible — not locked or greyed out. This is by design to avoid confusion.