Once you have created seasons and leagues then added teams to these leagues, the leaguesite_matches module will allow you to schedule matches between teams in a league.
To do this, you will need the leaguesite_matches module enabled.

There are two states for a match, one with a result, and one without. Once you enter a result, the standings table for the relevant league will be updated. You can disable this from happening by going to 'admin/settings/matches'

Creating the Match
Creating a match is fairly straightforward. You simply head to create content > match.

Once you select the league, the teams in the dropdown boxes will be updated to allow you to select teams within a league to play each other. You can specify a date and time, this uses the date_popup module to make selecting a day easy!

You can customise the way matches are displayed by entering a display pattern in 'admin/settings/matches'

Updating the Match - using match admin
You are able to enter results either by editing your node and entering the result directly, or by using the match admin form. This can be accessed by going to www.example.com?q=matchadmin

The match admin screen will show matches whose dates have passed, and results have been entered. If there are no games with unentered results, you will not see any matches here. Entering a match result is straightforward, so I won't go into it here.

Creating Multiple Matches
From alpha4, there is a new feature allowing you to add multiple matches at once, just go to Content Management > League Setup > Match Admin > Create Matches.
This form allows you to select the season/league and the number of matches you wish to create and then simply create them!