def ics(request): team_id_list = request.GET.getlist('team_id') league_id_list = request.GET.getlist('league_id') org_id_list = request.GET.getlist('org_id') teams = get_teams(team_id_list) leagues = get_leagues(league_id_list) orgs = get_orgs(org_id_list) if len(teams) == 1: cal_name = teams[0].name elif len(leagues) == 1: cal_name = leagues[0].name elif len(orgs) == 1: cal_name = orgs[0].name else: cal_name = "Soccer Games" cal = Calendar() cal.add('prodid', '-//Soccer Game Schedules//Soccer Calendars//EN') cal.add('version', '2.0') cal.add('X-WR-CALNAME', cal_name) cal.add('X-WR-TIMEZONE', 'CST6CDT') cal.add('X-WR-CALDESC', 'Soccer Team Schedule') for team in teams: for game in team.games().order_by("time", "field"): add_game(cal, game) for league in leagues: for game in Game.objects.filter(league=league).order_by("time", "field"): add_game(cal, game) for org in orgs: for league in League.objects.filter(org=org): for game in Game.objects.filter(league=league).order_by("time", "field"): add_game(cal, game) return HttpResponse(cal.to_ical(), content_type='text/calendar')