Outlook / Exchange API (Microsoft Graph?) - outlook

I am making a quick program that can check another users Outlook calendar and book an appointment. The booking part is fine, but I am looking at a way to return other users calendar information, without having to link a calendar to Outlook first.
I was thinking that there would be an API or a way to access this information either via 365 or the exchange server. There is this (https://learn.microsoft.com/en-us/previous-versions/office/office-365-api/?redirectedfrom=MSDN#Getevents) but it doesn't seem to do what I am after and is also deprecated with an end date within a year
I have read about Microsoft Graph but in reading it refers to 'users calendar', can this do calendars for a specific user that isn't me?
GET /me/calendar/calendarView?startDateTime={start_datetime}&endDateTime={end_datetime}
If so, does anyone know how?
Thank you

You can access user's calendar by calling the following endpoint
GET /users/{id | userPrincipalName}/calendarView?startDateTime={start_datetime}&endDateTime={end_datetime}
Resource:
List calendarView

Related

Power Automate - get categories

I'm new to Power Automate and trying to get the "Category" flag that is placed on emails after received. My number one problem is finding a connection that has the category object available.
These are the objects I'm trying to find, in Outlook web they are 'category labels'
In web searches I'm getting contradictory information, one they can't be found: Link
Another says if you connect to Outlook365 you'll have 'Categories' Link, these may only be associated with calendar entries.
The Connections I've been able to make are to Shared Mailboxes, I'm now experimenting with my personal work mailbox (Outlook 365) and not finding it there either.
Any help would be greatly appreciated.
You can use the List Outlook categories Graph API method for this. Use the below Uri in a Send an HTTP request Outlook Office 365 connector action.
https://graph.microsoft.com/v1.0/me/outlook/masterCategories

How do I get the memberships (distribution groups) of an Outlook contact programmatically?

Using office Outlook, we can find the 'Memberships' tab when we click and expand a contact, this 'Memberships' tab shows the list of emails that the user is subscribed to.
For example, Employee X (x.x#zcompany.com / id123#zcompany.com) under the Data Department of Z Company is subscribed to the following distribution groups:
datateam#zcompany.com
allemployeees#zcompany.com
dataweekly#zcompany.com
it.uk#zcompany.com
znewsletter#zcompany.com
I would like to get the list of emails the user is subscribed to by inputting either the user's email or user's organization ID.
I found a few potential solutions but do not know exactly how to implement them:
Outlook Interop GetMemberOfList() and GetExchangeDistributionList()
Using Microsoft Graph API
VBA automation for Outlook
Reverse engineering using ExchangePowershell
Using RPA to imitate user actions on Outlook
Wonder if someone with experience doing this can provide some advice? Thanks in advance.
In OOM, call Application.Session.CreateRecipient, Recipient.Resolve, Recipient.AddressEntry.GetExchangeUser(). ExchangeUser exposes GetMemberOfList() method, which returns IAddressEntries object.

How to get contact's "FreeBusyStatus" in Microsoft Outlook using REST Api?

See above mentioned image, it gives different status but don't know how to get it.
Check Outlook API.
Thanks in advance :-)
You can use GET https://outlook.office.com/api/v2.0/me/events/{event_id}?$select=ShowAs to retrieve the FreeBusyStatus of attendee(yourself) for a particular meeting, the return type is something like below,
If you want to check the response from a particular attendee, use GET https://outlook.office.com/api/v2.0/me/events/{event_id}?$select=ShowAs,Attendees, and check on the "Response" from the "Status" response.
This enumeration is used for 'Specifies the availability status of an attendee for a meeting.' At present, the Office 365 REST API is not able to retrieve the contacts' meetings status. And you can submit the feedback from here if you want to the Office 365 REST to support this feature.
We are able to add other’s users’ calendar manually, then we could see the status of the appoint/meet of him/her. Here is an figure that show the others calendar for your reference:
If you want to retrieve the free/busy information of EWS is a possible workaround. Please refer to here for more detail. And if you require these information to schedule a meeting, you can try to use the Find meeting times (preview).

How get user contacts list from EWS

I'm developing web application which is similar to address-book,
now I want to create a page with list of user contacts. I already have user email and show out_of_office badge using GetUserOOFSettrings API method.
Does the API for getting user's (favorite) contacts list exists?
E.g. to get MS Lync contacts which user have, or outlook contacts...
Does some better way for implementation of current feature exists?
Thanks
Have a look at https://msdn.microsoft.com/EN-US/library/office/jj190895(v=exchg.150).aspx. Contacts are just items in the user's mailbox. You might also download EWSEditor to poke around and see what's available.

Outlook item to webDAV location

I have a web application which has a calendar, and I want to allow that calendar to be sync'd with an Exchange server.
I've written code to create appointments on an Exchange server directly in a user's calendar using webDAV. I save the appointment locations (URLs) so I can update the appointments in outlook if something changes in my application.
I'm trying to write an add-in for Outlook that lets a user send their appointment to my web application. In order to save it though (and allow updates in my application to propagate back to Exchange) I need to figure out what the appointment location (URL) is in WebDAV.
Is there any way to get the WebDAV URL of the appointment from within Outlook? I'm using VSTO for my outlook add-in.
Thanks for the help guys!
This question helped considerably:
How to use WebDav to match dav:href to Outolook Interop href value
And this website was interesting too:
http://www.infinitec.de/post/2007/03/Constructing-OWA-2007-item-ids-from-WebDAV-items.aspx

Resources