MountainBiker
MountainBiker

Reputation: 411

Adding Calendar Event using Microsoft Graph API

I am trying to create an event in a calendar from a Powershell script. It needs to add the calendar event to the organizer's calendar and then to a list of attendees. Below is what I am sending in the body of the request.

{
  "subject": "Let's go for lunch",
  "IsOrganizer": "true",
  "body": {
    "contentType": "HTML",
    "content": "Does noon work for you?"
  },
  "start": {
      "dateTime": "2020-08-31T12:00:00",
      "timeZone": "Pacific Standard Time"
  },
  "end": {
      "dateTime": "2020-08-31T14:00:00",
      "timeZone": "Pacific Standard Time"
  },
  "location":{
      "displayName":"Harry's Bar"
  },
  "attendees": [
    {
      "emailAddress": {
        "address":"[email protected]",
        "name": "Attendee1"
      },
      "type": "required",
       "status": {
                "response": "none",
                "time": "0001-01-01T00:00:00Z"
        }
    },
      {
      "emailAddress": {
        "address":"[email protected]",
        "name": "Attendee2"
      },
      "type": "required",
       "status": {
                "response": "none",
                "time": "0001-01-01T00:00:00Z"
        }
    }
  ],
   "organizer":{
        "emailAddress":{
            "name":"Specific Calendar",
            "address":"[email protected]"
        }
    },
  "allowNewTimeProposals": true
}

It appears successfully on the calendar of the attendees but not on the main organizer's calendar. Can anyone tell me what I am doing wrong and how I can get this to appear on the main organizer's calendar?

Thanks!

UPDATE - This is how I am getting the user token.

$Body = @{
    'client_id' = 'my_client_id'
    'scope' = 'https://graph.microsoft.com/.default'
    'client_secret' = 'my_client_secret'
    'grant_type' = 'password'
    'userName' = '[email protected]'
    'password' = 'password'
}

It is now my understanding that this user should be set as the organizer of an event by default.

Upvotes: 0

Views: 1129

Answers (1)

Shiva Keshav Varma
Shiva Keshav Varma

Reputation: 3575

You can create an event using ROPC flow which gives you the user access token and using it you can call the /events endpoint with your payload as shown below.

POST https://graph.microsoft.com/v1.0/me/calendar/events

If you create an event with this token and give username as [email protected] this will be the organizer of the event.

And you can update 'subject', 'body/content' but you cannot update the event's 'start' and 'end' properties which is already a finished event.

Upvotes: 1

Related Questions