- 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_componentsdirectory inside your Home Assistant configuration directory. - Copy the
custom_components/celcat_calendarfolder 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/calendarfor 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 Calendarintegration. - 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 ! π