Exam Countdown Multi-Course Badge
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
Exam Countdown Multi-Course Badge places a persistent floating badge on your screen that displays countdown timers for all your upcoming exams. The badge prominently shows the nearest exam with a color-coded countdown that transitions from green to yellow to red as the exam approaches (7 days, 3 days, and 1 day thresholds). A dropdown or compact list reveals all tracked exams, each with its own day count. For each exam, you can optionally set a study start date, which generates a progress bar showing how much of your study period has elapsed. The badge also tracks your daily study streak, incrementing each day you open your browser, providing motivation to maintain consistent study habits. Desktop notifications alert you when an exam is 7, 3, and 1 day away, ensuring you never lose track of important deadlines.
WHERE IT RUNS
This script operates as a userscript within the BotGentz extension on every webpage you visit across all websites and domains. It functions on any modern browser that supports the BotGentz extension, including Chrome, Firefox, Edge, Safari, and Opera. The script runs entirely client-side, storing all exam data and streak information locally using GM_setValue without sending any information to external servers. The badge floats above webpage content, remaining visible and accessible regardless of which site you are browsing.
HOW TO USE
After installation, open the panel and add your exams by entering a course name and exam date. Optionally, add a study start date to enable the progress bar for that exam. The badge will appear showing your nearest upcoming exam with a countdown. Click the dropdown arrow (▾) to expand the list and see all tracked exams at a glance. The badge automatically updates every minute, and desktop notifications will appear at the 7-day, 3-day, and 1-day marks. Use the panel to toggle compact mode for a smaller badge, enable or disable notifications, show or hide the streak counter, or change the badge position on screen. Click the "✕" button on the badge to dismiss it for one hour if you need a temporary break.
THE MECHANISM THAT MAKES IT WORK
Unlike simple calendar widgets that only display dates, this script uses a priority-based nearest-exam algorithm that calculates the absolute day difference between the current date and each exam date, selecting the exam with the smallest positive difference as the primary display. The color system uses a three-tier threshold: exams more than 7 days away appear green, those between 3 and 7 days appear yellow, and exams within 3 days or tomorrow appear red. The study progress bar calculates the ratio of elapsed time between the study start date and exam date, using JavaScript's Date object to compute precise time differences. The streak counter uses a daily check system that compares the current date key (YYYY-MM-DD) against the stored last-visit date, incrementing only when consecutive days are detected. Notifications are managed with a persistent tracking object that records which notifications have already been sent, preventing duplicate alerts on page reload.
THE PANEL
The script panel is built using BotGentz's BGPanel framework and provides comprehensive control over the badge's behavior. The panel opens as a floating overlay that can be dragged anywhere on your screen, with a clean dark theme matching the badge's aesthetic. It includes input fields for adding exams with name, date, and optional study start date, along with a scrollable list showing all saved exams with remove buttons. Toggle switches enable or disable the badge, compact mode, study streak display, and notifications. A dropdown menu lets you set the badge's default position to top-left, top-right, bottom-left, or bottom-right. Action buttons allow you to refresh the badge, clear all exams, or reset all settings to defaults. The panel collapses to a small icon when not in use and expands when clicked, remaining accessible but unobtrusive. Press the Escape key at any time to close the panel.
PLEASE NOTE
This script requires the free BotGentz extension to be installed and activated in your browser. The extension is available from the official BotGentz website. All exam data and streak information are stored locally using GM_setValue and are not shared with any third-party services. The streak counter increments each day you open your browser while the script is active; it does not require any manual check-in action. Notifications rely on the GM_notification API and may not appear if your browser or system has notification permissions disabled. The badge updates automatically every minute, but you can manually refresh it using the panel button if you make changes to your exam list. For accurate countdowns, ensure your system clock is set to the correct time and timezone.