Python 谷歌日历API事件总是减少一天

Python 谷歌日历API事件总是减少一天,python,google-api-python-client,Python,Google Api Python Client,我正在创建dict obj并将其发送到google日历,就像google自己在API文档中的示例一样。我读取一个mssql数据库,然后生成一个结果的csv文件。然后,我使用cdv信息来编写事件 我的代码片段 def count_leaveduration(sdate, fdate): try: date_format = "%Y.%m.%d" cmp_sdate = datetime.strptime(sdate, date_format) cmp_fdate = da

我正在创建dict obj并将其发送到google日历,就像google自己在API文档中的示例一样。我读取一个mssql数据库,然后生成一个结果的csv文件。然后,我使用cdv信息来编写事件

我的代码片段

def count_leaveduration(sdate, fdate):

try:
    date_format = "%Y.%m.%d"
    cmp_sdate = datetime.strptime(sdate, date_format)
    cmp_fdate = datetime.strptime(fdate, date_format)
    delta = cmp_fdate - cmp_sdate
    return delta.days, cmp_sdate, cmp_fdate
except Exception as e:
    input_logging('error', 'Cannot Count Leave Duration - Exception: %s' % e)

duration, sdate, fdate = count_leaveduration(line['FIRSTDAYOFABSENCE'],   line['LASTDAYOFABSENCE'])    
event['summary'] = '%s - Leave' % line['NAME1']
event['location'] = 'Out Of Office'
# date type here instead because all day event for duration.
event['start'] = {'date': '%s' % sdate.strftime('%Y-%m-%d')}
event['end'] = {'date': '%s' % fdate.strftime('%Y-%m-%d')}
event['attendees'] = [{'email': line['ELECTRONICMAILADDRESS']}]
appbuildobj.events().insert(calendarId=robj, body=event).execute()
这些条目一般都可以正常工作,但如果持续时间超过一天,似乎会在日历条目上划掉一天,即使该日期应该是提交给日历事件记录的完成日期。当然,解决方法是这样做:-

fdate = fdate + timedelta(days=1)
fdate = fdate + timedelta(days=1)

但是,我想知道是否有人知道发生这种情况的原因?

它是隐藏的,但我发现了它:-

这样的活动从startDate开始,在endDay的前一天结束。例如,一天事件的开始日期应设置为天,结束日期应设置为天+1

所以我用以下方法解决了这个问题:-