GNOME Bugzilla – Bug 782826
Allow adding Free/Busy as a foreign Calendar
Last modified: 2019-03-27 14:36:12 UTC
Moving this to a separate bug report from bug #760220 comment #9: There might be a way to "subscribe to other user calendar" even without read privilege, by accessing at least the free/busy information. From the above bug report: I've the same Setup as Vincent has (Exchange and Evolution with EWS-Plugin). I'm only able to open a shared calendar, if I got the full read rights (read all details) on the other calendar. In Outlook, am able to "reduce" the calendar permissions to "Free/Busy Time, Subject, Location" or even "Free/Busy Time". We tried this with a colleague of me. In both cases, I'm able to open the Calendar in Outlook, but I wasn't able to open it in Evolution. He had to give me the right to read all details of his calendar. After he did this, I was able to open it in Evolution. The Use Case behind this scenario is, that somebody calls me an ask me if I know where a team member is. So I can open his shared calendar an see the Subject and Time of his meeting. For example "Meeting in Berlin, Today and Tomorrow", so I know he is out of office this day. But I can't read all the details (eg. Agenda, Participants, Attachments) of this Appointment.
I'm not much keen to this, but there seem to be some demand for it, thus I'm opening this bug report. The main difference is that the Free/Busy information is always gathered for a time period, while the whole calendar works in a way of loading the calendar content locally and then show it to the user. I'm not willing to ask an Exchange server for a whole calendar this way (with a large-enough time interval), neither I want to do live searches for each view (not talking that some searches can be done without time constraint), thus I'd need to have some compromise to achieve the needed. My proposal is: a) add a new item into <right-click EWS mail account>->Subscribe to folder of other user->Folder name, named "Free/Busy as Calendar". I understand that Outlook hides this details to users, but I intentionally do not want to. b) having this selected the calendar properties will have two new options: Limit availability search to be between: [ NNN ] weeks before today and [ MMM ] weeks after today with the default value of 1 before and 5 after (thus 6 weeks lookup). The limit for "before" would be 0..5, the limit for "after" would be "1..54". This way the responsibility to not do too large lookups is transferred to the user. c) everything else will work the same as before, at least from the outside (for the user), with this calendar being marked as read-only. The test in step a) will also verify that the Free/Busy information is allowed by the other user. Depending on the granularity (Permissions given by the other user) either a detailed information with real Subject and Location will be provided, or simple "Free"/"Tentative"/"Busy"/"Out Of Office" events (those texts in Summary) will be shown in the calendar (I'll skip "NoData" BusyType responses).
Being the creator of the originating bug entry (bug #760220) I would suggest the following: - Not be adding an independant option, make it default a behaviour like Outlook - From my point of view all is needed is to download the free/busy info of the current calendar view and re-fecth when the view is changed. If my view is set for today, just fetch today's free/busy info from selected "external" calendars. If I move the view for tomorrow or full week, just re-fecth the missing info accordingly. Your proposal may be similar and I might just not be understanding it right. Thnx in advance, cheers!
(In reply to Vincent Fortier from comment #2) > - Not be adding an independant option, make it default a behaviour like > Outlook Outlook has surely different internals. It focuses on Exchange servers, while evolution(-data-server) is independent, thus its architecture is different. > - From my point of view all is needed is to download the free/busy info of > the current calendar view and re-fecth when the view is changed. Yes and no. These are different architectures, as noted above, thus I came with the proposal as it is. While you look in the Day View, you actually have opened a month interval (or better as many weeks as the little calendar below list of calendars on the left-bottom side of the window shows). You can add more constraints into the view in the Search bar above. You can search for particular event forth and back from the current day. You can have opened multiple calendar windows, each in a different view... I mean, I did think of it too, of course, but there are some other issues (I'm not going to name them all here, some are on the backend side), which led me to the conclusion outlined in the comment #1. Remember, this is still an overuse of free/busy information, which had not been intended for this purpose (to be shown beside regular events in regular calendar views).
I made it as outlined in comment #1, except of the UI part for the point b), thus there is no such option in Properties of such calendar, though the options to change the default limit from -1..5 is possible by editing corresponding .source file in ~/.cache/evolution/sources/<ews-account>/ the one which contains "freebusy-calendar" (quotes for clarity only). Created commit 338d7dd in ews master (3.25.3+)
One thing I overlooked, there can be added only one Free/Busy calendar at a time, even the other one is for a different user. Trying to add it results in an error message: Cannot add folder, folder already exists as "User1 - Availability" I'm reopening this bug report.
I fixed it by changing the fake folder ID, to include also the email address of the other user. This change invalidates previously subscribed free/busy calendars, which results in an error about malformed ID. Just delete that calendar and re-add it again, which will correct the fake folder ID. Created commit 1ad1e92 in ews master (3.25.92+)
Is this subscribed free/busy information not then percolated into the free/busy information available for a user when trying to create a meeting and clicking on the Schedule tab? It seems it's not. I can see the free/busy information in the calendar view but when I add that person to a meeting request and then click Schedule tab, all time slots for that person are "No information".
It's not. It works like a regular calendar, the only difference is that it takes the information from a location which provides free/busy information, instead of regular events. As long as the user is on the server you should see his/her information, after it is received from the server. Maybe the download (eventually the information generation on the server) takes that long?
So are you saying that I should get free/busy information in the Schedule tab of a Meeting dialog for people on the same Exchange server even without having to add their free/busy calendar to my view? That doesn't seem to be the case. I have tried waiting several minutes for it to be updated and even tried Options->Update free/busy but I still only have "No information" for all attendees.
Yes, as long as the Free/Busy calendar for the same user mail on the same server works. You can check what the EWS does when you run from a terminal: $ EWS_DEBUG=2 /usr/libexec/evolution-calendar-factory -w then run evolution and create a new meeting with the added user (do not save it,. just left it open). Wait until the output on the terminal with the calendar factory stops, then invoke "Update Free/Busy" and see what the calendar factory terminal will have added as the debugging information. Nonetheless, this bug is about something else, I'd prefer if you could open a new bug (in the gitlab instance [1]), and we can investigate it there. Pasting a link to it here is appreciated. [1] https://gitlab.gnome.org/GNOME/evolution-ews/issues/new
NVM. After restarting evolution-calendar-factory it seems to be working now.
(In reply to Brian J. Murrell from comment #11) > After restarting evolution-calendar-factory it seems to be working now. Oh, I dislike such bugs; I mean when they are not reproducible. :-/
I just noticed I can now subscribe to someone else's folder called "Free/Busy as Calendar" and it now works for me! I used to need to go to the schedule section of meetings making this a pain to use. Now I can see multiple people free/busy info helping a lot for meeting planning. Thnx!
Note that a right-click shortcut in the left section of the calendar view to "Subscribe to folder of other EWS user..." would be useful. Also, the name is reallllly long and unavailable in French (should be something similar to "Souscrire au dossier d'un autre utilisateur EWS..."). In MS Outlook it is simply merged under the "Add Calendar" menu and is available using right-click making this much more convenient.
Evolution already has an "Add Calendar" functionality, it's called File->New->Calendar. It would be confusing to use a similar name anywhere else. The right-click is available in the Mail view, above the account name. Maybe it can be added into the similar context menu in the other views too. The translation in respective languages is up to the translators. The fr.po had not been updated for a long time (it received the last update in 2012). Feel free to open a bug for the translations. In any case, none of these three things should be discussed in this bug report. You might want to open new, either a bug or a feature/enhancement request.