Red Rover Manager Skill
Overview
Red Rover is an absence management system used by PSD to track staff absences and substitute coverage. This skill provides access to absence data for reporting and analysis.
Configuration
- Base URL:
https://connect.redroverk12.com/ - Org ID: 1305 (Peninsula School District)
- Authentication: HTTP Basic Auth + API Key header
- Credentials: Stored in 1Password as "RedRover"
- Rate Limit: 100 requests/minute
Authentication
All requests require both:
Authorization: Basic [base64(username:password)]headerapiKey: [key]header (obtained from organization endpoint)
The organization endpoint returns a dynamic API key that should be used for subsequent requests.
Scripts
All scripts are in skills/redrover-manager/scripts/. Run with bun:
get_organization.js
Fetch organization info and validate credentials.
bun get_organization.js
Returns: Organization ID, name, and API key.
get_absences.js
Fetch raw absence/vacancy data for a date range.
bun get_absences.js <start_date> <end_date> [filled|unfilled|all]
Examples:
bun get_absences.js 2026-01-20 2026-01-27
bun get_absences.js 2026-01-27 2026-01-27 unfilled
Note: Max date range is 31 days.
get_daily_summary.js
Get daily absence summary (all staff) with counts by school, reason, and fill status.
bun get_daily_summary.js [date]
Date options:
today(default)yesterday- Day names:
monday,tuesday, etc. last wednesday,last friday- Specific date:
2026-01-27
get_certificated_summary.js
Get daily absence summary for certificated staff only (Teachers, ESA, CTE).
bun get_certificated_summary.js [date]
Same date options as above. This is the most commonly requested report - focuses on classroom coverage.
get_weekly_summary.js
Get weekly trends and patterns.
bun get_weekly_summary.js [weeks_ago]
Options:
0= this week (default)1= last week2= two weeks ago
API Endpoints Used
Organization
GET /api/v1/organization
Security: Basic Auth
Returns: Array with org info including dynamic apiKey
Vacancy Details (Primary data endpoint)
GET /api/v1/{orgId}/Vacancy/details
Security: Basic Auth + apiKey header
Query Params:
- fromDate: datetime (required)
- toDate: datetime (required)
- filled: boolean (optional - filter filled/unfilled)
- pageSize: int (default 10, max 100)
- page: int (default 1)
Returns: Paginated vacancy/absence data
Common Workflows
"How many absences yesterday?"
bun get_daily_summary.js yesterday
"Show unfilled positions for today"
bun get_daily_summary.js today
# Look at unfilled_positions array in output
"Weekly absence trends"
bun get_weekly_summary.js
"Last week's summary"
bun get_weekly_summary.js 1
Output Format
Daily Summary
{
"date": "yesterday",
"date_iso": "2026-01-26",
"total_absences": 110,
"filled": 75,
"unfilled": 35,
"fill_rate": 68,
"by_school": {
"PENINSULA HIGH SCHOOL": 13,
"GIG HARBOR HIGH SCHOOL": 10
},
"by_reason": {
"SICK LV > 1 SICK": 54,
"OTH PAID LV > PERSONAL": 15
},
"by_position_type": {
"Teacher": 55,
"Paraprofessional": 36
},
"unfilled_positions": [
{
"school": "PENINSULA HIGH SCHOOL",
"position": "MATH",
"employee": "JANE DOE",
"start": "2026-01-26T07:00:00",
"end": "2026-01-26T14:30:00"
}
]
}
Weekly Summary
{
"week": "Jan 20-24, 2026",
"week_label": "this week",
"total_absences": 450,
"daily_average": 90,
"filled": 380,
"unfilled": 70,
"fill_rate": 84,
"peak_day": { "day": "Monday", "count": 120 },
"slow_day": { "day": "Friday", "count": 65 },
"by_day": {
"Monday": 120,
"Tuesday": 95,
"Wednesday": 90,
"Thursday": 80,
"Friday": 65
},
"trends": [
{ "type": "info", "message": "Monday had 120 absences (50%+ above average)" }
]
}
Data Fields
Key fields in vacancy data:
absenceDetail.employee- Employee who is absentabsenceDetail.reasons[0].name- Reason category (SICK, PERSONAL, etc.)location.name- School nameposition.title- Position titleposition.positionType.name- Position category (Teacher, Paraprofessional, etc.)substitute- If present, position is filledstart/end- Absence time rangeneedsReplacement- Whether sub is required
Schools in PSD
Common school names in data:
- PENINSULA HIGH SCHOOL
- GIG HARBOR HIGH SCHOOL
- HENDERSON BAY HIGH SCHOOL
- GOODMAN MIDDLE SCHOOL
- HARBOR RIDGE MIDDLE SCHOOL
- KEY PENINSULA MIDDLE SCHOOL
- KOPACHUCK MIDDLE SCHOOL
- ARTONDALE ELEMENTARY SCHOOL
- DISCOVERY ELEMENTARY SCHOOL
- EVERGREEN ELEMENTARY SCHOOL
- HARBOR HEIGHTS ELEMENTARY SCHOOL
- MINTER CREEK ELEMENTARY SCHOOL
- PIONEER ELEMENTARY SCHOOL
- PURDY ELEMENTARY SCHOOL
- SWIFT WATER ELEMENTARY SCHOOL
- VAUGHN ELEMENTARY SCHOOL
- VOYAGER ELEMENTARY SCHOOL