A custom Home Assistant integration that syncs your TimeTree calendars with Home Assistant's calendar platform.
- 🔄 Automatic synchronization of TimeTree calendar events
- ⏱️ Configurable update intervals (5, 15, 30, or 60 minutes)
- 📅 Full calendar integration with Home Assistant
- 🔐 Secure credential storage
- 🌍 Support for all-day events and timezones
- 📍 Location and description support
GitHub Repository: https://github.com/renaat87/timetree-homeassistant
HACS Installation: Add as custom repository → Download → Configure
Manual Installation: Copy to custom_components/timetree → Restart → Configure
HACS (Home Assistant Community Store) makes it easy to install and update custom integrations.
- HACS must be installed in your Home Assistant instance
-
Add Custom Repository to HACS
- Open Home Assistant
- Go to HACS in the sidebar
- Click on Integrations
- Click the three dots menu (⋮) in the top right corner
- Select Custom repositories
- In the dialog:
- Repository: Enter your GitHub repository URL (e.g.,
https://github.com/renaat87/timetree-homeassistant) - Category: Select Integration
- Repository: Enter your GitHub repository URL (e.g.,
- Click Add
-
Install the Integration
- In HACS, search for "TimeTree Calendar"
- Click on the integration
- Click Download
- Restart Home Assistant
-
Configure the Integration
- Go to Settings → Devices & Services → Add Integration
- Search for "TimeTree Calendar" and click on it
- Follow the configuration steps below
-
Copy the
custom_components/timetreedirectory to your Home Assistantconfig/custom_components/directory.Your directory structure should look like this:
config/ └── custom_components/ └── timetree/ ├── __init__.py ├── calendar.py ├── config_flow.py ├── const.py ├── manifest.json ├── strings.json ├── timetree_api.py └── translations/ └── en.json -
Restart Home Assistant
-
Go to Settings → Devices & Services → Add Integration
-
Search for "TimeTree Calendar" and click on it
- Enter your TimeTree email address
- Enter your TimeTree password
- Click Submit
The integration will authenticate with TimeTree and fetch your available calendars.
- Select which calendar you want to sync from the dropdown
- Choose your preferred update interval:
- 5 minutes - Most frequent updates (higher API usage)
- 15 minutes - Frequent updates
- 30 minutes - Default, balanced option
- 1 hour - Less frequent updates (lower API usage)
- Click Submit
The integration will create a calendar entity in Home Assistant with your TimeTree events.
To sync multiple TimeTree calendars:
- Add the integration again (repeat the setup process)
- Select a different calendar during configuration
Each calendar will be a separate integration instance.
Once configured, your TimeTree calendar will appear in:
- Calendar Dashboard - View all your calendars in one place
- Calendar Card - Add to your Lovelace dashboard
- Automations - Use calendar events as triggers
The integration creates a calendar entity named calendar.timetree_[calendar_name].
Entity Attributes:
calendar_id- TimeTree calendar IDcalendar_name- Calendar nameevent_count- Number of events currently synced
Trigger an automation based on calendar events:
automation:
- alias: "Notify on Calendar Event"
trigger:
- platform: calendar
entity_id: calendar.timetree_my_calendar
event: start
action:
- service: notify.mobile_app
data:
message: "Event starting: {{ trigger.calendar_event.summary }}"- Verify your TimeTree email and password are correct
- Make sure you're using the same credentials you use to log in to TimeTree
- Check your internet connection
- Verify Home Assistant can reach
https://timetreeapp.com - Check Home Assistant logs for detailed error messages
- Check the update interval setting
- Verify the integration is not disabled
- Check Home Assistant logs for errors
- Try reloading the integration
To see detailed logs:
- Go to Settings → System → Logs
- Search for "timetree"
Or add this to your configuration.yaml:
logger:
default: info
logs:
custom_components.timetree: debugThis integration is built on top of the TimeTree-Exporter project by eoleedi.
This integration is provided as-is for personal use.