Scheduler Software

Free, open-source check-in and room assignment for board of review events, in three versions (Java, Mac, and Windows) that share the same data files.

A board of review event can run on a clipboard: a sign-in sheet at the door, a paper grid of rooms, and one person trying to remember which adults already sat on a board, which are from the Scout’s own troop, and how long room 203 has been in there. The Eagle Board Scheduler replaces the clipboard. Scouts and adults sign themselves in on a tablet at the door. The district advancement chair seats each Scout with a board and a room in a couple of clicks, and records the result when they come out.

It runs on one computer at the venue, needs no internet connection and no account, stores everything locally, and is free under the Apache 2.0 license. If it helps your district, you can support its development.

The Java version’s Event page in dark mode, mid-event: the Youth list stacks three youth waiting, four on a board and none finished; over the room cards is a Find a person box, and the cards show Arthur Eldred’s final board in room 101 overdue at 49 minutes, with an alarm clock on a pink-red fill, and a proposal review in 200A running long at 28 minutes, with a timer clock on an orange tint; the details pane on the right shows Arthur Eldred’s board chaired by Neil Armstrong, ready to complete

Features

All three versions do everything in this section. What each does on its own is under Pick a version.

Check-in at the door

  • Scouts and adults sign themselves in on a tablet, phone, or laptop at the door, in its web browser, with nothing installed on it. Scouts tap I am a youth, adults tap I am 21 or older, and each sign-in shows up on the admin computer the moment it’s made. All three versions serve the same sign-in pages.
  • Returning people don’t type it all again. Adults who have served before are recognized by email and the form fills itself in. Scouts and adults who reserved a slot on SignUpGenius can be loaded before the doors open, so they’re recognized too.
  • Scouts give only what the board needs: a name, an email address, a unit, which review they’re here for, and, if they like, their unit leader. A Scout is never asked for a phone number or a birthdate.
  • Adults say how they’ll serve: as a member or a chair for each kind of board, or No thanks to one. They can count the event toward a Wood Badge ticket item, and tick the Scout they’ll introduce to their board.
  • A QR code opens the check-in page, so nobody types an address into the tablet.
  • Reserved and walk-in Scouts are numbered differently, P1, P2… and W1, W2…, so the district advancement chair can tell them apart in the queue.

Building each board

  • Proposes each board. Select a Scout and the program suggests a chair, members, and a free room of the right kind. It weighs the whole waiting line, so the adults who can chair aren’t all spent on the first boards, and puts the adults who have waited longest first.
  • Pick by hand, or let it fill in. Add or remove anyone, then have the program complete the board around the people you chose.
  • Enforces the Guide to Advancement’s board rules. A final board has three to six members and a proposal review two to six; anything else is refused. The chair must be someone marked as qualified to chair that kind of board, and nobody sits on two boards at once. Adults from the Scout’s own unit are named in a warning before you confirm, and a board made entirely of them is refused.

Running the event

  • One button for each step. Seat the board, and the members take the room and the paperwork while the Scout waits outside. Start review when they’ve finished reading. Complete when the board comes out, with its result (approved, adjourned, or not approved) and any notes. The same key takes each step: Ctrl+Enter, or ⌘↩ on a Mac.
  • Times every room. A board that has been reading the packet for 30 minutes is overdue. A final board past 30 minutes with the Scout is running long, and past 45 overdue, matching the Guide’s own numbers. They’re prompts, not limits, and they can be changed in the settings.
  • Finds who introduces the Scout. At a board of review, starting the review names the adult who introduces the Scout, usually their Scoutmaster, and where they are, so someone can fetch them to walk the Scout in.
  • Copes with change. Swap a member out mid-board without restarting the room’s timer. Mark an adult who has gone home, so they aren’t proposed again. Postpone a Scout whose paperwork isn’t in order.
  • Undo for every step: seating, starting, completing, changing members, and changes to the rooms. Only Reset, Postpone, and Remove room ask first.
  • Rooms the way you use them. Add each room for final boards or proposal reviews, rename it, switch it between the two, or move a board to another room. Two proposal reviews in one room are two names, such as 200A and 200B.

Records and reports

  • Saves as it happens. Every sign-in, seating, and result is written to a dated folder of CSV files. There’s no save step.
  • Remembers adults from one event to the next, so returning volunteers are recognized at the door.
  • Every record can be corrected where it’s shown, in the program’s tables: a result or its notes, a misspelled name, an adult promoted to chair. An adult who won’t use the tablet can be signed in by hand, filled in from the adult history.
  • Approved proposals from earlier events, however long ago, for a Scout who comes to their board of review without the signed page: who approved it, and when.
  • A report of the event: every Scout’s board and result, saved as a spreadsheet (CSV) that opens in Excel.
  • The same files in every version, so a district can switch versions from one month to the next.

Privacy and cost

  • Keeps data in the building. No cloud, no login, no telemetry. The data includes contact details for minors, and it stays on the computer that ran the event. The only time the program goes online is the optional SignUpGenius import, which only downloads.
  • Free and open source, under the Apache 2.0 license: no account, no trial, no ads. One Donate link, in the top bar on Java and the Help menu on the Mac and Windows, never interrupts the district advancement chair.

Accessibility

Board of review events run on volunteers, and about one man in twelve is color-blind. So the scheduler shows everything in words and symbols, not only color, and it’s built for volunteers who use a screen reader, a keyboard, or larger text too. All three versions do all of this.

Color is never the only signal

  • Every status is a word with its own symbol. Each Scout in the queue is marked with a word such as Waiting or In review and a matching symbol. The tint behind it only helps you scan the list.
  • A room that needs checking changes its clock. A room on time shows a stopwatch beside its minutes; running long, a timer clock on an orange tint; overdue, an alarm clock on a solid pink-red fill. The two late states differ in shape and lightness, not only hue, and the colors come from one palette checked for color blindness. The minutes are always shown as a number, and pointing at them brings up a tooltip naming the time the room has passed.
  • Board problems are written out. Too few members, a chair who isn’t qualified, adults from the Scout’s own unit: each is listed in words, with an icon, before you seat the board.
  • Sign-in mistakes are spelled out. On the check-in pages, a field that needs fixing gets a message beside it and a line in a summary, not only a red outline.

At the door

The check-in pages meet WCAG 2.2 level AA, the current standard for accessible web pages. Every page is scanned with the axe-core accessibility checker in light and dark mode, both blank and with every error showing, before a change goes in.

  • Contrast is measured, not picked by eye. All 21 pairs of text and control colors are measured in both light and dark mode on every change. Text needs 4.5:1 or better against its background; field borders and the focus ring need 3:1 or better.
  • The tablet’s accent color is ignored on purpose, so a tablet set to yellow can’t put yellow text on white.
  • Big targets. Every button and field is at least 44 pixels tall. Sign in stays pinned to the bottom of the window, so nobody has to scroll with a laptop trackpad to find it.
  • Follows the device. The pages use the tablet’s own light or dark setting and text size, and fit a narrow screen in one column without sideways scrolling. Windows High Contrast gets the system’s colors.
  • Works with a keyboard and a screen reader. Every field has a real label, every control shows a visible focus ring, and errors are read out, with the cursor moved to the first one.
  • No rush. After signing in, the page says it will return to the start in 20 seconds and offers Stay on this page. Nothing else on the page moves or changes on its own.

At the admin computer

  • Follows the computer’s settings: light or dark mode, high-contrast mode, and the system font.
  • Buttons have names. Buttons that are only an icon have a name a screen reader speaks, such as Remove Neil Armstrong or Add Jim Lovell.
  • Messages wait for you. A problem stays on screen, next to what it’s about, until it’s fixed or dismissed. Nothing vanishes on a timer.

Requirements

  • An admin computer for the district advancement chair, running one of the three versions below. Each version’s page lists its system requirements.
  • A check-in station: any tablet, phone, or laptop with an up-to-date web browser, such as Safari, Chrome, Edge, or Firefox. Nothing is installed on it. Turn off the browser’s saved form entries (autofill), so one person’s details are never offered to the next.
  • A local network both can reach: the venue’s Wi-Fi, a travel router, or a phone hotspot. Some guest Wi-Fi networks stop devices from reaching each other; if the tablet can’t open the check-in page, that may be why. No internet is required, except for the moment the SignUpGenius import runs, if you use it.

Pick a version

All three run an event the same way, with the same check-in pages. Pick the one that runs on the admin computer you have.

JavaMacWindows
Runs onWindows, macOS, or Linux with Java 21 or newer, including a Raspberry PiA Mac with Apple silicon, macOS 14 Sonoma or laterWindows 11, or Windows 10 22H2, on a 64-bit Intel or AMD processor
Run the event fromA web browserA native Mac appA native Windows app
Admin pages on the networkYesNo, the Mac onlyNo, the admin computer only
InstallJava, then a single .jar file (6 MB)An app you drag to Applications (6 MB)A single .exe (74 MB), nothing to install
Requirements and installJava versionMac versionWindows version
Sourcedeekayen/eagleboards-javadeekayen/eagleboards-macosdeekayen/eagleboards-windows

The Java version is the original; the Mac and Windows versions are native ports. On the native versions only the sign-in pages are reachable from the network, so nobody at the door can look up anyone’s contact details.

Each version also does a few things of its own:

  • Java: the admin pages open in a browser on any computer on the network, so the program can run on a Raspberry Pi with no screen while the district advancement chair works from a laptop. It’s also the version for an Intel Mac.
  • Mac: the Dock icon counts the Scouts waiting, a notification says when a room goes overdue while you’re in another app, a Scout can be dragged onto a free room, and Room › Copy Rooms From brings back an earlier event’s rooms.
  • Windows: nothing to install, and it accepts the Java version’s command-line options, so a launcher written for Java keeps working.

All three read and write the same data folder, so a district can switch between them from one month to the next. Don’t run two at once against the same folder.

SignUpGenius

If Scouts reserve their slots on SignUpGenius, the scheduler can load that event’s reservations before anyone arrives. A Scout who reserved types their email at the door and the rest of the form fills itself in, and they’re numbered P1, P2… in the queue so the event chair can tell them from walk-ins (W1, W2…). Adults who reserved a volunteer slot are recognized by email the same way, and an adult naming the Scout they’ll introduce can pick from everyone who reserved.

The import is optional. Without it, everyone signs in as a walk-in and the event runs the same way.

Import behavior

  • Finds the sign-up by itself. It uses the active sign-up whose title contains both Eagle and Board and whose dates include today. The Java and Windows versions can instead be given one sign-up’s ID with -sugid on the command line.
  • Takes this month’s slots only. Every filled slot dated in the current calendar month comes in, so a year-long sign-up with one date per month gives only this month’s. Two events in the same month would both come in.
  • Sorts people by slot name. A slot whose name contains adult is an adult volunteer. Every other slot is a Scout, and its name says which review they’re here for; see Setting up the sign-up below.
  • Adds Scouts to the event’s reservations: name, email, unit, which review, and unit leader. A Scout’s phone number is not imported, even if the sign-up asked for one. A Scout already on the list with the same email is left alone, so importing twice does no harm.
  • Adds adults to the adults it remembers. An adult whose email matches one adult already on file gets their phone number updated. A new email is added as a Member for both kinds of board; only the district advancement chair makes someone a chair. An email that matches more than one adult on file is skipped instead of guessed at.
  • Only downloads. It’s the one time the scheduler goes online, and nothing about the event is sent back to SignUpGenius. If SignUpGenius can’t be reached, the program says so and continues without it. Reservations already imported for the event are saved in its folder and stay there.

Setting up the sign-up

The import reads SignUpGenius’s report of filled slots, so the sign-up has to be built the way the scheduler expects.

  1. A Pro account. SignUpGenius gives API keys only to its Pro subscriptions. Once you’re signed in, the key is under Pro Tools › API Management.

  2. A title with Eagle and Board in it, such as Etowah District Eagle Boards 2027. Keep only one active sign-up with both words in its title, or the import may pick the wrong one.

  3. One date per event, with its slots on the date of the event itself.

  4. Slot names the scheduler can read.

    • The adult slot has Adult in its name, as in Adult Volunteer.
    • The final board slot has Review in its name and not Project or Proposal, as in Eagle Rank Board of Review.
    • The proposal review slot has Project in its name and not Review, as in Service Project Proposal Approval.
    • No Scout slot mentions Adult, even in passing, such as (adult must attend), or its Scouts are imported as volunteers.

    The versions check slot names in slightly different orders, so a name such as Project Proposal Review is a final board to Java and Windows and a proposal review to the Mac. Names that follow these rules mean the same thing to all three.

  5. The first three questions, in this order. The scheduler reads the answers by position, not by what the question says:

    1. Unit, such as Troop 1776. The digits become the unit number, and an answer that starts with Crew or Pack sets that type (the Mac also knows Ship). Anything else is taken to be a troop.
    2. Phone number. Kept for adults. A Scout’s answer is not imported.
    3. Unit leader’s name: the Scoutmaster or coach who will walk the Scout in. Kept for Scouts. An adult’s answer is not used.

    Questions after the third are ignored, so add any others after these.

  6. The Scout’s own name, and the email they’ll use at the door. The name on the slot becomes the Scout’s name at the event, and the email is how the check-in page finds the reservation. Say so on the sign-up, because parents often sign up under their own name and email.

API key storage

The import needs a SignUpGenius API key, which works like a password to the account. Keep it out of shared folders, emails, and screenshots.

JavaMacWindows
Key-sugkey and the key on the command line; the repository’s scripts/run launchers pass it on from a SUG_KEY= line in a .env file, or the SUG_KEY environment variableSettings › SignUpGenius, saved in the macOS keychainThe SignUpGenius API key box in the start-up window, kept encrypted for your Windows account and never in the data folder
ImportsEach time the program startsWhen today’s event is opened, if Import when today’s event is opened is on, and whenever you press Import Now in the same settingsOn Start, when Import the event’s sign-ups from SignUpGenius is ticked

The admin computer needs the internet only while the import runs. If the venue’s Wi-Fi can’t be trusted, start the event at home on the day: the reservations are saved with the event and are still there when you start again at the venue.

Getting help

  • This site walks through an event on each version, with pictures: Java, Mac, and Windows.
  • Inside the program, Help covers each step: Help in the top bar on Java, Help › Eagle Boards Help on the Mac, and Help › Eagle Boards help (F1) on Windows.
  • Each version’s repository has an operator’s manual written for the volunteer running the door, not for a programmer.
  • Found a problem, or want something changed? Open an issue on that version’s repository: Java, Mac, or Windows. Describe it with made-up names; never attach the event’s CSV files, a screenshot with real people in it, or the SignUpGenius key.

Java Version

A walkthrough of an event on the original Java Eagle Board Scheduler, which runs on any computer with Java 21 and is operated from a web browser.

Mac Version

A walkthrough of an event on Eagle Boards for Mac, the native macOS version of the scheduler for Apple silicon Macs.

Windows Version

A walkthrough of an event on the Eagle Board Scheduler for Windows, a native Windows app that needs nothing installed.

Last modified October 25, 2026