cloud-atlas-ai / obsidian-ics

Generate Daily Planner from ical feeds
MIT License
129 stars 25 forks source link

Declined recurring events still appear in agenda #19

Open zakkolar opened 2 years ago

zakkolar commented 2 years ago

Sorry - one more observation as I was testing the fix for #12

I noticed a recurring event I declined still shows up when Obsidian imports my agenda even though it doesn't show up in my calendar.

Here are the specifics, if it helps with reproduction:

muness commented 2 years ago

Indeed, currently the status of the event isn't considered at all. I'll see if I can expose that and/or change the default to hide declined events. Thanks for the bug report.

muness commented 8 months ago

Checking into how I'd even consider RSVP status, I looked up an event that I was invited to as TEST PARTICIPANT. It looks like we'd have to check the attendee list for the calendar's email address (which we don't actually have as far as I can tell, and would have to ask the user to specify per calendar - ICS is weird...) and then for the calendar's email email address look up PARTSTAT.

    "attendee": [
        {
            "params": {
                "CUTYPE": "INDIVIDUAL",
                "ROLE": "REQ-PARTICIPANT",
                "PARTSTAT": "ACCEPTED",
                "CN": "<TEST ORGANIZER>@<TEST>.com",
                "X-NUM-GUESTS": 0
            },
            "val": "<TEST ORGANIZER>@<TEST>.com"
        },
        {
            "params": {
                "CUTYPE": "INDIVIDUAL",
                "ROLE": "REQ-PARTICIPANT",
                "PARTSTAT": "DECLINED",
                "CN": "<TEST PARTICIPANT>@<TEST>.com",
                "X-NUM-GUESTS": 0
            },
            "val": "mailto:TEST PARTICIPANT@<TEST>.com"
        }
    ],

I'll see if the calendar's email is available somewhere...

muness commented 8 months ago

Update: after digging into this, I didn't see an obvious spot where the "whose calendar is this, anyway" is present in the calendar data itself. So, I would have to add calendar owner email as a field in the options. At that point, skipping (or otherwise annotating) rejected calendar events should be straightforward, at least for Google calendars as I can look at the PARTSTAT for that user.