I got frustrated I wasn’t able to get my son’s schedule in my own (Google) calendar. So I’ve created an unofficial Somtoday integration for Home Assistant.
Features
School selection and Somtoday browser login
Support for multiple children on one Somtoday account
A calendar entity containing all individual lessons
A separate calendar entity with one event covering the entire school day, from the first lesson until the last lesson
Export school-day events to a writable calendar
Export individual lessons to a separate calendar
Export every published school holiday as one multi-day, all-day event
Separate destinations and title templates per child
Google Calendar and generic Home Assistant calendar actions
Configurable look-ahead period and update interval
Reauthentication, Repairs notifications and privacy-safe diagnostics
Protection against duplicate events when a calendar provider is slow to return newly created appointments
Calendar titles support placeholders such as:
{student} – the child’s first name
{holiday} – the holiday name published by Somtoday
The integration only lists available calendars that advertise both create and delete support. Actual write permissions must also be enabled at the calendar provider. Google Calendar and Google Workspace require read/write authorization.
I recommend initially configuring Days ahead = 1 and checking the created appointments before increasing the period.
Installation
Add the following repository to HACS as a custom repository in the Integration category:
Install the latest release, restart Home Assistant and add Somtoday through Settings → Devices & services.
Important login note
Somtoday redirects the browser to a somtoday:// callback URL after authentication. Browsers usually don’t display this URL directly. The README explains how to retrieve it safely through the browser’s Network developer tools.
Current limitations
This is an unofficial integration and the Somtoday API may change.
Calendar integrations must support creating, deleting and querying events with stable UIDs.
Apple/iCloud through Home Assistant’s built-in CalDAV integration currently does not expose all functionality required for reliable full synchronization.
Only active timetable appointments are exported as lessons.
Changing or disabling a destination does not remove events previously written to the old calendar.
Availability of holidays and some appointment metadata may differ between schools and account types.
The integration has automated Home Assistant, HACS and translation validation, but additional real-world testing across schools and calendar providers would be very valuable.
Feedback, bug reports and contributions are welcome through GitHub:
There’s a new beta available (0.9.0-beta.1) if you’d like to test homework synchronization with an HA to-do list. You can choose a list per child and test task creation, due dates and completion status.
Please create a separate, empty to-do list first — it created 107 tasks in my case!
There’s also an optional setting to mark homework as completed in Somtoday from HA. This didn’t work with my parent account. It might work with a student account, but I haven’t tested that yet.
Yes, i created a todo-list first and then changed the settings and pointed to the todo-list.
Other small thing: if I create a local calender and point the classes to there, it still inserts the student-name, while I removed that from the setting.
I don’t see any log-values (with debug-loggin on), only:
2026-09-15 17:00:28.706 DEBUG (MainThread) [custom_components.somtoday.coordinator] Finished fetching somtoday data in 0.504 seconds (success: True)
Hi @ErikWie, thanks! The success: True message doesn’t necessarily mean the homework requests succeeded.
Could you open Tools > States, find the Homework sync sensor and copy its attributes, especially reasons? Your screenshot shows its history, but the attributes should tell us which step is failing.
The file includes versions, results/errors per source, task-list capabilities and sync status, without names, tokens or homework contents. This should help distinguish empty results from failed requests.
It adds an option in the config to include homework in lesson descriptions, both in the HA timetable and exported lesson events. Homework is only added when the subject and lesson start time match unambiguously.
I’m not sure what to do with daily and weekly homework.
Feedback is welcome!
Edit:
There was a bug when a day ended with a break, it was added to the schoolday event. Also the homework formatting has been improved. This is now solved beta 6