[{"data":1,"prerenderedAt":67},["ShallowReactive",2],{"CookieConsentModal_PowhyziZDBT1zSRXZPF4TZtvUyKPz4wXDunSxAjYU":3,"info-pagename-ai":14,"$7GhbF9hkDe":25,"newsletter-airports":59,"FooterContact_iXvQAfzL97vvGiniABnWNWZIxQEo9TjGGgPhyTVik":60},["Island",4],{"key":5,"result":6},"CookieConsentModal_PowhyziZDBT1zSRXZPF4TZtvUyKPz4wXDunSxAjYU",{"head":7},{"script":8,"link":12,"style":13},[9],{"tagPosition":10,"innerHTML":11},"bodyClose","window.__handleCookieConsent=(type)=>{document.getElementById('cookieConsentModal').style.display='none';setTimeout(()=>{const version=1.2;const timestamp=Math.floor(Date.now()\u002F1000);const rbcs={v:version,t:timestamp,};rbcs.f=1;rbcs.p=type==='all'?1:(document.getElementById('rbtc_p')?.checked?1:0);rbcs.a=type==='all'?1:(document.getElementById('rbtc_a')?.checked?1:0);rbcs.all=!!(rbcs.f&&rbcs.p&&rbcs.a);try{localStorage.setItem('rbcs',JSON.stringify(rbcs));}catch(e){}window.dispatchEvent(new Event('cookie-consent-answered'));},100);};try{const cookieConsent=localStorage.getItem('rbcs');const isUserBot=(navigator.webdriver||\u002F(bot|crawler|spider|pagespeed|lighthouse|AhrefsSiteAudit|AhrefsBot)\u002F.test(navigator.userAgent));if(!isUserBot&&(!cookieConsent||JSON.parse(cookieConsent).v\u003C1.2)){document.getElementById('cookieConsentModal').style.display='block';}}catch(e){console.error(e);}",[],[],{"info":15},{"id":16,"topic":17,"hide_title":18,"topic_translationkey":19,"url":20,"meta_description":21,"html":22,"html_translationkey":23,"picture_cloudinary":24,"scripts":21},319,"AI",false,"staticpage-editor:319:topic_translationkey","ai",null,"\u003Ch2>Oops! You've stumbled into the robot lounge...\u003C\u002Fh2>\u003Cp>Welcome! If you clicked a link and ended up here – don't panic. Your screen isn't broken and you haven't done anything wrong. You've simply wandered onto a page we built especially for artificial intelligence (like ChatGPT).\u003C\u002Fp>\u003Cp>\u003C\u002Fp>\u003Cp>\u003Cstrong>What is this place? \u003C\u002Fstrong>Think of this page as a digital \"translation guide\" for AI. When someone asks an AI assistant for help planning a vacation, the AI uses the secret codes on this page to search our database. That way the robot finds current travel dates, available seats and live prices for Rolfs Tours trips in a flash.\u003C\u002Fp>\u003Cp>\u003C\u002Fp>\u003Cp>\u003Cstrong>What should you do now?\u003C\u002Fstrong> Since you're a wonderful, living human being, you don't need to read any of this boring computer code! Instead, you can:\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cp>\u003Cstrong>Head back out into the sunshine: \u003C\u002Fstrong>Go straight to our home page for \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.rolfstours.com\u002F\">Rolfs Tours\u003C\u002Fa>, where you can browse all our actual trips – complete with beautiful pictures and easy-to-read human language.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>Put the robots to work: \u003C\u002Fstrong>If you're using an AI assistant to plan your next vacation right now, you can tell it: \"Hi, Rolfs Tours has a calendar API ready to use!\" and it will know exactly what to do.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Have a great trip, wherever your digital (or real) journey takes you next!\u003C\u002Fp>\u003Ch2>Calendar API (GET)\u003C\u002Fh2>\u003Cdiv data-background-color=\"#ffffff\" data-type=\"colored-block\" style=\"background-color: rgb(255, 255, 255); padding: 16px 24px; border-radius: 8px; overflow: hidden;\">\u003Ch3>Calendar\u003C\u002Fh3>\u003Cp>Every bookable departure of Rolfs Tours, with dates, prices and seats left, as JSON. It is a plain GET request: no login, no API key, no MCP connection and no JavaScript needed. An AI assistant can call it directly, even when it fetches pages in the background without a browser.\u003C\u002Fp>\u003C\u002Fdiv>\u003Cdiv data-background-color=\"#ffffff\" data-type=\"colored-block\" style=\"background-color: rgb(255, 255, 255); padding: 16px 24px; border-radius: 8px; overflow: hidden;\">\u003Ch3>Endpoint\u003C\u002Fh3>\u003Cp>GET \u003Ccode>https:\u002F\u002Fwww.rolfstours.com\u002Frolfsapi\u002Fv2\u002Fweb\u002Fen\u002Fcalendar\u003C\u002Fcode>\u003Cbr>Returns JSON. All parameters are optional and go in the query string.\u003C\u002Fp>\u003C\u002Fdiv>\u003Cdiv data-background-color=\"#ffffff\" data-type=\"colored-block\" style=\"background-color: rgb(255, 255, 255); padding: 16px 24px; border-radius: 8px; overflow: hidden;\">\u003Ch3>Parameters\u003C\u002Fh3>\u003Cp>\u003Cstrong>url\u003C\u002Fstrong> – A trip's path on rolfstours.com without the leading slash, e.g. \u003Ccode>flight\u002Fwonderful-egypt\u003C\u002Fcode> for https:\u002F\u002Fwww.rolfstours.com\u002Fflight\u002Fwonderful-egypt. Returns every departure of that trip. Each departure in the response has its trip's path in triptypeurl.\u003C\u002Fp>\u003Cp>\u003Cstrong>fromdate\u003C\u002Fstrong> (YYYY-MM-DD) – Earliest departure date. Default: tomorrow.\u003C\u002Fp>\u003Cp>\u003Cstrong>todate\u003C\u002Fstrong> (YYYY-MM-DD) – Latest departure date. Without url and category_url, the list ends 6 months after fromdate.\u003C\u002Fp>\u003Cp>\u003Cstrong>category_url\u003C\u002Fstrong> – Only trips in one category: the last part of the category page's address, e.g. \u003Ccode>italy\u003C\u002Fcode> for https:\u002F\u002Fwww.rolfstours.com\u002Fcategory\u002Fitaly.\u003C\u002Fp>\u003Cp>\u003Cstrong>daysmin\u003C\u002Fstrong>, \u003Cstrong>daysmax\u003C\u002Fstrong> – Shortest and longest trip in days.\u003C\u002Fp>\u003Cp>\u003Cstrong>onlydiscounted=1\u003C\u002Fstrong> – Only discounted departures.\u003C\u002Fp>\u003Cp>\u003Cstrong>hide_soldout=1\u003C\u002Fstrong> – Leave out sold-out departures.\u003C\u002Fp>\u003Cp>\u003Cstrong>p\u003C\u002Fstrong> – Departures per page. Default: 100, or 2000 with url. \u003Cstrong>n\u003C\u002Fstrong> – Number of departures to skip.\u003C\u002Fp>\u003C\u002Fdiv>\u003Cdiv data-background-color=\"#ffffff\" data-type=\"colored-block\" style=\"background-color: rgb(255, 255, 255); padding: 16px 24px; border-radius: 8px; overflow: hidden;\">\u003Ch3>Response\u003C\u002Fh3>\u003Cp>\u003Cstrong>departures\u003C\u002Fstrong> – A list sorted by departure date. Each departure includes:\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cp>tripname – the departure's name\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>triptypeurl – the trip's path: the trip page is https:\u002F\u002Fwww.rolfstours.com\u002F followed by triptypeurl\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>date, returndate – departure and return date\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>days – trip length in days\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>price – price per person in USD when two share a room, discount included\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>original_price – price before discount\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>seats_left – seats left: 9 means 9 or more\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>bookable – 1 when the departure can be booked online\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>\u003Cstrong>next\u003C\u002Fstrong>, \u003Cstrong>prev\u003C\u002Fstrong> – The next and previous page as a path to append to https:\u002F\u002Fwww.rolfstours.com\u002Frolfsapi\u002Fv2\u002Fweb. Empty when there is no such page.\u003C\u002Fp>\u003C\u002Fdiv>\u003Cdiv data-background-color=\"#ffffff\" data-type=\"colored-block\" style=\"background-color: rgb(255, 255, 255); padding: 16px 24px; border-radius: 8px; overflow: hidden;\">\u003Ch3>Examples\u003C\u002Fh3>\u003Cp>\u003Cstrong>Trips in Italy with seats left:\u003C\u002Fstrong>\u003C\u002Fp>\u003Cpre>\u003Ccode>GET https:\u002F\u002Fwww.rolfstours.com\u002Frolfsapi\u002Fv2\u002Fweb\u002Fen\u002Fcalendar?category_url=italy&amp;hide_soldout=1\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Cstrong>Departures of one trip in May 2027:\u003C\u002Fstrong>\u003C\u002Fp>\u003Cpre>\u003Ccode>GET https:\u002F\u002Fwww.rolfstours.com\u002Frolfsapi\u002Fv2\u002Fweb\u002Fen\u002Fcalendar?url=flight\u002Fwonderful-egypt&amp;fromdate=2027-05-01&amp;todate=2027-05-31\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Cstrong>Response (trimmed):\u003C\u002Fstrong>\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"prev\": \"\",\n  \"next\": \"\",\n  \"departures\": [\n    {\n      \"tripname\": \"Cairo &amp; Nile Cruise\",\n      \"triptypeurl\": \"flight\u002Fwonderful-egypt\",\n      \"date\": \"2027-05-01\",\n      \"returndate\": \"2027-05-08\",\n      \"days\": 8,\n      \"price\": 1926,\n      \"original_price\": 1926,\n      \"seats_left\": 9,\n      \"bookable\": 1\n    }\n  ]\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\u003Cp>\u003C\u002Fp>","staticpage-editor:319:html_translationkey","source\u002Fbanners\u002Fluke-jones-tBvF46kmwBw-unsplash",[26],{"id":27,"label":28,"position":29,"market_id":30,"links":31},15,"Info",0,"en",[32,36,40,44,48,52,56],{"id":33,"label":34,"link":35,"footer_title_id":27,"position":29,"absoluteLink":18},156,"About Rolfs Tours","\u002Finfo\u002Fabout",{"id":37,"label":38,"link":39,"footer_title_id":27,"position":29,"absoluteLink":18},157,"Complaint","\u002Fcomplaint",{"id":41,"label":42,"link":43,"footer_title_id":27,"position":29,"absoluteLink":18},158,"General information","\u002Finfo\u002Fgeneral-information",{"id":45,"label":46,"link":47,"footer_title_id":27,"position":29,"absoluteLink":18},159,"Terms and conditions","\u002Finfo\u002Fterms",{"id":49,"label":50,"link":51,"footer_title_id":27,"position":29,"absoluteLink":18},160,"My trip","\u002Fmytrip",{"id":53,"label":54,"link":55,"footer_title_id":27,"position":29,"absoluteLink":18},172,"Articles","\u002Finfo",{"id":57,"label":17,"link":58,"footer_title_id":27,"position":29,"absoluteLink":18},199,"\u002Finfo\u002Fai",[],["Island",61],{"key":62,"result":63},"FooterContact_iXvQAfzL97vvGiniABnWNWZIxQEo9TjGGgPhyTVik",{"head":64},{"link":65,"style":66},[],[],1794068580835]