You don't need an overnight booking to enjoy a five-star pool or a proper spa afternoon in San Francisco. A service called ResortPass sells day access to hotel pools, gyms, spas and even private day rooms at properties around the city, with entry prices starting as low as $22.
The standout for many is Hotel Nikko near Union Square, where a day pass from $90 gets you into a heated indoor pool set in a glass atrium on the rooftop, plus a hot tub, steam room, sauna and a 10,000-square-foot gym. If you'd rather have a whole room to yourself, SoMa House offers a day room from $100 that includes a private guest room alongside rooftop pool and gym access — effectively a cheap afternoon hotel stay.
Budget options are surprisingly plentiful. The Hilton San Francisco Union Square sells a hotel pass from $22 covering the heated outdoor pool, hot tub and the sky bar on the 46th floor — the highest in the city. Hotel Caza at Fisherman's Wharf also starts at $22, with pool loungers and cabanas available (cabanas come with complimentary champagne). The Hyatt Centric Fisherman's Wharf, from $45, throws in an outdoor pool, hot tub, gym and a free bike rental, handy if you want to pedal off the crowded waterfront for a few hours.
For something different, Alchemy Springs & Sauna Garden is a communal bathhouse with a sauna garden pass from $62, including a community sauna, cold plunge, fire pit and thermal benches. At the top end, The Spa at Equinox Sports Club sells multi-hour treatment packages from $384, combining massage and bodywork in 80-, 150- or 160-minute sessions. And if pickleball is more your thing, the Fairmont on Nob Hill rents court slots from just $24, though note that its day rooms don't include pool or gym access.
Why it matters: San Francisco hotels can be punishingly expensive, and many travellers only want a pool or spa for a few hours anyway. Day passes let you taste the luxury tier of the city's hotels at a fraction of the room rate — ideal for a layover, a hot afternoon, or a self-care day between sightseeing.
TravelAwaits