KLIA - Kuala Lumpur
D: 00:30 - Seater, AC
KLIA - Kuala Lumpur
D: 22:30 - Seater, AC
KLIA - Kuala Lumpur
D: 20:30 - Seater, AC
KLIA - Kuala Lumpur
D: 18:30 - Seater, AC
KLIA - Kuala Lumpur
D: 17:00 - Seater, AC
KLIA - Kuala Lumpur
D: 15:40 - Seater, AC
KLIA - Kuala Lumpur
D: 14:20 - Seater, AC
KLIA - Kuala Lumpur
D: 13:00 - Seater, AC
KLIA - Kuala Lumpur
D: 11:30 - Seater, AC
KLIA - Kuala Lumpur
D: 09:30 - Seater, AC

Amenities

Why Choose Our Travel

                         ... Read More

Online Bus Ticket Booking

Return Bus Tickets

Customer Support

What Our Clients say

We in numbers

65000+

Customers

1400+

Daily Riders

80+

Destinations

Quick Links

Quick Links

Top Routes :

Siliguri-img

KL SENTRAL

Kolkata-img

KLIA2

KLIA1

Our Customers Speak

Skybus Customers know the best and we couldn't agree more

booking-confirm booking-cancel search-results ticket-details thank-you phone-blocking-to-ebooking> 404> 410>

Please Enter Your Details

Success

Thank you, Message has been sent successfully

<script> $('footer .footer-contact h3').html ("<img src='https://ticket-simply-mly-cms.s3.amazonaws.com/uploads/bcc/cms/asset/avatar/165/logo.jpg'>"); $( "#extra_115" ).insertAfter( $( "#extra_21" ) ); $( "#extra_276" ).insertAfter( $( "#react-app" ) ); </script> <script> $(".main-menu li:nth-child(5)").html("<div class='signinf'><h3><a href='#' ><img src='https://gst-contracts.s3.amazonaws.com/uploads/bcc/cms/asset/avatar/127813/cust1.png'>Sign in</a></h3></div>"); </script> <script> $('footer .footer-contact h3').html ("<img src='https://ticket-simply-mly-cms.s3.amazonaws.com/uploads/bcc/cms/asset/avatar/170/logo.jpg'>"); </script> <script> if(! $(".wrapper").hasClass("inner-page")){ $(".wrapper").addClass("emdedded_new"); } </script> <script> $('#extra_21 .count').each(function() { $(this).prop('Counter', 0).animate({ Counter: $(this).text() }, { duration: 10000, easing: 'swing', step: function(now) { if($(this).is(".rating")){ $(this).text(now.toFixed(1)); } else{ $(this).text(parseInt(now)); } } }); }); </script> <script> containerWidth = document.getElementById("container").clientWidth; nextButton = document.getElementById("next-button"); previousButton = document.getElementById("previous-button"); slide = document.getElementById("slide"); firstCardLeftMargin = 10; cardWidthAndRightMargin = 120 + 10; totalWidth = slide.clientWidth; const transformSlide = (val) => { slide.style.transform = `translate(${val}px,0px)`; }; const getCurrentPosition = () => { const stringValue = slide.style.transform; const transformValue = stringValue.substring( stringValue.indexOf("(") + 1, stringValue.lastIndexOf("p") ); return transformValue ? parseInt(transformValue) : 0; }; const getNextPosition = () => { //take current position of the slide const currentPosition = getCurrentPosition(); //last visibile pixel const lastVisiblePixel = containerWidth + -1 * currentPosition; //use the last visible pixel to calculate which card was fully-visible. //This will return a float whose floor will indicate the last fully-visible card. //We will show the next card as the first card after sliding const lastFullyVisibleCard = Math.floor( (lastVisiblePixel - firstCardLeftMargin) / cardWidthAndRightMargin ); //Calculate the distance from slideStart to the lastVisibleCard's end const distanceToNextCard = lastFullyVisibleCard * cardWidthAndRightMargin + firstCardLeftMargin; if (distanceToNextCard + containerWidth > totalWidth) { return totalWidth - containerWidth + firstCardLeftMargin; } return distanceToNextCard - 10; }; const getPreviousPosition = () => { const currentPosition = getCurrentPosition(); //take current position //getting first partially visible card. This will be the last card shown when the button is clicked. const firstPartiallyVisibleCard = Math.floor( (-1 * currentPosition - firstCardLeftMargin) / cardWidthAndRightMargin ); //get distance to card end from slide start const distanceToCardEndFromSlideStart = firstPartiallyVisibleCard * cardWidthAndRightMargin + firstCardLeftMargin; //translateX distance would be total distance - containerwidth const distanceNeeded = distanceToCardEndFromSlideStart - containerWidth; //return calculateDistance only if it is positive if (distanceNeeded > 0) { return -distanceNeeded; } //if needed distance < 0 i.e. card end is closer to start than container width means that this scroll would overshoot the left edge. //return 0 and return the slide to it's initial position return 0; }; nextButton.addEventListener("click", (event) => { transformSlide(-getNextPosition()); }); previousButton.addEventListener("click", (event) => { transformSlide(getPreviousPosition()); }); </script> <script> $("<p class='booking-text'>Book with us</p>").insertBefore(".booking-widget"); $(".main-menu li:nth-child(3)").text("Help Center") ); </script> <script> $('#customers-testimonials').owlCarousel({ loop: true, center: true, items: 3, margin: 0, autoplay: true, dots:false, autoplayTimeout: 8500, smartSpeed: 450, responsive: { 0: { items: 1 }, 768: { items: 2 }, 1170: { items: 3 } } }); </script>