使用Microsoft Graph API添加日历事件

时间:2020-09-11 23:15:21

标签: microsoft-graph-api

我正在尝试通过Powershell脚本在日历中创建事件。它需要将日历事件添加到组织者的日历中,然后再添加到与会者列表中。以下是我在请求正文中发送的内容。

{
  "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":"attendee1@attendeeadress.com",
        "name": "Attendee1"
      },
      "type": "required",
       "status": {
                "response": "none",
                "time": "0001-01-01T00:00:00Z"
        }
    },
      {
      "emailAddress": {
        "address":"attendee2@attendeeadress.com",
        "name": "Attendee2"
      },
      "type": "required",
       "status": {
                "response": "none",
                "time": "0001-01-01T00:00:00Z"
        }
    }
  ],
   "organizer":{
        "emailAddress":{
            "name":"Specific Calendar",
            "address":"calendarname@organizerorganization.onmicrosoft.com"
        }
    },
  "allowNewTimeProposals": true
}

它成功显示在与会者的日历上,但没有出现在主要组织者的日历上。谁能告诉我我做错了什么以及如何使它显示在主要组织者的日历上?

谢谢!

更新-这就是我获取用户令牌的方式。

$Body = @{
    'client_id' = 'my_client_id'
    'scope' = 'https://graph.microsoft.com/.default'
    'client_secret' = 'my_client_secret'
    'grant_type' = 'password'
    'userName' = 'calendarname@organizerorganization.onmicrosoft.com'
    'password' = 'password'
}

据我了解,默认情况下,应将此用户设置为事件的组织者。

1 个答案:

答案 0 :(得分:1)

您可以使用ROPC流创建一个事件,该流为您提供用户访问令牌,并使用它可以使用有效负载调用/ events端点,如下所示。

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

如果您使用此令牌创建事件,并将用户名命名为calendarname@organization.onmicrosoft.com,则它将成为事件的组织者。

您可以更新“主题”,“正文/内容”,但不能更新事件的“开始”和“结束”属性,而这些属性已经是已完成的事件。