如何使用 Google 日历 API 创建"all-day"活动



在这个页面上,谷歌给出了以下如何在谷歌日历中创建事件的示例:

event = {
'summary': 'Google I/O 2015',
'location': '800 Howard St., San Francisco, CA 94103',
'description': 'A chance to hear more about Google's developer products.',
'start': {
'dateTime': '2015-05-28T09:00:00-07:00',
'timeZone': 'America/Los_Angeles',
},
'end': {
'dateTime': '2015-05-28T17:00:00-07:00',
'timeZone': 'America/Los_Angeles',
},
'recurrence': [
'RRULE:FREQ=DAILY;COUNT=2'
],
'attendees': [
{'email': 'lpage@example.com'},
{'email': 'sbrin@example.com'},
],
'reminders': {
'useDefault': False,
'overrides': [
{'method': 'email', 'minutes': 24 * 60},
{'method': 'popup', 'minutes': 10},
],
},
}
event = service.events().insert(calendarId='primary', body=event).execute()
print 'Event created: %s' % (event.get('htmlLink'))

这个代码运行良好,但我正在努力制作一个"全天"活动。我看到有人建议,对于全天事件,传递的日期字符串应缩写为日期,例如"2020-05-08",但这样做会导致错误Invalid format: "2020-05-08" is too short"

我相信你的目标如下。

  • 您想要使用带有python的googleapi创建一个全天活动
  • 您想知道Invalid format: "2020-05-08" is too short"错误消息的原因

对此,这个答案如何?

修改点:

  • 2020-05-08用于dateTime的属性时,会出现这样的错误。在这种情况下,请将其放入date的属性中

修改的脚本:

修改脚本时,请按如下方式进行修改。

发件人:
'start': {
'dateTime': '2015-05-28T09:00:00-07:00',
'timeZone': 'America/Los_Angeles',
},
'end': {
'dateTime': '2015-05-28T17:00:00-07:00',
'timeZone': 'America/Los_Angeles',
},
收件人:
'start': {
'date': '2020-05-08',
'timeZone': 'America/Los_Angeles',
},
'end': {
'date': '2020-05-08',
'timeZone': 'America/Los_Angeles',
},

参考:

  • 请求事件主体:插入

最新更新