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