Make a Splash!

We have indoor and outdoor pools open for lap swimming and water walking! Learn more about our current pool safety guidelines and reserve your swim session below.

Indoor Swimming

Indoor pools at Downtown Berkeley and Oakland Y branches are now open for Lap Swimming and Water Walking! Downtown Berkeley and Oakland Y members age 13+ can reserve 30-40 minute swim sessions below.

Pool Hours:
Monday - Friday, 7:05 am - 12:50 pm
Monday - Thursday, 4:05 pm - 6:50 pm
Saturday, 8:05am - 11:45am

Key Details to Note:

  • Please plan to arrive in your swimming attire
  • Please bring your own towel
  • Only one swimmer per lane is permitted right now
  • Find the full rundown of our current lap swimming guidelines below

Find the full rundown of our current lap swimming guidelines here:
Oakland Lap Swim Guidelines | Berkeley Lap Swim Guidelines

Reserve Your Swim Session:
Reserve your 30 minute session using the YMCA of the East Bay App or the interactive schedule at the bottom of the page. Sessions can be booked 24 hours in advance.


For safety purposes right now, members may only reserve swim sessions at their home branch.

Outdoor Swimming

The outdoor pool at the Pleasant Hill YMCA is open for Lap Swimming and Water Walking and Pleasant Hill Y members age 13+ can reserve a 30 minute swim session below.

The outdoor pool is open Monday - Friday from 6:00 am - 6:45 pm and Saturday - Sunday from 8:00 am - 12:15 pm.

Members may reserve their own lap lane, as well as shared lap lanes, which allow for more swimmers per 30 minute session.

Pleasant Hill members can also sign up below for Water Aerobics classes on Tuesdays and Thursdays from 9:00 am - 9:45 am. The class is limited to 15 Pleasant Hill Y members by reservation only. Sign up below!

Reserve Your Swim Session:
Reserve your 30 minute session using the YMCA of the East Bay App or the interactive schedule at the bottom of the page. Sessions can be booked 24 hours in advance.


For safety purposes right now, members may only reserve swim sessions at their home branch.

${ getResultsCount() } results

${ dateFormatted }

${ item.time_start }

${ item.time_end }

${ item.duration_hours }h ${ item.duration_minutes }min

${ item.name }

${ item.category }

${ item.room }

${ addToCalendarDate(item.time_start_calendar) } ${ addToCalendarDate(item.time_end_calendar) } ${ item.timezone } ${ item.name }
Page ${ currentPage } of ${ getTotalPages() }