在 Office 365 上插入定期事件 api returns 不正确的开始和结束日期

Insert recurring event on office 365 api returns incorrect start and end date

我正在开发基于 Microsoft Office 365 Api 的 Asp.net MVC 应用程序日历。 当我尝试插入事件服务器时,更改了我的开始日期和结束日期。

我在 Microsoft Graph Api Explorer 上试过:https://graph.microsoft.io/en-us/graph-explorer,这个事件:

{
  "subject": "TEST 11",
  "recurrence": {
    "pattern": {
      "type": "relativeYearly",
      "interval": 1,
      "month": 1,
      "dayOfMonth": 0,
      "daysOfWeek": [
        "monday"
      ],
      "firstDayOfWeek": "sunday",
      "index": "first"
    },
    "range": {
      "type": "noEnd",
      "startDate": "2016-04-07",
      "endDate": "0001-01-01",
      "recurrenceTimeZone": "UTC",
      "numberOfOccurrences": 0
    }
  },
  "body": {
    "content": ""
  },
  "end": {
    "dateTime": "2016-04-07T13:30:00",
    "timeZone": "UTC"
  },
  "start": {
    "dateTime": "2016-04-07T12:00:00", 
    "timeZone": "UTC"
  } 
}

我不明白为什么 returns 我会得到这个结果:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('fb28a0fc-d439-46c1-b501-aa436c81b089')/events/$entity",
    "@odata.etag": "W/\"+OqDZnLqWUiJHsDJY80iMwAAydKXaA==\"",
    "id": "AAMkADVlYTFhYTI3LTdkYzQtNDgwMS05ZGRmLTExYjI3YjRmM2U1NwBGAAAAAACXbg5biElkTKzIlWuGxBCkBwD46oNmcupZSIkewMljzSIzAAAAAAENAAD46oNmcupZSIkewMljzSIzAADJymunAAA=",
    "createdDateTime": "2016-04-07T12:29:19.9539087Z",
    "lastModifiedDateTime": "2016-04-07T12:29:19.9695341Z",
    "changeKey": "+OqDZnLqWUiJHsDJY80iMwAAydKXaA==",
    "categories": [],
    "originalStartTimeZone": "UTC",
    "originalEndTimeZone": "UTC",
    "responseStatus": {
        "response": "organizer",
        "time": "0001-01-01T00:00:00Z"
    },
    "iCalUId": "040000008200E00074C5B7101A82E008000000008F87CA1BC990D101000000000000000010000000DA81E77A153D2945A59DB6B7C9134881",
    "reminderMinutesBeforeStart": 15,
    "isReminderOn": true,
    "hasAttachments": false,
    "subject": "TEST 11",
    "body": {
        "contentType": "text",
        "content": ""
    },
    "bodyPreview": "",
    "importance": "normal",
    "sensitivity": "normal",
    "start": {
        "dateTime": "2017-01-02T12:00:00.0000000",
        "timeZone": "UTC"
    },
    "end": {
        "dateTime": "2017-01-02T13:30:00.0000000",
        "timeZone": "UTC"
    },
    "location": {
        "displayName": "",
        "address": {}
    },
    "isAllDay": false,
    "isCancelled": false,
    "isOrganizer": true,
    "recurrence": {
        "pattern": {
            "type": "relativeYearly",
            "interval": 1,
            "month": 1,
            "dayOfMonth": 0,
            "daysOfWeek": [
                "monday"
            ],
            "firstDayOfWeek": "sunday",
            "index": "first"
        },
        "range": {
            "type": "noEnd",
            "startDate": "2017-01-02",
            "endDate": "0001-01-01",
            "recurrenceTimeZone": "UTC",
            "numberOfOccurrences": 0
        }
    },
    "responseRequested": true,
    "seriesMasterId": null,
    "showAs": "busy",
    "type": "seriesMaster",
    "attendees": [],
    "organizer": {
        "emailAddress": {
            "name": "Luigi Gallo",
            "address": "luigi.gallo@uniroma3.it"
        }
    },
    "webLink": "https://outlook.office365.com/owa/?ItemID=AAMkADVlYTFhYTI3LTdkYzQtNDgwMS05ZGRmLTExYjI3YjRmM2U1NwBGAAAAAACXbg5biElkTKzIlWuGxBCkBwD46oNmcupZSIkewMljzSIzAAAAAAENAAD46oNmcupZSIkewMljzSIzAADJymunAAA%3D&exvsurl=1&viewmodel=ICalendarItemDetailsViewModelFactory"
}
"month": 1,
"daysOfWeek": [
    "monday"
  ],
  "firstDayOfWeek": "sunday",
  "index": "first"

您想插入哪种重复性事件?根据代码,您插入了一个“relativeYearly”事件,如下图所示:

根据 post 正文,第一场比赛应该是 1 月的第一个星期一,即 1/2/2017。由于原始开始日期和结束日期(4/7/2016) 与此模式不匹配,服务器自动将其更改为 1/2/2017 hh:mm:ss.

您可能需要更改重复周期以满足业务需求。