8000 GitHub - etiennec78/ha-celcat: Celcat Calendar integration for Home Assistant πŸ“…
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

etiennec78/ha-celcat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

83 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Celcat Calendar integration for Home Assistant πŸ“†

Components 🌟

Calendars πŸ“…

  • Single Calendar: Contains all events fetched from Celcat Calendar.
  • Grouped Calendars: One calendar per course, category, or both (disabled by default).

Installation πŸš€

Option 1: Install via HACS (Recommended) πŸ›’

Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

  1. Make sure you have HACS installed in Home Assistant.
  2. Click the button above to add the integration.
  3. Restart Home Assistant.
  4. Configure the integration through the UI.

Option 2: Manual Installation πŸ“–

  1. Create the custom_components directory inside your Home Assistant configuration directory.
  2. Copy the custom_components/celcat_calendar folder into custom_components.
  3. Restart Home Assistant.
  4. Configure the integration through the UI.

Configuration πŸ”§

Celcat Calenddar is configured via the UI. See the HA docs for more details.

  1. Go to Settings > Devices & services.
  2. Click on + ADD INTEGRATION, then search for Celcat Calendar.
  3. Fill the calendar name and your creditentials.
    • Example: If your Celcat login page is hosted at https://university.com/calendar/LdapLogin, use https://university.com/calendar for the URL.
  4. Click SUBMIT.

Note: As all events must be retrieved individually from Celcat during configuration, loading may take some time

Customization Options βš™οΈ

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.

How to Edit Options:

  1. Go to the Settings > Devices & services.
  2. Click on the Celcat Calendar integration.
  3. Next to your calendar, click on CONFIGURE.
  4. Edit the options and click on SUBMIT.

Available Filters 🧹

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

Course name replacements πŸ”„

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".

Consider supporting ? 🩷

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 ! πŸ’›

Final words πŸ‘‹

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 ! πŸ˜„

0