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"))