Example #1
0
def sync(FLOW, code, email):

    http = httplib2.Http()
    s2 = OAuth2WebServerFlow.step2_exchange(FLOW, code, http=http)

    http = s2.authorize(http)

    service = build(
        serviceName="calendar", version="v3", http=http, developerKey="AIzaSyCcT484gf2or7lsOzcOnGolRWRg4c_JJGI"
    )

    calendar = service.calendars().get(calendarId="primary").execute()

    fp = None
    if "id" in calendar:
        fp = open("/data/calendars/" + calendar["id"], "w")
    else:
        fp = open("/data/calendars/tmp", "w")

    events = service.events().list(calendarId="primary").execute()

    j = 0
    while True:
        for event in events["items"]:
            j += 1
            fp.write(json.dumps(event))
            fp.write("\n")

        pt = events.get("nextPageToken")
        if pt:
            events = service.events().list(calendarId="primary", pageToken=pt).execute()
        else:
            break

    print "Wrote", j, "events into ", "/data/calendars/" + calendar["id"]
    fp.flush()