04 November, 2022

Eight essential Melbourne rooftop bars

The city’s best bars aren’t all hidden down laneways. Look up to discover more good times.

There’s something special about being on a rooftop, and if the view’s good the experience can be spectacular. Take your holiday in Melbourne to the next level at these rooftop bars – even in chilly weather, when outdoor heaters fire up. They’re great places for raising a glass to this great bar town.

Siglo

Find the street-level door hiding in plain sight, ascend the narrow stairs to the classic Supper Club lounge-bar, and continue up to its smart-casual rooftop sibling, Siglo. Paris-style cafe chairs, tables draped in white, and a grand vista of Victoria’s neoclassical parliament building across the street make a big impression. Settle in with something fancy like cognac or Champagne, and even a Cuban cigar from the humidor.

Siglo. Photo: Jesse Hisco.

Madame Brussels

One of Melbourne’s original rooftop bars is still among its quirkiest. Named after a notorious 19th century brothel owner, and ironically styled after English garden parties and country clubs, Madame Brussels is about vintage frivolity. The menu includes old-fashioned favourites like Pimm’s, bubbly, scones and pâté, served with a super CBD view by bright young things in tennis whites.

Madame Brussels. Photo: Madame Brussels.

Her

Brought to you by the folks behind Yarra River bar Arbory Afloat, Melbourne’s cool new kid on the block is a five-level destination for dining, drinking and music. But let’s go straight to Her’s rooftop. Among Mediterranean-inspired decor almost as eye-catching as the city scenery, enjoy cool beats, snacks from the mod-Thai restaurant downstairs, and always-summer drinks including fruity cocktails.

Her Rooftop Bar Photo: Jesse Hisco.

QT’s rooftop

Melbourne’s QT hotel is like an ultra-contemporary arty party, especially at the indoor-outdoor rooftop bar. With plenty of designer furniture for elegant relaxation, this large space boasts one of the best panoramic views in town. It feels so swank you might want to order oysters and a bottle of Perrier-Jouet Grand Brut. There’s no side-eye for those who prefer beer and pizza though, as long as the smart-casual dress code is respected.

Ready to set sail on your next adventure?

Book Now

Palmz at the Carlton Hotel. Photo: Cormac Hanrahan / Visit Victoria.

Palmz

Once a down-and-out CBD pub, the Carlton Club has long been renowned for its moodily kitsch makeover including flocked wallpaper and a taxidermied ostrich wearing pearls. But wait, there’s more! Upstairs a whole different kettle of kitsch awaits at its Palmz rooftop bar. This tropical-themed urban oasis has lots of full-sized palm trees, bamboo trim, a thatched hut bar and views down on busy Bourke Street. Margarita, anyone?

Johnny's Green Room. Photo: Ain Raadik / Visit Victoria.

Johnny’s Green Room

Some of the best city vistas are actually just beyond the CBD in inner suburbs like Carlton, where you’ll find Johnny’s Green Room. An epic Melbourne skyline isn’t the only box ticked at this rooftop bar. It crowns the recent multi-storey renovation of an iconic Italian grocery, so the menu’s bellissima, from Aperol spritz to crunchy arancini.

Corner Hotel. Photo: Jesse Hisco.

Corner Hotel

It’s a live-music institution, so plenty of people get their kicks in the dark downstairs, but there’s another side to Richmond’s Corner Hotel. The indoor-outdoor rooftop’s craft beers and quality pub grub are loved by locals, as well as punters from Melbourne’s sports precinct a short walk away. It’s only one floor up, but the sunset view is an urban classic of city skyline and rumbling trains.

Captain Baxter. Photo: Captain Baxter.

Captain Baxter

Warm, sunny days in the inner seaside suburb of St Kilda are a Melbourne dream come true, so it’s odd there aren’t many rooftop bars taking in the postcard vistas of palm trees and bay. Join those in the know at Captain Baxter, a restaurant and bar embracing its prime beachside location with summery drinks, seafood and smart beach-house decor.

Please drink responsibly.

Find out more about Spirit of Tasmania's new Victorian home, Spirit of Tasmania Quay, just an hour's drive from Melbourne CBD.

 

Information included in this blog is correct at the time of publishing. Please contact individual operators for further information.

Book now

Come aboard and experience the joys of sailing for yourself. Book now

Geelong Terminal

Discover Spirit of Tasmania Quay, Geelong, the new Victorian home of Spirit of Tasmania. Geelong Terminal

Discover

Read our latest blogs on experiences in Tasmania and the mainland Discover
{{booking.getDepartureDate(legOfJourney, 'D MMM').toUpperCase()}} {{booking.getDepartureDate(legOfJourney, 'h:mm A')}}
Arrive {{booking.getArrivalDate(legOfJourney, 'D MMM h:mm A')}}
Your {{legOfJourney.toLowerCase()}} ticket
{{legOfJourney}} ticket
Departing {{getSailing().getOriginName()}}
{{getSailing().origin}} to {{getSailing().destination}}
{{legOfJourney}}
  • Fares Change
    • {{passengerLine.displayOverride}} {{passengerLine.currentQuantity}} x {{passengerLine.displayName}} ${{getSelectedFareTypePassengerGroupPrice(passengerLine)}} $0 ${{getSelectedPassengerGroupPrice(passengerLine) || 'To be selected'}} ({{getPassengerNet(passengerLine) | money}})
    • {{booking.getPetCount(legOfJourney)}} x {{Utils.pluralize('Pet', booking.getPetCount(legOfJourney))}} $0
    • 1 x {{vehicle.getSummaryDisplay()}}
      • {{extra}}
      • {{vehicle.getTotalLength()}}
      {{getVehiclePrice($index) === 0 ? 'Free' : '$' + getVehiclePrice($index)}} ({{getVehicleNet($index) | money }}) To be selected
    • ${{getPushbikesPrice(ExtrasCode.PushbikeRebate) || 'To be selected'}}
    • ${{getPushbikesPrice(ExtrasCode.PushbikeNoRebate) || 'To be selected'}}
    • ${{getPushbikesPrice(ExtrasCode.PushbikeTrailerRebate) || 'To be selected'}}
    • ${{getPushbikesPrice(ExtrasCode.PushbikeTrailerNoRebate) || 'To be selected'}}
  • Date Change
    • Departing {{booking.getDepartureDate(legOfJourney, 'dddd D MMMM')}} at {{booking.getDepartureDate(legOfJourney, 'h:mm A')}}
    • Arriving {{booking.getArrivalDate(legOfJourney, 'dddd D MMMM')}} at {{booking.getArrivalDate(legOfJourney, 'h:mm A')}}
  • Accommodation Change
    • {{getAppliedDealProduct().productName}} deal applied
    • To be selected
    • {{selectedAccommodationOption.quantity}} x {{selectedAccommodationOption.displayText}} ${{getSelectedFareTypeAccommodationOptionPrice(selectedAccommodationOption)}} ${{getSelectedAccommodationOptionPrice(selectedAccommodationOption)}} ({{getSelectedAccommodationOptionNet(selectedAccommodationOption) | money}})
    • Total {{legOfJourney.toLowerCase()}}
    • {{ getSailingTotalPriceText(legOfJourney) }} ({{getSailingTotalNet(legOfJourney) | money}})
{{booking.getDepartureDate(legOfJourney, 'D MMM').toUpperCase()}} {{booking.getDepartureDate(legOfJourney, 'h:mm A')}}
Arrive {{booking.getArrivalDate(legOfJourney, 'D MMM h:mm A')}}
Your {{legOfJourney.toLowerCase()}} ticket
{{legOfJourney}} ticket
Departing {{getSailing().getOriginName()}}
{{getSailing().origin}} to {{getSailing().destination}}
{{legOfJourney}}
  • Fares Change
    • {{passengerLine.displayOverride}} {{passengerLine.currentQuantity}} x {{passengerLine.displayName}} ${{getSelectedFareTypePassengerGroupPrice(passengerLine)}} $0 ${{getSelectedPassengerGroupPrice(passengerLine) || 'To be selected'}} ({{getPassengerNet(passengerLine) | money}})
    • {{booking.getPetCount(legOfJourney)}} x {{Utils.pluralize('Pet', booking.getPetCount(legOfJourney))}} $0
    • 1 x {{vehicle.getSummaryDisplay()}}
      • {{extra}}
      • {{vehicle.getTotalLength()}}
      {{getVehiclePrice($index) === 0 ? 'Free' : '$' + getVehiclePrice($index)}} ({{getVehicleNet($index) | money }}) To be selected
    • ${{getPushbikesPrice(ExtrasCode.PushbikeRebate) || 'To be selected'}}
    • ${{getPushbikesPrice(ExtrasCode.PushbikeNoRebate) || 'To be selected'}}
    • ${{getPushbikesPrice(ExtrasCode.PushbikeTrailerRebate) || 'To be selected'}}
    • ${{getPushbikesPrice(ExtrasCode.PushbikeTrailerNoRebate) || 'To be selected'}}
  • Date Change
    • Departing {{booking.getDepartureDate(legOfJourney, 'dddd D MMMM')}} at {{booking.getDepartureDate(legOfJourney, 'h:mm A')}}
    • Arriving {{booking.getArrivalDate(legOfJourney, 'dddd D MMMM')}} at {{booking.getArrivalDate(legOfJourney, 'h:mm A')}}
  • Accommodation Change
    • {{getAppliedDealProduct().productName}} deal applied
    • To be selected
    • {{selectedAccommodationOption.quantity}} x {{selectedAccommodationOption.displayText}} ${{getSelectedFareTypeAccommodationOptionPrice(selectedAccommodationOption)}} ${{getSelectedAccommodationOptionPrice(selectedAccommodationOption)}} ({{getSelectedAccommodationOptionNet(selectedAccommodationOption) | money}})
    • Total {{legOfJourney.toLowerCase()}}
    • {{ getSailingTotalPriceText(legOfJourney) }} ({{getSailingTotalNet(legOfJourney) | money}})
Your {{LegOfJourney.Return.toLowerCase()}} ticket
{{LegOfJourney.Return}} ticket
No {{LegOfJourney.Return}} Trip
No {{LegOfJourney.Return}} Trip
{{LegOfJourney.Return}}
{{ getChosenSoFarAmount() }} View trip summary
Trip total
$AUD
  • Outbound{{ getSailingTotalPriceText(LegOfJourney.Outbound) }} ({{getSailingTotalNet(LegOfJourney.Outbound) | money}})
  • Return{{ getSailingTotalPriceText(LegOfJourney.Return) }} ({{getSailingTotalNet(LegOfJourney.Return) | money}})
  • Travel Insurance${{booking.getTravelInsurancePrice()}}
  • Credit card fees{{ booking.getCreditCardFeePrice() | money }}
  • Total{{ getBookingTotalPriceText() }} ({{ booking.totalNet() | money }})
You're ready to get started building your fare.
Along the way you'll add passengers, any vehicles and accommodation.
Let's get started!

Passengers

Outbound Vehicle{{getVehiclePluralisation(LegOfJourney.Outbound)}}

Return Vehicle{{getVehiclePluralisation(LegOfJourney.Return)}}

Outbound Trip

Return Trip

Outbound Accommodation

  • {{option.quantity}} x {{option.displayText}}

Return Accommodation

  • {{option.quantity}} x {{option.displayText}}
Select vehicle{{getVehicleTitlePluralisation()}}
{{vehicleOptions.getDisplay()}}
Including: {{vehicleOptions.getExtrasDisplay()}}
Or use one from a recent search:
{{vehicleOptions.getDisplay()}} Including: {{vehicleOptions.getExtrasDisplay()}} Add Remove
{{IbpCms.vehiclesBookMotorhomeAsCarError}}
Total length cannot exceed {{getVehicleMaxTotalLength()}} metres.
Please call 1800 884 305 to complete your booking.
Please ring 1800 634 906 to make this booking.

Your model of vehicle is up to {{getEditableVehicleOptions().vehicle.heightInMetres | number: 2}}m high.

Carrying anything on the roof?

How high is the cargo on your roof?

Towing a caravan or trailer?

Total Dimensions

Total length cannot exceed {{getVehicleMaxTotalLength()}} metres.
Please call 1800 884 305 to complete your booking.
Remember to include the length of both the vehicle and towed unit together.
{{IbpCms.vehiclesFifthWheelerNotice}}

Towing a caravan or trailer?

Total Dimensions

Total length cannot exceed {{getVehicleMaxTotalLength()}} metres.
Please call 1800 884 305 to complete your booking.
Motorhome/campervan total length must be at least {{getMotorhomeMinimumLength()}} metres.
{{IbpCms.vehiclesFifthWheelerNotice}}

loading
Select vehicle{{getVehicleTitlePluralisation()}}
{{vehicleOptions.getDisplay()}}
Including: {{vehicleOptions.getExtrasDisplay()}}
Or use one from a recent search:
{{vehicleOptions.getDisplay()}} Including: {{vehicleOptions.getExtrasDisplay()}} Add Remove
{{IbpCms.vehiclesBookMotorhomeAsCarError}}
Total length cannot exceed {{getVehicleMaxTotalLength()}} metres.
Please call 1800 884 305 to complete your booking.
Please ring 1800 634 906 to make this booking.

Your model of vehicle is up to {{getEditableVehicleOptions().vehicle.heightInMetres | number: 2}}m high.

Carrying anything on the roof?

How high is the cargo on your roof?

Towing a caravan or trailer?

Total Dimensions

Total length cannot exceed {{getVehicleMaxTotalLength()}} metres.
Please call 1800 884 305 to complete your booking.
Remember to include the length of both the vehicle and towed unit together.
{{IbpCms.vehiclesFifthWheelerNotice}}

Towing a caravan or trailer?

Total Dimensions

Total length cannot exceed {{getVehicleMaxTotalLength()}} metres.
Please call 1800 884 305 to complete your booking.
Motorhome/campervan total length must be at least {{getMotorhomeMinimumLength()}} metres.
{{IbpCms.vehiclesFifthWheelerNotice}}

loading
Select {{legOfJourney.toLowerCase()}} date

${{getTotalMinimumPriceAdvice().totalMinimumPrice}}

Are all passengers Tasmanian residents?

Select {{legOfJourney.toLowerCase()}} date

${{getTotalMinimumPriceAdvice().totalMinimumPrice}}

Are all passengers Tasmanian residents?

Select {{legOfJourney.toLowerCase()}} accommodation

{{booking.getDepartureDate(legOfJourney, 'dddd D MMMM')}} at {{booking.getDepartureDate(legOfJourney, 'h:mm A')}}

Spirit Tip
{{IbpCms.accommodationSpiritTipCotSoldOut}}
Deal applied
  • {{getDealDetails(getAppliedDeal()).title}} Details

    {{getDealDetails(getAppliedDeal()).shortDescription}}

    Nice! Now it's time to add your cabin to the package.
    Remove
{{Utils.pluralize('Deal', numDealsOnSailing())}} available
  • {{getDealDetails(code).title}} Details

    {{getDealDetails(code).shortDescription}}

    Deal available
    Remove
loading
Accommodation available
  • Pet Kennels
    Twin Bed Four Bed

    {{option.displayText}} Details

    {{IbpCms.accommodationDayTicketsFlavourText}}
    {{IbpCms.accommodationPetKennelsFlavourText}}
    • {{feature.displayName}}
     
    ${{getOptionUnitPrice(option)}}
    per {{option.unitText}}
    ${{getSelectedFareTypeOptionUnitPrice(option)}} Original Price
    {{getOptionQuantity(option)}} or fewer {{Utils.pluralize(option.unitText, getOptionQuantity(option))}} available
    {{option.tooltipText}}
    Sold out
    For this sailing
    {{IbpCms.accommodationNotEnoughPeople}}
    {{option.displayText}}s not available with this deal.
    Remove Deal
    {{IbpCms.accommodationReclinersBlockedMessage}}
    {{IbpCms.accommodationNoDayTicketsForNightSailings}}
    Kennels are available for pets only.
loading
loading
Book the same accommodation on your return? Return accommodation price is {{ getReturnPriceForSameSelection() | money }}
loading
Select {{legOfJourney.toLowerCase()}} accommodation

{{booking.getDepartureDate(legOfJourney, 'dddd D MMMM')}} at {{booking.getDepartureDate(legOfJourney, 'h:mm A')}}

Spirit Tip
{{IbpCms.accommodationSpiritTipCotSoldOut}}
Deal applied
  • {{getDealDetails(getAppliedDeal()).title}} Details

    {{getDealDetails(getAppliedDeal()).shortDescription}}

    Nice! Now it's time to add your cabin to the package.
    Remove
{{Utils.pluralize('Deal', numDealsOnSailing())}} available
  • {{getDealDetails(code).title}} Details

    {{getDealDetails(code).shortDescription}}

    Deal available
    Remove
loading
Accommodation available
  • Pet Kennels
    Twin Bed Four Bed

    {{option.displayText}} Details

    {{IbpCms.accommodationDayTicketsFlavourText}}
    {{IbpCms.accommodationPetKennelsFlavourText}}
    • {{feature.displayName}}
     
    ${{getOptionUnitPrice(option)}}
    per {{option.unitText}}
    ${{getSelectedFareTypeOptionUnitPrice(option)}} Original Price
    {{getOptionQuantity(option)}} or fewer {{Utils.pluralize(option.unitText, getOptionQuantity(option))}} available
    {{option.tooltipText}}
    Sold out
    For this sailing
    {{IbpCms.accommodationNotEnoughPeople}}
    {{option.displayText}}s not available with this deal.
    Remove Deal
    {{IbpCms.accommodationReclinersBlockedMessage}}
    {{IbpCms.accommodationNoDayTicketsForNightSailings}}
    Kennels are available for pets only.
loading
loading
Book the same accommodation on your return? Return accommodation price is {{ getReturnPriceForSameSelection() | money }}
loading
Your trip summary

Your {{legOfJourney.toLowerCase()}} ticket {{legOfJourney}} ticket Departing {{getSailing().getOriginName()}} {{getSailing().origin}} to {{getSailing().destination}}

{{getDealName(legOfJourney)}} deal applied See details
Date
  • Departing {{booking.getDepartureDate(legOfJourney, 'dddd D MMMM, YYYY')}} at {{booking.getDepartureDate(legOfJourney, 'h:mm A')}} Change
  • Arriving {{booking.getArrivalDate(legOfJourney, 'dddd D MMMM, YYYY')}} at {{booking.getArrivalDate(legOfJourney, 'h:mm A')}}
  • Disembarking from {{booking.getDisembarkTime(legOfJourney, 'h:mm A')}}
Fares
  • Details Change
  • {{passengerLine.displayOverride}} {{passengerLine.currentQuantity}} x {{passengerLine.displayName}} ${{getSelectedFareTypePassengerGroupPrice(passengerLine)}} $0 ${{getSelectedPassengerGroupPrice(passengerLine) || 'To be selected'}} ({{getPassengerNet(passengerLine) | money}})
  • {{booking.getPetCount(legOfJourney)}} x {{Utils.pluralize('Pet', booking.getPetCount(legOfJourney))}} $0
  •  
    {{ IbpCms.fareNotManyPlacesLeftAtThisPriceMessage }}
Vehicles
  • Details Change Update Rego
  • No vehicles
  • 1 x {{vehicle.getSummaryDisplay()}} {{getVehiclePrice($index) === 0 ? 'Free' : '$' + getVehiclePrice($index)}} ({{getVehicleNet($index) | money }}) To be selected
    • {{extra}}
    • {{vehicle.getTotalLength()}}
  • ${{getPushbikesPrice(ExtrasCode.PushbikeRebate) || 'To be selected'}}
  • ${{getPushbikesPrice(ExtrasCode.PushbikeNoRebate) || 'To be selected'}}
  • ${{getPushbikesPrice(ExtrasCode.PushbikeTrailerRebate) || 'To be selected'}}
  • ${{getPushbikesPrice(ExtrasCode.PushbikeTrailerNoRebate) || 'To be selected'}}
Accommodation
  • Details Change
  • {{getAppliedDealProduct().productName}} deal applied
  • To be selected
  • {{option.quantity}} x {{option.displayText}} ${{getSelectedFareTypeAccommodationOptionPrice(option)}} ${{getSelectedAccommodationOptionPrice(option)}} ({{getSelectedAccommodationOptionNet(option) | money}})
Pets & Kennels
  • Details Change
  • {{getSailing().selectedAccommodation.getExtra(ExtrasCode.Kennel).quantity}} x {{Utils.pluralize("Pet", getSailing().selectedAccommodation.getExtra(ExtrasCode.Kennel).quantity)}} with {{Utils.pluralize("kennel", getSailing().selectedAccommodation.getExtra(ExtrasCode.Kennel).quantity)}} ${{getSelectedFareTypeAccommodationOptionPrice(getSailing().selectedAccommodation.getExtra(ExtrasCode.Kennel))}} ${{getSelectedAccommodationOptionPrice(getSailing().selectedAccommodation.getExtra(ExtrasCode.Kennel))}}
  • No pets travelling
Passengers & Allocation
  • Full Name Change
  • {{passenger.passengerDetails.firstName}} {{passenger.passengerDetails.lastName}}
    {{passenger.passengerDetails.firstName}} {{passenger.passengerDetails.lastName}}
    In a {{getAccommodationDisplayName(allocation.categoryCode, allocation.categoryName)}}
Cancel this sailing
Refund due: {{ getSailing().refundableAmount | money }}
  • {{ fee.description }}: {{ fee.price | money:false }}

Your {{legOfJourney.toLowerCase()}} ticket {{legOfJourney}} ticket Departing {{getSailing().getOriginName()}} {{getSailing().origin}} to {{getSailing().destination}}

{{getDealName(legOfJourney)}} deal applied See details
Date
  • Departing {{booking.getDepartureDate(legOfJourney, 'dddd D MMMM, YYYY')}} at {{booking.getDepartureDate(legOfJourney, 'h:mm A')}} Change
  • Arriving {{booking.getArrivalDate(legOfJourney, 'dddd D MMMM, YYYY')}} at {{booking.getArrivalDate(legOfJourney, 'h:mm A')}}
  • Disembarking from {{booking.getDisembarkTime(legOfJourney, 'h:mm A')}}
Fares
  • Details Change
  • {{passengerLine.displayOverride}} {{passengerLine.currentQuantity}} x {{passengerLine.displayName}} ${{getSelectedFareTypePassengerGroupPrice(passengerLine)}} $0 ${{getSelectedPassengerGroupPrice(passengerLine) || 'To be selected'}} ({{getPassengerNet(passengerLine) | money}})
  • {{booking.getPetCount(legOfJourney)}} x {{Utils.pluralize('Pet', booking.getPetCount(legOfJourney))}} $0
  •  
    {{ IbpCms.fareNotManyPlacesLeftAtThisPriceMessage }}
Vehicles
  • Details Change Update Rego
  • No vehicles
  • 1 x {{vehicle.getSummaryDisplay()}} {{getVehiclePrice($index) === 0 ? 'Free' : '$' + getVehiclePrice($index)}} ({{getVehicleNet($index) | money }}) To be selected
    • {{extra}}
    • {{vehicle.getTotalLength()}}
  • ${{getPushbikesPrice(ExtrasCode.PushbikeRebate) || 'To be selected'}}
  • ${{getPushbikesPrice(ExtrasCode.PushbikeNoRebate) || 'To be selected'}}
  • ${{getPushbikesPrice(ExtrasCode.PushbikeTrailerRebate) || 'To be selected'}}
  • ${{getPushbikesPrice(ExtrasCode.PushbikeTrailerNoRebate) || 'To be selected'}}
Accommodation
  • Details Change
  • {{getAppliedDealProduct().productName}} deal applied
  • To be selected
  • {{option.quantity}} x {{option.displayText}} ${{getSelectedFareTypeAccommodationOptionPrice(option)}} ${{getSelectedAccommodationOptionPrice(option)}} ({{getSelectedAccommodationOptionNet(option) | money}})
Pets & Kennels
  • Details Change
  • {{getSailing().selectedAccommodation.getExtra(ExtrasCode.Kennel).quantity}} x {{Utils.pluralize("Pet", getSailing().selectedAccommodation.getExtra(ExtrasCode.Kennel).quantity)}} with {{Utils.pluralize("kennel", getSailing().selectedAccommodation.getExtra(ExtrasCode.Kennel).quantity)}} ${{getSelectedFareTypeAccommodationOptionPrice(getSailing().selectedAccommodation.getExtra(ExtrasCode.Kennel))}} ${{getSelectedAccommodationOptionPrice(getSailing().selectedAccommodation.getExtra(ExtrasCode.Kennel))}}
  • No pets travelling
Passengers & Allocation
  • Full Name Change
  • {{passenger.passengerDetails.firstName}} {{passenger.passengerDetails.lastName}}
    {{passenger.passengerDetails.firstName}} {{passenger.passengerDetails.lastName}}
    In a {{getAccommodationDisplayName(allocation.categoryCode, allocation.categoryName)}}
Cancel this sailing
Refund due: {{ getSailing().refundableAmount | money }}
  • {{ fee.description }}: {{ fee.price | money:false }}
Grand total: {{ getBookingTotalPrice() | money }} ({{ booking.totalNet() | money }})
loading
loading
{{getHeaderText()}}

{{ IbpCms.passengerDetailsIntro }} {{ IbpCms.vehicleRegoIntro }}

Oops, you must be travelling in order to make this booking
Adults
Remove {{detail.firstName}} {{detail.lastName}}

Pensioners (booked as adults)
Pensioner No. Expiry Date
Invalid Date Date must be in the future Required
Remove {{detail.firstName}} {{detail.lastName}}

Children
Date of birth
Required Invalid Date
{{IbpCms.validationChildAge}} change to infant fare {{IbpCms.validationChildAge}} change to adult fare
Remove {{detail.firstName}} {{detail.lastName}}

Infants
Date of birth
Required Invalid Date Date of birth is in the future.
{{IbpCms.validationInfantAge}} change to child fare
Remove {{detail.firstName}} {{detail.lastName}}

Vehicle Registrations{{getSailingDisplay(LegOfJourney.Outbound)}}
{{vehicle.getDisplay()}} With Extras: {{vehicle.getExtrasDisplay()}}

Vehicle Registrations{{getSailingDisplay(LegOfJourney.Return)}}
{{vehicle.getDisplay()}} With Extras: {{vehicle.getExtrasDisplay()}}

loading
Review where everyone's staying

We've assigned accommodation automatically – feel free to re-arrange

Your {{legOfJourney.toLowerCase()}} accommodation

{{room.sectionName}}

  • {{Utils.convertNameCase(passenger.passengerDetails.title)}} {{Utils.convertNameCase(passenger.passengerDetails.firstName)}} {{Utils.convertNameCase(passenger.passengerDetails.lastName)}}
    Bed available
    Ticket available
    Move {{Utils.convertNameCase(passenger.passengerDetails.firstName)}} Leave {{Utils.convertNameCase(passenger.passengerDetails.firstName)}} here Swap with {{Utils.convertNameCase(passenger.passengerDetails.firstName)}} Move {{Utils.convertNameCase(getActiveSwapPassenger().passengerDetails.firstName)}} here {{passenger.message}}
  • {{Utils.convertNameCase(passenger.passengerDetails.title)}} {{Utils.convertNameCase(passenger.passengerDetails.firstName)}} {{Utils.convertNameCase(passenger.passengerDetails.lastName)}}
    Cot space available No cot space available Infant ticket available
    Move {{Utils.convertNameCase(passenger.passengerDetails.firstName)}} Leave {{Utils.convertNameCase(passenger.passengerDetails.firstName)}} here Swap with {{Utils.convertNameCase(passenger.passengerDetails.firstName)}} Move {{Utils.convertNameCase(getActiveSwapPassenger().passengerDetails.firstName)}} here {{passenger.message}}
loading
{{IbpCms.cabinAllocationBookSameForReturn}}

We've assigned accommodation automatically – feel free to re-arrange

Your {{legOfJourney.toLowerCase()}} accommodation

{{room.sectionName}}

  • {{Utils.convertNameCase(passenger.passengerDetails.title)}} {{Utils.convertNameCase(passenger.passengerDetails.firstName)}} {{Utils.convertNameCase(passenger.passengerDetails.lastName)}}
    Bed available
    Ticket available
    Move {{Utils.convertNameCase(passenger.passengerDetails.firstName)}} Leave {{Utils.convertNameCase(passenger.passengerDetails.firstName)}} here Swap with {{Utils.convertNameCase(passenger.passengerDetails.firstName)}} Move {{Utils.convertNameCase(getActiveSwapPassenger().passengerDetails.firstName)}} here {{passenger.message}}
  • {{Utils.convertNameCase(passenger.passengerDetails.title)}} {{Utils.convertNameCase(passenger.passengerDetails.firstName)}} {{Utils.convertNameCase(passenger.passengerDetails.lastName)}}
    Cot space available No cot space available Infant ticket available
    Move {{Utils.convertNameCase(passenger.passengerDetails.firstName)}} Leave {{Utils.convertNameCase(passenger.passengerDetails.firstName)}} here Swap with {{Utils.convertNameCase(passenger.passengerDetails.firstName)}} Move {{Utils.convertNameCase(getActiveSwapPassenger().passengerDetails.firstName)}} here {{passenger.message}}
loading
{{IbpCms.cabinAllocationBookSameForReturn}}
{{getPaymentHeading()}}

{{IbpCms.paymentIntro}}

Total due: {{getBookingTotalPriceBeforeVouchers()}}

Applied vouchers

  • #{{voucher.voucherNumber}}:  ${{voucher.value}}
Total now due: {{getBookingTotalPriceAfterVouchers()}}
Your voucher(s) will cover the cost of your booking. Please fill in the remaining details below. Add another voucher or use another payment method.
{{giftVoucherResult.message}}

You are cancelling the following sailing(s):
{{ sailing.getOriginName() }} to {{ sailing.getDestinationName() }} departing {{ Utils.dateFormat(sailing.getDate(), 'dddd D MMMM, YYYY') }}
Card # must match type Required
Expiry date
{{IbpCms.validationCreditCardExpiry}} Required
We won't store your payment details, they are used for a once off payment only.

Travel insurance

{{IbpCms.paymentTravelInsuranceFlavourText}}
Get travel insurance

{{payment.insurance.quote.label}} - Travel insurance premium = {{ payment.insurance.quote.price | money}}

View Details Remove
{{IbpCms.paymentNoTravelInsuranceWithGiftVouchers}}

Contact Details

Agency details


Bank Account Info
We won't store your payment details, they are used for a once off payment only.

Show/hide net value ${{ getBalanceToBePaid() }}

You must agree to the following Terms and Conditions: Conditions of Carriage, Tasmanian Biosecurity Conditions, Privacy Policy, Refund Policy, and the full terms and conditions of each fare linked below.

View our Privacy Statement regarding the personal information we have collected

Outbound fare summary
See full Terms & Conditions
Return fare summary
See full Terms & Conditions

Reason for cancellation

We’re sorry that you are no longer travelling with us and would like to understand why. Please note this response is optional and fully confidential.

I am cancelling my booking because:

loading

{{IbpCms.payToSignalRNegotiateError}}Try again

loading
Payment
One last step
{{agreementTimerTitle()}}

{{IbpCms.returnHereBlurb}}

Bank Details

Account Holder Name:

{{payToPaymentDetails.accountHolderName}}

BSB:

{{payToPaymentDetails.bsb}}

Account Number:

{{payToPaymentDetails.accountNumber}}

How to authorise the agreement

1

Login to your internet banking

2

Review the PayTo agreement

3

Authorise the agreement

4

Your booking will be confirmed and your e-ticket will be issued

5

You may receive an email from your bank advising that TT-Line Company Pty Ltd on behalf of Spirit of Tasmania have cancelled your agreement. This does not relate to the status of your booking, it is confirming that the agreement is not ongoing and this transaction is complete. No further action required.

Amount to pay: ${{getBookingTotalPriceAfterVouchers()}}
Booking updated

Dear {{ getCancelledBookingFirstName() }}

Your cancellation has been successful. {{ getPartialCancellationMessage() }}

Kind regards,

The team at Spirit of Tasmania

Cancellation successful

Dear {{ getCancelledBookingFirstName() }}

Your cancellation has been successful. We hope you book with us again soon.

Kind regards,

The team at Spirit of Tasmania

Booking confirmed!

Your booking reference is {{getBookingReference()}}.

Your travel insurance was successfully processed. Your policy number is {{getInsurancePolicyNumber()}}. Documentation will be sent to your specified email address.

Your travel insurance purchase was not successfully processed. To add travel insurance to your existing booking, please login to 'Manage my booking'.

Show/hide net value {{ Utils.formatCurrency(getAgentActualPaymentAmount()) }}

Booking Process Complete!

An e-Ticket with your booking number will be issued automatically after approval.
You will be redirected in seconds...

Close Window