Men's side
Since the Open Era began in 1968, and until 2013, this only happened in 1969.
That year, Rod Laver (born 1938) won the Grand Slam, which means he won all of them: Wimbledon, Australian Open, Roland Garros and US Open.
I got to this result by parsing the results in Age of Grand Slam Winners - Open Era and completing those with List of List of Grand Slam men's singles champions. I added an extra column which contains solely the age (without months) and then did some scripting with it:
$ awk -F"\t" '$6>=30{year[$3]++} END {for (y in year) print y, year[y]}' b | sort -k2 -rn
1969 4
2017 3
1975 2
1972 2
Which means that:
- in 1968, all 4 Grand Slams were won by a player 30 or older (as explained above)
- in 2017, 3 Grand Slams have been won by a 30+: Roger Federer in Wimbledon and Australian, Rafael Nadal in Roland Garros. So far.
- in 1972, Andres Gimeno (34y 10m 1d) won in Roland Garros and Ken Rosewall (37y 2m 1d) won Australian.
- in 1975, 2 of them were won by a 30+: John Newcombe (30y 7m 9d) won in Australian and Arthur Ashe (31y 11m 25d) in Wimbledon.
These are the other years were one player was 30+ when winning a Grand Slam tournament: 1968, 1970, 1971, 1982, 1983, 1990, 1998, 2001, 2002, 2003, 2012, 2015, 2016.
Women's side
Thanks to beta's comment I learnt about the GitHub repository WTA tennis rankings, results and stats. In there, we can find data of all WTA tournaments since its creation in 1968. It is beautifully put and has plenty of extra data. I just focused on the Grand Slams and found out that:
This only happened in 2015.
That year, Serena Williams (33) won Wimbledon, Roland Garros and Australian Open, while Flavia Pennetta (also 33) won US Open (and retiring just after that).
In these years, two winners were above 30:
In 1987, Martina Navratilova (30) won Wimbledon and US Open.
In 2012, Serena Williams (30) won Wimledon and US Open.
In 2013, Serena Williams (31) won Roland Garros and US Open.
In 2014, Serena Williams (32) won US Open and Na Li (31) Australian Open.
These are the other years were one player was 30+ when winning a Grand Slam tournament: 1985, 1986, 1990, 2016, 2017
This is the code I used to process the data:
awk -F, 'BEGINFILE{
gs=0;
match(FILENAME, /_([0-9]{4})\./, data);
year=data[1]
}
$5=="G" && $30=="F" && ($15>=30) {gs++} # Grand Slam final
ENDFILE {
if (gs>0) print year, gs
}' wta_matches_[0-9]*.csv | sort -k2 -rn
Which returns:
2015 4
2014 2
2013 2
2012 2
1987 2
2017 1
2016 1
1990 1
1986 1
1985 1