EWS : how to get notification when meeting starts/end in exchange 2010 - exchange-server

I have to do some operation when meeting starts and end. But i not able to find anyway to get the notification from EWS when meeting starts and end.
I tried push subscribe and subscribe for folder ID "calendar" and then do GetItem to fetch the meeting information. But the problem with this approach is i have to store all meeting item with timing and have my logic(timer) to find when meeting is started and finished.

I realize this is an old post, but I happened across it and thought someone might still find an answer useful.
EWS notifications will not be of use in this case - the notifications that you can subscribe to only alert you to new mail, deleted, modified, moved, copied, and created items. There's nothing built in regarding notifications for start times of meetings.
So what I'd suggest is that you use the EWS FindItem operation with a CalendarView element to get all calendar items that occur for the next N hours, to determine what appointments are happening that day, and then create your own logic/timer to perform your operation at the appropriate time. Hope that helps.

Related

How to be aware of the creation of a new event in a google calendar? [duplicate]

I am developing a SPA webapp through which I add events to my users google calendar They have given permission for. However this is my first time using Google calendar API, and was unclear about how to retrieve my users existing events , or if they add new events or delete them. IS there an option to set a webhook within google calendar thus when the user makes any changes to the calendar I can receive the change. My current approach was to make multiple get requests but that seems very inefficient. How can I keep my app calendar in sync with all user created events.
You can set up a push notification to be alerted any time anything changes on one of your calendars. I looked into it before a little, if memory serves it doesn't alert you to a lot of particularly useful information (I don't believe it tells you exactly what changed and how). Check out the docs here: https://developers.google.com/google-apps/calendar/v3/push
What I ended up doing was setting up a cronjob and getting all of my calendars' events using the synctoken, which returns only the events that have changed since the last time I polled the API for events. https://developers.google.com/google-apps/calendar/v3/sync
If you are using the SyncToken in your request for data, all you get back is the events that have changed. There is an eventID in the Google records that you can use to connect the change to your event data.

Is there an option to get notifications when a meeting starts in Google Classroom?

I'm always late because I can't join until the teacher starts the meeting, but I don't know when does the teacher starts the meeting. Is it possible to get a push notification when it starts?
Google Classroom does not include notifications for meetings. Here is a list of all the possible notifications you can get with Google Classroom.
Moreover, Meet does not include either the type of notification you are looking for.
Workarounds
Instead, if the meeting created also creates an event in your calendar, you can take advantage of event reminders to send you an email just right before the event starts.

Detect end of a meeting in MS Teams

Is there a way for a bot in MS Teams to detect the beginning/end of a meeting created in teams?
I’d like to show a message to all the attendees of the meeting after it is over.
The only way I can think of doing this is to periodically call the Microsoft graph API for calendars and check for new meetings.
However, this method can only detect scheduled calendar meetings and won’t work for direct calls or ad hoc meetings.
I also looked at bot events but there are no events for meetings.
There's no way to support this currently. In fact we have a hard time detecting this ourselves - if someone forgets to leave the meeting, it stays open even if there's no activity on the line. We are still fine-tuning the timeout detection/logic - after all we can't use the scheduled time because meetings do run late.
And as far as I know, it's not on the roadmap either; you are the first person to have asked for it as far as I know, but I'll suggest it to the team - it's a good idea.
Recently came across this and, although it is a bit clumsy, it is a way to make sure no one stays in the meeting by accident.
In the Teams client, you can lookup the participants list and from there you can remove the participants from the meeting until there is no one left but you. This must be done for every individual participant.
This has been added as onTeamsMeetingEndEvent
Just overriding this method is enough to handle this turn

Google Calendar event Created/Updated/Deleted Webhook?

I am developing a SPA webapp through which I add events to my users google calendar They have given permission for. However this is my first time using Google calendar API, and was unclear about how to retrieve my users existing events , or if they add new events or delete them. IS there an option to set a webhook within google calendar thus when the user makes any changes to the calendar I can receive the change. My current approach was to make multiple get requests but that seems very inefficient. How can I keep my app calendar in sync with all user created events.
You can set up a push notification to be alerted any time anything changes on one of your calendars. I looked into it before a little, if memory serves it doesn't alert you to a lot of particularly useful information (I don't believe it tells you exactly what changed and how). Check out the docs here: https://developers.google.com/google-apps/calendar/v3/push
What I ended up doing was setting up a cronjob and getting all of my calendars' events using the synctoken, which returns only the events that have changed since the last time I polled the API for events. https://developers.google.com/google-apps/calendar/v3/sync
If you are using the SyncToken in your request for data, all you get back is the events that have changed. There is an eventID in the Google records that you can use to connect the change to your event data.

EWS Managed API: SendOnlyToChanged when changing attendee from Required to Optional

Scenario is this:
create appointment with 1 required attendee and save it -> attendee gets invitation
var app = new Appointment(service);
app.Subject = "Test";
app.RequiredAttendees.Add("attendee1#dummy.com");
app.Save(SendInvitationsMode.SendOnlyToAll);
move attendee from required to optional and update appointment with SendOnlyToChanged -> attendee doesn't get any notification
app.RequiredAttendees.Remove("attendee1#dummy.com");
app.OptionalAttendees.Add("attendee1#dummy.com");
app.Update(ConflictResolutionMode.AlwaysOverwrite, SendInvitationsOrCancellationsMode.SendOnlyToChanged);
I know there are/were some issues with SendOnlyToChanged when attendees are added / removed (everybody got notifications) but we don't have this problem. But we have this lack of notifications about change of attendance type and I wonder if that's just how Exchange handles this?
I tried similar operation in OWA and it looks like attendee always gets notification when I click "Send updates" button so OWA is probably using SendToAll. When I added another attendee OWA asked if I wanted to send to all or just to added / removed so I suspect moving attendees between required / optional / resources is not considered as modification of attendees list.
Could somebody share some thought on this subject? Maybe somebody with more intimate (inside) knowledge of Exchange / EWS? Thing is that customer reported this as a bug and I'm almost sure that's just how Exchange works in this scenario but it would be easier to convince customer if I could produce any "official" resources to back me up.
This is most likely to do with the type of operations your trying to do, EWS doesn't support moving an attendee so you should be doing a Remove first and call an update which will commit the change (if you don't want notification use SendToNone). Then Add the attendee back with SendOnlyToChanged and call update. The thing to keep in mind is that the only time a request is made to the server is when you call Update.

Resources