iCalendar RSVP in Outlook - ruby-on-rails

I'm working with a Ruby/Rails app that sends out meeting requests to Outlook addresses. The meeting requests also go to some office resources that need to be reserved for these meetings.
I want to be able to notify someone if the resources decline the meeting request, but I can't get a reply from them. When the meeting shows up in Outlook, it says the organizer does not require a response.
Currently, I have the following line in my iCalendar file generation:
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE:MAILTO:#{attendee.email}
Having looked through many Google results, I am under the impression that this should work. Does anyone have any suggestions?

Outlook was not recognizing the RSVP value because of how I had set things up. I was using my email address both for the organizer and for a separate attendee, for testing. Once I used another address for the organizer, it showed up correctly.
Here and here were helpful Microsoft documents.

Related

Is there any way to get user id/conversation reference to proactively message user on teams if installation event wasnt captured

Looking for the best course of action that would have the least impact on users to be able proactively message users with teams app (bot) installed but where they have not messaged the bot and the conversation reference was not captured at time of install.
The scenario is that have an enterprise bot that has been operational for over 3 years servicing 10s of thousands of employees. The bot is auto installed for all users in the tenant, but conversation references were only being stored in the last 2/3's of the applications life, and the install event was not being captured until recently. This was not an issue in past as all proactive functionality was predicated on some interaction with the bot.
I now have a need to be able proactively messages all users within tenant regardless of if they have messaged the bot or not, or if they last messaged the bot before conversation references were being stored. There are only a small subset of users the fall into this category.
Hoping some way to generate a conversation update, be it through graph or other means. The installationUpdate event through app update seemed promising as can update the application but seems only triggered if bot is added or removed
Review the information provided here: https://learn.microsoft.com/en-us/microsoftteams/platform/graph-api/proactive-bots-and-messages/graph-proactive-bots-and-messages?tabs=dotnet
Here is what we do
If we have the conversation ID in our cache/persistent store, we use
it to send the message
If we dont have, we use GET
https://graph.microsoft.com/v1.0/users/{user-id}/teamwork/installedApps/{teamsAppInstallationId}/chat
to get the chatid (the app id here is not the bot application ID, but the ID generated when the app is installed in the org app store and is available from the Teams Admin interface)
If the user does not have our app installed, we
install the app using the teamsAppInstallationId ID. This automatically generates a event without user intervention that
is sent to the bot which you can then use to capture the conversation ID.
POST /users/{user-id | user-principal-name}/teamwork/installedApps
This approach does require an Application Permission: TeamsAppInstallation.ReadWriteSelfForUser.All
You might look into using the List Teams functionality in the Graph API. You can use Graph to get teams and list their members, assuming you can grant your bot the necessary permissions. There are many features in the Graph API which might help you accomplish this.
To send a proactive message to user the bot requires the conversation reference. The conversation can be only retrieved when bot installed.
Without conversation reference you cannot send a proactive message using bot.
You can use Send message in a chat API to send message to chat with delegated permissions.
Could you please raise a uservoice for your case

How to start a chat conversation between the logon user and another user in the same AAD

I am working on SPFx web part where a user will see the presence of other users and I want to let them click on the picture and start a TEAMS conversation with that other user.
I was expecting MS graph to have that option but all I can see is chat to a channel and or team.
My need is to be able to chat between users of any teams within the same 365 organization (AAD)
Any one knows a JavaScript way to do it?
Thanks in advance
This is something we are working on. Currently there are no Graph API available to send message to a user in personal scope. We don't have ETA to share with you. You can have a Bot which can help to send messages in personal scope, Group chat or channel conversation.
I know it's very long after the original post, but in case this is still a requirement - it sounds from your question like a simple deep link would work fine, as you can "deep link" to a chat with another user - see here for more. If the users have not chatted before, the deep link will actually start the chat for the first time, when the first message is sent.

Message webLink not working for outlook.com accounts

I’m working on an add-in for Microsoft Outlook, and we need to provide our users with direct links to specific emails. We’ve been using the webLink property of the message object: https://learn.microsoft.com/en-us/graph/api/resources/message?view=graph-rest-1.0
At some point recently, it appears that these web links have stopped working for outlook.com users. Instead of opening up to the email, the page will either appear to load forever or show a page saying “Get Outlook on your phone for free” with a form to submit a phone number to receive an Outlook mobile app download link via text. These web links still work for all the Office 365 accounts we have tested.
Whether we fetch a message and its web link using the REST API V2 or the Graph API, we get the same web link that will not work for outlook.com accounts.
It looks like we’ve been seeing the same behavior described in this question: Outlook weblink does not always correctly open the mail
Is this a known issue, and if so are there any known workarounds? Thank you.
Is this the same issue on GitHub: https://github.com/OfficeDev/office-js/issues/1095
The fix for that is being worked on.

Posting to a teams channel from a logic app or flow which includes an banner alert / activity feed item

I have a logic app which posts a channel chat message to teams automatically when a new item is created in SharePoint. This I have working but our client requires that all the team members receive a banner alert and activity feed which I am having a lot of difficulty with.
What I've already tried...
Using a Incoming web hook on the teams channel - this was a very simple way to post from the logic app but the incoming webhook don't seem to support mentions.
Using the msft graph api - The /team/channel/message endpoint can post messages and user mentions but the this endpoint doesnt support channel or team mentions. It also appears that the graph API needs to use delegated permissions to post messages in teams. I'm using application permissions as this is a logic app. The logic app HTTP post connector doesnt offer the "connect as username#tenant.com" some of the other connectors use.
Using the flowbot post message - Like the above channel and team mentions are supported here so the post is added to the channel but with no notification to the team members
Using a notification only bot - I thought I nearly had it with this one. Microsoft's node bot sample number 57 looked like it can do most of what I want, it iterates through the users in the team and messages them this a customisable alert message...
https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/57.teams-conversation-bot
However I can't see how this bot can be triggered from my logic app as it seems to require an existing conversation context or an #mention from within teams to start communicating with users.
What I'm considering trying next
Iterating users within the logic app - Next I plan to try and get team membership from the graph API and iterate the members in the Logic App, posting a message to each user separately. I had hoped to utilise the group #mention feature as a simpler way so I'd be grateful if anyone had any thoughts on other ways of doing this, or maybe there's something wrong with what I've already tried that you could give me some expertise on.
Thanks in advance ;)
Andy
You're on the right track with the Bot, but you're wanting to send something called a "Pro-active" message. You need the bot registered in the channel in order to get access to a few key properties (conversation id, service url, etc.), but you can use those to send a message from -outside- your bot (e.g. in an Azure Function). You might be able to do this directly from a Logic App, but I haven't tested that specifically.
To find out more, see my answer at Programmatically sending a message to a bot in Microsoft Teams but I've also got a recent blog post that you might find interesting for background on this at How Bots Actually Work.
Hope that helps
You can use Graph to post a message in 1:1 chat as long as you have the chat it. You can find the answer in this post Send message to personal Chat via Graph API
You can also call Graph API from Logic Apps. (https://techcommunity.microsoft.com/t5/integrations-on-azure-blog/calling-graph-api-from-azure-logic-apps-using-delegated/ba-p/1997666#:~:text=Calling%20Graph%20API%20from%20Azure%20Logic%20Apps%20using,Manage%20-%3E%20Certificates%20%26%20secrets%20More%20items...%20)

Find all the contacts I sent an email to via Outlook Rest API

I'm trying to get all the contacts I sent a email (or responded to) via Outlook Contacts Rest API.
The default Outlook contact API only gives me contacts that I created in my contact manager. But I found "Is there a way to get the Suggested Contacts through Outlook API?" and sure enough, it gives me all "suggested" contacts (i.e. any contact I ever received an email from or sent an email to).
is this really the way to do it? No way in the "classic" API?
any way to find all the contacts I talked to (i.e. I wrote an email to?). That's the way Google handles "suggested contact" through their API, and not every contact I ever received an email from, spam included.
The closest thing to what you're looking for is the People API. As that page says:
The People API returns relevent person entities with each request. A person aggregates information from across mail, contacts and social networks. The results are ordered by their relevance, which is determined by the criteria specified in the request and ranked based on multiple communication, collaboration and business relationships.
The change in behavior in the beta version of the Contacts API is due to a change in how the API processes a request to the /me/contacts endpoint, and is under review. Keep in mind this is a beta so this may not be how the API ends up acting in stable versions.

Resources