def del_old_events(service, cal_id, term): """Delete all the events previously created, in the secondary calendar, in order to sustain an eventual update.""" semester_dates, _ = get_academic_dates(term) first_day, last_day = semester_dates last_day = last_day + timedelta(days=1) # Get datetime range of the first week of the semester. dt_min = datetime(first_day.year, first_day.month, first_day.day, tzinfo=TIMEZONE) dt_max = datetime(last_day.year, last_day.month, last_day.day, tzinfo=TIMEZONE) # Create a list of all the events we need to delete. old_events_list = service.events().list( calendarId=cal_id, timeMin=dt_min.isoformat(), timeMax=dt_max.isoformat()).execute() old_recur_events = [] for old_event_id in old_events_list: old_recur_events.append( service.events().instances(calendarId=cal_id, eventId=old_event_id, timeMin=dt_min.isoformat(), timeMax=dt_max.isoformat()).execute()) for summ in old_recur_events: for ite in summ['items']: service.events().delete(calendarId=cal_id, eventId=ite['id']).execute()
def first_last_day_semester(semester, day_of_the_week): """Get first and last day of a specific course during a semester. Returns a tuple with the fist day as a datetime.date objects and the last day as a string of the form YYYYmmdd.""" # First day of the semester semester_dates = get_academic_dates(semester) first_day_semester, last_day_semester = semester_dates last_day_semester = last_day_semester + timedelta(days=1) # Get first day of the academic year a specific course is given. relative_day_add = rdelta.relativedelta(weekday=day_of_the_week) day = first_day_semester + relative_day_add return (day, last_day_semester.strftime("%Y%m%d"))