Inspiration
In South Africa, load shedding — scheduled rolling blackouts — cancels meetings, ruins plans, and forces millions of people to constantly cross-check Eskom schedules against their calendars. It's a daily grind measured in candles. We wanted an agent that takes that grind off your plate entirely.
What it does
CandleFree is an autonomous background agent. Every hour it:
- Checks the load shedding schedule for your area
- Scans your calendar for online meetings that clash with outage windows
- Reschedules them to the earliest power-safe slot
- Notifies you only when something actually changed — otherwise it stays silent
No app to check, no schedule to memorize. It's built for remote workers, students, freelancers, and small businesses whose income depends on being online at the right time.
How we built it
- AWS Strands Agents SDK with Claude Sonnet 4.6 on Amazon Bedrock — the agent reasons over five tools: get schedule, find conflicts, suggest safe slot, reschedule meeting, notify user
- Amazon Bedrock AgentCore hosts the agent runtime; Amazon EventBridge Scheduler triggers an autonomous pass every hour
- FastAPI + Mangum on AWS Lambda behind a public Function URL serves the live demo dashboard
- Terraform provisions everything (scheduler, Lambda, least-privilege IAM, budget alarm)
- SOLID Python package with swappable providers: EskomSePush API in live mode, deterministic time-relative mocks in demo mode
Challenges we ran into
- Date hallucination: the model rescheduled a meeting to the wrong year because tool outputs only showed times. Fix: tools now return exact copy-pasteable ISO timestamps plus a past-date guard — a real lesson in designing tool contracts for LLMs.
- Stateless serving: Lambda spins up multiple instances, so in-memory demo state diverged between requests. Fix: the agent run returns the full updated state, and the client sends its selected area with every request.
- A demo that works at any hour: outage and meeting mock data are generated relative to "now", so the conflict scenario is always live no matter when judges try it.
Accomplishments that we're proud of
- A fully autonomous agent that acts (reschedules) rather than just advises — with alerts only when a human actually needs to know
- End-to-end AWS deployment: AgentCore runtime, hourly EventBridge trigger, and a public live demo anyone can click right now
- Clean SOLID architecture where the demo providers swap for real APIs (EskomSePush, Google Calendar) without touching agent logic
- Shipped within hackathon time: tested, documented, MIT-licensed, with architecture diagram and one-command Terraform infra
What we learned
Autonomy needs guardrails. Precise tool outputs (full ISO timestamps, explicit instructions), validation on writes (past-date rejection), and an "alert only when it matters" policy are what turn an LLM agent from noisy to trustworthy. We also learned a lot about running stateful demos on stateless infrastructure.
What's next for CandleFree
Real Google/Outlook calendar integration, WhatsApp notifications, geyser and inverter smart-home hooks before outages, multi-area household support, and expansion to other countries with scheduled power cuts.
Built With
- amazon-bedrock
- amazon-eventbridge
- amazon-web-services
- aws-lambda
- bedrock-agentcore
- claude
- eskomsepush-api
- fastapi
- python
- strands-agents
- tailwindcss
- terraform
Log in or sign up for Devpost to join the conversation.