Google Calendar API活动总是在一天内缩短

时间:2014-09-01 10:15:21

标签: python google-api-python-client

我正在创建dict obj并将其发送到谷歌日历,就像谷歌自己的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)

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

1 个答案:

答案 0 :(得分:3)

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

https://developers.google.com/google-apps/calendar/concepts

此类事件从startDate开始,到endDay前一天结束。例如,一天的活动应将其开始日期设置为日期,将结束日期设置为日期+1。

所以我已修复此问题: -

fdate = fdate + timedelta(days=1)