Sachverhalt: A. P._, geboren 1957, war von 1. Mai 1987 bis 31. März 2005 beim Spital X._ im Technischen Dienst und bis 31. Dezember 2002 zusätzlich als Transporthelfer im Rettungsdienst angestellt. Am 21. Februar 2005 ersuchte er um Leistungen der Invalidenversicherung. Die IV-Stelle des Kantons Zürich holte verschiedene ärztliche Berichte ein. Mit Verfügung vom 8. Dezember 2005 sprach sie P._ ab 1. August 2004 eine Viertelsrente zu. Im Rahmen des Einspracheverfahrens holte die IV-Stelle weitere ärztliche Berichte ein und klärte die berufliche Situation erneut ab. In der Folge hiess sie die Einsprache teilweise gut (Einspracheentscheid vom 10. Mai 2007) und sprach P._ am 3. Oktober 2007 ab 1. Oktober 2007 eine halbe Invalidenrente zu. Mit Verfügungen vom 15. November 2007 gewährte sie ihm ab 1. November 2004 befristet bis 30. April 2005 eine ganze Invalidenrente und ab 1. Mai 2005 befristet bis 30. September 2007 eine halbe Invalidenrente. B. Das Sozialversicherungsgericht des Kantons Zürich vereinigte das Verfahren bezüglich der Verfügung vom 3. Oktober 2007 mit dem Verfahren bezüglich der Verfügungen vom 15. November 2007 und wies die Beschwerden mit Entscheid vom 17. April 2009 ab. C. P._ lässt Beschwerde in öffentlich-rechtlichen Angelegenheiten führen mit dem Antrag, es seien der vorinstanzliche Entscheid und die Verfügungen der IV-Stelle, soweit diese einen eine halbe IV-Rente übersteigenden Anspruch verneinen, aufzuheben und es sei die Sache an die IV-Stelle zur Vornahme ergänzender Abklärungen und Neuverfügung zurückzuweisen. Die IV-Stelle schliesst auf Abweisung der Beschwerde. Das Bundesamt für Sozialversicherungen verzichtet auf eine Vernehmlassung. 