A Skydark Calendar-style family organization panel for Home Assistant: calendar, chores, lists, meals, photos, rewards, and sleep routines.
- Calendar: Month / week / day views, event cards, drag-and-drop reschedule, add/edit events with family member assignment and colors
- Chores & Tasks: Per-person columns, progress indicators, daily/weekly/custom frequency, completion animations
- Lists: Multiple lists (grocery, to-do, etc.) with add item and checkboxes
- Meals: Weekly meal planning grid
- Photos: Grid and slideshow
- Rewards: Points and reward tracking per family member
- Sleep: Bedtime and routine checklists
- Settings: Family name, member colors, weather entity, two-way calendar sync
- Home Assistant: Custom panel, SQLite storage, services (
add_event,complete_task,add_list_item,send_notification), sensors (tasks today, completed, next event), event bus for automations
-
Add the custom repository in HACS
- Open HACS → Integrations.
- Click the three dots (⋮) → Custom repositories.
- Enter the repository URL:
https://github.com/HunterJacobs/SkyDark. - Set category to Integration → Add.
-
Install the integration
- In HACS → Integrations, search for Skydark Family Calendar.
- Click Download and restart Home Assistant when prompted.
-
Configure and use
- Go to Settings → Devices & Services → Add Integration → search for Skydark Family Calendar.
- Complete the setup (family name, optional weather entity).
- Open the Skydark Calendar panel from the sidebar.
Copy the custom_components/skydark_calendar folder into your Home Assistant config directory:
config/
custom_components/
skydark_calendar/
__init__.py
manifest.json
config_flow.py
const.py
database.py
calendar.py
sensor.py
services.py
google_calendar.py
microsoft_calendar.py
services.yaml
strings.json
translations/
www/ # frontend build output (included)
Restart HA so the integration is loaded.
- Go to Settings → Devices & Services → Add Integration
- Search for Skydark Family Calendar
- Enter your family name and optionally a weather entity
- Finish the setup
- In the sidebar, open Skydark Calendar (calendar icon and title).
- The panel loads the React app from
/skydark/.
To publish this integration to your own GitHub repository:
-
In the project root, run:
git init git add . git commit -m "Initial commit: Skydark Family Calendar integration" git remote add origin https://github.com/HunterJacobs/SkyDark.git git branch -M main git push -u origin main
After pushing, others can install via HACS by adding your repo URL as a custom repository (Integration).
cd frontend
npm install
npm run dev # Vite dev server
npm run build # Builds into custom_components/skydark_calendar/www
npm run test # VitestTo run the full app (frontend + Home Assistant backend) on your machine:
- Install Docker and Docker Compose (see
dev/README.md). - From the repo root run:
./scripts/run-local.sh - Wait 1–2 minutes, then open http://localhost:8123, create a local HA account, add the Skydark Family Calendar integration, and open the panel from the sidebar.
Details and troubleshooting: dev/README.md.
The backend is the Home Assistant custom component. Use a Python environment matching your HA version if you run tests locally. The SQLite database is created at config/skydark_calendar/skydark_calendar.db after the first run.
skydark_calendar.add_event/update_event/delete_eventskydark_calendar.add_task/update_task/delete_task/complete_task/uncomplete_taskskydark_calendar.add_list_item/toggle_list_item/delete_list_item/create_list/delete_listskydark_calendar.add_meal/update_meal/delete_meal/add_meal_recipe/delete_meal_recipeskydark_calendar.add_family_member/update_family_member/delete_family_memberskydark_calendar.add_reward/delete_reward/add_points/redeem_rewardskydark_calendar.upload_photo/send_notification/sync_calendars
The integration fires skydark_calendar_event_created when an event is added via the service, and skydark_calendar_updated after any data mutation. Use them as triggers in automations.
SkyDark syncs through Home Assistant calendar entities, so Google, Outlook, CalDAV, and Local Calendar all work once they are connected in HA.
- In Home Assistant, add the official integration for your provider (Google Calendar, Microsoft 365 / Outlook, CalDAV, or Local Calendar).
- During SkyDark setup (or later in Settings → Calendar), choose:
- Import into SkyDark — events from that calendar appear on the family calendar.
- Export SkyDark events — events you create in SkyDark are created on that calendar.
- Import existing events — copy current history (about two years back and forward) on first link.
- When adding an event in SkyDark, use Also add to to pick which export calendars receive that event.
Sync runs every 15 minutes and after you add, edit, or delete an event. SkyDark’s own calendar.skydark_* entity is never used as a sync target, so it cannot loop.
The UI follows the Skydark reference: light background #F8FAFB, accent #3B9BBF, pastel event colors, 80px sidebar, FAB bottom-right. Optimized for landscape tablet (e.g. 15" display).