# Weekday Blackboard reminders for work due in the next 48 hours

> Every weekday morning each student gets one short, friendly email listing everything they still owe across all of their courses.

- Workflow type: agent
- Services: Blackboard, Gmail, Google Sheets
- Categories: Operations
- Published: 2026-08-04

## What it does

- Checks your Blackboard courses each weekday morning for work due in the next 48 hours.
- Works out which students have not submitted yet, so nobody gets chased about something they already handed in.
- Sends each student a single encouraging email covering everything they owe across every course, instead of one email per assignment.
- Keeps a running log in a Google Sheet and reads it first, so no student is reminded about the same assignment twice.

## What you'll need

- A Blackboard account for your institution with permission to view courses, enrolments, and the gradebook.
- A Gmail account to send the reminders from.
- A Google Sheets spreadsheet to use as the reminder log. A blank one is fine, the workflow fills it in as it goes.
- Due dates filled in on your Blackboard gradebook items, since that is what the 48 hour window is measured against.

## Prompt

Every weekday at 7am, email my Blackboard students a personal reminder about the work they still owe in the next 48 hours. Send one message per student covering all of their upcoming items across every course, never one email per assignment. Use a cron trigger, since Blackboard does not send outgoing webhooks for an approaching due date and the window has to be computed inside the run.

Start by reading the Google Sheets reminder ledger with Get Values, before anything else. Each row records a student, an assignment, the course, and the date the reminder was sent. Treat the combination of student and assignment as the deduplication key: if a student has already been reminded about a given gradebook column, do not remind them about it again in this run.

Next, use the Blackboard Get Courses operation to list courses, and scope this to the courses running in the current active term rather than sweeping every course on the instance. The default Blackboard site quota is 10,000 requests per 24 hours shared across the whole institution, so keep the working set deliberately small. For each course in scope, call Get Grade Columns, which lives on the v2 gradebook path, and keep only the columns whose grading due date falls between now and 48 hours from now.

For every course that has at least one column due inside that window, call Get Course Memberships to list the enrolled students, filtering to the student course role so instructors and teaching assistants are excluded. Then call Get Column Attempts for each of those columns to work out which students have no attempt recorded yet. A student with a submitted attempt has already done the work and must not be reminded about it.

All of these Blackboard list endpoints page with offset and limit and return a paging.nextPage link. Follow nextPage until it is absent, so students or columns sitting on later pages are not silently missed.

Group the outstanding items by student, not by assignment. For each student with at least one item still owing, draft a single short and encouraging Gmail message and send it with Send a Message. Name each assignment, the course it belongs to, and when it is due. Use judgement about emphasis: a major project due tomorrow morning reads very differently from an optional practice quiz, so lead with what actually matters, keep the whole message to a few sentences, and keep the tone supportive rather than scolding. Do not send anything to a student who owes nothing.

Resolve each student's email address from the membership record by expanding the related user object, or by looking the user up with Get Users when the address is not already inlined.

After each message sends successfully, append one row per reminded assignment to the Google Sheets ledger with Append Values, recording the student, the assignment, the course, and the date sent. Only log items that were genuinely included in a sent email, so that a failed send gets retried on the next run instead of being silently marked as done.

## How to customize

- Change the timing: run it at a different hour, or every day of the week instead of weekdays only.
- Widen or narrow the reminder window: 24 hours for a last call, or a full week for bigger projects.
- Limit which courses are included, for example only the current term or a single department, and adjust how warm or formal the wording is.

## FAQ

### Will students get a separate email for every assignment?

No. That is the main thing this does differently. Each student gets one email per morning that covers every item they owe across all of their courses. A student taking four classes gets one message, not four.

### Does it email students who have already submitted their work?

No. Before writing anything it checks who has actually submitted each item and only writes to students with something still outstanding. Students who owe nothing get no email at all.

### How does it avoid reminding someone about the same assignment twice?

Every reminder is logged to your Google Sheet with the student, the assignment, and the date it was sent. The next run reads that log before doing anything else and skips any student and assignment pairing that has already been covered.

### Does this work with both Blackboard Original and Ultra courses?

Yes. It reads due dates from the gradebook, which works across both course types. The one requirement is that your items actually have due dates set, since that is what the 48 hour window is measured against.

### Will this slow down or overload our Blackboard site?

It is designed to stay light by looking only at the courses running in your current term rather than sweeping every course on the system. Institutions have a shared daily limit on automated requests, and scoping to the active term keeps the workflow well inside it.

Use this prompt in General Input: https://www.generalinput.com/prompts/weekday-blackboard-reminders-for-work-due-in-the-next-48-hours