Spruce Cafe & Patisserie
Spruce Cafe and Patisserie, located in South San Francisco, CA, is a casual joint that serves up a variety of tasty eats and delicious caffeinated brews. Fido is welcome to join you at one of their pet-friendly outdoor tables while you enjoy your day. Start off with a Cappuccino or a Mocha, and munch on a Salami Havarti Sandwich with salami, garlic aioli, greens, red onion, and Havarti cheese. Spruce Cafe and Patisserie is open Monday through Thursday from 7:30am to 6pm, Friday from 7:30am to 8pm, Saturday from 9am to 8pm, and Sunday from 9am to 6pm.
Visit Website
Or call (650) 634-8438 for more information.
Reviews
Questions & Answers
Be the first to ask a question about this restaurant.
Traveler Photos
We haven‘t received any photos of Spruce Cafe & Patisserie yet.
Want to feature your creature? Upload a photo of your pet at Spruce Cafe & Patisserie! You can also share by using the hashtag #bringfido on Facebook, X, TikTok or Instagram.
Area Info
Nearby Hotels
search[item] != defaultSearch[item]).map(item => lodgingContextDataParamMap[item] + '=' + encodeURIComponent(search[item])).concat(search['childAges'].map(item => 'child_ages=' + item)).concat(search['petTypes'].map(item => 'pet_types=' + item)).concat(search['petWeights'].map(item => 'pet_weights=' + item)).concat([(search.petWeights.some(weight => (weight || 0) >= 50) || search.largeAllowed) ? 'large_allowed=on' : '', (search.dogs > (search.type == 'rentals' ? 1 : search.rooms) || search.multipleAllowed) ? 'multiple_allowed=on' : '', (search.petTypes.some(type => type == 2) || search.catsAllowed) ? 'cats_allowed=on' : '']).concat(search['amenities'].slice().sort().map(item => 'amenities=' + item)).filter(item => item).join('&')].reduce((x, y) => y ? x + y : '')" data-vars-link-city-id="14503" data-vars-link-content-group="restaurant/details" data-vars-link-placement="nearby" data-vars-link-property-id="69068">
search[item] != defaultSearch[item]).map(item => lodgingContextDataParamMap[item] + '=' + encodeURIComponent(search[item])).concat(search['childAges'].map(item => 'child_ages=' + item)).concat(search['petTypes'].map(item => 'pet_types=' + item)).concat(search['petWeights'].map(item => 'pet_weights=' + item)).concat([(search.petWeights.some(weight => (weight || 0) >= 50) || search.largeAllowed) ? 'large_allowed=on' : '', (search.dogs > (search.type == 'rentals' ? 1 : search.rooms) || search.multipleAllowed) ? 'multiple_allowed=on' : '', (search.petTypes.some(type => type == 2) || search.catsAllowed) ? 'cats_allowed=on' : '']).concat(search['amenities'].slice().sort().map(item => 'amenities=' + item)).filter(item => item).join('&')].reduce((x, y) => y ? x + y : '')" data-vars-link-city-id="14503" data-vars-link-content-group="restaurant/details" data-vars-link-placement="nearby" data-vars-link-property-id="69068">
search[item] != defaultSearch[item]).map(item => lodgingContextDataParamMap[item] + '=' + encodeURIComponent(search[item])).concat(search['childAges'].map(item => 'child_ages=' + item)).concat(search['petTypes'].map(item => 'pet_types=' + item)).concat(search['petWeights'].map(item => 'pet_weights=' + item)).concat([(search.petWeights.some(weight => (weight || 0) >= 50) || search.largeAllowed) ? 'large_allowed=on' : '', (search.dogs > (search.type == 'rentals' ? 1 : search.rooms) || search.multipleAllowed) ? 'multiple_allowed=on' : '', (search.petTypes.some(type => type == 2) || search.catsAllowed) ? 'cats_allowed=on' : '']).concat(search['amenities'].slice().sort().map(item => 'amenities=' + item)).filter(item => item).join('&')].reduce((x, y) => y ? x + y : '')" data-vars-link-city-id="14503" data-vars-link-content-group="restaurant/details" data-vars-link-placement="nearby" data-vars-link-property-id="69068">
Nearby Activities
search[item] != defaultSearch[item]).map(item => lodgingContextDataParamMap[item] + '=' + encodeURIComponent(search[item])).concat(search['childAges'].map(item => 'child_ages=' + item)).concat(search['petTypes'].map(item => 'pet_types=' + item)).concat(search['petWeights'].map(item => 'pet_weights=' + item)).concat([(search.petWeights.some(weight => (weight || 0) >= 50) || search.largeAllowed) ? 'large_allowed=on' : '', (search.dogs > (search.type == 'rentals' ? 1 : search.rooms) || search.multipleAllowed) ? 'multiple_allowed=on' : '', (search.petTypes.some(type => type == 2) || search.catsAllowed) ? 'cats_allowed=on' : '']).concat(search['amenities'].slice().sort().map(item => 'amenities=' + item)).filter(item => item).join('&')].reduce((x, y) => y ? x + y : '')" data-vars-link-city-id="14503" data-vars-link-content-group="restaurant/details" data-vars-link-placement="nearby" data-vars-link-property-id="69068">
search[item] != defaultSearch[item]).map(item => lodgingContextDataParamMap[item] + '=' + encodeURIComponent(search[item])).concat(search['childAges'].map(item => 'child_ages=' + item)).concat(search['petTypes'].map(item => 'pet_types=' + item)).concat(search['petWeights'].map(item => 'pet_weights=' + item)).concat([(search.petWeights.some(weight => (weight || 0) >= 50) || search.largeAllowed) ? 'large_allowed=on' : '', (search.dogs > (search.type == 'rentals' ? 1 : search.rooms) || search.multipleAllowed) ? 'multiple_allowed=on' : '', (search.petTypes.some(type => type == 2) || search.catsAllowed) ? 'cats_allowed=on' : '']).concat(search['amenities'].slice().sort().map(item => 'amenities=' + item)).filter(item => item).join('&')].reduce((x, y) => y ? x + y : '')" data-vars-link-city-id="14503" data-vars-link-content-group="restaurant/details" data-vars-link-placement="nearby" data-vars-link-property-id="69068">
Similar Restaurants
search[item] != defaultSearch[item]).map(item => lodgingContextDataParamMap[item] + '=' + encodeURIComponent(search[item])).concat(search['childAges'].map(item => 'child_ages=' + item)).concat(search['petTypes'].map(item => 'pet_types=' + item)).concat(search['petWeights'].map(item => 'pet_weights=' + item)).concat([(search.petWeights.some(weight => (weight || 0) >= 50) || search.largeAllowed) ? 'large_allowed=on' : '', (search.dogs > (search.type == 'rentals' ? 1 : search.rooms) || search.multipleAllowed) ? 'multiple_allowed=on' : '', (search.petTypes.some(type => type == 2) || search.catsAllowed) ? 'cats_allowed=on' : '']).concat(search['amenities'].slice().sort().map(item => 'amenities=' + item)).filter(item => item).join('&')].reduce((x, y) => y ? x + y : '')" data-vars-link-city-id="14503" data-vars-link-content-group="restaurant/details" data-vars-link-placement="nearby" data-vars-link-property-id="69068">
search[item] != defaultSearch[item]).map(item => lodgingContextDataParamMap[item] + '=' + encodeURIComponent(search[item])).concat(search['childAges'].map(item => 'child_ages=' + item)).concat(search['petTypes'].map(item => 'pet_types=' + item)).concat(search['petWeights'].map(item => 'pet_weights=' + item)).concat([(search.petWeights.some(weight => (weight || 0) >= 50) || search.largeAllowed) ? 'large_allowed=on' : '', (search.dogs > (search.type == 'rentals' ? 1 : search.rooms) || search.multipleAllowed) ? 'multiple_allowed=on' : '', (search.petTypes.some(type => type == 2) || search.catsAllowed) ? 'cats_allowed=on' : '']).concat(search['amenities'].slice().sort().map(item => 'amenities=' + item)).filter(item => item).join('&')].reduce((x, y) => y ? x + y : '')" data-vars-link-city-id="14503" data-vars-link-content-group="restaurant/details" data-vars-link-placement="nearby" data-vars-link-property-id="69068">
search[item] != defaultSearch[item]).map(item => lodgingContextDataParamMap[item] + '=' + encodeURIComponent(search[item])).concat(search['childAges'].map(item => 'child_ages=' + item)).concat(search['petTypes'].map(item => 'pet_types=' + item)).concat(search['petWeights'].map(item => 'pet_weights=' + item)).concat([(search.petWeights.some(weight => (weight || 0) >= 50) || search.largeAllowed) ? 'large_allowed=on' : '', (search.dogs > (search.type == 'rentals' ? 1 : search.rooms) || search.multipleAllowed) ? 'multiple_allowed=on' : '', (search.petTypes.some(type => type == 2) || search.catsAllowed) ? 'cats_allowed=on' : '']).concat(search['amenities'].slice().sort().map(item => 'amenities=' + item)).filter(item => item).join('&')].reduce((x, y) => y ? x + y : '')" data-vars-link-city-id="14503" data-vars-link-content-group="restaurant/details" data-vars-link-placement="nearby" data-vars-link-property-id="69068">
search[item] != defaultSearch[item]).map(item => lodgingContextDataParamMap[item] + '=' + encodeURIComponent(search[item])).concat(search['childAges'].map(item => 'child_ages=' + item)).concat(search['petTypes'].map(item => 'pet_types=' + item)).concat(search['petWeights'].map(item => 'pet_weights=' + item)).concat([(search.petWeights.some(weight => (weight || 0) >= 50) || search.largeAllowed) ? 'large_allowed=on' : '', (search.dogs > (search.type == 'rentals' ? 1 : search.rooms) || search.multipleAllowed) ? 'multiple_allowed=on' : '', (search.petTypes.some(type => type == 2) || search.catsAllowed) ? 'cats_allowed=on' : '']).concat(search['amenities'].slice().sort().map(item => 'amenities=' + item)).filter(item => item).join('&')].reduce((x, y) => y ? x + y : '')" data-vars-link-city-id="14503" data-vars-link-content-group="restaurant/details" data-vars-link-placement="nearby" data-vars-link-property-id="69068">
search[item] != defaultSearch[item]).map(item => lodgingContextDataParamMap[item] + '=' + encodeURIComponent(search[item])).concat(search['childAges'].map(item => 'child_ages=' + item)).concat(search['petTypes'].map(item => 'pet_types=' + item)).concat(search['petWeights'].map(item => 'pet_weights=' + item)).concat([(search.petWeights.some(weight => (weight || 0) >= 50) || search.largeAllowed) ? 'large_allowed=on' : '', (search.dogs > (search.type == 'rentals' ? 1 : search.rooms) || search.multipleAllowed) ? 'multiple_allowed=on' : '', (search.petTypes.some(type => type == 2) || search.catsAllowed) ? 'cats_allowed=on' : '']).concat(search['amenities'].slice().sort().map(item => 'amenities=' + item)).filter(item => item).join('&')].reduce((x, y) => y ? x + y : '')" data-vars-link-city-id="14503" data-vars-link-content-group="restaurant/details" data-vars-link-placement="nearby" data-vars-link-property-id="69068">
search[item] != defaultSearch[item]).map(item => lodgingContextDataParamMap[item] + '=' + encodeURIComponent(search[item])).concat(search['childAges'].map(item => 'child_ages=' + item)).concat(search['petTypes'].map(item => 'pet_types=' + item)).concat(search['petWeights'].map(item => 'pet_weights=' + item)).concat([(search.petWeights.some(weight => (weight || 0) >= 50) || search.largeAllowed) ? 'large_allowed=on' : '', (search.dogs > (search.type == 'rentals' ? 1 : search.rooms) || search.multipleAllowed) ? 'multiple_allowed=on' : '', (search.petTypes.some(type => type == 2) || search.catsAllowed) ? 'cats_allowed=on' : '']).concat(search['amenities'].slice().sort().map(item => 'amenities=' + item)).filter(item => item).join('&')].reduce((x, y) => y ? x + y : '')" data-vars-link-city-id="14503" data-vars-link-content-group="restaurant/details" data-vars-link-placement="nearby" data-vars-link-property-id="69068">
search[item] != defaultSearch[item]).map(item => lodgingContextDataParamMap[item] + '=' + encodeURIComponent(search[item])).concat(search['childAges'].map(item => 'child_ages=' + item)).concat(search['petTypes'].map(item => 'pet_types=' + item)).concat(search['petWeights'].map(item => 'pet_weights=' + item)).concat([(search.petWeights.some(weight => (weight || 0) >= 50) || search.largeAllowed) ? 'large_allowed=on' : '', (search.dogs > (search.type == 'rentals' ? 1 : search.rooms) || search.multipleAllowed) ? 'multiple_allowed=on' : '', (search.petTypes.some(type => type == 2) || search.catsAllowed) ? 'cats_allowed=on' : '']).concat(search['amenities'].slice().sort().map(item => 'amenities=' + item)).filter(item => item).join('&')].reduce((x, y) => y ? x + y : '')" data-vars-link-city-id="14503" data-vars-link-content-group="restaurant/details" data-vars-link-placement="nearby" data-vars-link-property-id="69068">
search[item] != defaultSearch[item]).map(item => lodgingContextDataParamMap[item] + '=' + encodeURIComponent(search[item])).concat(search['childAges'].map(item => 'child_ages=' + item)).concat(search['petTypes'].map(item => 'pet_types=' + item)).concat(search['petWeights'].map(item => 'pet_weights=' + item)).concat([(search.petWeights.some(weight => (weight || 0) >= 50) || search.largeAllowed) ? 'large_allowed=on' : '', (search.dogs > (search.type == 'rentals' ? 1 : search.rooms) || search.multipleAllowed) ? 'multiple_allowed=on' : '', (search.petTypes.some(type => type == 2) || search.catsAllowed) ? 'cats_allowed=on' : '']).concat(search['amenities'].slice().sort().map(item => 'amenities=' + item)).filter(item => item).join('&')].reduce((x, y) => y ? x + y : '')" data-vars-link-city-id="14503" data-vars-link-content-group="restaurant/details" data-vars-link-placement="nearby" data-vars-link-property-id="69068">
search[item] != defaultSearch[item]).map(item => lodgingContextDataParamMap[item] + '=' + encodeURIComponent(search[item])).concat(search['childAges'].map(item => 'child_ages=' + item)).concat(search['petTypes'].map(item => 'pet_types=' + item)).concat(search['petWeights'].map(item => 'pet_weights=' + item)).concat([(search.petWeights.some(weight => (weight || 0) >= 50) || search.largeAllowed) ? 'large_allowed=on' : '', (search.dogs > (search.type == 'rentals' ? 1 : search.rooms) || search.multipleAllowed) ? 'multiple_allowed=on' : '', (search.petTypes.some(type => type == 2) || search.catsAllowed) ? 'cats_allowed=on' : '']).concat(search['amenities'].slice().sort().map(item => 'amenities=' + item)).filter(item => item).join('&')].reduce((x, y) => y ? x + y : '')" data-vars-link-city-id="14503" data-vars-link-content-group="restaurant/details" data-vars-link-placement="nearby" data-vars-link-property-id="69068">