calendar icon indicating copy to clipboard operation
calendar copied to clipboard

Share a whole calendar with "See only free/busy (hide details)" option

Open Jerome-Herbinet opened this issue 1 year ago • 16 comments

Is your feature request related to a problem? Please describe.

Being 100% telework, and telework allowing a certain flexibility with private life, I sometimes have personal constraints (appointments, travel, etc.). During these time slots, I would like people to know that I am not available, but how can I do it? Share my personal calendar and mark each event whose details I do not want to be visible? No, it's too tedious. Duplicate personal events to my professional calendar and indicate "not there" or "busy". I do it, but it's tedious, especially since sometimes I forget to do it.

Describe the solution you'd like

Currently, unless I missed a feature, if I want an event to be visible to another person without displaying its details, I have to specify it event by event (event visibility option), but this cannot be done by default retroactively and for any new event (directly applied to the entire calendar, in the sharing option).

Many years ago (maybe 10), when I was still using "Google Calendar" (sorry to say that, it's blasphemy), I saw that it was possible to share a calendar with another account by specifying "See only free/busy (hide details)".

This is IMO very useful — for example — for associates who share their professional calendar and their personal calendar. The professional calendar remains fully visible (all details), while the personal calendar simply indicates occupied time slots with a free or busy information. This avoids collisions when making appointments and allows the respect of the privacy of others.

Describe alternatives you've considered

No response

Additional context

No response

Jerome-Herbinet avatar Aug 08 '24 09:08 Jerome-Herbinet

@nextcloud/designers

Jerome-Herbinet avatar Aug 08 '24 09:08 Jerome-Herbinet

The property for CalDAV exists: https://datatracker.ietf.org/doc/html/rfc4791#section-6.1.1

CALDAV:read-free-busy Privilege

Calendar users often wish to allow other users to see their busy time information, without viewing the other details of the calendar components (e.g., location, summary, attendees). This allows a significant amount of privacy while still allowing other users to schedule meetings at times when the user is likely to be free.

So this should be feasible. We could add it in the calendar modal just like we did for https://github.com/nextcloud/calendar/pull/6169

Suggestion:

image

miaulalala avatar Aug 13 '24 17:08 miaulalala

The property for CalDAV exists: https://datatracker.ietf.org/doc/html/rfc4791#section-6.1.1

CALDAV:read-free-busy Privilege Calendar users often wish to allow other users to see their busy time information, without viewing the other details of the calendar components (e.g., location, summary, attendees). This allows a significant amount of privacy while still allowing other users to schedule meetings at times when the user is likely to be free.

So this should be feasible. We could add it in the calendar modal just like we did for #6169

Suggestion:

image

Nice !

Jerome-Herbinet avatar Aug 14 '24 07:08 Jerome-Herbinet

Agree @miaulalala’s suggestion is nice! :) Only 1 adjustment, the wording should be "Don’t show event details to others", as we want to remove the wording "users".

jancborchardt avatar Aug 21 '24 09:08 jancborchardt

@jancborchardt may we add the "to develop" tag ?

Jerome-Herbinet avatar Aug 21 '24 10:08 Jerome-Herbinet

Attempting to understand here, as I'm looking for more or less the same feature. As I understand Nextcloud Calendar and your use case, your colleagues could use the 'find a time' feature when inviting you to events. If you have a personal calendar (that you're the owner of) and put events in there, you're automatically marked as busy during those hours. When people then try to book a meeting with you and they click the 'find a time' button, they can see the availability of everyone who's invited to this meeting.

If colleagues still use Google or whatever for their personal calendar, they can import that calendar read-only into Nextcloud (the full version, not even the free/busy version) and that will mark them busy/free for the Find A Time feature. Screenshot from 2024-08-26 11-08-37

rikvrede avatar Aug 26 '24 09:08 rikvrede

image

I think it would be more flexible to have this as an option on the sharing link. This way I can create different sharing links for use-cases I want to share details of my calendar and for cases I only want to provide free/busy information to external users.

I have the use case that I working in multiple businesses and need to keep my availability up-to-date within each business. But I don't want to share calendar details between the businesses.

jolentes avatar Oct 22 '24 08:10 jolentes

I'd also like to have an option on the share link to select the "maximum information" shared. It would "dynamically" set the visibility to the minimum of the event and the share option. (a hidden event would stay hidden, a busy only would always only be shown as busy only but a normal event changes depending on the selected option.)

Like replace the checkbox "can edit" with an drop down menu:

  • Full Access
  • View only
  • Busy only

Personally I'd like an additional option "Titel only" where the title is visible but not the details but that would probably too much additional logic since it is something currently not existing.

doppelgrau avatar Jan 30 '25 11:01 doppelgrau

Hi @miaulalala @jancborchardt, any news ?

Jerome-Herbinet avatar Mar 26 '25 13:03 Jerome-Herbinet

I have a similar use case. Perhaps if I explain it, it will be easier for others to understand why granularity is useful here.

I have private calendars on my Nextcloud and I have work calendars on Google.

To make sure I don’t set a private event when I have a work meeting (and vice versa), I have already imported into my private Nextcloud the WebCal (https://*.ics) link of my work Google calendar, that only shows the events as ā€œbusyā€.

But it would be great to do the same the other way around too!

What I would use a ā€œbusy onlyā€ private Nextcloud calendar for is:

  • import it into my work Google Calendar, so I can avoid setting up work meetings when I’ve got private plans already
  • send the link to my coworkers (esp. boss), so they know when I’m busy outside of work too

On the other hand, I would still like to be able to share my private Nextcloud calendar with my family – details and all.

silverhook avatar Jun 06 '25 17:06 silverhook

Just out of curiosity (as I think sharing to yourself does not really require this feature):

If both calendars are "yours" why do you share them to yourself in "busy only" view? Restrictions from your employer or personal preference? You could just embed the work calendar in Nextcloud (or other way round) and edit/add everything from one interface. Just asking because personally I prefer to use a client (Thunderbird/aCalender/Evolution/... whatever you prefer) and embed all calendars into it. Therefore I do not have to switch between providers/interfaces which all have different ways of interacting.

To me the feature of sharing a calendar with different permissions only makes sense when sharing my calendars to others šŸ˜… Never thought I would want to hide anything from myself...

q-wertz avatar Jun 10 '25 07:06 q-wertz

@q-wertz , in general I understand your logic and that is what I currently do on the work computer, but there’s a few reasons:

  • I work remotely, so my schedule is flexible – for good and bad – when I’m not on my work computer I really don’t want to be reminded of things that I need to be working on. A simple ā€œbusyā€ with the work colour is more then enough.
  • in theory, at work we should keep as little as possible on our actual devices, so in theory the preferred way would be to import my private calendar into Google Calendar – and I don’t want Google to have access to my private calendar
  • on all our work devices we have ā€œadvanced antivirusā€ / ā€œAI-powered monitoringā€ set up for security reasons, so I don’t feel super private there either

silverhook avatar Jun 10 '25 14:06 silverhook

@silverhook ah thanks :) Totally understand your reasons :)

q-wertz avatar Jun 10 '25 15:06 q-wertz

Just wanted to bump this, would be a really great enhancement for 'blocker-view' without having to use the scheduling tool (as this is not really used at my workplace anyways..)! Don't know the exact pipeline/process how this might be implemented/escalated, but I could also imagine participating in that if that would help

MiragonMx avatar Oct 08 '25 14:10 MiragonMx

I've thrown together a PR - not sure, if this covers all necessary functionality, but I thought this might be a starting point! Happy to get ideas/comments/whatever comes to mind! :)

MiragonMx avatar Oct 09 '25 12:10 MiragonMx

I've thrown together a PR - not sure, if this covers all necessary functionality, but I thought this might be a starting point! Happy to get ideas/comments/whatever comes to mind! :)

Sadly, my try at fixing this did not go far - mainly since the referenced CalDAV property (https://github.com/nextcloud/calendar/issues/6247#issuecomment-2286749376) does not seem to do what I/we hoped it could do for fixing the problem discussed in this issue. The PR might implement this different setting at some point, but isn't an option for this issue.

https://github.com/nextcloud/calendar/pull/7556#issuecomment-3441801148

I'll try to give this another shot at some point, that might include a custom new property in the calendar object, iterating over all events in the calendar and setting the (existing) toggle for each individual event programatically and check for the calendar-wide property at event-generation-time to set this toggle by default for such a calendar, but I don't know how easy/feasible that will be (maybe @SebastianKrupinski can give insight on this). If anyone else feels more at-home in the codebase (or with vue/webdev in general ^^), feel free to take over, of course, I can't say/guarantee, if/when I'll get to that..

Sorry for getting your hopes up, I guess I underestimated the issue :/

MiragonMx avatar Oct 24 '25 08:10 MiragonMx