Ejemplo n.º 1
0
def delete_events(service: Resource, calendar: List[Dict],
                  events: List[Dict]) -> None:
    print(f"Deleting events in calendar: {calendar['summary']}")
    for event in events:
        service.events().delete(calendarId=calendar["id"],
                                eventId=event["id"]).execute()

        start = event["start"].get("dateTime", event["start"].get("date"))
        print(f"Deleted: ({start}) - {event.get('summary')}")
    print(f"Finished deleting events in calendar: {calendar['summary']}\n")
def clear_calendar(service: Resource, calendar_id: str) -> None:
    """Clears calendar."""

    events = (service.events().list(calendarId=calendar_id,
                                    singleEvents=True).execute())

    batch = service.new_batch_http_request()

    # Add delete call for each event to batch
    for event in events["items"]:
        eId = event["id"]
        batch.add(service.events().delete(calendarId=calendar_id, eventId=eId))

    batch.execute()
Ejemplo n.º 3
0
def get_old_events(service: Resource, calendar_id: str) -> List[Dict]:
    one_month_ago = get_time_n_days_ago(
        30).isoformat() + "Z"  # 'Z' indicates UTC time

    events = []
    request = service.events().list(
        calendarId=calendar_id,
        timeMax=one_month_ago,
        singleEvents=True,
        orderBy="startTime",
    )

    while request is not None:
        events_result = request.execute()
        events.extend(events_result.get("items", []))
        request = service.events().list_next(request, events_result)

    return events
def insert_event(events: List[str], service: Resource,
                 calendar_id: str) -> None:
    """Add events to calendar."""

    batch = service.new_batch_http_request()

    # Add each event to batch
    for i, event in enumerate(events):
        batch.add(service.events().insert(calendarId=calendar_id, body=event))
    batch.execute()
Ejemplo n.º 5
0
def fetch_targat_day_events(service: Resource,
                            target_datetime: datetime.datetime) -> Events:
    target_date = target_datetime.date()

    start = (datetime.datetime(target_date.year, target_date.month,
                               target_date.day).isoformat() + "Z")
    end = (datetime.datetime(target_date.year, target_date.month,
                             target_date.day + 1).isoformat() + "Z")
    events_result = (service.events().list(
        calendarId="primary",
        timeMin=start,
        timeMax=end,
        maxResults=20,
        singleEvents=True,
        orderBy="startTime",
    ).execute())
    events = events_result.get("items", [])
    return Events(events)