Skip to main content

48 Hours In Vancouver



Vancouver: one of Canada’s most ethnically diverse cities situated on the west coast. Nicknamed “Hollywood North” for it’s successful film industry, Vancouver is also home to scenic views, athleisure wear, and a world class dining scene. There is no shortage of activities to do, sights to see, and places to eat, throughout this beautiful city.

With the help of the local Yelp Vancouver community, we’ve curated picks for an amazing 48 hour experience in the city. Click here to save and follow this special Vancouver bookmark collection on the Yelp app.

_______________________________________________________________

8 AM TO NOON

Jam Cafe on Beatty

Reason to go: A feast for your eyes and mouths…The food and drinks are amazing, the fried chicken and french toast is my favourite and pairs really well with their grapefruit mimosa. Also, you might need coffee to pick yourself up after such a decadent meal.” Prabhdeep C. 

49th Parallel Coffee on Main Street

Reason to go: “Totally love this cafe. It is my go-to place for meeting up with clients, friends, everything… They have a huge space with lots of seating, while still feeling cozy. Their coffee and tea is GREAT, but my secret attraction is that they have Lucky’s Doughnuts. Oh man. Those doughnuts. I eye them every time I go in there, and give in about 90% of the time.” – Sab N.

Revolver

Reason to go: “Great java is plentiful in Vancouver, especially in the 4-block radius of Revolver, but coffee here is perfected to the tee. With an array of V60 brews, mostly locally roasted, and automatic machines for your pours, Revolver puts a smile on coffee-lovers’ faces. ” – Anthony L.

Fable Diner

Reason to go: I will admit that I am a creature of habit. Like Ron Swanson in the TV show Parks and Recreation, I love a good breakfast. This place delivers. Now, some of you may scoff at the idea of the roast duck pancake. It is a single pancake with a bunch of savoury stuff on top of it. However, I have to say that it is one of the best damn things on their menu.” – Bran S.

Jam Cafe on Beatty by Kenny T. on Yelp

NOON TO 4 PM

Granville Island Public Market

Reason to go: So much to see and do at Granville Island Public Market. So many different food/drink/cafe/restaurant/artisan options to explore! You can spend a couple of hours here or a full day.  There is often lots of entertainment happening inside and outside. You can sample some of the foods. The meat and cheese delicatessens are out of this world. Lee’s donuts are absolutely amazing if you buy them when they are freshly made! You will not be disappointed with a visit to Granville Island.” – Elliot S.

Vancouver Seawall

Reason to go: In any given area, you will see the water, with ferries or boats or scullers or seals and fish and all sorts of birds, and the mountains, and the woods and forestry of Stanley Park, and the gorgeous Vancouver city skyscape, or any combination of all the above.” – Nancy H.

Fanny Bay Oyster Co.

Reason to go: If you’re looking for oysters. This is the place to be… The food here is excellent, especially the oysters! Go between 3-6pm and it’s buck a shuck and it’s even better value!” – Sam L.

Purebread Bakery

Reason to go: The smells, the colours, the tastes of their pastries, cakes and cookies… I don’t even know where to start! It’s a perfect spot for a break, an intimate tea with a friend or a casual business talk over a coffee.” – Ornella S.

Deep Cove Park + Kayak Center

Reason to go: Deep Cove is a perfect little spot to see some mountains and aquatic life. We saw seals hunting, crabs crab-walking, and starfish… starring. It was great… Overall this place delivers an exceptional experience – great bang for your buck!” – Robyn S.

Granville Island Public Market by Jesse J. on Yelp

4 PM TO 8 PM

The Belgard Kitchen

Reason to go:The Belgard Kitchen has some of the tastiest dishes in the city. They source most of their ingredients locally, including happy meat from 2 Rivers Farm (important if you’re into ethical meat) and artisan GF bread from the East Village bakery. The dishes are designed to share, so go with friends, and go hungry. Tons of options on the menu for your meat loving, paleo, dairy free, gluten free and “eats anything” friends alike. Really cool vibes in this place, and lots of cool IG shots if you wanna snap away your food.” – Carly G.

Sushi Jin

Reason to go: This is the most authentic sushi restaurant I have visited in Vancouver. The taste resembles those from Tsukiji in Tokyo and kuromon in Osaka. Despite the shop being small and that the shop is family-operated, the food is top notch.” – Stephen L.

Phnom Penh

Reason to go: One of my go-to places whenever I have visitors coming to Vancouver… You’ll see almost every table with a plate of the house chicken wings. If you just look at the wings, it’s nothing spectacular, but there’s something in the batter and the dip that’s both sweet and salty and makes them very addicting.” – Jen K.

Hokkaido Ramen Santouka

Reason to go: “Hokkaido has been my go-to for top notch ramen in Vancouver since I got here a year ago. I’ve been to both locations, probably once or twice a month and I’ve never been disappointed.” – Tyler R.

Osterio Savio Volpe

Reason to go: “I have never been to a restaurant where I genuinely have no constructive criticism. I’ve been here around 5 times now and every single time I have dinner they always deliver greatness. Their menus change everyday (except for some of the starters and their famous half chicken) and I love that because you know they are using fresh seasonal produce.” – Vanessa N.

The Belgard Kitchen on Yelp

8 PM TO 12 AM

The Shameful Tiki Room

Reason to go: Tiki is home to the most fun drinking experience you’ll have in a long time (trust me on this one). Everything screams “tropical.” Everything from the ambiance, to what the waitresses are wearing, to the music… you’ll be hard pressed to find something non-tropical at Tiki! The drinks tasty, the food, palatable. If you order the Mystery Bowl (which we did), you’re greeted with an enthusiastic song and dance from all the staff members and a blow of smoke at the entrance.” – Selina L.

Parallel 49 Brewing

Reason to go: Parallel 49 is one of my favourite breweries to hang out at! They recently renovated the tasting room so now there’s a food truck inside – super cool… Great ambience, excellent service, delicious beers, and decent food. You should come here.”Yvonne L.

The General Public

Reason to go: They have a lot, and I literally mean a massive menu, of fusion sushi rolls, appies, and best of all: a wide selection of alcohol as well… A fantastic place to hang out and eat with friends. Great atmosphere, reasonably priced food and super friendly staff!” – Doris H.

Revel Room

Reason to go: Revel Room is definitely not generic; they have their own vibe not found anywhere else in Vancouver. While it’s relaxed and casual, the staff take the quality of their jam seriously. The food is good, the cocktails are spectacular, and the service is friendly… The kicker, though, is the live music: different styles at different times of the day and on different nights.” Dave R.

Grapes & Soda

Reason to go: “This place is very good. A small food menu combined with a cocktail list and a bartender who is so good and will make you anything if you ask politely. It is a treat to see such a small kitchen operation done right and one that is also experimenting with food that you often don’t see in a Vancouver bistro.” – Peter A.

33 Acres Brewing

Reason to go: “A great spot for craft brews in a neighborhood filled with them. 33 Acres is one of the stand outs here – calm vibes and attractive food options makes having their beer on location that much better.” – Jeremy W.

Parallel 49 Brewing by Fiona C. on Yelp

12 AM TO 4 AM

Lucy’s Eastside Diner

Reason to go: Lucy’s is my favourite diner in the city. It’s no nonsense, with decent food and a great atmosphere. And it’s 24 HOURS! This is the kind of place that you decide to go to when you’re slightly buzzed off of two beers… Their shakes are incredible and they always play the best music. The inside decor is fifties-cool and the staff is always accommodating… All in all, Lucy’s is a gem.” – Elizabeth K.

Fritz European Fry House

Reason to go: This is by far the best poutine you will ever try in the city of Vancouver.  I have tried soooo many poutines and I can never find one that outranks this one. The fries are perfectly crispy on the outside and fluffy on the inside. Their gravy tastes sooo rich but not too salty and personally when it comes to cheese curds I don’t think any place can go wrong… Fritz does all the right things when it comes to poutine and if you want to be a bit more adventurous there’s all the toppings and sauces your heart desires.” – Sasha K.

Score on Davie

Reason to go: At the end of the day Score is just a down to earth little bar on Davie street. The drinks are averagely priced. The food is better than your typical pub food. They play good music. The atmosphere is fun. The staff are helpful and energetic. It’s just an all around good place to meet up with friends and have a drink and a bite to eat!” – Lyle J.

Fritz European Fry House by Christine H. on Yelp

4 AM TO 8 AM

Eastwood Sanctuary

Reason to go: Cycle sanctuary indeed! Right in the heart of gastown, the brick walls and packed classes made me so excited to try this place out. Plus, they offer your first class free… A mix of spin, weights, and core, my body was done at the end of this class. Plus, I was thrilled to see all different body types, ages, and people in the class.” – Jess S.

Milano Coffee Roasters

Reason to go: Spacious minimalist loft spot in gastown with fantastic coffee. I love getting the lattés, especially when they have something special like a lavender latté or a raspberry mocha (with little chocolate shavings on top!). The espresso is SO flavourful and fresh. And the drink is made with love right in front of you.” – Kat M.

Prado Cafe + Kitchen

Reason to go:I would consider myself a London fog connoisseur. I have tried different cafes around the city in search for the best one. After months of searching I finally found it. Prado makes the best London fog in Vancouver! They make their own earl grey tea bags and use the perfect milk to water ratio.” – Ashley G.

Oxygen Yoga Yaletown

Reason to go: If you’re nervous about trying yoga for the first time, this place is for you! Even yogi veterans frequent this spot. Yoga/fitness instructors here have mindfulness and kindness at the forefront of every approach… from the front desk to the front of your mat.” – Ashley V.

Milano Coffee Roaster by Jessica M. on Yelp

Get the free Yelp app, and save this bookmarked itinerary for your next visit to Vancouver! We can’t wait to check out your reviews from your adventures throughout the city!

[gravityform id="4" title="false" ajax="true"]
<script type="text/javascript">var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,initializeOnLoaded:function(o){gform.domLoaded&&gform.scriptsLoaded?o():!gform.domLoaded&&gform.scriptsLoaded?window.addEventListener("DOMContentLoaded",o):document.addEventListener("gform_main_scripts_loaded",o)},hooks:{action:{},filter:{}},addAction:function(o,n,r,t){gform.addHook("action",o,n,r,t)},addFilter:function(o,n,r,t){gform.addHook("filter",o,n,r,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,n){gform.removeHook("action",o,n)},removeFilter:function(o,n,r){gform.removeHook("filter",o,n,r)},addHook:function(o,n,r,t,i){null==gform.hooks[o][n]&&(gform.hooks[o][n]=[]);var e=gform.hooks[o][n];null==i&&(i=n+"_"+e.length),gform.hooks[o][n].push({tag:i,callable:r,priority:t=null==t?10:t})},doHook:function(n,o,r){var t;if(r=Array.prototype.slice.call(r,1),null!=gform.hooks[n][o]&&((o=gform.hooks[n][o]).sort(function(o,n){return o.priority-n.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==n?t.apply(null,r):r[0]=t.apply(null,r)})),"filter"==n)return r[0]},removeHook:function(o,n,t,i){var r;null!=gform.hooks[o][n]&&(r=(r=gform.hooks[o][n]).filter(function(o,n,r){return!!(null!=i&&i!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][n]=r)}});</script> <div class='gf_browser_unknown gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_4' ><div id='gf_4' class='gform_anchor' tabindex='-1'></div> <div class='gform_heading'> <span class='gform_description'></span> </div><form data-form-name='Newsletter Signup Popup' method='post' enctype='multipart/form-data' target='gform_ajax_frame_4' id='gform_4' action='/community/48-hours-in-vancouver/#gf_4' novalidate> <div class='gform_body gform-body'><ul id='gform_fields_4' class='gform_fields top_label form_sublabel_below description_below'><li id="field_4_1" class="gfield field_sublabel_below field_description_below hidden_label gfield_visibility_visible gf-email" data-field-class="gf-email" data-js-reload="field_4_1"><label class='gfield_label screen-reader-text' for='input_4_1' >youremail@address.com</label><div class='ginput_container ginput_container_email'> <input name='input_1' id='input_4_1' type='email' value='' class='large' placeholder='youremail@address.com' aria-invalid="false" /> </div></li><li id="field_4_2" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_4_2"><label class='gfield_label' for='input_4_2' >Name</label><div class='ginput_container'><input name='input_2' id='input_4_2' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_4_2'>This field is for validation purposes and should be left unchanged.</div></li></ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_4' class='gform_button button' value='Submit' onclick='if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;} jQuery("#gform_4").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=4&amp;title=&amp;description=1&amp;tabindex=0' /> <input type='hidden' class='gform_hidden' name='is_submit_4' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='4' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_4' value='WyJbXSIsImE0YjFiMmUxY2IxMWVhYTljM2FhNzdkODk4NDUzZmY0Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_4' id='gform_target_page_number_4' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_4' id='gform_source_page_number_4' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_4' id='gform_ajax_frame_4' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe> <script> gform.initializeOnLoaded( function() {gformInitSpinner( 4, 'https://blog.yelp.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery('#gform_ajax_frame_4').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_4');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_4').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_4').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_4').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_4').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_4').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_4').val();gformInitSpinner( 4, 'https://blog.yelp.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery(document).trigger('gform_page_loaded', [4, current_page]);window['gf_submitting_4'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_4').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_4').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [4]);window['gf_submitting_4'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_4').text());}, 50);}else{jQuery('#gform_4').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [4, current_page]);} );} ); </script>
[gravityform id="4" title="false" ajax="true"]
<div class='gf_browser_unknown gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_4' ><div id='gf_4' class='gform_anchor' tabindex='-1'></div> <div class='gform_heading'> <span class='gform_description'></span> </div><form data-form-name='Newsletter Signup Popup' method='post' enctype='multipart/form-data' target='gform_ajax_frame_4' id='gform_4' action='/community/48-hours-in-vancouver/#gf_4' novalidate> <div class='gform_body gform-body'><ul id='gform_fields_4' class='gform_fields top_label form_sublabel_below description_below'><li id="field_4_1" class="gfield field_sublabel_below field_description_below hidden_label gfield_visibility_visible gf-email" data-field-class="gf-email" data-js-reload="field_4_1"><label class='gfield_label screen-reader-text' for='input_4_1' >youremail@address.com</label><div class='ginput_container ginput_container_email'> <input name='input_1' id='input_4_1' type='email' value='' class='large' placeholder='youremail@address.com' aria-invalid="false" /> </div></li><li id="field_4_2" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_4_2"><label class='gfield_label' for='input_4_2' >Name</label><div class='ginput_container'><input name='input_2' id='input_4_2' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_4_2'>This field is for validation purposes and should be left unchanged.</div></li></ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_4' class='gform_button button' value='Submit' onclick='if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;} jQuery("#gform_4").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=4&amp;title=&amp;description=1&amp;tabindex=0' /> <input type='hidden' class='gform_hidden' name='is_submit_4' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='4' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_4' value='WyJbXSIsImE0YjFiMmUxY2IxMWVhYTljM2FhNzdkODk4NDUzZmY0Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_4' id='gform_target_page_number_4' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_4' id='gform_source_page_number_4' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_4' id='gform_ajax_frame_4' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe> <script> gform.initializeOnLoaded( function() {gformInitSpinner( 4, 'https://blog.yelp.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery('#gform_ajax_frame_4').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_4');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_4').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_4').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_4').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_4').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_4').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_4').val();gformInitSpinner( 4, 'https://blog.yelp.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery(document).trigger('gform_page_loaded', [4, current_page]);window['gf_submitting_4'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_4').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_4').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [4]);window['gf_submitting_4'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_4').text());}, 50);}else{jQuery('#gform_4').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [4, current_page]);} );} ); </script>