It’s only fifteen minutes from Amsterdam by train, but Haarlem has a very different pace and feel from its neighbour. A former cloth-making centre, it’s an easy-going, medium-sized town of around 150,000, with a good-looking centre that is easily absorbed in a few hours or on an overnight stay. In 1572, the townsfolk sided with the Protestant rebels against the Habsburgs, a decision they must have regretted when a large Spanish army besieged them in December of the same year. The siege was a desperate affair that lasted for eight months, but finally the town surrendered after receiving various assurances of good treatment – assurances which the Spanish commander, Frederick of Toledo, promptly broke, massacring over two thousand of the Protestant garrison. Recaptured five years later, Haarlem went on to enjoy its greatest prosperity in the seventeenth century and was home to a flourishing school of painters, whose canvases are displayed at the outstanding Frans Hals Museum, located in the almshouse where Hals spent his last, and according to some his most brilliant years.

Haarlem is also within easy striking distance of the coast: every half-hour trains make the ten-minute trip to the modern resort of Zandvoort-aan-Zee, while frequent buses serve the huddle of fast-food joints that make up Bloemendaal-aan-Zee just to the north. Neither is particularly endearing in itself, but both are redeemed by long sandy beaches and the pristine stretches of the dune and lagoon, crisscrossed by footpaths and cycling trails, that make up the nearby Nationaal Park de Zuid-Kennemerland.

Book through Rough Guides’ trusted travel partners

Netherlands features

The latest articles, galleries, quizzes and videos.

An expert's guide: the best area to stay in Amsterdam

An expert's guide: the best area to stay in Amsterdam

Almost 50 years after John Lennon and Yoko Ono promoted world peace from room 702 of the Hilton, Amsterdam’s hotels are more worthy of the spotlight than ev…

26 Apr 2018 • Rough Guides Editors insert_drive_file Article
Leeuwarden: the coolest Dutch city you’ve never heard of

Leeuwarden: the coolest Dutch city you’ve never heard of

By nature of its design, there is something immutable about Leeuwarden, the capital of Friesland in the Netherlands’ northwesternmost province. Hemmed in by h…

20 Feb 2018 • Mike MacEacheran insert_drive_file Article
7 Dutch cities to explore beyond Amsterdam

7 Dutch cities to explore beyond Amsterdam

Amsterdam — with its museums, gabled Golden Age houses and network of historic canals — is a sure bet for a weekend break. But it's not all the Netherlands…

20 Feb 2018 • Stuart Forster insert_drive_file Article
View more featureschevron_right

Privacy Preference Center

Necessary

Mandatory - can not be deselected. Necessary cookies help make a website usable by enabling basic functions like page navigation and access to secure areas of the website. The website cannot function properly without these cookies.

PHPSESSID,aelia_cs_selected_currency,cookie_notice_accepted,RS,bp-message,bp-message-type,id,UIDR,w3tc_logged_out,__cfduid
__cfduid

Statistics

Statistic cookies help website owners to understand how visitors interact with websites by collecting and reporting information anonymously.

__utma,__utmb,__utmc,__utmz,_ga,_gid,__atssc,__atuvc,__atuvs,di,dt,ssc,ssh,sshs,uid,uit,xt
__utma,__utmb,__utmc,__utmz,_ga,_gid
__atssc,__atuvc,__atuvs,di,dt,ssc,ssh,sshs,uid,uit,xtc

Marketing

Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.

__gads,PISID, BEAT, CheckConnection TempCookie703, GALX, GAPS, GoogleAccountsLocale_session, HSID, LSID, LSOSID, NID, PREF, RMME, S, SAPISID, SID, SSID,__utmv, _twitter_sess, auth_token, auth_token_session, external_referer, guest_id, k, lang, original_referer, remember_checked, secure_session, twid, twll,c_user, datr, fr, highContrast, locale, lu, reg_ext_ref, reg_fb_gate, reg_fb_ref, s, wd, xs
__gads,PISID, BEAT, CheckConnection TempCookie703, GALX, GAPS, GoogleAccountsLocale_session, HSID, LSID, LSOSID, NID, PREF, RMME, S, SAPISID, SID, SSID
__utmv, _twitter_sess, auth_token, auth_token_session, external_referer, guest_id, k, lang, original_referer, remember_checked, secure_session, twid, twll
c_user, datr, fr, highContrast, locale, lu, reg_ext_ref, reg_fb_gate, reg_fb_ref, s, wd, xs