如何使用 Google 日历 API 创建 "all-day" 事件

How to create "all-day" events with Google Calendar API

this page Google 给出以下示例,说明如何在 Google 日历中创建事件:

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'))

这段代码工作正常,但我正在努力制作一个 "all-day" 事件。我已经看到它建议对于全天事件,传递的日期字符串应该缩写为日期,例如“2020-05-08”,但这样做会导致错误 Invalid format: "2020-05-08" is too short"

我相信你的目标如下。

  • 您想使用带有 python 的 googleapis 创建全天活动。
  • 您想知道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',
},

参考: