From calendar conflicts to verified actions, powered by Elastic Agent Builder and Elasticsearch.
Elasticboard is a multi-step AI agent workspace that:
- Syncs real Google Calendar data into Elasticsearch
- Uses Agent Builder + Search/ES|QL for planning and conflict detection
- Renders actionable nodes on a visual storyboard
- Executes reliable follow-up actions in GitHub Issues
- Verifies action outcomes and logs measurable impact
This project is built for the Elasticsearch Agent Builder Hackathon with a strict no-mock, real-data flow.
Most “AI assistants” stop at advice. Elasticboard closes the loop:
- Retrieve live context
- Reason over that context
- Take an external action
- Verify that action
- Track impact metrics in Elasticsearch
- Real Google Calendar OAuth flow
- Event ingestion and indexing (
calendar-events) - Agent chat with markdown output and storyboard node extraction
- Manual board editing (add/delete/clear cards)
- Save and load storyboards (
saved-storyboards) - Reliable action loop:
- Detect overlapping meetings
- Create GitHub follow-up issue
- Verify issue creation
- Log execution + estimated time saved (
actions-log)
- Frontend: React, Vite, React Flow
- Backend: Node.js, Express
- Retrieval/data: Elasticsearch
- Agent runtime: Elastic Agent Builder APIs (Kibana)
- Integrations: Google Calendar API (OAuth2), GitHub REST API (Issues)
frontend/: UI, storyboard canvas, chat, integrations panelbackend/: Elastic proxy, Google OAuth/sync, GitHub action loop, metrics endpointsagent-system-instructions.json: suggested Agent Builder system instructions
Primary indices:
calendar-connectionscalendar-eventssaved-storyboardsactions-log
cd backend
npm install
npm run devcd frontend
npm install
npm run devOpen http://localhost:5174.
In Connect to Elastic, provide:
- Elastic API Key
- Kibana URL
- Elasticsearch URL
- Google OAuth Client ID
- Google OAuth Client Secret
- (Optional, for reliable action loop) GitHub Token + GitHub Repo (
owner/repo)
Set this exact URI in Google Cloud OAuth client settings:
http://localhost:3001/api/calendar/google/callback
- Connect Elastic + integrations
- Sync calendar events
- Ask: “What conflicts do I have today?”
- Show storyboard node generation
- Run Create conflict follow-up issue
- Show verification + metrics
- Save storyboard and reload it
See also: DEMO_SCRIPT.md.
GET /healthGET /api/verifyGET /api/agentsPOST /api/conversePOST /api/converse/stream
POST /api/storyboards/saveGET /api/storyboards/listGET /api/storyboards/:id
POST /api/calendar/google/auth-urlGET /api/calendar/google/callbackGET /api/calendar/google/statusPOST /api/calendar/google/syncGET /api/calendar/google/eventsDELETE /api/calendar/google/disconnect
GET /api/github/statusPOST /api/actions/resolve-conflictGET /api/actions/metrics
- This repo intentionally avoids fake/demo data injection in production paths.
- Secrets should be rotated and managed securely for production use.