👋 Welcome, Volunteer!
Thank you for helping run our democratic meetings! As the timer operator, you play a crucial role in keeping our discussions fair, organized, and on schedule. This guide will walk you through everything you need to know.
⚠️ Your Primary Role: Work closely with the Parliamentarian and/or Debate Chair. They will tell you what timer to set and when to start it. Your job is to operate the timer accurately and keep it visible to speakers and the body.
🎯 Pre-Meeting Setup
Before the Meeting Starts:
- Open the timer page in a web browser (Chrome or Firefox recommended)
- Press F11 to enter fullscreen mode for maximum visibility
- Project to screens/monitors visible to speakers and the membership
- Test your setup:
- Click a few speaker presets to ensure they work
- Test the ▶️ Start and ⏸️ Pause buttons
- Verify the timer is large and readable from the back of the room
- Position yourself near the Parliamentarian/Debate Chair
- Have a notepad ready for any custom timings they request
💡 Pro Tip: Arrive 15-20 minutes early to set up and troubleshoot any technical issues before members arrive.
⏱️ Understanding the Timer Interface
The interface has two main timer sections:
| Timer Section |
Purpose |
Location |
| Speaker/Voting Timer (Left side) |
For debate speakers, points of order/privilege/information, voting periods, and amendments |
Upper left quadrant with radio button presets |
| Agenda Timer (Bottom right) |
For breaks, lunch periods, and other agenda items |
Bottom right with preset buttons (10, 20, 40, 45 min) |
| Presentation Area (Right side) |
Displays meeting slides/presentations |
Large right section (embedded Google Slides) |
| Date/Time/Weather (Bottom left) |
Shows current time, date, location, and temperature |
Bottom left quadrant |
🎤 Operating the Speaker/Voting Timer
Common Speaker Timer Presets (Radio Buttons):
| Button Label |
Time |
When to Use |
| ❌ Off |
N/A |
Hides the timer when not in use (shows 🌹 instead) |
| 🔺 For |
90 sec (1:30) |
Speaker speaking in favor of a motion |
| 🔻 Against |
90 sec (1:30) |
Speaker speaking against a motion |
| 🗳 Voting |
120 sec (2:00) |
During voting periods (digital ballot submission, etc.) |
| ⚙ PO (Point of Order) |
15 sec |
Member raising procedural question about rules |
| 👁 PPP (Point of Personal Privilege) |
15 sec |
Request about comfort/safety (AC, accessibility, etc.) |
| 🗝 PI (Point of Information) |
15 sec |
Request for clarification about motion/procedure |
| ➕ Amend |
60 sec (1:00) |
Member proposing an amendment to current motion |
| 🔰 Motivate |
180 sec (3:00) |
Original motion maker explaining their proposal |
How to Use Speaker Presets:
- Wait for speaker recognition from the Chair (e.g., "Speaker FOR the motion is recognized")
- The chair is responsible for recognizing speakers and managing the debate flow.
- Listen for the specific type of speaker (e.g., "FOR", "AGAINST")
- Click the radio button for the appropriate preset
- The timer will automatically:
- Set the correct time
- Update the label
- Start counting down
- When time expires: The timer will flash red to alert everyone
⚠️ Important: Clicking a preset radio button automatically starts the timer. You don't need to press ▶️ Start after selecting a preset.
Manual Timer Controls:
- ▶️ Start: Begins countdown (only needed if timer is paused)
- ⏸️ Pause: Temporarily stops countdown (Chair may request this)
- ⏹️ Reset: Returns to default time (1:30 for speaker timer)
- Time input (mm:ss or shorthand) + ⏱️: Set custom time and start immediately
- Time input (mm:ss or shorthand) + ⏮️: Set custom time but don't start yet
- Label text box + 🏷️: Change the timer label
- Shorthand accepted:
m:ss, mm:ss, seconds (e.g. 90), or mmss (e.g. 130 → 1:30). Legacy decimal minutes like 2.5 still work.
Visual Indicators
- Flashing Red: When any timer reaches 0 it flashes red until reset or restarted.
- ⏱️ Glow (Resume Available): During a point (PO/PI/PPP) the ⏱️ button glows chartreuse, showing you can instantly resume the interrupted speaker’s saved time and label.
- ▶️ Glow (Resume After ⏮️): If you press ⏮️ instead of ⏱️ during a point, the saved time and label are restored but not started; the ▶️ button will glow chartreuse to remind you to press it when the Chair re‑recognizes the speaker.
- Soft Warning Color: Background shifts to a warning color as remaining time enters its final segment (e.g. last 10 seconds on short speakers / last minute on longer agenda items).
- Beep: A brief audio beep plays at expiration to draw attention.
Keyboard Navigation
- Arrow Keys (←/→/↑/↓): Navigate between controls, radio buttons, and inputs across both timers. The navigation follows the visual layout of the interface:
- Speaker radio buttons arranged in a 3×3 grid: arrows move up/down/left/right matching the visual positions
- Agenda controls arranged horizontally: left/right moves between controls
- Up/down between speaker and agenda sections follows logical proximity
- Enter on Radio Buttons: After navigating to a radio button with arrows, press Enter to activate it and start that timer. Arrows only move focus—Enter confirms your selection.
- Manual Time Inputs (mm:ss):
- Enter times as
m:ss or mm:ss (e.g. 1:30, 2:00, 12:45)
- Shorthand without a colon is supported:
0-99 = seconds (e.g. 90 → 90 seconds)
100+ = mmss (last two digits are seconds): 100 → 1:00, 130 → 1:30, 254 → 2:54, 1000 → 10:00
- ↑/↓ adjustments:
- Speaker quick time: ±10 seconds per press
- Agenda quick time: ±2:30 (150 seconds) per press — steps through 0:00, 2:30, 5:00, 7:30, 10:00, etc.
- ←/→ moves the caret; at the left/right edge, focus moves outward to the adjacent control
- Legacy decimal minutes (e.g.
1.5) are still accepted for convenience
- Destination Time Input (agenda HH:MM):
- Enter a 24h clock time (e.g.
13:00, 09:45) or use fuzzy shorthand; press Enter or ⏰ to apply.
- Fuzzy shorthand examples:
130 → 13:30 (or 1:30 PM) if that’s the closest future time
915 → 09:15 (if before now) or 21:15 depending on which is next
1 → 01:00 or 13:00 (chooses whichever is the next future occurrence)
12 → 12:00
945p / 1:30p / 730a → explicit AM/PM is respected
- Closest future rule: If two interpretations exist (e.g. 1 = 01:00 vs 13:00), the timer picks the one in the near future; if both passed today, it rolls to tomorrow.
- Dynamic placeholder: Placeholder shows “current time + 8 min” rounded to the next :00/:15/:30/:45; focusing an empty field auto-fills it.
- ↑/↓ adjusts by 5-minute increments; wraps after 23:59 → 00:00
- ←/→ moves caret; at edges navigates to adjacent controls
- Text Label Boxes: ←/→ moves cursor; ↑/↓ navigates vertically to other controls
- Play/Pause Buttons: Treated as a single control; navigation moves between them seamlessly
- Point Mode Auto-Focus: When you activate a Point of Order/Information/Privilege, focus automatically jumps to the ⏱️ "go to time" button for quick resume
Navigation adapts to speaker timer state: When speaker timer is "Off," arrow navigation skips hidden controls and routes appropriately between quadrants.
Tip: Click any control once to give it focus, then use arrow keys to navigate the entire interface without touching the mouse. Press Enter on radios to activate them after navigating.
Custom Time Example:
If the Chair says "Give them 2.5 minutes":
- Type
2.5 in the time input field
- Click ⏱️ to set and start immediately
- Or click ⏮️ to set without starting
📖 Operating the Agenda Timer
Agenda Timer Presets:
| Button |
Time |
Label |
Typical Use |
| 10 |
10 minutes |
🏝️ Break 🏝️ |
Short break for bathroom, water, stretching |
| 20 |
20 minutes |
20 Min ⏰ |
Extended break or short meal break |
| 40 |
40 minutes |
40 Min ⏰ |
Dinner break or long discussion period |
| 45 |
45 minutes |
🍕 Lunch 🍕 |
Lunch break (default selection) |
Using the Agenda Timer:
- Wait for Chair's instruction (e.g., "10 minute break")
- Click the radio button for the appropriate time
- Timer automatically starts and shows the label
- Announce when 2-3 minutes remain if Chair requests it
Setting Countdown to Specific Time:
If the Chair says "We reconvene at 1:30 PM":
- Click the destination time field (bottom-right controls)
- Type
130, 1:30p, or 13:30 — all are accepted
- Press Enter or click ⏰
- The agenda timer will count down to that clock time; if that time already passed today it automatically rolls to tomorrow.
Tip: If you’re fine with the suggested reconvene time, focus the empty field and press ⏰ to accept the dynamic placeholder (now + 8 minutes, rounded to the next quarter hour).
💡 Pro Tip: The countdown-to-time feature automatically adds a day if the time you enter has already passed today.
📋 Common Scenarios & How to Handle Them
Scenario 1: Basic Debate
Chair announces: "We will now open debate. Speakers will have 90 seconds."
Your action:
- A motivator, the author of the motion, is recognized by the Chair. Click the 🔰Motivate button.
- As each speaker is recognized, alternate between 🔺 For and 🔻 Against, clicking the appropriate preset when speakers are recognized.
- Let timer flash red when time expires
- Chair will handle enforcement
Scenario 2: Point of Order During Debate
Member calls out: "Point of Order!"
Your action:
- Click ⚙ PO (15 seconds).
- The ⏱️ button glows, indicating the previous speaker’s time is saved and can be resumed instantly.
- When the point finishes (or after auto-return ~10s post expiry), the previous speaker’s remaining time is restored in a paused state.
- Resume options:
- Press ⏱️ to resume immediately (time + label restored and countdown restarts).
- Press ⏮️ to restore time + label without starting; ▶️ will glow to cue you to start when re‑recognized.
- If more than one point happens during the same speaker, repeat these steps. Each point saves and restores the updated remaining time.
Scenario 3: Amendment Proposed
Chair recognizes amendment: "Member has proposed an amendment. They have 1 minute to motivate."
Your action:
- Click ➕ Amend (60 seconds)
- After amendment is motivated, debate on amendment begins. This takes place prior to the main item debate.
- Return to using 🔺 For and 🔻 Against for speakers on amendment
- Press start ⏱️ to immediately resume the previous speaker's time.
- Our chapter, DSA-LA, does not typically accept verbal floor amendments, but they can be submitted to the chair in writing during a meeting. If the chair is taking time to process this, it is not technically an amendment speaker, so just pausing the timer or turning it off is a better choice than the amendment timer, as it is the chair's time, not a speaker's.
Scenario 4: Lunch Break Announced
Chair announces: "We'll break for lunch until 1:00 PM."
Your action:
- Note the current time (e.g., 12:15 PM)
- Calculate duration (45 minutes) or use countdown-to-time
- Click 45 radio button, OR
- Enter
13:00 in time field and click ⏰
Scenario 5: Custom Timing Request
Chair says: "Give the speaker 4 minutes for this complex motion."
Your action:
- Type
4 in the number input next to speaker timer
- Click ⏱️ (sets and starts immediately)
- Optionally change label to describe the motion
Scenario 6: Voting Period
Chair announces: "Polls are now open. You have 2 minutes to vote."
Your action:
- Click 🗳 Voting (2 minutes)
- When timer flashes red, voting period ends
- Chair will announce results
⚠️ Remember: You are not responsible for enforcing time limits or cutting off speakers. Your job is to display the time accurately. The Chair handles enforcement.
🔁 Multiple Point Interruptions
Debate can involve several back‑to‑back points (order, information, privilege) while one speaker still holds recognition.
- Each time you click a point preset, the current speaker’s remaining time and label are saved.
- During the point, ⏱️ glows (instant resume available). Using ⏮️ instead prepares a delayed resume and makes ▶️ glow.
- After the point ends (auto-return may occur up to 10s after expiry), the speaker state is restored paused.
- A subsequent point interruption saves the newly updated remaining time again. No manual clearing is needed.
Tip: Choose ⏮️ when the Chair wants to speak briefly before resuming; choose ⏱️ for immediate continuation.
🚨 Troubleshooting
Problem: Timer isn't visible/projection failed
Solution:
- Check HDMI/display cable connections
- Press Windows+P to check projection mode
- Press F11 to ensure fullscreen
- Refresh the page (F5)
Problem: Clicked wrong preset
Solution:
- Immediately click the correct preset
- Or click ⏹️ Reset and start over
- Briefly explain to Chair what happened
Problem: Page/browser crashed
Solution:
- Keep the timer URL bookmarked
- Reopen browser and navigate to timer page
- Press F11 for fullscreen
- State auto‑restores (remaining time, labels, and running/paused state) thanks to built‑in persistence
- Inform Chair only if projection setup needs a moment
Problem: Weather/location not showing
Solution:
- This is cosmetic only - ignore it
- Browser may have blocked location permission
- Date and time will still display correctly
Problem: Can't hear Chair's instructions
Solution:
- Position yourself closer to Chair before meeting starts
- Establish hand signals for common presets (For/Against/Break)
- Ask Chair to repeat if unclear
⚠️ If Something Goes Wrong: Stay calm! The meeting can continue even without the timer. Inform the Chair immediately and work together to find a solution. Manual timekeeping with a phone/watch is always a backup option.
✅ Best Practices & Tips
Do's:
- ✅ Arrive early and test all equipment
- ✅ Stay alert and focused throughout the meeting
- ✅ Watch the Chair for hand signals or verbal cues
- ✅ Keep the timer visible to speakers and body at all times
- ✅ Stay neutral - you're facilitating democracy, not debating
- ✅ Take brief notes if Chair requests unusual timings
- ✅ Communicate proactively if you have technical issues
Don'ts:
- ❌ Don't enforce time limits - that's the Chair's role
- ❌ Don't editorialize on what speakers say
- ❌ Don't leave your post during active debate without finding a replacement
- ❌ Don't start timers without Chair's instruction
- ❌ Don't use your phone for personal matters during the meeting
- ❌ Don't panic if you make a small mistake - just correct it
Keyboard Shortcuts (Advanced):
- F11: Toggle fullscreen mode
- F5: Refresh page (only if something breaks)
- Enter: On radio buttons: activates the selected preset. In number/time/label inputs: applies the value (same as clicking the adjacent button)
- Arrow Keys: Navigate between all controls following the visual layout. Number inputs: ↑/↓ adjusts value. Time input: ↑/↓ adjusts by 5 minutes. Radios: arrows move focus; Enter to activate
- Tab / Shift+Tab: Alternative navigation method (browser default); arrow keys provide more intuitive 2D navigation
💡 Communication Tip: Before the meeting, establish a quick hand signal system with the Chair:
• 👍 (Thumbs up) = Start timer
• ✋ (Hand up) = Pause timer
• 🔄 (Circle motion) = Reset timer
This helps during loud moments when verbal instructions are hard to hear.
📚 Robert's Rules Quick Reference
Understanding basic Robert's Rules will help you anticipate what timers are needed:
Main Motion Process:
- Motivation (3 min): Original mover explains their proposal
- Debate opens: Alternating For (90s) and Against (90s) speakers
- Amendments may be proposed (60s): Changes to the motion
- Voting (2 min): Members cast their votes
Points (15 seconds each):
- Point of Order: Procedural question about rules being followed
- Point of Information: Factual question needing clarification
- Point of Personal Privilege: Request about comfort/accessibility
Note: Your chapter may have modified timings. Always defer to your Chair and local standing rules.
🎓 Post-Meeting
After the Meeting Ends:
- Exit fullscreen (press F11 or Esc)
- Close the browser/timer page
- Disconnect equipment and return cables/adapters to proper storage
- Debrief with the Chair: Ask for feedback on your performance
- Note any issues: Report technical problems to tech team
- Thank yourself: You helped make democracy work! 🌹
💡 Continuous Improvement: After your first few meetings, you'll develop a rhythm and intuition for common patterns. Don't hesitate to ask experienced volunteers for tips!
📞 Support & Resources
Need Help?
- Technical Issues: Contact your chapter's tech committee
- Procedural Questions: Ask the Parliamentarian before/after meetings
- Training: Request shadowing opportunities with experienced volunteers
- Robert's Rules: robertsrules.com (official resource)
Configuration Note:
If your chapter needs different preset times, labels, agenda options, or increment sizes, these can be customized in timer.config.js. (Speaker quick adjust ±10s; Agenda quick adjust ±2:30; Destination time adjust ±5m.) Contact your tech committee to request changes.
NEW: You can now optionally create a timer.agenda.json file to pre-program the meeting agenda using start times instead of durations. Example:
{
"agendaDate": "2025-10-25",
"timezone": "America/Los_Angeles",
"items": [
{ "start": "2:00 PM", "label": "Opening + D-SwAp!!" },
{ "start": "2:10 PM", "label": "Commencement + Grounding" },
{ "start": "2:20 PM", "label": "Agenda Approval" },
{ "start": "2:25 PM", "label": "Electoral Segment" },
{ "start": "3:05 PM", "label": "Debrief: No Kings, People’s Picnic, Halloween Spooktacular" },
{ "start": "3:05 PM", "label": "Westside Priorities Updates and Discussions" },
{ "start": "3:35 PM", "label": "Announcements & Upcoming Events" },
{ "start": "3:50 PM", "label": "Good & Welfare" },
{ "start": "4:00 PM", "label": "Closing & Adjourn" }
]
}
The timer will automatically count down to the next upcoming item when the page loads (unless you're restoring a previously running timer). Start times accept fuzzy formats (e.g. 200, 2pm, 205p, 2:05). You can still manually override by using the agenda preset buttons, time inputs, or target time controls.