mendhak / waveshare-epaper-display

At-a-glance dashboard for Raspberry Pi with a Waveshare ePaper 7.5 Inch HAT. Date/Time, Weather, Alerts, Google/Outlook Calendar
https://code.mendhak.com/raspberrypi-epaper-dashboard/
438 stars 65 forks source link

Add support for caldav, icloud, ics calendars #43

Closed anthonyscorrea closed 1 year ago

anthonyscorrea commented 1 year ago

Addresses issue #42

mendhak commented 1 year ago

Hey thanks for this PR some good features in here. Since I'll need to support this going forward, I've done some testing and reviewing to see how to incorporate it. A few main points I want to mention:

I tried signing up for ICloud but I was unable to create an account without providing a phone number (and credit card). That's too invasive for me and I'm not willing to go through with it or fake it. For that reason I can't take the ICloud feature.

I can test CalDav using NextCloud, that should be good enough.

I wasn't able to get the ICS feature working without making the datetimes timezone aware, I kept getting errors about comparing datetime naive and datetime aware. After that I noticed that the ICS feature isn't showing recurring events. I had a look at the icalendar page and it points at a few other projects to try. icalevents seems to cover the right set of features.

I appreciate you may not have time to make those changes, so I could take it over. It could also give me a chance to refactor these features into a proper calendar provider for better maintenance.

mendhak commented 1 year ago

Today I spent time testing caldav and also tested with recurring events in caldav. I think recurring events aren't possible yet, it's waiting on a pull request here: https://github.com/python-caldav/caldav/issues/157 Or it's possible but I couldn't figure out how.

mendhak commented 1 year ago

OK I figured out recurring events with caldav, this was harder than necessary, it's a terrifying 'standard'.

Also I've encountered different behaviors across different caldav providers like NextCloud and FastMail. I'm adding some code to deal with these discrepancies.

mendhak commented 1 year ago

All calendar types now moved into a provider. README instructions updated.
I've also cleaned up the instructions a bit, and moved the pip install packages into a requirements.txt Not merging just yet, still testing.