Google 日历 API 多一天的全天活动?
Google Calendar API all day event spanning an extra day?
在我的 Google 日历中,它位于 America/Toronto 时区,我有一个事件标记为 2022 年 4 月 13 日的全天,但它又开始于2022-04-13 至 2022-04-14 结束。我还有一些其他全天活动以同样的方式表现。
这发生在我的代码中,但当我在这里尝试使用 API 测试表单时也是如此:
https://developers.google.com/calendar/api/v3/reference/events/list
带参数:
- 最小时间:
2022-04-10T18:36:39.000Z
- 最大时间:
2022-04-17T18:36:39.000Z
这 returns 我得到以下回复(某些字段被屏蔽):
"kind": "calendar#events",
"etag": "\"p328ftm5rim7ve0g\"",
"summary": "My Test Calendar",
"updated": "2022-04-12T18:36:40.074Z",
"timeZone": "America/Toronto",
"accessRole": "owner",
"defaultReminders": [],
"nextSyncToken": "xxx-xxxx_cCEJD-2LuVj_cCGAUg8t3t0QE=",
"items": [
{
"kind": "calendar#event",
"etag": "\"3299577200148000\"",
"id": "xxxxga02nqb11ub6dm29dgg9t",
"status": "confirmed",
"htmlLink": "https://www.google.com/calendar/event?eid=xxxxxxnYTAybnFiMTF1YjZkbTI5ZGdnOXQgY19uZ2hqOXFzb25tYjRtNDRqN2doaTNxNzY5a0Bn&ctz=UTC",
"created": "2022-04-12T18:36:39.000Z",
"updated": "2022-04-12T18:36:40.074Z",
"summary": "Dummy Event",
"creator": {
"email": "xxxxxx",
"displayName": "xxxxxx"
},
"organizer": {
"email": "xxxxxxx@group.calendar.google.com",
"displayName": "My Test Calendar",
"self": true
},
"start": {
"date": "2022-04-13"
},
"end": {
"date": "2022-04-14"
},
"transparency": "transparent",
"iCalUID": "xxxxx@google.com",
"sequence": 0,
"reminders": {
"useDefault": false
},
"eventType": "default"
}
]
}
我尝试在请求中提供 'America/Toronto' 和 'UTC' 作为 timeZone
参数,但这并没有改变任何东西。
任何人都可以建议如何让全天活动仅跨越它应该发生的那一天吗?
顺便说一下,您可以在下面看到该事件仅在一天内发生:
这是 日历 API 的预期行为。全天活动持续 24 小时。从开始日期的午夜持续到第二天的午夜。
Event Resource里面也写着end
是独占的
另一种解决方案是 -1 响应正文的结束日期或手动绘制时间。但是,如果您尝试通过绘制时间来手动创建全天事件,它只能持续 23.5 小时。
在我的 Google 日历中,它位于 America/Toronto 时区,我有一个事件标记为 2022 年 4 月 13 日的全天,但它又开始于2022-04-13 至 2022-04-14 结束。我还有一些其他全天活动以同样的方式表现。
这发生在我的代码中,但当我在这里尝试使用 API 测试表单时也是如此:
https://developers.google.com/calendar/api/v3/reference/events/list
带参数:
- 最小时间:
2022-04-10T18:36:39.000Z
- 最大时间:
2022-04-17T18:36:39.000Z
这 returns 我得到以下回复(某些字段被屏蔽):
"kind": "calendar#events",
"etag": "\"p328ftm5rim7ve0g\"",
"summary": "My Test Calendar",
"updated": "2022-04-12T18:36:40.074Z",
"timeZone": "America/Toronto",
"accessRole": "owner",
"defaultReminders": [],
"nextSyncToken": "xxx-xxxx_cCEJD-2LuVj_cCGAUg8t3t0QE=",
"items": [
{
"kind": "calendar#event",
"etag": "\"3299577200148000\"",
"id": "xxxxga02nqb11ub6dm29dgg9t",
"status": "confirmed",
"htmlLink": "https://www.google.com/calendar/event?eid=xxxxxxnYTAybnFiMTF1YjZkbTI5ZGdnOXQgY19uZ2hqOXFzb25tYjRtNDRqN2doaTNxNzY5a0Bn&ctz=UTC",
"created": "2022-04-12T18:36:39.000Z",
"updated": "2022-04-12T18:36:40.074Z",
"summary": "Dummy Event",
"creator": {
"email": "xxxxxx",
"displayName": "xxxxxx"
},
"organizer": {
"email": "xxxxxxx@group.calendar.google.com",
"displayName": "My Test Calendar",
"self": true
},
"start": {
"date": "2022-04-13"
},
"end": {
"date": "2022-04-14"
},
"transparency": "transparent",
"iCalUID": "xxxxx@google.com",
"sequence": 0,
"reminders": {
"useDefault": false
},
"eventType": "default"
}
]
}
我尝试在请求中提供 'America/Toronto' 和 'UTC' 作为 timeZone
参数,但这并没有改变任何东西。
任何人都可以建议如何让全天活动仅跨越它应该发生的那一天吗?
顺便说一下,您可以在下面看到该事件仅在一天内发生:
这是 日历 API 的预期行为。全天活动持续 24 小时。从开始日期的午夜持续到第二天的午夜。
Event Resource里面也写着end
是独占的
另一种解决方案是 -1 响应正文的结束日期或手动绘制时间。但是,如果您尝试通过绘制时间来手动创建全天事件,它只能持续 23.5 小时。