{"id":41774,"date":"2025-08-30T20:33:55","date_gmt":"2025-08-30T18:33:55","guid":{"rendered":"https:\/\/insky.biz\/?page_id=41774"},"modified":"2025-09-07T20:15:08","modified_gmt":"2025-09-07T18:15:08","slug":"trip-designer","status":"publish","type":"page","link":"https:\/\/insky.biz\/en\/trip-designer\/","title":{"rendered":"Trip designer"},"content":{"rendered":"<p class=\"qtranxs-available-languages-message qtranxs-available-languages-message-en\">Sorry, this entry is only available in <a href=\"https:\/\/insky.biz\/uk\/wp-json\/wp\/v2\/pages\/41774\" class=\"qtranxs-available-language-link qtranxs-available-language-link-uk\" title=\"UA\">UA<\/a>.<\/p><style>\n.itd-wrap{max-width:960px;margin:28px auto;padding:22px;background:#fff;border:1px solid #e7eef3;border-radius:18px;box-shadow:0 10px 40px rgba(16,24,40,.08);font:16px\/1.5 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:#0b1f29}\n.itd-title{margin:0 0 6px;font-weight:900;font-size:28px}\n.itd-sub{margin:0 0 16px;color:#5a7282;font-size:14px}\n.itd-label{display:block;font-size:12px;color:#5a7282;margin:10px 0 6px}\n.itd-input{width:100%;padding:12px;border:1px solid #cfe0e6;border-radius:12px;background:#fbfeff;color:#0b1f29;outline:none}\n.itd-input:focus{border-color:#ff178b;box-shadow:0 0 0 4px rgba(255,23,139,.18)}\n.itd-int{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 2px}\n.itd-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid #cfe0e6;background:#f6fbfc}\n.itd-chip input{accent-color:#ff178b}\n.itd-btn{cursor:pointer;width:100%;margin-top:12px;padding:14px 16px;border:0;border-radius:12px;background:linear-gradient(135deg,#ff178b,#7b2cbf);color:#fff;font-weight:800;letter-spacing:.2px}\n.itd-note{font-size:12px;color:#6a7c86;margin-top:6px}\n.itd-res{display:none;margin-top:18px;border:1px solid #e6edf0;border-radius:16px;padding:16px;background:#fbfeff}\n.itd-day{margin-top:12px;border:1px solid #e6edf0;border-radius:12px;padding:12px;background:#ffffff}\n.itd-ev{margin-top:14px;padding:12px;border:1px dashed #d6e6ec;border-radius:12px;background:#ffffff}\n.itd-totals{margin-top:14px;border-top:1px dashed #d6e6ec;padding-top:10px;font-weight:800}\n.err{color:#b42318;background:#ffefee;border:1px solid #f7c5bf;padding:10px;border-radius:10px}\n.succ{color:#0b1f29}\n.itd-bul{display:inline-block;width:9px;height:9px;border-radius:999px;background:linear-gradient(135deg,#ff178b,#7b2cbf);margin-right:8px}\n\n\/* Underline links in itinerary for clarity *\/\n.itd-day a{ text-decoration: underline; }\n\n  \/* Print-friendly adjustments: use dark text on white background and hide interactive elements *\/\n  @media print {\n    .itd-wrap{background:#ffffff !important;color:#000000 !important;box-shadow:none !important;border-color:#fff !important;}\n    .itd-bul{background:#000000 !important;}\n    a{color:#000000 !important;text-decoration:underline !important;}\n    .itd-btn,#itd-actions{display:none !important;}\n    #itd-print-header{display:block !important;}\n  }\n<\/style>\n\n<div class=\"itd-wrap\" id=\"itd-root\">\n  <div class=\"itd-title\">InSky Trip Designer<\/div>\n  <div class=\"itd-sub\">Personalized add-on itinerary + evening concerts<\/div>\n\n  <form id=\"itd-form\">\n    <label class=\"itd-label\" for=\"itd-cities\">Destination cities<\/label>\n    <input id=\"itd-cities\" class=\"itd-input\" type=\"text\" placeholder=\"e.g., Paris, Rome, Milan\" required \/>\n\n    <label class=\"itd-label\" for=\"itd-dates\">Trip dates<\/label>\n    <input id=\"itd-dates\" class=\"itd-input\" type=\"text\" placeholder=\"Select trip dates\" required \/>\n\n    <label class=\"itd-label\">Interests<\/label>\n    <div class=\"itd-int\">\n      <label class=\"itd-chip\"><input type=\"checkbox\" id=\"i_family\"> Family<\/label>\n      <label class=\"itd-chip\"><input type=\"checkbox\" id=\"i_culture\"> Culture<\/label>\n      <label class=\"itd-chip\"><input type=\"checkbox\" id=\"i_nature\"> Nature<\/label>\n      <label class=\"itd-chip\"><input type=\"checkbox\" id=\"i_food\"> Food<\/label>\n      <label class=\"itd-chip\"><input type=\"checkbox\" id=\"i_shopping\"> Shopping<\/label>\n      <label class=\"itd-chip\"><input type=\"checkbox\" id=\"i_concerts\" checked> Concerts<\/label>\n    <\/div>\n\n    <button class=\"itd-btn\" type=\"submit\">Generate itinerary<\/button>\n    <div class=\"itd-note\">Pick a start and end date in one calendar.<\/div>\n  <\/form>\n\n  <!-- Action buttons (hidden until results are generated) -->\n  <div id=\"itd-actions\" style=\"display:none;margin-top:12px;gap:8px;flex-wrap:wrap;\">\n    <button type=\"button\" id=\"itd-copy-btn\" class=\"itd-btn\" style=\"width:auto;flex:1 1 auto;\">Copy<\/button>\n    <button type=\"button\" id=\"itd-pdf-btn\" class=\"itd-btn\" style=\"width:auto;flex:1 1 auto;\">Download PDF<\/button>\n    <button type=\"button\" id=\"itd-send-btn\" class=\"itd-btn\" style=\"width:auto;flex:1 1 auto;\">Send<\/button>\n  <\/div>\n  <!-- Email input wrapper; shown when the user clicks Send -->\n  <div id=\"itd-email-wrapper\" style=\"display:none;margin-top:12px;\">\n    <input type=\"email\" id=\"itd-email\" class=\"itd-input\" placeholder=\"Enter your email\" style=\"margin-bottom:8px;\" \/>\n    <button type=\"button\" id=\"itd-email-submit\" class=\"itd-btn\" style=\"width:100%;\">Send Itinerary<\/button>\n  <\/div>\n  <!-- Hidden print header with letterhead, shown only when printing -->\n  <div id=\"itd-print-header\" style=\"display:none;text-align:center;margin-top:20px;background:linear-gradient(135deg,#9b59b6,#8e44ad);color:#ffffff;padding:20px;border-radius:12px;\">\n    <div style=\"font-size:24px;font-weight:800;font-family:Trebuchet MS, Arial;\">INSKY TRIP DESIGNER<\/div>\n    <div>201 SE 2nd Ave, Miami FL 33131<\/div>\n    <div>insky@insky.biz<\/div>\n  <\/div>\n\n  <div id=\"itd-res\" class=\"itd-res\"><\/div>\n<\/div>\n\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/flatpickr\/dist\/flatpickr.min.css\">\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/flatpickr\"><\/script>\n\n<script>\n(function(){\n  const ajax = \"https:\\\/\\\/insky.biz\\\/wp-admin\\\/admin-ajax.php\";\n    \/\/ Upsell links for additional services. These point to Expedia, an insurance provider,\n    \/\/ Virgin cruises, and a mailto link for flight requests. If you need to change\n    \/\/ where a button points, update the corresponding URL below. Using constants here\n    \/\/ makes it easy to manage affiliate or partner destinations without modifying\n    \/\/ other parts of the script.\n    const upsellLinks = {\n      hotels: 'https:\/\/expedia.com\/affiliates\/expedia-home.7uZBnBF',\n      insurance: 'https:\/\/www.travelinsurance.com\/?utm_source=pap&a_aid=68235050ed231',\n      cruise: 'https:\/\/www.virginvoyages.com\/book\/voyage-planner\/find-a-voyage?cabins=1&currencyCode=USD&agentId=34632&agencyId=10760&bookingChannel=FMLINK&fbclid=IwZXh0bgNhZW0CMTEAAR5_ehngAmJiLI7ZMvzXlBSwe1EzchuySOhf99z0SytTlj2SfGvHnvoeGED-uA_aem__Vqc5Gm013K4fny7MyRT8g',\n      flight: 'mailto:insky@insky.biz?subject=Flight%20Request'\n    };\n  const f=document.getElementById('itd-form');\n  const out=document.getElementById('itd-res');\n  const actions=document.getElementById('itd-actions');\n  const copyBtn=document.getElementById('itd-copy-btn');\n  const pdfBtn=document.getElementById('itd-pdf-btn');\n  const sendBtn=document.getElementById('itd-send-btn');\n  const emailWrapper = document.getElementById('itd-email-wrapper');\n  const emailInput = document.getElementById('itd-email');\n  const emailSubmit = document.getElementById('itd-email-submit');\n  const dateInput=document.getElementById('itd-dates');\n\n  flatpickr(dateInput, { mode: \"range\", minDate: \"today\", dateFormat: \"Y-m-d\", disableMobile: true });\n  dateInput.setAttribute('readonly','readonly');\n\n  function parseRange(str){\n    if(!str) return [null,null];\n    const parts = str.replace(' to ', ',').split(',').map(s=>s.trim()).filter(Boolean);\n    return [parts[0]||null, parts[1]||parts[0]||null];\n  }\n  function esc(s){return String(s||'').replace(\/[&<>\"]\/g, c=>({'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;'}[c]));}\n\n  \/\/ Helper: convert itinerary HTML into plain text with URLs preserved for copy\/email\n  function htmlToTextWithLinks(html){\n    const div = document.createElement('div');\n    div.innerHTML = html;\n    \/\/ Expand links to include URL in parentheses\n    div.querySelectorAll('a').forEach(a => {\n      const linkText = a.textContent;\n      const href = a.getAttribute('href');\n      const span = document.createElement('span');\n      span.textContent = linkText + ' (' + href + ')';\n      a.replaceWith(span);\n    });\n    \/\/ Use innerText to preserve line breaks\n    return div.innerText || div.textContent || '';\n  }\n\n  \/\/ Handle click on copy button\n  copyBtn.addEventListener('click', function(){\n    const text = htmlToTextWithLinks(out.innerHTML);\n    if (navigator.clipboard){\n      navigator.clipboard.writeText(text).then(()=>{ alert('Itinerary copied to clipboard.'); });\n    } else {\n      \/\/ fallback: create textarea\n      const ta=document.createElement('textarea'); ta.value=text; document.body.appendChild(ta); ta.select(); try{ document.execCommand('copy'); alert('Itinerary copied to clipboard.'); } catch(e){ alert('Unable to copy.'); } document.body.removeChild(ta);\n    }\n  });\n\n  \/\/ Handle click on PDF button\n  pdfBtn.addEventListener('click', function(){\n    \/\/ open new window with itinerary and letterhead, apply print-friendly styling\n    const w=window.open('', '_blank');\n    \/\/ build letterhead HTML\n    const letterhead = '<div style=\"margin-bottom:20px;text-align:center;background:linear-gradient(135deg,#9b59b6,#8e44ad);color:#ffffff;padding:20px;border-radius:12px;\">'\n      + '<div style=\"font-size:24px;font-weight:800;font-family:Trebuchet MS, Arial;\">INSKY TRIP DESIGNER<\/div>'\n      + '<div>201 SE 2nd Ave, Miami FL 33131<\/div>'\n      + '<div>insky@insky.biz<\/div>'\n      + '<\/div>';\n    \/\/ use the itinerary HTML as is to preserve clickable links\n    const processed = out.innerHTML;\n    const html = '<html><head><title>Itinerary<\/title>'\n      + '<style>'\n      + 'body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:#0b1f29;background:#ffffff;padding:20px;}'\n      + '.itd-day h3{margin:0 0 8px 0;font-size:22px;}'\n      + '.itd-day li{margin:10px 0;}'\n      + 'a{color:#ff178b;text-decoration:underline;}'\n      + '@media print{'  \/\/ print-specific styles\n      + 'body{color:#000;background:#fff;}'\n      + 'a{color:#000;text-decoration:underline;}'\n      + '}'\n      + '<\/style><\/head><body>'\n      + letterhead\n      + processed\n      + '<\/body><\/html>';\n    w.document.write(html);\n    w.document.close();\n    w.focus();\n    \/\/ wait a moment for the content to render before printing\n    setTimeout(function(){ w.print(); w.close(); }, 800);\n  });\n\n  \/\/ Handle click on send button: show\/hide email input\n  sendBtn.addEventListener('click', function(){\n    if (emailWrapper.style.display === 'none') {\n      \/\/ reveal email input area\n      emailWrapper.style.display = 'block';\n      \/\/ ensure actions remain visible\n      actions.style.display = 'flex';\n      emailInput.focus();\n    } else {\n      \/\/ if already visible, hide it\n      emailWrapper.style.display = 'none';\n    }\n  });\n\n  \/\/ Handle click on email submit button\n  emailSubmit.addEventListener('click', function(){\n    const email = (emailInput.value || '').trim();\n    if (!email) {\n      alert('Please enter your email address');\n      emailInput.focus();\n      return;\n    }\n    \/\/ Build an HTML email body with gradient header and clickable links\n    const letterheadHTML = '<div style=\"margin-bottom:20px;text-align:center;background:linear-gradient(135deg,#9b59b6,#8e44ad);color:#ffffff;padding:20px;border-radius:12px;\">'\n      + '<div style=\"font-size:24px;font-weight:800;font-family:Trebuchet MS, Arial;\">INSKY TRIP DESIGNER<\/div>'\n      + '<div>201 SE 2nd Ave, Miami FL 33131<\/div>'\n      + '<div>insky@insky.biz<\/div>'\n      + '<\/div>';\n    \/\/ Use the existing itinerary HTML for content (inline styles already present)\n    const htmlBody = '<html><body>'+letterheadHTML+out.innerHTML+'<\/body><\/html>';\n    \/\/ Prepare FormData for AJAX email sending\n    const fdMail = new FormData();\n    fdMail.append('action','isky_v37_send_email');\n    fdMail.append('email',email);\n    fdMail.append('subject','Your trip itinerary');\n    fdMail.append('body', htmlBody);\n    fetch(ajax,{ method:'POST', body: fdMail })\n      .then(r=>r.json()).then(data=>{\n        if(data && data.ok){\n          alert('Itinerary sent to '+email+'.');\n          emailInput.value = '';\n          emailWrapper.style.display = 'none';\n        } else {\n          alert('Error sending email: '+(data && data.error ? data.error : 'Unknown error'));\n        }\n      }).catch(err=>{\n        alert('Network error: unable to send email.');\n      });\n  });\n\n  f.addEventListener('submit', function(ev){\n    ev.preventDefault();\n    \/\/ read multiple cities separated by comma\n    const citiesRaw=(document.getElementById('itd-cities').value||'').trim();\n    const cityList=citiesRaw.split(',').map(function(s){ return s.trim(); }).filter(Boolean);\n    const city = cityList[0] || '';\n    const [startDate,endDate]=parseRange(dateInput.value);\n    if(cityList.length===0 || !startDate || !endDate){ alert('Please select destination city\/cities and date range'); return; }\n\n    \/\/ hide actions while generating\n    actions.style.display='none';\n\n    const interests=[];\n    if(document.getElementById('i_family').checked) interests.push('family');\n    if(document.getElementById('i_culture').checked) interests.push('culture');\n    if(document.getElementById('i_nature').checked)  interests.push('nature');\n    if(document.getElementById('i_food').checked)    interests.push('food');\n    if(document.getElementById('i_shopping').checked) interests.push('shopping');\n    const wantConcerts = document.getElementById('i_concerts').checked ? '1' : '0';\n\n    out.style.display='block';\n    out.innerHTML='<div class=\"succ\">Generating\u2026<\/div>';\n\n    const fd=new FormData();\n    fd.append('action','isky_v37_generate');\n    \/\/ pass multiple cities as comma-separated string and first city for backwards compatibility\n    fd.append('destination_cities', cityList.join(','));\n    fd.append('destination_city', city);\n    fd.append('start_date', startDate);\n    fd.append('end_date', endDate);\n    fd.append('interests', interests.join(','));\n    fd.append('want_concerts', wantConcerts);\n\n    fetch(ajax,{method:'POST',body:fd})\n      .then(r=>r.json())\n      .then(res=>{\n        if(!res || !res.ok){\n          out.innerHTML = '<div class=\"err\"><b>Error:<\/b> '+esc((res && res.error) ? res.error : 'Generation failed. Check OpenAI key & model in settings.')+'<\/div>';\n          return;\n        }\n        let html = '<div style=\"font-weight:800;margin-bottom:10px\">'+esc(res.summary||'Your itinerary')+'<\/div>';\n        if (res.days && res.days.length){\n          for (let i=0;i<res.days.length;i++){\n            const d = res.days[i];\n            const blocks = (d.blocks||[]).map(b=>{\n              \/\/ Create a clickable search link for each activity (no image)\n              const query = encodeURIComponent(b.activity + ' ' + city);\n              return '<li style=\"margin:10px 0\">'\n                + '<span class=\"itd-bul\"><\/span><b>'+esc(b.time)+':<\/b> <a target=\"_blank\" style=\"color:#ff178b;text-decoration:underline\" href=\"https:\/\/www.google.com\/search?q='+query+'\">'+esc(b.activity)+'<\/a><\/li>';\n            }).join('');\n            html += '<div class=\"itd-day\">'\n                  + '<h3 style=\"margin:0 0 8px 0;font-size:22px;\">Day '+esc(d.day)+' \u2014 '+esc(d.title||'Highlights & local gems')+'<\/h3>'\n                  + '<ul style=\"margin:8px 0 0 0;list-style:none;padding-left:0\">'+blocks+'<\/ul>'\n                  + (d.daily_est_cost ? '<div style=\"margin-top:8px;font-size:14px;color:#5a7282\">Estimated: $'+esc(d.daily_est_cost)+'<\/div>' : '')\n                  + '<\/div>';\n          }\n        }\n        if (res.totals){\n          html += '<div class=\"itd-totals\">Totals \u2014 transport $'+(res.totals.transport||0)+', tickets $'+(res.totals.tickets||0)+', food $'+(res.totals.food||0)+', other $'+(res.totals.other||0)+' \u21d2 <b>Total $'+(res.totals.total||0)+'<\/b><\/div>';\n        }\n        if (res.concerts_link){\n          html += '<div class=\"itd-ev\">\ud83c\udfb6 <a target=\"_blank\" style=\"color:#ff178b\" href=\"'+esc(res.concerts_link)+'\">View concerts &amp; shows in '+esc(city)+'<\/a><\/div>';\n        }\n        \/\/ if multiple cities, add Google Maps route link\n        if (cityList && cityList.length > 1){\n          \/\/ Build a Google Maps directions link by encoding each city separately\n          const encodedCities = cityList.map(function(c){ return encodeURIComponent(c); });\n          const mapUrl = 'https:\/\/www.google.com\/maps\/dir\/' + encodedCities.join('\/');\n          html += '<div class=\"itd-ev\">\ud83d\uddfa\ufe0f <a target=\"_blank\" style=\"color:#ff178b;text-decoration:underline\" href=\"'+mapUrl+'\">Open route on Google Maps<\/a><\/div>';\n        }\n        \/\/ Append upsell call-to-action buttons after itinerary and maps links. The buttons use the same\n        \/\/ gradient styling as other action buttons and are wrapped in a flex container for responsive layout.\n        html += '<div class=\"itd-upsell\" style=\"margin-top:14px;display:flex;flex-wrap:wrap;gap:8px;\">'\n               + '<a class=\"itd-btn\" style=\"width:auto;flex:1 1 auto;text-align:center;\" href=\"' + upsellLinks.hotels + '\" target=\"_blank\">Hotels<\/a>'\n               + '<a class=\"itd-btn\" style=\"width:auto;flex:1 1 auto;text-align:center;\" href=\"' + upsellLinks.insurance + '\" target=\"_blank\">Insurance<\/a>'\n               + '<a class=\"itd-btn\" style=\"width:auto;flex:1 1 auto;text-align:center;\" href=\"' + upsellLinks.cruise + '\" target=\"_blank\">Cruise Virgin<\/a>'\n               + '<a class=\"itd-btn\" style=\"width:auto;flex:1 1 auto;text-align:center;\" href=\"' + upsellLinks.flight + '\" target=\"_blank\">Request flight<\/a>'\n               + '<\/div>';\n        out.innerHTML = html;\n        \/\/ show action buttons after generating results\n        actions.style.display='flex';\n        \/\/ automatically show email input after generating results for clarity\n        if (emailWrapper) {\n          emailWrapper.style.display = 'block';\n        }\n      })\n      .catch(()=>{ out.innerHTML='<div class=\"err\">Network error<\/div>'; });\n  });\n})();\n<\/script>","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-41774","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.2.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Trip designer  - InSky - \u0422\u0443\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/insky.biz\/en\/trip-designer\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Trip designer  - InSky - \u0422\u0443\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\" \/>\n<meta property=\"og:url\" content=\"https:\/\/insky.biz\/en\/trip-designer\/\" \/>\n<meta property=\"og:site_name\" content=\"InSky - \u0422\u0443\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/INSKY.com.ua\/\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-07T18:15:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/insky.biz\/wp-content\/uploads\/60618700_2328395493896558_8035836334247510016_n.png\" \/>\n\t<meta property=\"og:image:width\" content=\"320\" \/>\n\t<meta property=\"og:image:height\" content=\"320\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/insky.biz\/en\/trip-designer\/\",\"url\":\"https:\/\/insky.biz\/en\/trip-designer\/\",\"name\":\"Trip designer  - InSky - \u0422\u0443\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\",\"isPartOf\":{\"@id\":\"https:\/\/insky.biz\/en\/#website\"},\"datePublished\":\"2025-08-30T18:33:55+00:00\",\"dateModified\":\"2025-09-07T18:15:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/insky.biz\/en\/trip-designer\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[[\"https:\/\/insky.biz\/en\/trip-designer\/\"]]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/insky.biz\/en\/trip-designer\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/insky.biz\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Trip designer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/insky.biz\/en\/#website\",\"url\":\"https:\/\/insky.biz\/en\/\",\"name\":\"InSky - \u0422\u0443\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/insky.biz\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/insky.biz\/en\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/insky.biz\/en\/#organization\",\"name\":\"Insky - \u0422\u0443\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\",\"url\":\"https:\/\/insky.biz\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/insky.biz\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/insky.biz\/wp-content\/uploads\/60618700_2328395493896558_8035836334247510016_n.png\",\"contentUrl\":\"https:\/\/insky.biz\/wp-content\/uploads\/60618700_2328395493896558_8035836334247510016_n.png\",\"width\":320,\"height\":320,\"caption\":\"Insky - \u0422\u0443\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\"},\"image\":{\"@id\":\"https:\/\/insky.biz\/en\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/INSKY.com.ua\/\",\"https:\/\/www.instagram.com\/insky.biz\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Trip designer  - InSky - \u0422\u0443\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/insky.biz\/en\/trip-designer\/","og_locale":"en_US","og_type":"article","og_title":"Trip designer  - InSky - \u0422\u0443\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f","og_url":"https:\/\/insky.biz\/en\/trip-designer\/","og_site_name":"InSky - \u0422\u0443\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f","article_publisher":"https:\/\/www.facebook.com\/INSKY.com.ua\/","article_modified_time":"2025-09-07T18:15:08+00:00","og_image":[{"width":320,"height":320,"url":"https:\/\/insky.biz\/wp-content\/uploads\/60618700_2328395493896558_8035836334247510016_n.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/insky.biz\/en\/trip-designer\/","url":"https:\/\/insky.biz\/en\/trip-designer\/","name":"Trip designer  - InSky - \u0422\u0443\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f","isPartOf":{"@id":"https:\/\/insky.biz\/en\/#website"},"datePublished":"2025-08-30T18:33:55+00:00","dateModified":"2025-09-07T18:15:08+00:00","breadcrumb":{"@id":"https:\/\/insky.biz\/en\/trip-designer\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":[["https:\/\/insky.biz\/en\/trip-designer\/"]]}]},{"@type":"BreadcrumbList","@id":"https:\/\/insky.biz\/en\/trip-designer\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/insky.biz\/en\/"},{"@type":"ListItem","position":2,"name":"Trip designer"}]},{"@type":"WebSite","@id":"https:\/\/insky.biz\/en\/#website","url":"https:\/\/insky.biz\/en\/","name":"InSky - \u0422\u0443\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f","description":"","publisher":{"@id":"https:\/\/insky.biz\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/insky.biz\/en\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/insky.biz\/en\/#organization","name":"Insky - \u0422\u0443\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f","url":"https:\/\/insky.biz\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/insky.biz\/en\/#\/schema\/logo\/image\/","url":"https:\/\/insky.biz\/wp-content\/uploads\/60618700_2328395493896558_8035836334247510016_n.png","contentUrl":"https:\/\/insky.biz\/wp-content\/uploads\/60618700_2328395493896558_8035836334247510016_n.png","width":320,"height":320,"caption":"Insky - \u0422\u0443\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f"},"image":{"@id":"https:\/\/insky.biz\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/INSKY.com.ua\/","https:\/\/www.instagram.com\/insky.biz\/"]}]}},"_links":{"self":[{"href":"https:\/\/insky.biz\/en\/wp-json\/wp\/v2\/pages\/41774","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/insky.biz\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/insky.biz\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/insky.biz\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/insky.biz\/en\/wp-json\/wp\/v2\/comments?post=41774"}],"version-history":[{"count":3,"href":"https:\/\/insky.biz\/en\/wp-json\/wp\/v2\/pages\/41774\/revisions"}],"predecessor-version":[{"id":41783,"href":"https:\/\/insky.biz\/en\/wp-json\/wp\/v2\/pages\/41774\/revisions\/41783"}],"wp:attachment":[{"href":"https:\/\/insky.biz\/en\/wp-json\/wp\/v2\/media?parent=41774"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}