How to notify all attendees if a group event deleted? - outlook

When I am deleting an event from group calendar using the following api:
DELETE groups/${groupId}/calendar/events/${eventId}
How can I send updates to reflect this in all attendees' calendar?

Related

Outlook Calendar: Add different calendar of same mailbox to an event

While creating an event in the outlook calendar, I want to add multiple calendars of the same mailbox in the event. I am not able to find any way of doing this.
I am using MS Graph for creating events on the calendar.
Please help me with this. Thanks in advance.
You can use Create event API to create a new event in a calendar. But you need to note that the calendar can be one for a user, or the default calendar of a Microsoft 365 group; it's not for the calendar group - so you can't add multiple calendars. Here's the doc.

Win32 - how to get event when new appointment or meeting is created in Outlook calendar

I am writing a COM based Addin for outlook to get the appointment or meeting list.
I have written a code to get the list of appointments/meetings.
Now I am trying to find out the event when new appointment or meeting is created.
I have tried almost all events of AppointmentItem Object, but didn't get the proper event.
Is there any way to programmatically get the event when user create a appointment or meeting in Outlook calendar?
You can try to use the ItemAdd event of the Items class. This event is fired when one or more items are added to the specified collection. This event does not run when a large number of items are added to the folder at once.
Note, there is no event until the item is saved and the EntryID property is set.

Outlook - Copy group calendar events to user outlook calendar

We have a recurring event setup in Office 365 group calendar. If a new member is added to this group, that member can see the event in "Group" calendar and in order to see this event in main calendar, user have to click on "Copy to My calendar" in group event.
Is there any way to do this via code/script? Basically achieve "Copy to My calendar" for Office 365 group calendar to User's main calendar via code.
I'm not sure when you click "Copy to my calendar" if it has some smart link or if it is just a copy at a point in time.
You could subscribe to the calendar using a webhook. That webhook would call your API hosted somewhere (an Azure Function, a web api hosted on Azure App Service). Your API would recieve the event id, it could then fetch the full details of the event and then create a new event on the users calendar.
I'm assuming that you'd want this to create it on all users calendar and also to update it if there were changes on the source event.
Its complex for sure doing it this way.
https://learn.microsoft.com/en-us/graph/webhooks
https://learn.microsoft.com/en-us/graph/api/resources/event?view=graph-rest-1.0

Exchange EWS ErrorCalendarIsNotOrganizer despite being the organizer

I'm trying to cancel a meeting I created by using an EWS XML CreateItem request (against a 2013 server):
<ns2:CreateItem MessageDisposition="SendAndSaveCopy"><ns2:Items>
<ns1:CancelCalendarItem>
<ns1:ReferenceItemId Id="AAMkA...." ChangeKey="DwAAA..."/>
</ns1:CancelCalendarItem>
</ns2:Items></ns2:CreateItem>
So far so good, however Outlook denies me access with the ResponseCode "ErrorCalendarIsNotOrganizer" / "User must be an organizer for CancelCalendarItem action".
A look in the event detail by using GetItem with BaseShape=ALL_PROPERTIES reveals that the account I use is set as Organizer, however at the same time:
the IsOrganizer field is set to false
in EffectiveRights the fields Read, Modify and Delete are true.
I can delete the appointment lateron using a DeleteItem request and it works, however it only removes the appointment from the room's calendar but not from the mailboxes of the attendees.
What causes this? There is no impersonation in use, only the service account I use has delegation access to every room mailbox (to be able to see all appointments).
I can delete the appointment lateron using a DeleteItem request and it works, however it only removes the appointment from the room's calendar but not from the mailboxes of the attendees.
It sounds like your accessing the appointment in the Room Mailboxes calendar ? this is why even if your using the account that is the organizer of that appointment the isOrganizer will return as false because this property is only true on the copy of the Appointment in the Organizers calendar. To correctly cancel the meeting you need to do that on the calendar of the Organizer (not the rooms or any attendee instance of the meeting). This will still only delete the appointment in the organizer calendar and send cancellation messages to the attendees.
An important point is that all instances of the meeting stored in the Attendees and Meeting Room calendars are separate Exchange Store items with no direct link. So deleting the organizer instance (or any attendee instance) has no affect on the other attendees instances these must be processed separately by the attendees themselves based on the cancellation message that is received.

Google Calendar Resource: How to get calendar ID from event instance?

If you list Google Calendar events using this API or particular event using this API specifying Calendar Resource room ID instead of calendar ID, you get list of all events associated to that Calendar Resource.
If you then want to delete or modify that event using domain-wide delegation of authority you can get event owner form creator.email field.
The question is how to get calendar ID where the event is created to be able to delete or modify it?
Of course you can try to use creator's e-mail or primary for the calendar ID but this fails if the user created the event in any other than default calendar.

Resources