Повторяющееся событие API Календаря Google, EXDate не работает - PullRequest
0 голосов
/ 24 февраля 2020

Я хочу создать повторяющееся событие в Календаре Google с одним эксклюзивным днем. Я использовал Google Calendar APi Explorer. Ниже приведены данные запроса

{
  "end": {
    "dateTime": "2020-02-24T19:00:00+05:00",
    "timeZone": "Asia/Karachi"
  },
  "start": {
    "dateTime": "2020-02-24T18:30:00+05:00",
    "timeZone": "Asia/Karachi"
  },
  "description": "PSL live Streaming  ..",
  "summary": "PSL live Streaming  ..",
  "location": "National Stadium Karachi",
  "recurrence": [
    "RRULE:FREQ=DAILY;UNTIL=20200229T185959Z;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU",
    "EXDATE;VALUE=DATE:20200225"
  ],
  "reminders": {
    "useDefault": false,
    "overrides": [
      {
        "method": "email",
        "minutes": 15
      },
      {
        "method": "popup",
        "minutes": 15
      }
    ]
  }

Я получил ответ

{
 "kind": "calendar#event",
 "status": "confirmed",
 "summary": "PSL live Streaming  ..",
 "description": "PSL live Streaming  ..",
 "location": "National Stadium Karachi",
 "start": {
  "dateTime": "2020-02-24T18:30:00+05:00",
  "timeZone": "Asia/Karachi"
 },
 "end": {
  "dateTime": "2020-02-24T19:00:00+05:00",
  "timeZone": "Asia/Karachi"
 },
 "recurrence": [
  "EXDATE;VALUE=DATE:20200225",
  "RRULE:FREQ=DAILY;UNTIL=20200229T185959Z;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU"
 ],
 "sequence": 0,
 "reminders": {
  "useDefault": false,
  "overrides": [
   {
    "method": "email",
    "minutes": 15
   },
   {
    "method": "popup",
    "minutes": 15
   }
  ]
 }
}

Это событие не должно быть создано 25-го числа, но когда я go в гугл-календаре вижу, событие также создается на 25ч. enter image description here

Любой намек, что здесь не так?

1 Ответ

1 голос
/ 24 февраля 2020

Вы указали dateTime в start и end и date в EXDATE.

Поскольку вы указали dateTime для start и end, вы также должны указать dateTime в EXDATE и время часть должна соответствовать той, которую вы указали в start. В противном случае API не будет знать, какое событие исключить.

То есть повторение должно быть таким:

"RRULE:FREQ=DAILY;UNTIL=20200229T185959Z;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU",
"EXDATE;TZID=Asia/Karachi:20200225T183000"

Ссылка:

...