EWS calls for dealing with people

One area of development has to do with finding and dealing with information about people. EWS provides calls in different areas to cover this area well. Below I've assembled links and some information to help with development in this area. I'm keeping the content lean and its intent is to show you areas to look into when researching for your application.

Primer:

People and contacts in EWS in Exchange
/en-us/exchange/client-developer/exchange-web-services/people-and-contacts-in-ews-in-exchange

Search GAL:

You can search the Global Address List (GAL).

FindPeople operation
/en-us/exchange/client-developer/web-service-reference/findpeople-operation

Using the EWS FindPeople operation in Exchange 2013 and Exchange Online (2013)
https://gsexdev.blogspot.com/2013/05/using-ews-findpeople-operation-in.html

Note: FindPeople only works with Exchange 2013 and later.

Resolving names/addresses:

EWS can resolve a person's name or email address to get to verify they are valid and get to their basic mailbox information (such as the SMPT address).

Resolve ambiguous names by using EWS in Exchange 2013
/en-us/exchange/client-developer/exchange-web-services/how-to-resolve-ambiguous-names-by-using-ews-in-exchange-2013

User Availability/Free-Busy:

EWS can get information on the availability (Free-Busy) of a people via the GetUserAvailability method. The data used by the call from the user's calendar. The level of data returned will depend on what is asked for in the call and what is allowed to be shared on the calendar.

Note that as of this time (8/28/2018) that the version of the EWS Managed API and NuGet are not as up to date as the GitHub source for this API. You really should download the source for the EWS Managed API and build the API for your program's usage as many of the fixes which only exist in the GitHub source apply to the GetUserAvailability method. In the past few years, almost every case I've seen where there has been an issue has been resolved with a build from the GitHub source.

Getting user free/busy information by using the EWS Managed API 2.0
/en-us/previous-versions/office/developer/exchange-server-2010/hh532567(v%3Dexchg.80)

GetUserAvailability operation
/en-us/exchange/client-developer/web-service-reference/getuseravailability-operation

EWS Managed API
https://github.com/OfficeDev/ews-managed-api

Contacts:

A contacts folder can be searched for contacts and contact lists:

People and contacts in EWS in Exchange
/en-us/exchange/client-developer/exchange-web-services/people-and-contacts-in-ews-in-exchange

Retrieve Contacts from the Contacts Folder by using the EWS Managed API 2.0
/en-us/previous-versions/office/developer/exchange-server-2010/jj220498%28v%3dexchg.80%29

Users Photos:

EWS can retrieve a user's photo, however you will need PowerShell to set it for Exchange versions prior to 2016. Remote PowerShell calls cane used to call Set-UserPhoto to set it for prior versions.

Get user photos by using EWS in Exchange
/en-us/exchange/client-developer/exchange-web-services/how-to-get-user-photos-by-using-ews-in-exchange

Calling Exchange Management Shell Cmdlets from Managed Code
https://docs.microsoft.com/en-us/previous-versions/office/developer/exchange-server-2010/ff326159(v=exchg.140)#code-snippet-1

3.1.4.8 SetUserPhoto
https://msdn.microsoft.com/en-us/library/mt552422(v=exchg.80).aspx

Set-UserPhoto via EWS
https://social.msdn.microsoft.com/Forums/office/en-US/2e567ebe-c688-4d06-ae16-58f84f5f8ef0/setuserphoto-via-ews?forum=exchangesvrdevelopment

Contact Photos:

EWS can read and set pictures on contacts:

Get user photos by using EWS in Exchange
/en-us/exchange/client-developer/exchange-web-services/how-to-get-user-photos-by-using-ews-in-exchange

Retrieve Contacts from the Contacts Folder by using the EWS Managed API 2.0
/en-us/previous-versions/office/developer/exchange-server-2010/jj220498(v%3Dexchg.80)

Using Contact photo's in EWS in Exchange 2010
https://gsexdev.blogspot.com/2009/12/using-contact-photo-in-ews-in-exchange.html

Meeting Rooms:

EWS can get a list of defined meeting rooms and use that list in secondary operations to get information on meeting rooms.

GetRooms operation
/en-us/exchange/client-developer/web-service-reference/getrooms-operation

Working with rooms in the EWS Managed API 2.0
/en-us/previous-versions/office/developer/exchange-server-2010/hh532568(v%3dexchg.80)

Get room lists by using EWS in Exchange
/en-us/exchange/client-developer/exchange-web-services/how-to-get-room-lists-by-using-ews-in-exchange

Getting a room by using the EWS Managed API 2.0
/en-us/previous-versions/office/developer/exchange-server-2010/hh532566(v%3Dexchg.80)

Related:

Create and manage room mailboxes
/en-us/exchange/recipients/room-mailboxes
Note: Be sure to read the "Important" notes in this article.

Get a Room! Enable Room Finder with Room List Distribution Groups
https://blogs.technet.microsoft.com/educloud/2011/11/06/get-a-room-enable-room-finder-with-room-list-distribution-groups

Distribution Groups:

EWS can break-down distribution groups. To configure distribution groups, you need to use Exchange PowerShell.

Distribution groups and EWS in Exchange
/en-us/exchange/client-developer/web-service-reference/getrooms-operation

Get endpoint connectivity information with GetUserSettings:

EWS can retrieve connectivity information for a user by pulling it from the AutoDiscover service. The data available covers the endpoints and configuration data which applies to many protocols – not just EWS.

Get user settings from Exchange by using Autodiscover
/en-us/exchange/client-developer/exchange-web-services/how-to-get-user-settings-from-exchange-by-using-autodiscover