Событие Google Calendar API всегда минус один день

Я создаю 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)

Тем не менее, я хотел бы знать, знает ли кто-нибудь причину этого?


person Pash    schedule 01.09.2014    source источник


Ответы (1)


Он спрятан, но я его нашел :-

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

Такое событие начинается в startDate и заканчивается за день до endDay. Например, для однодневного события дата начала должна быть установлена ​​на день, а дата окончания — на день + 1.

Итак, я исправил это с помощью: -

fdate = fdate + timedelta(days=1)
person Pash    schedule 01.09.2014