Re: [Evolution] Subscribing to shared EWS non-GAL calendar



On Fri, 2020-05-22 at 12:10 +0100, Pete Biggs wrote:
Does the subscription process check for the user in the GAL before
subscribing? Can I tell it not to?

        Hi,
evolution-ews searches for the contact, to verify it exists. The only
way to not let it do it is to pick the user from the search dialog, but
that also shows users only from the Active Directory, thus it's a no
go.

It would be possible to workaround this by adding a foreign folder for
a different user, then modify its definition to point to the folder of
the user not being in the GAL.

Edit the attached getfolder.xml and write a full email address instead
of its current user comany com. Then run this command, from a folder
where this file is saved (replace USER:PASS with your credentials):

   $ curl -v -k --user USER:PASS -X POST -d @getfolder.xml \
        https://outlook.office365.com/EWS/Exchange.asmx \
        --header 'Content-Type: text/xml; charset=utf-8'

which, if everything will work properly, will return something like
this (heavily stripped here):

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/";>
  ....
            <t:CalendarFolder>
              <t:FolderId Id="AAMkAD.....NAAA=" ChangeKey="....."/>
              <t:ParentFolderId Id="AAMkAD.....IAAA=" ChangeKey="...."/>
              <t:FolderClass>IPF.Appointment</t:FolderClass>
              <t:DisplayName>Calendar</t:DisplayName>
              <t:TotalCount>2</t:TotalCount>
              <t:ChildFolderCount>1</t:ChildFolderCount>
            </t:CalendarFolder>
  ....
</s:Envelope>

from which you want the FolderId only, the part of the Id="xxxx"
(without the quotes).

Then search the ~/.cache/evolution/sources/ for the .source file, which
contains the information about the folder for the other user you
subscribed to earlier. Maybe search with part of the display name you
see in Evolution UI, ow with anything unique; eventually search for
"Foreign=true" (quotes for clarity only), which should limit the list
of sources a bit. When you have it, then at the top it'll look like
this:

   [Data Source]
   DisplayName=User — Calendar
   Enabled=true
   Parent=......

where you might want to change the DisplayName value to reflect what
the calendar shows. This is used in the GUI. Then search for:

   [Exchange Web Services Folder]
   ChangeKey=
   Id=....
   Foreign=true
   ....

where you'll replace the Id value with the one the curl command
returned. In this case it would be:

   Id=AAMkAD.....NAAA=

When you finally save the .source file run:

   $ evolution --force-shutdown

which will restart also background processes, thus they know about the
changes. Then you might see the other calendar.
        Bye,
        Milan

Attachment: getfolder.xml
Description: XML document



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]