- Single Calendar: Contains all events fetched from Celcat Calendar.
- Grouped Calendars: One calendar per course, category, or both (disabled by default).
- Make sure you have HACS installed in Home Assistant.
- Click the button above to add the integration.
- Restart Home Assistant.
- Configure the integration through the UI.
- Create the
custom_components
directory inside your Home Assistant configuration directory. - Copy the
custom_components/celcat_calendar
folder intocustom_components
. - Restart Home Assistant.
- Configure the integration through the UI.
Celcat Calenddar is configured via the UI. See the HA docs for more details.
- Go to Settings > Devices & services.
- Click on
+ ADD INTEGRATION
, then search forCelcat Calendar
. - Fill the calendar name and your creditentials.
- Example: If your Celcat login page is hosted at
https://university.com/calendar/LdapLogin
, usehttps://university.com/calendar
for the URL.
- Example: If your Celcat login page is hosted at
- Click
SUBMIT
.
Note: As all events must be retrieved individually from Celcat during configuration, loading may take some time
You may edit options like:
- Scan interval: Adjust how frequently events are updated.
- Holidays inclusion: Decide whether to include holidays in the calendar.
- Titles & descriptions components: Choose which attributes to include in your event descriptions.
- Event grouping: Group events into multiple calendars for better organization.
- Data filters: Standardize data fetched from Celcat.
- Course name replacements: Manually override course names.
- Go to the Settings > Devices & services.
- Click on the
Celcat Calendar
integration. - Next to your calendar, click on
CONFIGURE
. - Edit the options and click on
SUBMIT
.
Data filters can be useful if Celcat contains non-standardized data.
For example, raw data may contain different names for the same course which makes grouping ineffective.
Filter | Description | Example |
---|---|---|
Title case | Capitalize only the first letter of each word | MATHS CLASS -> Maths Class |
Remove modules | Remove modules from courses names | Maths [DPAMAT2D] -> Maths |
Remove category | Remove category from course names | Maths CM -> Maths |
Remove punctuation | Remove ".,:;!?" from text | Math. -> Math |
Group similar courses | Search for all event names and group ones containing another | Maths, Maths S1 -> Maths |
Remove redundant parts | Extract parts removed by the previous filter and remove them from all other courses | Physics S1 -> Physics |
Remove text after number | Remove all text after the first number found | Room 403 32 seats -> Room 403 |
Remove duplicates | Remove duplicates from the list | Building A, Building A -> Building A |
In case filters couldn't standardize all course names, you can set manual replacements.
To do so, enter source:output combinations to manually replace course names.
Example: Math Class:Maths
will replace all "Math Class" courses by "Maths".
If you enjoyed this integration, don't hesitate to star it ! β
And if you would like to go further, I would be really happy to get a tip ! π
I can't guarantee that this integration will work with every Celcat server, as Celcat has a quite poorly written API.
However if you find a bug, π open an issue or pull request π
I'd be happy to help ! π