Surfer walking into the ocean at sunset in Canggu

Matahari Surf School · Batu Bolong, Bali

Surf lessons in Canggu.

Learn the basics or work on your next step with a local instructor. Private, group and family lessons at Batu Bolong Beach.

Book your lesson
Scroll to discover

Matahari Surf School

Meet your surf school

Surfboard standing on Batu Bolong beach Batu Bolong
Canggu, Bali

We’re a local surf school based at Batu Bolong Beach in Canggu.

New to surfing or already catching waves? Tell us what you’ve tried and what you want to work on. We’ll help you choose a lesson and plan the session around your level and the conditions.

1:1Private coaching
2–5Small group lessons
2hSurf sessions
Explore the lessons →
Surfer riding a clean wave in Bali

Choose your session

Find your lesson

Every lesson includes an instructor, surfboard, rash guard, beach briefing and coaching in the water.

01
Private surf lessons

One-to-one coaching

Private lesson

One instructor, just for you. Work on your first waves or focus on a specific part of your surfing.

1 person 2 hours 490.000 IDR
↗
02
Group surf lessons

Surf together

Group lesson

Share a session with a small group of 2–5 surfers, with an instructor to guide you in the water.

2-5 people 2 hours 390.000 IDR
↗
03
Family surf lessons

For your family

Family lesson

A private session for up to four family members, planned around your different ages and experience.

Up to 4 2 hours 1.800.000 IDR
↗
Powerful blue wave breaking in Bali

Time in the water

Your first wave. Or your next step.

Local instructors. Small groups.
A session planned around your level.

Find your lesson

Plan your session

Book your lesson

Choose your lesson and preferred date. We’ll confirm the meeting time based on the tide and surf conditions.

01

Choose a lessonPrivate, group or family

02

Pick your dateCheck available sessions

03

Meet at Batu BolongBoard and rash guard included

Not sure which lesson to choose?

WhatsApp us ↗
Online bookingChoose your lesson type
Live availability

{{ is_error_msg }}

Select Category
Select Service
{{ service_details.bookingpress_service_name }}

Duration: {{ service_details.bookingpress_service_duration_val }} {{ service_details.bookingpress_service_duration_label }}

Price: {{ service_details.bookingpress_service_price }}

There is no service available for booking
{{service_extra_title}}

{{ extra_service_error_msg }}

{{ service_extra_details.bookingpress_extra_service_name }}
{{ service_extra_details.bookingpress_extra_formatted_price }}
{{ service_extra_details.bookingpress_extra_service_duration }} {{ service_extra_details.bookingpress_extra_service_duration_unit }}
{{ n }}
{{ service_extra_details.bookingpress_service_description }}
Load More
Load Less
{{bring_anyone_title}}
{{ n }} {{ n == 1 ? number_of_person_title_singular : number_of_person_title }}

{{ is_error_msg }}

Date & Time
Time Slot
There is no time slots available
Morning
{{time_details.formatted_start_end_time}} {{ time_details.max_capacity }} {{slot_left_text}}
Afternoon
{{time_details.formatted_start_end_time}} {{ time_details.max_capacity }} {{slot_left_text}}
Evening
{{time_details.formatted_start_end_time}} {{ time_details.max_capacity }} {{slot_left_text}}
Night
{{time_details.formatted_start_end_time}} {{ time_details.max_capacity }} {{slot_left_text}} +1 day
{{time_details.formatted_start_end_time}} {{ time_details.max_capacity }} {{slot_left_text}}
{{time_details.formatted_start_end_time}} {{ time_details.max_capacity }} {{slot_left_text}}
{{time_details.formatted_start_end_time}} {{ time_details.max_capacity }} {{slot_left_text}}
{{time_details.formatted_start_end_time}} {{ time_details.max_capacity }} {{slot_left_text}} +1 day
Date & Time
Time Slot
There is no time slots available
Morning
{{time_details.formatted_start_end_time}} {{ time_details.max_capacity }} {{slot_left_text}}
Afternoon
{{time_details.formatted_start_end_time}} {{ time_details.max_capacity }} {{slot_left_text}}
Evening
{{time_details.formatted_start_end_time}} {{ time_details.max_capacity }} {{slot_left_text}}
Night
{{time_details.formatted_start_end_time}} {{ time_details.max_capacity }} {{slot_left_text}} +1 day
{{time_details.formatted_start_end_time}} {{ time_details.max_capacity }} {{slot_left_text}}
{{time_details.formatted_start_end_time}} {{ time_details.max_capacity }} {{slot_left_text}}
{{time_details.formatted_start_end_time}} {{ time_details.max_capacity }} {{slot_left_text}}
{{time_details.formatted_start_end_time}} {{ time_details.max_capacity }} {{slot_left_text}} +1 day

{{ is_error_msg }}

Basic Details
{{customer_form_fields_data.label}}

{{ is_error_msg }}

Summary

Your appointment booking summary

{{bpa_location_title}}
{{appointment_step_form_data.selected_location_name}}
Customer
{{appointment_step_form_data.form_fields.customer_name }}
{{ appointment_step_form_data.form_fields.customer_firstname }} {{ appointment_step_form_data.form_fields.customer_lastname }}
{{ appointment_step_form_data.form_fields.customer_email }}
Service
{{ appointment_step_form_data.selected_service_name}}
{{ cart_details.bookingpress_service_name}}
Date & Time
{{ appointment_step_form_data.customer_selected_end_date | bookingpress_format_date }}, {{appointment_step_form_data.selected_formatted_start_end_time}}
{{ appointment_step_form_data.selected_date | bookingpress_format_date }}, {{appointment_step_form_data.selected_formatted_start_end_time}}
{{ appointment_step_form_data.customer_selected_end_date || bookingpress_format_date }}
{{ appointment_step_form_data.selected_date | bookingpress_format_date }}
{{ appointment_step_form_data.selected_date | bookingpress_format_date }} - {{appointment_step_form_data.selected_end_date | bookingpress_format_date}}
Extras
{{extras_details.bookingpress_extra_name }}
{{extras_details.bookingpress_extra_price}} {{extras_details.bookingpress_extra_duration}}
{{extras_details.bookingpress_selected_qty}}
{{appointment_step_form_data.bookingpress_selected_extra_service_count}} Extras
Appointment Details
{{ appointment_step_form_data.selected_service_name}}
{{extras_details.bookingpress_extra_name }}
{{extras_details.bookingpress_extra_price}} {{extras_details.bookingpress_extra_duration}}
{{extras_details.bookingpress_selected_qty}}
{{appointment_step_form_data.bookingpress_selected_extra_service_count}} Extras
{{ appointment_step_form_data.selected_date | bookingpress_format_date }}, {{ appointment_step_form_data.selected_formatted_start_end_time }}
{{ appointment_step_form_data.selected_date | bookingpress_format_date }}
{{ appointment_step_form_data.selected_date | bookingpress_format_date }} - {{ appointment_step_form_data.selected_end_date | bookingpress_format_date }}
{{ cart_details.bookingpress_service_name}}
{{ cart_details.bookingpress_selected_end_date | bookingpress_format_date }}, {{ cart_details.formatted_start_end_time }}
{{ cart_details.customer_selected_end_date | bookingpress_format_date }}, {{cart_details.formatted_start_end_time}}
{{ cart_details.bookingpress_selected_date | bookingpress_format_date }}, {{ cart_details.formatted_start_end_time }}
{{ cart_details.bookingpress_selected_date | bookingpress_format_date }} - {{ cart_details.bookingpress_selected_end_date | bookingpress_format_date }}
{{ cart_details.bookingpress_selected_end_date | bookingpress_format_date }}, {{ cart_details.formatted_start_time }} to {{ cart_details.formatted_end_time }}
{{ cart_details.customer_selected_end_date | bookingpress_format_date }}, {{ cart_details.formatted_start_time }} to {{ cart_details.formatted_end_time }}
{{ cart_details.bookingpress_selected_date | bookingpress_format_date }}, {{ cart_details.formatted_start_time }} to {{ cart_details.formatted_end_time }}
{{ cart_details.bookingpress_selected_date | bookingpress_format_date }}
{{ cart_details.bookingpress_selected_end_date | bookingpress_format_date }}, {{ cart_details.formatted_start_time }} - {{ cart_details.formatted_end_time }}
{{ cart_details.customer_selected_end_date | bookingpress_format_date }}, {{ cart_details.formatted_start_time }} - {{ cart_details.formatted_end_time }}
{{ cart_details.bookingpress_selected_date | bookingpress_format_date }}, {{ cart_details.formatted_start_time }} - {{ cart_details.formatted_end_time }}
{{ cart_details.bookingpress_selected_date | bookingpress_format_date }}
{{ cart_details.bookingpress_selected_end_date | bookingpress_format_date }}, {{ cart_details.formatted_start_time }}
{{ cart_details.customer_selected_end_date | bookingpress_format_date }}, {{ cart_details.formatted_start_time }}
{{ cart_details.bookingpress_selected_date | bookingpress_format_date }}, {{ cart_details.formatted_start_time }}
{{ cart_details.bookingpress_selected_date | bookingpress_format_date }}
{{subtotal_text}}
{{ appointment_step_form_data.bookingpress_temp_subtotal_with_currency }}
{{ appointment_step_form_data.selected_service_price }}
{{tax_title}}
Tax
+{{ appointment_step_form_data.tax_amount }}
{{couon_applied_title}} {{ appointment_step_form_data.coupon_code }}
-{{ appointment_step_form_data.coupon_discount_amount_with_currecny }}
{{coupon_code_title}}

{{ coupon_code_msg }}

{{ coupon_code_msg }}

{{coupon_apply_button_label}} Applied
{{gift_card_applied_title}} {{ appointment_step_form_data.gift_card_code }}
-{{ appointment_step_form_data.gift_card_discounted_amount_with_currency }}
{{gift_card_code_title}}

{{ gift_card_code_msg }}

{{gift_card_apply_button_label}} Applied
{{ appointment_step_form_data.included_tax_label }}
{{ appointment_step_form_data.total_payable_amount_with_currency }}
{{ appointment_step_form_data.selected_service_price }}
{{deposit_heading_title}}
{{deposit_title}} {{full_payment_title}}
{{deposit_paying_amount_title}}
{{ appointment_step_form_data.bookingpress_deposit_amt }}
{{ appointment_step_form_data.deposit_payment_amount_percentage }}% ( {{ appointment_step_form_data.bookingpress_deposit_amt }} )
{{deposit_remaining_amount_title}} {{ appointment_step_form_data.included_tax_label }}
{{ appointment_step_form_data.included_tax_label }}
{{ appointment_step_form_data.bookingpress_deposit_due_amt }}
{{ appointment_step_form_data.total_payable_amount_with_currency }}
{{gift_card_applied_title}} {{ appointment_step_form_data.gift_card_code }}
-{{ appointment_step_form_data.gift_card_discounted_amount_with_currency }}
{{gift_card_code_title}}

{{ gift_card_code_msg }}

{{gift_card_apply_button_label}} Applied
{{subtotal_text}}
{{ appointment_step_form_data.bookingpress_temp_subtotal_with_currency }}
{{ appointment_step_form_data.bookingpress_cart_total_with_currency }}
{{tax_title}}
Tax
+{{ appointment_step_form_data.tax_amount }}
{{couon_applied_title}} {{ appointment_step_form_data.coupon_code }}
-{{ appointment_step_form_data.coupon_discount_amount_with_currecny }}
{{coupon_code_title}}

{{ coupon_code_msg }}

{{ coupon_code_msg }}

{{coupon_apply_button_label}} Applied
{{gift_card_applied_title}} {{ appointment_step_form_data.gift_card_code }}
-{{ appointment_step_form_data.gift_card_discounted_amount_with_currency }}
{{gift_card_code_title}}

{{ gift_card_code_msg }}

{{gift_card_apply_button_label}} Applied
{{ appointment_step_form_data.included_tax_label }}
{{ appointment_step_form_data.total_payable_amount_with_currency }}
{{deposit_heading_title}}
{{deposit_title}} {{full_payment_title}}
{{deposit_paying_amount_title}}
{{ appointment_step_form_data.bookingpress_deposit_total_with_currency }}
( {{ appointment_step_form_data.bookingpress_deposit_total_with_currency }} )
{{deposit_remaining_amount_title}} {{ appointment_step_form_data.included_tax_label }}
{{ appointment_step_form_data.included_tax_label }}
{{ appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency }}
{{ appointment_step_form_data.total_payable_amount_with_currency }}
{{ appointment_step_form_data.total_payable_amount_with_currency }}
There is no payment method available.
Select Payment Method

Pay Locally

PayPal

{{card_details_text}}

{{ is_error_msg }}

{{staffmember_heading_title}}
{{ any_staff_title }}
{{staffmember_details.bookingpress_staffmember_firstname}} {{staffmember_details.bookingpress_staffmember_lastname}}
{{ staffmember_details.bookingpress_staffmember_firstname}} {{staffmember_details.bookingpress_staffmember_lastname }}
{{staffmember_details.bookingpress_staffmember_email}}
{{staffmember_details.bookingpress_staffmember_phone}}
There is no staff member available for booking
{{staffmember_heading_title}}
{{ any_staff_title }}
{{staffmember_details.bookingpress_staffmember_firstname}} {{staffmember_details.bookingpress_staffmember_lastname}}
{{staffmember_details.bookingpress_staffmember_email}}
{{staffmember_details.bookingpress_staffmember_phone}}
Show less Show more

{{ is_error_msg }}

{{ location_title }}
{{ location_detail.bookingpress_location_name }}
{{ location_detail.bookingpress_location_address }}
{{ location_detail.bookingpress_location_phone_number }}

{{ is_error_msg }}

{{staffmember_heading_title}}
{{any_staff_title}}
{{ staffmember_details.bookingpress_staffmember_firstname }} {{ staffmember_details.bookingpress_staffmember_lastname }}

{{ staffmember_details.bookingpress_staffmember_email }}

{{ staffmember_details.bookingpress_staffmember_phone }}

There is no staff member available for booking
No categories and services added!

Before your lesson

A few things to know

Around two hours, including a beach briefing, warm-up and coaching in the water.

Bring swimwear, a towel, sunscreen and drinking water. Your surfboard and rash guard are included.

Yes. Let us know it’s your first time when you book. Your instructor will start with the basics and select equipment for your session.

At Warung Magic Wave on Batu Bolong Beach, Canggu. Your booking confirmation includes the meeting point and time.

If conditions aren’t suitable for your lesson, we’ll arrange another time or date with you.

Matahari surf experience in Bali

Your next session

Ready to go surfing?

Book your lesson ↗