nextcloud / calendar

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

Can't add myself to a shared event #2659

Open ImaCrea opened 3 years ago

ImaCrea commented 3 years ago
### Steps to reproduce 1. Click on details panel of an event visible in my calendar interface. I don't own this calendar. It's visible because its owner has shared this calendar with me. 2. Try to add myself as an attendee ### Expected behaviour - I should be able to see myself in the autocomplete - By clicking on my profile, I should be added as an attendee to the event - A notification should be sent to other attendees to let them know I'll participate - The event should be added to my own calendar as it happens when I accept an invitation ### Actual behaviour - I can't see myself in the autocomplete hence I can't add myself. ### Calendar app **Calendar app version:** (see apps admin page, e.g. 2.0.1) 2.0.4 **CalDAV-clients used:** (Thunderbird Lightning, DAVx5, Evolution, macOS Calendar, etc) Using directly the Nextcloud web interface. ### Client configuration **Browser:** (e.g. Firefox 48) Firefox 81.0.2 **Operating system:** (e.g. Arch Linux) Mac 10.14.5 ### Server configuration **Operating system**: (e.g. Debian 8) don't know **Web server:** (e.g. Apache, Nginx,...) don't know **Database:** (e.g. MariaDB, SQLite or PostgreSQL) don't know **PHP version:** (e.g. 7.0.3) don't know **Nextcloud Version:** (see admin page, e.g. 17.0.2) Nextcloud 18.0.9 **Updated from an older installed version or fresh install:** don't know **List of activated apps:** ``` -- Accessibility 1.4.0 - Activity 2.11.0 - Appointments 1.7.9 - AppOrder 0.9.0 - Calendar 2.0.4 - Collaborative tags 1.8.0 - Comments 1.8.0 - Contacts 3.4.0 - Deck 1.1.2 - Deleted files 1.8.0 - External sites 3.5.0 - Federation 1.8.0 - File sharing 1.10.1 - Forms 2.0.4 - Group folders 6.0.8 - Impersonate 1.5.2 - Log Reader 2.3.0 - Mail 1.4.1 - Nextcloud announcements 1.7.0 - Notifications 2.6.0 - ONLYOFFICE 6.0.2 - Passman 2.3.6 - Password policy 1.8.0 - Photos 1.0.0 - Privacy 1.2.0 - Recommendations 0.6.0 - Right click 0.15.2 - Share by mail 1.8.0 - SSO & SAML authentication 3.1.3 - Text 2.0.0 - Theming 1.9.0 - Usage survey 1.6.0 - Versions 1.11.0 - Video player 1.7.0 ```
skjnldsv commented 3 years ago

(From https://github.com/nextcloud/calendar/issues/2690)

Because the calendar is always stating you're already invited, you cannot invite yourself on events that you don't own. That makes it complicated if you have for example two calendars (one shared and one personal) but you are only syncing the personal to your phone, i'd like to receive the event on my own calendar.

https://github.com/nextcloud/calendar/blob/aaa064a9947748936029200e257c645853c466a7/src/components/Editor/Invitees/InviteesList.vue#L152

ImaCrea commented 3 years ago

Glad to know this is going to be fixed :)

alexanderdd commented 3 years ago

I want to share a user story: Small school. We have a shared calendar of everything that goes on, a lot of recurring events (lessons and other stuff). It's ok on a big screen, but too much for a smartphone screen, even in day view. What we need: A way so teachers and students can link events from the shared calendar to their personal calendars, so they have a less cluttered view of their week. Being invited to an event would be great because if time/title/description changes, it also changes in everyones personal calendar! Also if an event status is changed to "cancelled", it will show up as cancelled in all personal calendars. That would super helpful for us! But: Only the owner can invite people. Students and teachers cannot invite themselves or others.

Solution 1: @georgehrke writes in https://github.com/nextcloud/calendar/issues/2145

Invitations can only be send for your own calendars (or calendars that you are a delegate for).

It sounds like this is not going to change. (?) So for our situation, we should at least make teachers delegates of the main shared calendar so they can invite themselves and students? How can you delegate? {edit: does not seem to be possible yet https://github.com/nextcloud/calendar/issues/2159}

Solution 2:

What do you think, solution 1 or 2?

@tcitworld and @georgehrke for calendar overview opinion and @jancborchardt for UX opinion

Also related: https://github.com/nextcloud/calendar/issues/2705 (ability to create an event in multiple calendars, if the event changes it updates in all those calendars too)

alexanderdd commented 3 years ago

@skjnldsv what do you think, solution 1 or 2?

Spartachetto commented 3 years ago

@alexanderdd I do not think it is fair to describe this as a bug : in most organisations it would be really undesirable that everyone can self invite to a shared event/calendar. This does not mean that the scenario you describe is to reject. Yet I find not easy to imagine a solution.

The possibility to self invite to shared events by default is, in my opinion, the wrong choice. I thought to the possibility of using resources but this is not how they work: if you book a resource it becomes unavailable for other users. I can only imagine an option that, if selected, allows the users to self invite to the event, or to all the events in a calendar... No idea if @skjnldsv agrees an if he finds this last option technically feasible.

ImaCrea commented 3 years ago

I join solution 2 here.

This because I believe the way many users see a shared calendar is as a collection of events. Many times it's the schedule of a classroom, or one of a team in a company, etc... Not necessary events you're gonna participate but more things one follows in order to stay in the loop.

In that case, UX is already almost done there. It's called "participants". So yes, I'd find natural to add myself to an event if I want to not forget to be there. As a result, the event should appear in my personal calendar so I can focus on what I'm gonna attend. It adds all the benefits @alexanderdd explained but also it lets others know who's gonna be there at the event. And that also adds value for every other users who can access the shared calendar.

Hope it helps :)

quentinDupont commented 3 years ago

Hello !

I think i have similar needs that i will try to expose here.

In my workplace, we have 3 meetings rooms. We've created 3 different calendars for each meeting room. When we want to book the meeting room "Room1" for an event we want to :

Unfortunately, we can't invite ourself or having the event in two calendars (Room1 and Personnal). So how can we do ?

For the moment, we have to create manually two events :confused: one in Personnal (and invite other participants) and one in Room1.

(I will copy my message in #2705 )

alexanderdd commented 3 years ago

@alexanderdd I do not think it is fair to describe this as a bug : in most organisations it would be really undesirable that everyone can self invite to a shared event/calendar.

In a shared calendar, I can change and even delete (!) events. So why should I not be able to invite myself? (maybe you'd want to limit who can invite other people though)

This does not mean that the scenario you describe is to reject. Yet I find not easy to imagine a solution.

The solution in the GUI is simple: in participants tab of an event, make it possible to select yourself. I think it is hard on the programming side because, as @georgehrke said "Invitations can only be send for your own calendars (or calendars that you are a delegate for)."

Can someone with technical knowledge tell us what would be the best way to implement the possibility to self-invite to all events?

Spartachetto commented 3 years ago

Sorry for the late comment, but @quentinDupont this is not how resources should work.... Resources are resources because they are different than people... So, if everything is configured correctly, in your scenario the procedure should work like this

ChristophWurst commented 3 years ago

@Spartachetto indeed this is how resource booking works. You don't add events to the resource's room. You add the resource to your own events just like participants. The only difference between resources (rooms) and participants is that the system will schedule (accept/decline) added resources immediately, while attendees have to respond to their invitation manually.

quentinDupont commented 3 years ago

Sorry for the late comment, but @quentinDupont this is not how resources should work.... Resources are resources because they are different than people... So, if everything is configured correctly, in your scenario the procedure should work like this

* create an event in your calendar

* invite "Room1" and other participants

* see the event in your calendar

* everyone can see that "Room1" is booked in that slot (and see by whom and for what according to the visibility of the event)

I like your proposal but I have a question to be clear : in your procedure, "Room1" is a user ? If so, this is not intuitive at the beginning (admin has to create one user per room), and also.. how the event is accepted in the room, because no one is going to connect as "Room1" to accept the event.

Thanks for your help

ChristophWurst commented 3 years ago

Before this tickets is branched off into a support conversation, let's head over to https://help.nextcloud.com/c/apps/calendar/42 with anything that is a question.

Rooms are understood by Nextcloud and the Calendar app, also connected clients like Thunderbird. You need a rooms back-end like https://github.com/nextcloud/calendar_resource_management. No users are created for the resources. They are used directly. And the system schedules them. No manual interaction required.

Konzertheld commented 2 years ago

I stumbled upon this issue and want to add something: When I create an event on a shared calendar myself, I am the organizer.

a) If I am the only person in that event, I do not appear in the list of participants. b) The event does not show up in my personal calendar. c) Once I invite someone, I see myself as the organizer with the state "invitation accepted" which is not really true because I was never invited by myself, which is probably also why the event does not appear in my personal calendar.

I do not want to create all my events in my personal calendar because sometimes I am the organizer of a group event that everyone should be able to see hence belongs in the group calendar. I still want it in my personal calendar because only then can I see it on my other devices, linked calendars etc where I do not want to see the group calendar.

For the problem discussed here originally, I would like to be able to invite people (including myself) whenever I am able to edit the calendar. That seems like the simplest solution to me.

ChristophWurst commented 2 years ago

@Konzertheld see https://github.com/nextcloud/server/issues/26668. We'll possibly have to redo the sharing part of Nextcloud's calendars for this to worker better.