Microsoft Graph - Adding recurring event with exceptions - microsoft-graph-api

How can I add a recurring event with exceptions using the Microsoft Graph API?
Is this possible in Microsoft Graph at all?
Edit:
For instance, I want to create an event that will take place every Monday, starting 07/05/2021, but that will not occur on 07/12/2021.
I already know how to create the recurring event, but I don't know how to create it with this exception.

You first need to find the correct Event Instance you want to change.
/events/{id}/instances?startDateTime={dateTime}&endDateTime={dateTime}
This will return a list of instances within the specified date range. You then parse the list for the specific instance you want to obtain its unique id and delete it like any normal event.

Related

How to move event to another calendar in one account?

I'm integrating Outlook calendar to my app and I want my user can change their events from this calendar to another calendar (like changing from Calendar to calendar2 in the origin Outlook calendar).
But I can't find any endpoint to do this, even the UpdateEvent endpoint in their docs doesn't support this.
So how can I change event's calendar using MS graph API ? Right now the only way I'm thinking of is delete the old event in Calendar and create new event in calendar2 which is not 100% reliable because sometimes the delete or create request can failed
)
Currently the is no way to move an event to another calendar. You can add a feature request here so that the engineering team may implement it in future.
So far as you said the only way may be delete then create but also keep in mind that the create should add all the existing properties/data like extensions when creating in the new calendar.

Trying to get analytics on Microsoft teams calls

I am trying to put together analytics on Microsoft teams calls. I would like to get hold times, number of transfers, call time, etc. I came across this call https://graph.microsoft.com/beta/communications/callRecords and it gives me a list of calls with call times, but I can't find a way to get hold times, what line it came in on, etc. Greatly appreciate any pointers.
First of all, this end point https://graph.microsoft.com/beta/communications/callRecords only allows you to query a single call record using its ID, it does not support querying a list of call records for the whole tenant or for a specific user.
The only way currently to find this ID to query the call record is by setting up a web hook to receive change notifications. Refer to the following documentation for more info on change notifications.
To directly address your question, i am not one hundred percent sure but i believe the information you're looking for could be found inside the list of sessions and segments inside a call record.

Get Change type in delta Events in Microsoft Graph Api

I am migrating from EWS to Microsoft graph and having problem in replacing flow "ExchangeService.syncFolderItems".
ChangeCollection<ItemChange> changedItems = exchangeService.syncFolderItems(calendarFolder.getId(),
FirstClassProperties, null, 512, NormalItems, syncState);
This gives me all the changes since last sync state with change type.
Now I need to replace this with Microsoft graph.
I saw Get delta api in Microsoft graph and also how to call it recursively using stale token. My query is, Get delta api is not returning the change Item type. Could someone suggest me the best way to implement this in Microsoft graph? Maybe the Apis that I need to use for this?
Note:This flow will be called by my service to get changes after fixed interval of time. Also I saw subscriptions ( https://learn.microsoft.com/en-us/graph/api/resources/subscription?view=graph-rest-1.0 )but not sure that could be used in my case as my service will be making a call to get changes for a meeting room after a fixed scheduled interval of time.
I am stuck here. Please help. Thanks in advance.
Deleted events will have a #removed property and only provide the id of the object as denoted here https://learn.microsoft.com/en-us/graph/delta-query-overview#resource-representation-in-the-delta-query-response
Updated objects will only include the updated properties and added objects should include all the data available. It's up to the 3rd party application (your app) to maintain a state on it's side to be able to differentiate between updated and created objects when using Delta queries.
Combining webhooks with Delta to trigger the sync instead of relying on a timer is a good approach to provide an end user experience that feels more real time

Graph calendar change notification sent for series master when instance is edited

I have created a subscription to my Outlook calendar. When a specific instance of a recurring event is edited in Outlook, the notification that is sent to my notification url is for the series master event (not the particular instance that was updated).
I am trying to determine if the change was to the series or to a specific instance.
Is there any way to find out from the notification (or the series master) what caused the notification?
When you get the instances for an event (using the Graph API), the exceptions come back first (before the occurrences).
Therefore, if the series master did not change, I check to see if there are any instances where Type == "Exception". If there are, I delete them from outlook so they don't come back the next time I query for the event instances.
NOTE- I am still trying to find a solution to retrieve cancelledOccurrences, those instances of a recurring event that are deleted (or declined) from Outlook and therefore are not returned when querying the Graph API for event instances (https://learn.microsoft.com/en-us/graph/api/event-list-instances?view=graph-rest-1.0&tabs=http).

How to detect a new user in Slack?

I'm using Slack API and want to detect an event when user first joins a team but cannot find such type of event in docs.
What should I look for?
I think team_join might be the event you're looking for? Depending on whether you need to respond immediately (and the consequences of missing an event if your bot is offline), you might also consider just calling users.list periodically and comparing to the list of already-seen users.

Resources