Sending Meeting Requests via Microsoft Graph API: How to Ensure Viewing as Meeting Requests in Outlook?

Shady Khaled 20 Reputation points
2024-05-20T14:06:59.4366667+00:00

I am working on integrating the Microsoft Graph API into my application to automate the process of sending meeting requests. I am using the https://graph.microsoft.com/v1.0/me/sendMail endpoint to send emails programmatically. My goal is to ensure that the emails sent through this endpoint are correctly interpreted as meeting requests when viewed in Outlook, rather than being displayed as simple email attachments.

However, despite including iCalendar (ICS) content in the email body and setting the content type appropriately, the emails are still being viewed as attachments rather than meeting requests in Outlook.

I would like to know the best approach or any specific considerations to ensure that the emails sent via the Microsoft Graph API are recognized as meeting requests in Outlook, allowing recipients to respond with "Accept," "Decline," and "Tentative" options directly within the email client.

Additionally, I am interested in understanding any specific configurations, properties, or API parameters that need to be set to achieve this functionality. Any insights, documentation references, or code examples would be greatly appreciated.

Thank you for your assistance!

Outlook
Outlook
A family of Microsoft email and calendar products.
4,011 questions
Microsoft Graph
Microsoft Graph
A Microsoft programmability model that exposes REST APIs and client libraries to access data on Microsoft 365 services.
12,271 questions
0 comments No comments
{count} votes

Accepted answer
  1. Hitesh Pachipulusu - MSFT 3,000 Reputation points Microsoft Vendor
    2024-05-20T14:43:11.9266667+00:00

    Hello @Shady Khaled ,

    Thank you for contacting Microsoft Support.

    To ensure that emails sent through the Microsoft Graph API are recognized as meeting requests in Outlook, you should use the Outlook calendar API to create calendar events directly, rather than sending emails with iCalendar content. When you create an event using the calendar API, Outlook will automatically handle it as a meeting request, providing the options for recipients to accept, decline, or mark as tentative.

    Here are some specific steps and considerations:

    1. Create an Event: Use the POST /me/events endpoint to create a new event in the user’s calendar. Please refer to https://learn.microsoft.com/en-us/graph/api/user-post-events?view=graph-rest-1.0&tabs=http.
    2. Add Attendees: Include the attendees in the event payload, specifying their email addresses and the type of attendee they are (required or optional).
    3. Set the Meeting Time: Specify the start and end times of the meeting and ensure the time zone is set correctly.
    4. Enable Response Requests: Set the isOnlineMeeting property to true and allowNewTimeProposals to true to allow attendees to propose new meeting times.
    5. Online Meeting Options: If you want to create an online meeting, such as a Teams meeting, set the onlineMeetingProvider property to teamsForBusiness.
    6. Send Invitations: Once the event is created, Outlook will send the meeting invitations to all attendees, which will include the “Accept,” “Decline,” and “Tentative” response options.

    Remember to authenticate your application with the necessary permissions to create events on behalf of the user. For more detailed information and advanced configurations, you can refer to the Microsoft Graph documentation on creating events and setting up online meetings.

    By following these steps, you should be able to create meeting requests that are fully integrated with Outlook’s functionality.

    Hope this helps.

    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".


0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.