nextcloud / calendar

📆 Calendar app for Nextcloud
https://apps.nextcloud.com/apps/calendar
GNU Affero General Public License v3.0
983 stars 241 forks source link

Do not send invites on import #576 #4408

Open chasharpur opened 2 years ago

chasharpur commented 2 years ago

Steps to reproduce

1.Export a calendar from a CalDAV server, creating a .ics file with already accepted future repeating and individual events 2.Import the .ics file into Nextcloud Web GUI via Settings & Import into a new calendar 3.Observe that fresh invitations are sent out for each future event to people who have already accepted them

Expected behavior

This issue was raised before in #576. The comments by jospoortvliet suggest he was in two minds:

  1. New invitations should never be sent out on import because everyone has already been invited to them
  2. New invitations should always be sent out because after import the new calendar has a different URL and invitees should be made aware of that

I don't understand 2. Sending another invite will just confuse invitees. Invitees are not interested in the organiser's calendar URL. The bug mentioned the provision of a checkbox to allow the user to choose on import which behaviour was desired. I am all for that, but it is not currently available.

This bug was marked as "fixed" in #926, but it appears not to be.

Actual behaviour

Invitations are sent out for all future events on import of a calendar from another CalDAV server.

Calendar app version

3.4.2

CalDAV-clients used

Thunderbird (to export calendar), Nextcloud Web client

Browser

N/A

Client operating system

docker container

Server operating system

No response

Web server

No response

Database engine version

No response

PHP engine version

No response

Nextcloud version

23.0.3

Updated from an older installed version or fresh install

No response

List of activated apps

No response

Nextcloud configuration

No response

Web server error log

No response

Log file

No response

Browser log

No response

Additional info

No response

miaulalala commented 2 years ago

2. New invitations should always be sent out because after import the new calendar has a different URL and invitees should be made aware of that

I don't understand 2. Sending another invite will just confuse invitees. Invitees are not interested in the organiser's calendar URL. The bug mentioned the provision of a checkbox to allow the user to choose on import which behaviour was desired. I am all for that, but it is not currently available.

Well if an attendee changes their mind and declines the event later, the organiser would not get an update for the attendee's status. It's a drawback of not sending invitiations.

I think we should not send invitation duplicates.

I might want to import an event to more than one calendar because of <reasons> - but to keep track of the scheduling information of an event, the original calendar should be used. if that isn't available any more, there is no mechanism to migrate a scheduling event to a different calendar automatically.

From a dev perspective, this will mean skipping the whole scheduling plugin shebang on import.

azrek commented 2 years ago

Well if an attendee changes their mind and declines the event later, the organiser would not get an update for the attendee's status. It's a drawback of not sending invitiations.

Hi @miaulalala - Thank you for your quick response. I think the option (i.e. check box) to resend/not resend is a good suggestion. Users will have different scenarios/situations. It takes the responsibility and decision making out of the devs' hands and puts it in the users' hands.

Thank you for the great work your team is doing.

Thank you. Ghada

chasharpur commented 2 years ago

The problem with resending invitations on import is that if you are migrating to Nextcloud calendar as we are and you have anything like a medium size organisation this will generate an avalanche of mostly useless emails that confuse staff. In the case of single events resending the invitation doesn't make a lot of sense: most people who have already accepted don't cancel and even if they do it would become obvious when they don't turn up. For recurring events I agree that probably you want to resend invitations. Otherwise people might cancel even years later an individual occurrence of a recurring event but it wouldn't work because the server has changed. So I think an option presented to the user on import of a single calendar, which distinguishes these two cases would be the best solution, and which would allow the importer to decide whether to resend invitations for future recurring or single events, or both. If that is too complex to implement then a simple yes/no checkbox to send invites for all future events would suffice.

BronL commented 2 years ago

I'd also like to thank you for your contribution @miaulalala

I'm hopeful the check box option will be implemented. My particular use case is having multiple recurring meetings with clients, where the same attendees are at more than one of these meetings. These meetings can have 10-15 attendees. Internal staff can be told to expect this behaviour, but I don't relish the idea of alerting 20 or 30 clients that this is going to happen, and they should ignore.

I think the same argument applies to recurring meetings as to single ones in the case where someone declines in future. They simply won't be at the meeting if the decline message has gone to the wrong URL.

I also think that it's become not particularly important for the organiser to know that someone has declined - in my experience, people accept, decline or don't respond at all, and they show up or they don't.

Thanks again.

paramazo commented 1 year ago

We also would like to migrate our existent calenders to Nextcloud, but want to prevent from invitation mails.

Would be great to get a checkbox or something similar.

Much better would be some recommendation to handle this on server side. Are any import tools available to import calenders for mulitple/all users?

miaulalala commented 1 month ago

https://github.com/nextcloud/server/issues/48528 will help with this. We could make it an option on the import to add this property to the generated ICS.