def get_fixtures(self, competition=None, team=None, timeFrame=None, matchday=None, season=None, venue=None, league=None):    
        """ This method gets a set of fixtures. There are several possibilities to load them. The following three main resources are available: 
            * competitions
            * teams
            * fixtures

            Args:
               * competition (:obj: json, optional): a competition in json format obtained from the service.
               * team (:obj: json, optional): a team in json format obtained from the service.
               * timeFrame (str, optional): a timeFrame string.
               * matchday (int, optional): the matchday in integer format.
               * season (str, optional): the year of the season.
               * venue (str, optional): 'home' or 'away'.

            Returns:
               * :obj: list of :obj: json: a list of fixtures

            #### Competitions
            To load the fixtures of a competition you have to provide a competition-json that you obtained from the service.
            You can provide the following filters:
            * timeFrame (str): a timeFrame string (e.g. n14 for fixtures in the next 14 days)
            * matchday (int): the matchday

            Note that the filters can not be combined. 
            
            #### Teams
            To load the fixtures of a team you have to provide a team-json that you obtained from the service.
            You can provide the following filters:
            * timeFrame (str): a timeFrame string (e.g. n14 for fixtures in the next 14 days)
            * season (str): the year of the season (e.g. 2017)
            * venue: (str): either 'home' or 'away'

            Note that timeFrame and season can not be combined. 

            #### Fixtures
            To load a list of upcoming or passed fixtures you do not need to provide a json. You can provide the following filters:
            * league: a leagueCode. Please refer to the documentation to get a list of league codes.
            * timeFrame: a timeFrame string (e.g. n14 for fixtures in the next 14 days)
        """
        self.logger.debug(f'Getting fixtures with the following parameters: {locals()}')
        filters = []
        if competition is not None:
            if timeFrame is not None and matchday is not None:
                raise IncorrectMethodCallException("Please filter by either timeFrame or matchday.")
            elif timeFrame is not None and matchday is None:
                filters.append(self.__createFilter('timeFrame', timeFrame))
            elif timeFrame is None and matchday is not None:
                filters.append(self.__createFilter('matchday', matchday))

            competition_id = self.__get_competition_id(competition)
            fixtures = self._request('competitions', competition_id, 'fixtures', filters=filters)
            if team is not None:
                fixtures['fixtures'] = list(filter(lambda fixture: fixture['_links']['homeTeam']['href'] == team['_links']['self']['href'] or fixture['_links']['awayTeam']['href'] == team['_links']['self']['href'], fixtures['fixtures']))
                fixtures['count'] = len(fixtures['fixtures']) 
        elif team is not None:
            if venue is not None:
                filters.append(self.__createFilter('venue', venue))
            if season is not None and timeFrame is not None:
                raise IncorrectMethodCallException("Please filter by either timeFrame or season.")
            elif season is not None:
                filters.append(self.__createFilter('season', season))
            elif timeFrame is not None:
                filters.append(self.__createFilter('timeFrame', timeFrame))

            team_id = self.__get_team_id(team)
            fixtures = self._request('teams', team_id, 'fixtures', filters=filters)
        else:
            if league is not None:
                filters.append(self.__createFilter('league', league))
            if timeFrame is not None:
                filters.append(self.__createFilter('timeFrame', timeFrame))
            
            fixtures = self._request('fixtures', filters=filters)
        return fixtures