{"id":41290,"date":"2025-04-08T13:26:02","date_gmt":"2025-04-08T10:26:02","guid":{"rendered":"https:\/\/www.saaristonpuoti.fi\/?page_id=41290"},"modified":"2026-06-06T18:19:09","modified_gmt":"2026-06-06T15:19:09","slug":"elamyspuoti","status":"publish","type":"page","link":"https:\/\/www.saaristonpuoti.fi\/en\/elamy-shop\/","title":{"rendered":"Experience shop"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"41290\" class=\"elementor elementor-41290\">\n\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-dfd69a8 e-container--column e-container\" data-id=\"dfd69a8\" data-element_type=\"container\">\t\t\t\t<div class=\"elementor-element elementor-element-5a53f5f elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"5a53f5f\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\r\n<!-- Saariston Puoti \/ El\u00e4myspuoti v1 block \u2014 generated 2026-06-06T15:15:38.924Z -->\r\n<!-- Source: serve\/elamyspuoti-v1\/build-wp-block.mjs                    -->\r\n<!-- Data baked from products.json + availability.json at build time.   -->\r\n\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&family=League+Spartan:wght@500;600;700;800;900&display=swap\">\r\n\r\n<script type=\"text\/javascript\" src=\"https:\/\/widgets.bokun.io\/assets\/javascripts\/apps\/build\/BokunWidgetsLoader.js?bookingChannelUUID=16636f67-7269-4387-bf31-3af308292416\" async><\/script>\r\n\r\n<style>\r\n:root {\r\n  --ep26-red:#f04d4c; --ep26-red-hover:#d83e3d;\r\n  --ep26-ink:#1a1a1a; --ep26-ink-soft:#555;\r\n  --ep26-line:rgba(12,12,12,.08); --ep26-line-strong:rgba(12,12,12,.16);\r\n  --ep26-bg:#faf7f3; --ep26-bg-card:#fff;\r\n  --ep26-amber:#f0a83d; --ep26-green:#2d8a4b; --ep26-grey:#9a9a9a;\r\n  --ep26-shadow:0 10px 26px rgba(12,12,12,.08);\r\n}\r\nbody{margin:0;background:var(--ep26-bg);font-family:'Inter',system-ui,sans-serif;color:var(--ep26-ink)}\r\n.ep26-page{max-width:1180px;margin:0 auto;padding:24px 18px 80px}\r\n.ep26-page *{box-sizing:border-box}\r\n.ep26-hero{padding:40px 8px 28px;text-align:center}\r\n.ep26-hero-kicker{font-family:'League Spartan',sans-serif;font-weight:800;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ep26-red);margin:0 0 8px}\r\n.ep26-hero h1{font-family:'League Spartan',sans-serif;font-weight:800;font-size:clamp(34px,5vw,54px);line-height:1.02;letter-spacing:-.01em;margin:0 0 14px}\r\n.ep26-hero p{max-width:720px;margin:0 auto;color:var(--ep26-ink-soft);font-size:16px;line-height:1.55}\r\n.ep26-upcoming{background:var(--ep26-bg-card);border:1px solid var(--ep26-line);border-radius:18px;padding:18px;margin:8px 0 26px;box-shadow:var(--ep26-shadow)}\r\n.ep26-upcoming-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin:0 0 14px}\r\n.ep26-upcoming-kicker{font-family:'League Spartan',sans-serif;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ep26-red);margin:0 0 5px}\r\n.ep26-upcoming h2{font-family:'League Spartan',sans-serif;font-size:28px;line-height:1.05;font-weight:800;margin:0}\r\n.ep26-upcoming-note{font-size:13px;color:var(--ep26-ink-soft);margin:0;line-height:1.45;max-width:440px}\r\n.ep26-upcoming-list{display:grid;gap:8px}\r\n.ep26-departure{display:grid;grid-template-columns:88px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--ep26-line);border-radius:12px;background:#fff}\r\n.ep26-departure-date{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:58px;border-radius:10px;background:rgba(240,77,76,.08);color:var(--ep26-red);font-family:'League Spartan',sans-serif;text-transform:uppercase;line-height:1}\r\n.ep26-departure-date strong{font-size:13px;font-weight:800;letter-spacing:.08em}\r\n.ep26-departure-date span{font-size:22px;font-weight:800;margin-top:3px}\r\n.ep26-departure-main{min-width:0}\r\n.ep26-departure-time{font-family:'League Spartan',sans-serif;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ep26-ink-soft);margin:0 0 4px}\r\n.ep26-departure-title{font-family:'League Spartan',sans-serif;font-size:18px;font-weight:700;line-height:1.16;margin:0;color:var(--ep26-ink)}\r\n.ep26-departure-label{font-size:12px;color:var(--ep26-ink-soft);line-height:1.35;margin:4px 0 0}\r\n.ep26-departure-side{display:flex;align-items:center;gap:10px}\r\n.ep26-departure-stock{font-family:'League Spartan',sans-serif;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ep26-green);white-space:nowrap}\r\n.ep26-departure-stock.is-low{color:var(--ep26-amber)}\r\n.ep26-mini-btn{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:10px 13px;border-radius:9px;border:1.5px solid var(--ep26-red);background:var(--ep26-red);color:#fff;font-family:'League Spartan',sans-serif;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}\r\n.ep26-upcoming-empty{padding:16px;text-align:center;color:var(--ep26-ink-soft);font-size:14px;border:1px dashed var(--ep26-line-strong);border-radius:12px}\r\n.ep26-controls{background:var(--ep26-bg-card);border:1px solid var(--ep26-line);border-radius:18px;padding:18px 18px 8px;margin:0 0 28px;box-shadow:var(--ep26-shadow);position:sticky;top:8px;z-index:30}\r\n.ep26-controls-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:8px}\r\n.ep26-count{font-family:'League Spartan',sans-serif;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ep26-ink)}\r\n.ep26-reset{font-family:'League Spartan',sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ep26-red);background:transparent;border:0;cursor:pointer;padding:6px 8px;border-radius:6px}\r\n.ep26-reset:hover{background:rgba(240,77,76,.08)}\r\n.ep26-filter-block{padding:10px 0;border-top:1px solid var(--ep26-line)}\r\n.ep26-filter-block:first-of-type{border-top:0}\r\n.ep26-filter-label{font-family:'League Spartan',sans-serif;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ep26-ink-soft);display:block;margin:0 0 8px}\r\n.ep26-filter-row{display:flex;flex-wrap:wrap;gap:8px}\r\n.ep26-filter{display:inline-flex;align-items:center;gap:6px;font-family:'League Spartan',sans-serif;font-size:13px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;padding:8px 12px;border:1px solid var(--ep26-line-strong);background:#fff;color:var(--ep26-ink);border-radius:999px;cursor:pointer;transition:all .15s ease}\r\n.ep26-filter:hover{border-color:var(--ep26-red);color:var(--ep26-red)}\r\n.ep26-filter[aria-pressed=\"true\"]{background:var(--ep26-red);color:#fff;border-color:var(--ep26-red)}\r\n.ep26-section{margin:28px 0 12px}\r\n.ep26-section.is-empty{display:none}\r\n.ep26-section-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px;margin:0 4px 16px}\r\n.ep26-section-title{font-family:'League Spartan',sans-serif;font-weight:800;font-size:28px;line-height:1.05;margin:0;display:flex;align-items:center;gap:10px}\r\n.ep26-section-icon{font-size:26px;line-height:1}\r\n.ep26-section-desc{color:var(--ep26-ink-soft);max-width:560px;font-size:14px;line-height:1.5;margin:0}\r\n.ep26-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,380px));gap:18px;justify-content:start}\r\n.ep26-card{background:var(--ep26-bg-card);border:1px solid var(--ep26-line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--ep26-shadow);transition:transform .18s ease,box-shadow .18s ease}\r\n.ep26-card:hover{transform:translateY(-2px);box-shadow:0 22px 44px -22px rgba(192,40,38,.4),0 4px 10px rgba(0,0,0,.10)}\r\n.ep26-card[hidden]{display:none !important}\r\n.ep26-card-img{position:relative;aspect-ratio:16\/10;background:#eaeaea linear-gradient(135deg,#ddd,#f3f3f3);overflow:hidden}\r\n.ep26-card-img img{width:100%;height:100%;object-fit:cover;display:block}\r\n.ep26-card-img::after{content:\"\";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 50%,rgba(0,0,0,.18) 100%);pointer-events:none}\r\n.ep26-tags{position:absolute;top:12px;left:12px;display:flex;gap:6px;flex-wrap:wrap;max-width:calc(100% - 24px)}\r\n.ep26-tag{font-family:'League Spartan',sans-serif;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.92);color:var(--ep26-ink)}\r\n.ep26-tag.is-live{background:var(--ep26-red);color:#fff}\r\n.ep26-tag.is-partner{background:#2d3a4b;color:#fff}\r\n.ep26-status{position:absolute;top:12px;right:12px;font-family:'League Spartan',sans-serif;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.92);color:var(--ep26-green)}\r\n.ep26-status.is-low{color:var(--ep26-amber)}\r\n.ep26-status.is-out{color:var(--ep26-grey);background:rgba(220,220,220,.96)}\r\n.ep26-card-body{padding:18px 18px 16px;display:flex;flex-direction:column;gap:10px;flex:1}\r\n.ep26-card-title{font-family:'League Spartan',sans-serif;font-weight:700;font-size:18px;line-height:1.2;margin:0}\r\n.ep26-card-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--ep26-ink-soft)}\r\n.ep26-meta-item{display:inline-flex;align-items:center;gap:4px}\r\n.ep26-card-excerpt{color:var(--ep26-ink-soft);font-size:13px;line-height:1.5;margin:0}\r\n.ep26-card-departures{font-size:12px;color:var(--ep26-ink);padding:8px 10px;background:rgba(240,77,76,.05);border-radius:8px;border:1px solid rgba(240,77,76,.12);display:none}\r\n.ep26-card-departures.has-data{display:block}\r\n.ep26-departures-label{font-family:'League Spartan',sans-serif;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ep26-red);margin:0 0 4px}\r\n.ep26-departures-list{margin:0;padding:0;list-style:none;font-size:12px;color:var(--ep26-ink-soft)}\r\n.ep26-card-price{font-family:'League Spartan',sans-serif;font-weight:700;font-size:14px;color:var(--ep26-ink);margin-top:auto}\r\n.ep26-card-price em{font-style:normal;font-weight:500;color:var(--ep26-ink-soft);font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin-right:4px}\r\n.ep26-card-cta{margin-top:8px}\r\n.ep26-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:48px;font-family:'League Spartan',sans-serif;font-size:13px;font-weight:800;padding:13px 16px;border-radius:10px;letter-spacing:.06em;text-transform:uppercase;line-height:1;cursor:pointer;transition:all .15s ease;border:1.5px solid var(--ep26-red);background:var(--ep26-red);color:#fff}\r\n.ep26-btn:hover{background:var(--ep26-red-hover);border-color:var(--ep26-red-hover);transform:translateY(-1px);box-shadow:0 6px 16px rgba(216,62,61,.28)}\r\n.ep26-btn span{flex:1;text-align:left}\r\n.ep26-btn b{font-size:16px;font-weight:700}\r\n.ep26-btn[disabled]{background:#eee;color:var(--ep26-grey);border-color:#eee;cursor:not-allowed}\r\n.ep26-gift{background:linear-gradient(135deg,#f9e8c8 0%,#fde4c2 100%);border-radius:18px;padding:28px 22px;margin:40px 0 0;box-shadow:var(--ep26-shadow)}\r\n.ep26-gift-head{display:flex;align-items:center;gap:12px;margin:0 0 16px}\r\n.ep26-gift-head h2{font-family:'League Spartan',sans-serif;font-weight:800;font-size:24px;margin:0}\r\n.ep26-gift .bokunWidget{background:rgba(255,255,255,.6);border-radius:12px;padding:6px}\r\n.ep26-empty{padding:40px 20px;text-align:center;color:var(--ep26-ink-soft);font-size:14px;border:1px dashed var(--ep26-line-strong);border-radius:16px}\r\n.ep26-preview-tag{position:fixed;bottom:14px;right:14px;background:var(--ep26-red);color:#fff;font-family:'League Spartan',sans-serif;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;padding:8px 12px;border-radius:999px;box-shadow:0 6px 16px rgba(216,62,61,.4);pointer-events:none;z-index:9999}\r\n@media (max-width:560px){\r\n  .ep26-page{padding:16px 10px 80px}\r\n  .ep26-hero{padding:24px 4px 18px}\r\n  .ep26-section-title{font-size:22px}\r\n  .ep26-controls{padding:14px 14px 4px;position:static}\r\n  .ep26-filter-row{gap:6px}\r\n  .ep26-filter{padding:7px 11px;font-size:12px}\r\n  .ep26-departure{grid-template-columns:74px minmax(0,1fr);align-items:start}\r\n  .ep26-departure-side{grid-column:2;justify-content:space-between;align-items:center}\r\n  .ep26-departure-title{font-size:16px}\r\n  .ep26-mini-btn{min-height:36px;padding:9px 12px}\r\n  .ep26-preview-tag{display:none}\r\n}\r\n\r\n\/* === THEME OVERRIDE WEDGE ===\r\n   Bermuda\/Puoti theme injects its own \"Spartan\" font + global font-size:16px \/\r\n   letter-spacing \/ text-transform resets that out-specify our base rules.\r\n   These !important rules clamp typography back to our design system. *\/\r\n.ep26-page, .ep26-page * { letter-spacing: normal !important; text-transform: none !important; }\r\n.ep26-page, .ep26-page p, .ep26-page span, .ep26-page article, .ep26-page section, .ep26-page div, .ep26-page button, .ep26-page a, .ep26-page ul, .ep26-page li { font-family: 'Inter', system-ui, -apple-system, sans-serif !important; }\r\n.ep26-page h1, .ep26-page h2, .ep26-page h3, .ep26-page h4,\r\n.ep26-page .ep26-btn, .ep26-page .ep26-mini-btn, .ep26-page .ep26-filter,\r\n.ep26-page .ep26-tag, .ep26-page .ep26-status,\r\n.ep26-page .ep26-section-title, .ep26-page .ep26-card-title,\r\n.ep26-page .ep26-departure-title, .ep26-page .ep26-departure-time, .ep26-page .ep26-departure-label, .ep26-page .ep26-departure-stock,\r\n.ep26-page .ep26-upcoming-kicker, .ep26-page .ep26-upcoming-title,\r\n.ep26-page .ep26-card-price, .ep26-page .ep26-hero h1, .ep26-page .ep26-hero-kicker,\r\n.ep26-page .ep26-filter-label, .ep26-page .ep26-count, .ep26-page .ep26-reset,\r\n.ep26-page .ep26-departures-label, .ep26-page .ep26-up-day, .ep26-page .ep26-up-mon, .ep26-page .ep26-up-wd, .ep26-page .ep26-up-time, .ep26-page .ep26-up-cat, .ep26-page .ep26-up-low, .ep26-page .ep26-up-cta,\r\n.ep26-page .ep26-seen-label, .ep26-page .ep26-seen-item, .ep26-page .ep26-gift-head h2 {\r\n  font-family: 'League Spartan', system-ui, -apple-system, sans-serif !important;\r\n}\r\n.ep26-page .ep26-hero h1 { font-size: clamp(34px, 5vw, 54px) !important; font-weight: 800 !important; line-height: 1.02 !important; }\r\n.ep26-page .ep26-hero-kicker { font-size: 12px !important; font-weight: 800 !important; letter-spacing: .12em !important; text-transform: uppercase !important; }\r\n.ep26-page .ep26-hero p { font-family: 'Inter', sans-serif !important; font-size: 16px !important; font-weight: 400 !important; line-height: 1.55 !important; }\r\n.ep26-page .ep26-section-title { font-size: 28px !important; font-weight: 800 !important; line-height: 1.05 !important; }\r\n.ep26-page .ep26-upcoming-title { font-size: 22px !important; font-weight: 800 !important; line-height: 1.05 !important; }\r\n.ep26-page .ep26-upcoming-kicker { font-size: 11px !important; font-weight: 800 !important; letter-spacing: .12em !important; text-transform: uppercase !important; }\r\n.ep26-page .ep26-upcoming-note { font-family: 'Inter', sans-serif !important; font-size: 13px !important; font-weight: 400 !important; line-height: 1.45 !important; }\r\n.ep26-page .ep26-section-desc, .ep26-page .ep26-card-excerpt { font-family: 'Inter', sans-serif !important; font-size: 13px !important; font-weight: 400 !important; line-height: 1.5 !important; }\r\n.ep26-page .ep26-card-title { font-size: 18px !important; font-weight: 700 !important; line-height: 1.2 !important; }\r\n.ep26-page .ep26-card-meta, .ep26-page .ep26-meta-item { font-family: 'Inter', sans-serif !important; font-size: 12px !important; font-weight: 400 !important; }\r\n.ep26-page .ep26-departure-title { font-size: 18px !important; font-weight: 700 !important; line-height: 1.18 !important; }\r\n.ep26-page .ep26-departure-time { font-family: 'League Spartan', sans-serif !important; font-size: 12px !important; font-weight: 600 !important; }\r\n.ep26-page .ep26-departure-label { font-family: 'Inter', sans-serif !important; font-size: 11px !important; font-weight: 500 !important; line-height: 1.4 !important; }\r\n.ep26-page .ep26-departure-stock { font-size: 10px !important; font-weight: 800 !important; letter-spacing: .08em !important; text-transform: uppercase !important; }\r\n.ep26-page .ep26-btn { font-size: 13px !important; font-weight: 800 !important; letter-spacing: .06em !important; text-transform: uppercase !important; line-height: 1 !important; background: var(--ep26-red) !important; color: #fff !important; }\r\n.ep26-page .ep26-btn:hover { background: var(--ep26-red-hover) !important; }\r\n.ep26-page .ep26-mini-btn { font-size: 11px !important; font-weight: 800 !important; letter-spacing: .06em !important; text-transform: uppercase !important; }\r\n.ep26-page .ep26-filter { font-size: 13px !important; font-weight: 600 !important; letter-spacing: .03em !important; text-transform: uppercase !important; }\r\n.ep26-page .ep26-filter[aria-pressed=\"true\"] { background: var(--ep26-red) !important; color: #fff !important; }\r\n.ep26-page .ep26-filter-label { font-size: 11px !important; font-weight: 700 !important; letter-spacing: .1em !important; text-transform: uppercase !important; }\r\n.ep26-page .ep26-count, .ep26-page .ep26-reset { font-size: 13px !important; font-weight: 700 !important; letter-spacing: .06em !important; text-transform: uppercase !important; }\r\n.ep26-page .ep26-tag { font-size: 10px !important; font-weight: 800 !important; letter-spacing: .1em !important; text-transform: uppercase !important; }\r\n.ep26-page .ep26-status { font-size: 10px !important; font-weight: 800 !important; letter-spacing: .08em !important; text-transform: uppercase !important; }\r\n.ep26-page .ep26-card-price { font-size: 14px !important; font-weight: 700 !important; }\r\n.ep26-page .ep26-card-price em { font-style: normal !important; font-weight: 500 !important; font-size: 11px !important; letter-spacing: .08em !important; text-transform: uppercase !important; }\r\n.ep26-page .ep26-departures-label { font-size: 10px !important; font-weight: 700 !important; letter-spacing: .1em !important; text-transform: uppercase !important; }\r\n.ep26-page .ep26-departures-list { font-family: 'Inter', sans-serif !important; font-size: 12px !important; font-weight: 400 !important; line-height: 1.4 !important; }\r\n.ep26-page .ep26-gift-head h2 { font-size: 24px !important; font-weight: 800 !important; line-height: 1.1 !important; }\r\n.ep26-page .ep26-up-day { font-size: 24px !important; font-weight: 800 !important; line-height: 1 !important; }\r\n.ep26-page .ep26-up-mon, .ep26-page .ep26-up-wd { font-size: 11px !important; font-weight: 700 !important; letter-spacing: .1em !important; text-transform: uppercase !important; }\r\n.ep26-page .ep26-seen-label { font-size: 11px !important; font-weight: 700 !important; letter-spacing: .12em !important; text-transform: uppercase !important; }\r\n.ep26-page .ep26-seen-item { font-size: 13px !important; font-weight: 700 !important; }\r\n@media (max-width:560px) {\r\n  .ep26-page .ep26-section-title { font-size: 22px !important; }\r\n  .ep26-page .ep26-filter { font-size: 12px !important; }\r\n  .ep26-page .ep26-departure-title { font-size: 16px !important; }\r\n}\r\n\/* === \/THEME OVERRIDE WEDGE === *\/\r\n<\/style>\r\n\r\n<main class=\"ep26-page\" id=\"ep26-page\">\r\n  <header class=\"ep26-hero\">\r\n    <p class=\"ep26-hero-kicker\">Saariston Puoti - Liperi - Summer 2026<\/p>\r\n    <h1>Experience shop<\/h1>\r\n    <p>Cruises, Puoti LIVE! concerts, gig buses and partner experiences in the most beautiful lakes of North Karelia. Book now - places are filling up fast.<\/p>\r\n  <\/header>\r\n  <section class=\"ep26-upcoming\" aria-label=\"Next cruise departures\">\r\n    <div class=\"ep26-upcoming-head\">\r\n      <div>\r\n        <p class=\"ep26-upcoming-kicker\">Next 14 days - M\/S Suvi-Tuuli<\/p>\r\n        <h2>\ud83d\udea2 Upcoming cruise departures<\/h2>\r\n      <\/div>\r\n      <p class=\"ep26-upcoming-note\">Cruises and Puoti LIVE! cruises from Joensuu on Saaristo Puodi, and scenic cruises from Saaristo Puodi.<\/p>\r\n    <\/div>\r\n    <div class=\"ep26-upcoming-list\" id=\"ep26-upcoming-list\">\r\n      <div class=\"ep26-upcoming-empty\">Loading the following departures...<\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <section class=\"ep26-upcoming\" aria-label=\"The following buses\">\r\n    <div class=\"ep26-upcoming-head\">\r\n      <div>\r\n        <p class=\"ep26-upcoming-kicker\">Next 14 days - Tohmaj\u00e4rvi \/ Tuusniemi \/ Joensuu<\/p>\r\n        <h2>\ud83d\ude8c Upcoming tour buses<\/h2>\r\n      <\/div>\r\n      <p class=\"ep26-upcoming-note\">Bus seats for Puoti LIVE! concerts - pick up on three routes, return at night.<\/p>\r\n    <\/div>\r\n    <div class=\"ep26-upcoming-list\" id=\"ep26-upcoming-bus-list\">\r\n      <div class=\"ep26-upcoming-empty\">Loading the following bus trips...<\/div>\r\n    <\/div>\r\n  <\/section>\r\n  <section class=\"ep26-controls\" aria-label=\"Filters\">\r\n    <div class=\"ep26-controls-top\">\r\n      <div class=\"ep26-count\" data-ep26-count>All experiences<\/div>\r\n      <button class=\"ep26-reset\" type=\"button\" data-ep26-reset>\u21bb Zero<\/button>\r\n    <\/div>\r\n    <div class=\"ep26-filter-block\">\r\n      <span class=\"ep26-filter-label\">Category<\/span>\r\n      <div class=\"ep26-filter-row\" role=\"group\" aria-label=\"Category\">\r\n        <button class=\"ep26-filter\" type=\"button\" data-ep26-category=\"all\" aria-pressed=\"true\">All from<\/button>\r\n        <button class=\"ep26-filter\" type=\"button\" data-ep26-category=\"risteily\" aria-pressed=\"false\">\ud83d\udea2 Cruises<\/button>\r\n        <button class=\"ep26-filter\" type=\"button\" data-ep26-category=\"puoti_live\" aria-pressed=\"false\">\ud83c\udfb8 Shop LIVE!<\/button>\r\n        <button class=\"ep26-filter\" type=\"button\" data-ep26-category=\"keikkabussi\" aria-pressed=\"false\">\ud83d\ude8c Tour buses<\/button>\r\n        <button class=\"ep26-filter\" type=\"button\" data-ep26-category=\"muu\" aria-pressed=\"false\">\u2728 Other experiences<\/button>\r\n        <button class=\"ep26-filter\" type=\"button\" data-ep26-category=\"kumppani\" aria-pressed=\"false\">\ud83e\udd1d Partners<\/button>\r\n      <\/div>\r\n    <\/div>\r\n    <div class=\"ep26-filter-block\">\r\n      <span class=\"ep26-filter-label\">Starting point<\/span>\r\n      <div class=\"ep26-filter-row\" role=\"group\" aria-label=\"Starting point\">\r\n        <button class=\"ep26-filter\" type=\"button\" data-ep26-location=\"all\" aria-pressed=\"true\">All from<\/button>\r\n        <button class=\"ep26-filter\" type=\"button\" data-ep26-location=\"joensuu\" aria-pressed=\"false\">Joensuu<\/button>\r\n        <button class=\"ep26-filter\" type=\"button\" data-ep26-location=\"liperi\" aria-pressed=\"false\">Liperi (Shop)<\/button>\r\n        <button class=\"ep26-filter\" type=\"button\" data-ep26-location=\"tohmajarvi\" aria-pressed=\"false\">Tohmaj\u00e4rvi<\/button>\r\n        <button class=\"ep26-filter\" type=\"button\" data-ep26-location=\"tuusniemi\" aria-pressed=\"false\">Tuusniemi<\/button>\r\n        <button class=\"ep26-filter\" type=\"button\" data-ep26-location=\"punkaharju\" aria-pressed=\"false\">Punkaharju \/ Savonlinna<\/button>\r\n      <\/div>\r\n    <\/div>\r\n    <div class=\"ep26-filter-block\">\r\n      <span class=\"ep26-filter-label\">Situation<\/span>\r\n      <div class=\"ep26-filter-row\" role=\"group\" aria-label=\"Situation\">\r\n        <button class=\"ep26-filter\" type=\"button\" data-ep26-status=\"all\" aria-pressed=\"true\">All from<\/button>\r\n        <button class=\"ep26-filter\" type=\"button\" data-ep26-status=\"available\" aria-pressed=\"false\">Available from<\/button>\r\n        <button class=\"ep26-filter\" type=\"button\" data-ep26-status=\"low\" aria-pressed=\"false\">Only a few left<\/button>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n  <div id=\"ep26-sections\"><\/div>\r\n  <section class=\"ep26-gift\">\r\n    <div class=\"ep26-gift-head\"><span style=\"font-size:30px;\">\ud83c\udf81<\/span><h2>Gift vouchers<\/h2><\/div>\r\n    <p style=\"margin:0 0 14px;color:var(--ep26-ink-soft);font-size:14px;line-height:1.5;\">A lovely gift for anniversaries or just to brighten up a grey day. The gift voucher can be used for any Experience Shop cruise or experience.<\/p>\r\n    <div class=\"bokunWidget\" data-src=\"https:\/\/widgets.bokun.io\/online-sales\/16636f67-7269-4387-bf31-3af308292416\/gift-card\/3177\"><\/div>\r\n  <\/section>\r\n<\/main>\r\n\r\n<script>\r\n(async function () {\r\n  const root = document.getElementById('ep26-sections');\r\n  const countEl = document.querySelector('[data-ep26-count]');\r\n  const resetBtn = document.querySelector('[data-ep26-reset]');\r\n  let data = {\"generatedAt\":\"2026-06-06T15:15:38.728Z\",\"channelUUID\":\"16636f67-7269-4387-bf31-3af308292416\",\"rootListId\":88646,\"giftCardListId\":3177,\"categories\":{\"risteily\":{\"label\":\"Risteilyt\",\"icon\":\"\ud83d\udea2\",\"description\":\"M\/S Suvi-Tuulella Joensuusta Saariston Puodille \u2014 lounas, ilallis ja maisemaristeilyt.\"},\"puoti_live\":{\"label\":\"Puoti LIVE! -risteilyt\",\"icon\":\"\ud83c\udfb8\",\"description\":\"Risteily + keikkalippu. Menomatka M\/S Suvi-Tuulella, paluu y\u00f6ll\u00e4 bussilla.\"},\"keikkabussi\":{\"label\":\"Keikkabussit\",\"icon\":\"\ud83d\ude8c\",\"description\":\"Bussilla keikalle ja takaisin \u2014 Tohmaj\u00e4rvi \/ Tuusniemi \/ Joensuu noutopisteet.\"},\"muu\":{\"label\":\"Muut el\u00e4mykset\",\"icon\":\"\u2728\",\"description\":\"Pizza Tasting, s\u00e4hk\u00f6py\u00f6r\u00e4vuokraukset ja muut el\u00e4mykset.\"},\"kumppani\":{\"label\":\"Kumppanit\",\"icon\":\"\ud83e\udd1d\",\"description\":\"Kumppanituotteet \u2014 Blue Lake Cruises sek\u00e4 muut kumppanit.\"}},\"products\":[{\"id\":1224841,\"title\":\"Keikkabussi \u2014 Jukka Poika 13.6.2026\",\"displayName\":\"Keikkabussi \u2014 Jukka Poika\",\"excerpt\":\"Keikkabussi + p\u00e4\u00e4sylippu Jukka Poika -keikalle la 13.6.2026. Noutopisteet Tohmaj\u00e4rvi\/Tuusniemi\/Joensuu, paluu y\u00f6ll\u00e4.\",\"duration\":\"\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/4f53cb73-7939-4eae-a6d0-9a9ce6874589.jpg\",\"vendorId\":93203,\"vendorTitle\":\"Saariston Puoti\",\"category\":\"keikkabussi\",\"locations\":[\"joensuu\",\"tohmajarvi\",\"tuusniemi\"],\"eventDate\":\"2026-06-13\"},{\"id\":1224819,\"title\":\"Puoti LIVE-risteily \u2014 Jukka Poika 13.6.2026\",\"displayName\":\"Puoti LIVE-risteily \u2014 Jukka Poika\",\"excerpt\":\"Risteily Joensuusta Saariston Puodille + p\u00e4\u00e4sylippu Jukka Poika -keikalle la 13.6.2026. Menomatka M\/S Suvi-Tuulella, paluu y\u00f6ll\u00e4 bussilla.\",\"duration\":\"\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/1fa2beab-dd50-4db9-a03c-cff42f06c5ee.jpg\",\"vendorId\":93203,\"vendorTitle\":\"Saariston Puoti\",\"category\":\"puoti_live\",\"locations\":[\"joensuu\"],\"eventDate\":\"2026-06-13\"},{\"id\":1224846,\"title\":\"Keikkabussi \u2014 J&LO \u2013 Jouni Laasonen & Oscu 19.6.2026\",\"displayName\":\"Keikkabussi \u2014 J&LO \u2013 Jouni Laasonen & Oscu\",\"excerpt\":\"Keikkabussi Saariston Puodin juhannustapahtumaan pe 19.6.2026 (juhannusaatto). Noutopisteet Tohmaj\u00e4rvi\/Tuusniemi\/Joensuu. Sis\u00e4\u00e4np\u00e4\u00e4sy ilmainen kanta-asiakkaille.\",\"duration\":\"\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/57438404-6e18-4320-8dc5-74862da54297.jpg\",\"vendorId\":93203,\"vendorTitle\":\"Saariston Puoti\",\"category\":\"keikkabussi\",\"locations\":[\"joensuu\",\"tohmajarvi\",\"tuusniemi\"],\"eventDate\":\"2026-06-19\"},{\"id\":1224845,\"title\":\"Juhannusristeily \u2014 J&LO \u2013 Jouni Laasonen & Oscu 19.6.2026\",\"displayName\":\"Juhannusristeily \u2014 J&LO \u2013 Jouni Laasonen & Oscu\",\"excerpt\":\"Juhannusristeily Joensuusta Saariston Puodille pe 19.6.2026 (juhannusaatto). Menomatka M\/S Suvi-Tuulella, paluu y\u00f6ll\u00e4 bussilla. Sis\u00e4\u00e4np\u00e4\u00e4sy ilmainen kanta-asiakkaille.\",\"duration\":\"\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/4dcd622e-7494-45fc-b32f-a1d0f5238fb0.jpg\",\"vendorId\":93203,\"vendorTitle\":\"Saariston Puoti\",\"category\":\"puoti_live\",\"locations\":[\"joensuu\"],\"eventDate\":\"2026-06-19\"},{\"id\":1224847,\"title\":\"Keikkabussi \u2014 Laura Voutilainen 20.6.2026\",\"displayName\":\"Keikkabussi \u2014 Laura Voutilainen\",\"excerpt\":\"Keikkabussi + p\u00e4\u00e4sylippu Laura Voutilainen -keikalle la 20.6.2026 (juhannusp\u00e4iv\u00e4). Noutopisteet Tohmaj\u00e4rvi\/Tuusniemi\/Joensuu, paluu y\u00f6ll\u00e4.\",\"duration\":\"\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/5bbb1a10-e561-4ba4-ae59-f162a22597e1.jpg\",\"vendorId\":93203,\"vendorTitle\":\"Saariston Puoti\",\"category\":\"keikkabussi\",\"locations\":[\"joensuu\",\"tohmajarvi\",\"tuusniemi\"],\"eventDate\":\"2026-06-20\"},{\"id\":838184,\"title\":\"Juhannuksen maisemaristeilyt Punkaharjulla harjumaisemissa 19.6.-20.6.2026\",\"displayName\":\"Juhannuksen maisemaristeily Punkaharjulla\",\"excerpt\":\"Tule nauttimaan Punkaharjun harjumaisemista ja keskikes\u00e4n Saimaasta risteilyll\u00e4 Punkaharjulla!\",\"duration\":\"1 tunti ja 30 minuuttia\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/8321f653-9a12-414c-988e-7221e112bc91.jpeg\",\"vendorId\":32720,\"vendorTitle\":\"Blue Lake Cruises\",\"category\":\"kumppani\",\"locations\":[\"punkaharju\"],\"eventDate\":\"2026-06-20\"},{\"id\":1224843,\"title\":\"Puoti LIVE-risteily \u2014 Laura Voutilainen 20.6.2026\",\"displayName\":\"Puoti LIVE-risteily \u2014 Laura Voutilainen\",\"excerpt\":\"Risteily Joensuusta Saariston Puodille + p\u00e4\u00e4sylippu Laura Voutilainen -keikalle la 20.6.2026 (juhannusp\u00e4iv\u00e4). Menomatka M\/S Suvi-Tuulella, paluu y\u00f6ll\u00e4 bussilla.\",\"duration\":\"\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/c2a8fabf-385a-4d94-95fd-71de99453ea8.jpg\",\"vendorId\":93203,\"vendorTitle\":\"Saariston Puoti\",\"category\":\"puoti_live\",\"locations\":[\"joensuu\"],\"eventDate\":\"2026-06-20\"},{\"id\":1224849,\"title\":\"Keikkabussi \u2014 Movetron 11.7.2026\",\"displayName\":\"Keikkabussi \u2014 Movetron\",\"excerpt\":\"Keikkabussi + p\u00e4\u00e4sylippu Movetron -keikalle la 11.7.2026. Noutopisteet Tohmaj\u00e4rvi\/Tuusniemi\/Joensuu, paluu y\u00f6ll\u00e4.\",\"duration\":\"\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/10c0ef6d-a4ea-403e-8c39-a1422a303fe4.jpg\",\"vendorId\":93203,\"vendorTitle\":\"Saariston Puoti\",\"category\":\"keikkabussi\",\"locations\":[\"joensuu\",\"tohmajarvi\",\"tuusniemi\"],\"eventDate\":\"2026-07-11\"},{\"id\":1224848,\"title\":\"Puoti LIVE-risteily \u2014 Movetron 11.7.2026\",\"displayName\":\"Puoti LIVE-risteily \u2014 Movetron\",\"excerpt\":\"Risteily Joensuusta Saariston Puodille + p\u00e4\u00e4sylippu Movetron -keikalle la 11.7.2026. Menomatka M\/S Suvi-Tuulella, paluu y\u00f6ll\u00e4 bussilla.\",\"duration\":\"\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/ef92ff06-36f4-48d0-8c63-d69c872e0dca.jpg\",\"vendorId\":93203,\"vendorTitle\":\"Saariston Puoti\",\"category\":\"puoti_live\",\"locations\":[\"joensuu\"],\"eventDate\":\"2026-07-11\"},{\"id\":1224851,\"title\":\"Keikkabussi \u2014 Tuure Kilpel\u00e4inen 25.7.2026\",\"displayName\":\"Keikkabussi \u2014 Tuure Kilpel\u00e4inen\",\"excerpt\":\"Keikkabussi + p\u00e4\u00e4sylippu Tuure Kilpel\u00e4inen -keikalle la 25.7.2026. Noutopisteet Tohmaj\u00e4rvi\/Tuusniemi\/Joensuu, paluu y\u00f6ll\u00e4.\",\"duration\":\"\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/871dde7e-95e1-4675-b453-f756f3b8ee96.jpg\",\"vendorId\":93203,\"vendorTitle\":\"Saariston Puoti\",\"category\":\"keikkabussi\",\"locations\":[\"joensuu\",\"tohmajarvi\",\"tuusniemi\"],\"eventDate\":\"2026-07-25\"},{\"id\":1224850,\"title\":\"Puoti LIVE-risteily \u2014 Tuure Kilpel\u00e4inen 25.7.2026\",\"displayName\":\"Puoti LIVE-risteily \u2014 Tuure Kilpel\u00e4inen\",\"excerpt\":\"Risteily Joensuusta Saariston Puodille + p\u00e4\u00e4sylippu Tuure Kilpel\u00e4inen -keikalle la 25.7.2026. Menomatka M\/S Suvi-Tuulella, paluu y\u00f6ll\u00e4 bussilla.\",\"duration\":\"\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/9415b493-656e-4049-a3c1-dbbcfe1bc5c9.jpg\",\"vendorId\":93203,\"vendorTitle\":\"Saariston Puoti\",\"category\":\"puoti_live\",\"locations\":[\"joensuu\"],\"eventDate\":\"2026-07-25\"},{\"id\":1224853,\"title\":\"Keikkabussi \u2014 HUGO 8.8.2026\",\"displayName\":\"Keikkabussi \u2014 HUGO\",\"excerpt\":\"Keikkabussi + p\u00e4\u00e4sylippu HUGO -keikalle la 8.8.2026. Noutopisteet Tohmaj\u00e4rvi\/Tuusniemi\/Joensuu, paluu y\u00f6ll\u00e4.\",\"duration\":\"\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/4dd00752-a501-48e8-b47b-fe887d7b1019.jpg\",\"vendorId\":93203,\"vendorTitle\":\"Saariston Puoti\",\"category\":\"keikkabussi\",\"locations\":[\"joensuu\",\"tohmajarvi\",\"tuusniemi\"],\"eventDate\":\"2026-08-08\"},{\"id\":1224852,\"title\":\"Puoti LIVE-risteily \u2014 HUGO 8.8.2026\",\"displayName\":\"Puoti LIVE-risteily \u2014 HUGO\",\"excerpt\":\"Risteily Joensuusta Saariston Puodille + p\u00e4\u00e4sylippu HUGO -keikalle la 8.8.2026. Menomatka M\/S Suvi-Tuulella, paluu y\u00f6ll\u00e4 bussilla.\",\"duration\":\"\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/0475039f-2463-4b32-ab02-e38cf263ee21.jpg\",\"vendorId\":93203,\"vendorTitle\":\"Saariston Puoti\",\"category\":\"puoti_live\",\"locations\":[\"joensuu\"],\"eventDate\":\"2026-08-08\"},{\"id\":829674,\"title\":\"Maisemaristeily Punkaharjulla harjumaisemissa 16.6.-25.8.2026\",\"displayName\":\"Maisemaristeily Punkaharjulla\",\"excerpt\":\"Tule nauttimaan Punkaharjun harjumaisemista maisemista ja kes\u00e4isest\u00e4 Saimaasta risteilyll\u00e4 Punkaharjulla!\",\"duration\":\"2 tuntia\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/8321f653-9a12-414c-988e-7221e112bc91.jpeg\",\"vendorId\":32720,\"vendorTitle\":\"Blue Lake Cruises\",\"category\":\"kumppani\",\"locations\":[\"punkaharju\"],\"eventDate\":\"2026-08-25\"},{\"id\":829681,\"title\":\"L\u00e4hde risteillen Punkaharjulle! Risteilyt Savonlinnasta Punkaharjulle tiistaisin 16.6. - 25.8.2026\",\"displayName\":\"Risteily Savonlinna\u2013Punkaharju (tiistaisin)\",\"excerpt\":\"Nauti upeista Saimaan j\u00e4rvimaisemista ja rentoudu matkalla kohti kaunista Punkaharjua. Reitti kulkee Virtasalmen kapeikkojen ja Bobrikovin salmen kautta Punkaharjulle.\",\"duration\":\"2 tuntia ja 30 minuuttia\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/7c9bd255-12db-42a3-a1f4-78ddec65eba0.png\",\"vendorId\":32720,\"vendorTitle\":\"Blue Lake Cruises\",\"category\":\"kumppani\",\"locations\":[\"punkaharju\",\"savonlinna\"],\"eventDate\":\"2026-08-25\"},{\"id\":838109,\"title\":\"L\u00e4hde viett\u00e4m\u00e4\u00e4n kes\u00e4p\u00e4iv\u00e4\u00e4 Punkaharjulle! Risteilyt Savonlinnasta Punkaharjulle ja takaisin, tiistaisin 16.6. - 25.8.2026\",\"displayName\":\"P\u00e4iv\u00e4risteily Savonlinna\u2013Punkaharju\",\"excerpt\":\"Risteile m\/s Katrillilla Punkaharjun maisemiin\u2013 yhdist\u00e4 matkaan k\u00e4ynti Lustossa, herkullinen lounas Mets\u00e4ss\u00e4, Harjunportissa tai hemmotteluhetki Kruunupuiston kylpyl\u00e4ss\u00e4!\",\"duration\":\"7 tuntia ja 30 minuuttia\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/4095cfae-6b39-470e-9d55-16652b652bde.jpeg\",\"vendorId\":32720,\"vendorTitle\":\"Blue Lake Cruises\",\"category\":\"kumppani\",\"locations\":[\"punkaharju\",\"savonlinna\"],\"eventDate\":\"2026-08-25\"},{\"id\":838178,\"title\":\"L\u00e4hde risteillen Punkaharjulta Savonlinnaan! Risteilyt Punkaharjulta Savonlinnaan tiistaisin 16.6. - 25.8.2026\",\"displayName\":\"Risteily Punkaharju\u2013Savonlinna (tiistaisin)\",\"excerpt\":\"Nauti upeista Saimaan j\u00e4rvimaisemista ja rentoudu matkalla kohti kaunista Savonlinnaa. Reitti kulkee Virtasalmen kapeikkojen ja Bobrikovin salmen kautta Punkaharjulle.\",\"duration\":\"2 tuntia ja 30 minuuttia\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/6e247142-ddc3-47a3-82af-8fd7c0f7ffba.jpeg\",\"vendorId\":32720,\"vendorTitle\":\"Blue Lake Cruises\",\"category\":\"kumppani\",\"locations\":[\"punkaharju\",\"savonlinna\"],\"eventDate\":\"2026-08-25\"},{\"id\":1224855,\"title\":\"Keikkabussi \u2014 Hurma 28.8.2026\",\"displayName\":\"Keikkabussi \u2014 Hurma\",\"excerpt\":\"Keikkabussi + p\u00e4\u00e4sylippu Hurma -keikalle pe 28.8.2026. Noutopisteet Tohmaj\u00e4rvi\/Tuusniemi\/Joensuu, paluu y\u00f6ll\u00e4.\",\"duration\":\"\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/6575ec7e-87c9-4a60-8cc5-7f51b97668e7.jpg\",\"vendorId\":93203,\"vendorTitle\":\"Saariston Puoti\",\"category\":\"keikkabussi\",\"locations\":[\"joensuu\",\"tohmajarvi\",\"tuusniemi\"],\"eventDate\":\"2026-08-28\"},{\"id\":1224854,\"title\":\"Puoti LIVE-risteily \u2014 Hurma 28.8.2026\",\"displayName\":\"Puoti LIVE-risteily \u2014 Hurma\",\"excerpt\":\"Risteily Joensuusta Saariston Puodille + p\u00e4\u00e4sylippu Hurma -keikalle pe 28.8.2026. Menomatka M\/S Suvi-Tuulella, paluu y\u00f6ll\u00e4 bussilla.\",\"duration\":\"\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/77c983ca-1311-47c1-abfb-18ea5b90d344.jpg\",\"vendorId\":93203,\"vendorTitle\":\"Saariston Puoti\",\"category\":\"puoti_live\",\"locations\":[\"joensuu\"],\"eventDate\":\"2026-08-28\"},{\"id\":1224857,\"title\":\"Keikkabussi \u2014 Olli Halonen 29.8.2026\",\"displayName\":\"Keikkabussi \u2014 Olli Halonen\",\"excerpt\":\"Keikkabussi + p\u00e4\u00e4sylippu Olli Halonen -keikalle la 29.8.2026. Noutopisteet Tohmaj\u00e4rvi\/Tuusniemi\/Joensuu, paluu y\u00f6ll\u00e4.\",\"duration\":\"\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/46f7829d-369e-4cfc-b871-34b33e27e4d5.jpg\",\"vendorId\":93203,\"vendorTitle\":\"Saariston Puoti\",\"category\":\"keikkabussi\",\"locations\":[\"joensuu\",\"tohmajarvi\",\"tuusniemi\"],\"eventDate\":\"2026-08-29\"},{\"id\":1224856,\"title\":\"Puoti LIVE-risteily \u2014 Olli Halonen 29.8.2026\",\"displayName\":\"Puoti LIVE-risteily \u2014 Olli Halonen\",\"excerpt\":\"Risteily Joensuusta Saariston Puodille + p\u00e4\u00e4sylippu Olli Halonen -keikalle la 29.8.2026. Menomatka M\/S Suvi-Tuulella, paluu y\u00f6ll\u00e4 bussilla.\",\"duration\":\"\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/ec796251-621b-4930-9d06-5c6de030afed.jpg\",\"vendorId\":93203,\"vendorTitle\":\"Saariston Puoti\",\"category\":\"puoti_live\",\"locations\":[\"joensuu\"],\"eventDate\":\"2026-08-29\"},{\"id\":677517,\"title\":\"Kanavaristeily Savonlinna-Hein\u00e4vesi-Kuopio, torstaisin kausi 2026\",\"displayName\":\"Risteily Punkaharju\u2013Kruunupuisto \/ Vaahersalo\",\"excerpt\":\"Koe historiallinen Hein\u00e4veden reitti Savonlinnasta Kuopioon historiallisella h\u00f6yrylaiva s\/s Hein\u00e4vedell\u00e4. Kokonaisuudessaan Hein\u00e4veden reitti on maamme edustavimpia sis\u00e4vesiliikenteen muovaamia maisemia.\",\"duration\":\"12 tuntia\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/f83ff684-1cf6-4d89-8825-cfdc004f60da.jpeg\",\"vendorId\":32720,\"vendorTitle\":\"Blue Lake Cruises\",\"category\":\"kumppani\",\"locations\":[\"savonlinna\",\"kuopio\"],\"eventDate\":null},{\"id\":677536,\"title\":\"Kanavaristeily Kuopio-Hein\u00e4vesi- Savonlinna s\/s Hein\u00e4vesi kausi 2026\",\"displayName\":\"Kanavaristeily Kuopio\u2013Savonlinna (s\/s Hein\u00e4vesi)\",\"excerpt\":\"Koe historiallinen Hein\u00e4veden reitti Savonlinnasta Kuopioon historiallisella h\u00f6yrylaiva s\/s Hein\u00e4vedell\u00e4. Kokonaisuudessaan Hein\u00e4veden reitti on maamme edustavimpia sis\u00e4vesiliikenteen muovaamia maisemia.\",\"duration\":\"12 tuntia\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/b57b1a7b-ccac-4003-abc0-c45d73a35753.jpeg\",\"vendorId\":32720,\"vendorTitle\":\"Blue Lake Cruises\",\"category\":\"kumppani\",\"locations\":[\"savonlinna\",\"kuopio\"],\"eventDate\":null},{\"id\":768032,\"title\":\"Pizza Tasting @Saariston Puoti\",\"displayName\":\"Pizza Tasting @ Saariston Puoti\",\"excerpt\":\"Koe autenttinen artesaanipizzael\u00e4mys j\u00e4rven rannalla!\",\"duration\":\"2 tuntia\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/70bd058d-c3cd-4eb9-85ab-a9a1f8e8c1d5.jpg\",\"vendorId\":93203,\"vendorTitle\":\"Saariston Puoti\",\"category\":\"muu\",\"locations\":[\"liperi\"],\"eventDate\":null},{\"id\":1028489,\"title\":\"S\u00e4hk\u00f6py\u00f6r\u00e4vuokraus - Koe Pohjoisen Saimaan py\u00f6r\u00e4reitit\",\"displayName\":\"S\u00e4hk\u00f6py\u00f6r\u00e4vuokraus \u2013 Pohjois-Karjala\",\"excerpt\":\"Koe vapaus tutustua Pohjois-Karjalan kauneimpiin kohteisiin premium-s\u00e4hk\u00f6isill\u00e4 fatbikeill\u00e4! Mukavat 4 tunnin vuokraukset sis\u00e4lt\u00e4v\u00e4t kyp\u00e4r\u00e4t, kartat, ja kaikki turvavarusteet. Valitse upeista reiteist\u00e4...\",\"duration\":\"4 tuntia\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/f9c3212c-dcd4-4ea5-aaee-c2127712374c.jpeg\",\"vendorId\":93203,\"vendorTitle\":\"Saariston Puoti\",\"category\":\"muu\",\"locations\":[],\"eventDate\":null},{\"id\":1037129,\"title\":\"M\/S Suvi-Tuuli \u2014 Risteilyt Pohjoisella Saimaalla & Pyh\u00e4sel\u00e4ll\u00e4 (Joensuu \u2194 Saariston Puoti)\",\"displayName\":\"M\/S Suvi-Tuuli \u2013 Pohjoisen Saimaan risteily\",\"excerpt\":\"M\/S Suvi-Tuulen risteilyt Pohjoisella Saimaalla ja Pyh\u00e4sel\u00e4ll\u00e4 \u2014 virvokkeet aluksella ja huikeat n\u00e4kym\u00e4t Joensuun ja Saariston Puodin (Tutjunniemi, Liperi) v\u00e4lill\u00e4.\",\"duration\":\"\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/bca6a6ad-1ba7-4e77-a785-f29bc324504a.jpeg\",\"vendorId\":93203,\"vendorTitle\":\"Saariston Puoti\",\"category\":\"risteily\",\"locations\":[\"joensuu\",\"liperi\"],\"eventDate\":null},{\"id\":1052254,\"title\":\"M\/S Suvi-Tuuli \u2014 Maisemaristeilyt Liperin saaristossa (Saariston Puodista, Tutjunniemi)\",\"displayName\":\"M\/S Suvi-Tuuli \u2014 Maisemaristeilyt Liperin saaristossa (Saariston Puodista, Tutjunniemi)\",\"excerpt\":\"Tutustu Liperin saaristoon M\/S Suvi-Tuulella \u2014 l\u00e4ht\u00f6 Saariston Puodista, reitti Tutjunniemen kautta. Mukavat istumapaikat, laivalla virvokkeita ja henke\u00e4salpaavat n\u00e4kym\u00e4t Pohjoisen Saimaan saaristoon.\",\"duration\":\"1 tunti\",\"hero\":\"https:\/\/bokun.s3.amazonaws.com\/7fb9d516-3991-4401-9328-cd84a03fa1ca.jpeg\",\"vendorId\":93203,\"vendorTitle\":\"Saariston Puoti\",\"category\":\"risteily\",\"locations\":[\"liperi\"],\"eventDate\":null}]};\r\n  let availability = {\"generatedAt\":\"2026-06-06T15:15:38.729Z\",\"rangeStart\":\"2026-06-06\",\"rangeEnd\":\"2026-10-04\",\"products\":{\"677517\":{\"slots\":8,\"openSlots\":8,\"soldOut\":false,\"lowStock\":true,\"nextDepartures\":[\"to 2.7.2026 klo 09:00\",\"to 9.7.2026 klo 09:00\",\"to 16.7.2026 klo 09:00\",\"to 23.7.2026 klo 09:00\",\"to 30.7.2026 klo 09:00\"],\"allDepartures\":[{\"date\":\"2026-07-02\",\"time\":\"09:00\",\"label\":\"\",\"availabilityCount\":54,\"bookedParticipants\":6,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-09\",\"time\":\"09:00\",\"label\":\"\",\"availabilityCount\":41,\"bookedParticipants\":19,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-16\",\"time\":\"09:00\",\"label\":\"\",\"availabilityCount\":38,\"bookedParticipants\":22,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-23\",\"time\":\"09:00\",\"label\":\"\",\"availabilityCount\":55,\"bookedParticipants\":5,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-30\",\"time\":\"09:00\",\"label\":\"\",\"availabilityCount\":47,\"bookedParticipants\":13,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-06\",\"time\":\"09:00\",\"label\":\"\",\"availabilityCount\":13,\"bookedParticipants\":2,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-13\",\"time\":\"09:00\",\"label\":\"\",\"availabilityCount\":13,\"bookedParticipants\":2,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-20\",\"time\":\"09:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":11,\"soldOut\":false,\"unavailable\":false}]},\"677536\":{\"slots\":8,\"openSlots\":8,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"ti 30.6.2026 klo 09:00\",\"ti 7.7.2026 klo 09:00\",\"ti 14.7.2026 klo 09:00\",\"ti 21.7.2026 klo 09:00\",\"ti 28.7.2026 klo 09:00\"],\"allDepartures\":[{\"date\":\"2026-06-30\",\"time\":\"09:00\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":30,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-07\",\"time\":\"09:00\",\"label\":\"\",\"availabilityCount\":43,\"bookedParticipants\":17,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-14\",\"time\":\"09:00\",\"label\":\"\",\"availabilityCount\":45,\"bookedParticipants\":15,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-21\",\"time\":\"09:00\",\"label\":\"\",\"availabilityCount\":52,\"bookedParticipants\":8,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-28\",\"time\":\"09:00\",\"label\":\"\",\"availabilityCount\":47,\"bookedParticipants\":13,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-04\",\"time\":\"09:00\",\"label\":\"\",\"availabilityCount\":43,\"bookedParticipants\":17,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-11\",\"time\":\"09:00\",\"label\":\"\",\"availabilityCount\":52,\"bookedParticipants\":8,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-18\",\"time\":\"09:00\",\"label\":\"\",\"availabilityCount\":58,\"bookedParticipants\":2,\"soldOut\":false,\"unavailable\":false}]},\"768032\":{\"slots\":12,\"openSlots\":12,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"ke 10.6.2026 klo 19:00 \u00b7 Illallinen\",\"ke 17.6.2026 klo 19:00 \u00b7 Illallinen\",\"ke 24.6.2026 klo 19:00 \u00b7 Illallinen\",\"ke 1.7.2026 klo 19:00 \u00b7 Illallinen\",\"ke 8.7.2026 klo 19:00 \u00b7 Illallinen\"],\"allDepartures\":[{\"date\":\"2026-06-10\",\"time\":\"19:00\",\"label\":\"Illallinen\",\"availabilityCount\":100,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-17\",\"time\":\"19:00\",\"label\":\"Illallinen\",\"availabilityCount\":100,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-24\",\"time\":\"19:00\",\"label\":\"Illallinen\",\"availabilityCount\":100,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-01\",\"time\":\"19:00\",\"label\":\"Illallinen\",\"availabilityCount\":100,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-08\",\"time\":\"19:00\",\"label\":\"Illallinen\",\"availabilityCount\":100,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-15\",\"time\":\"19:00\",\"label\":\"Illallinen\",\"availabilityCount\":100,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-22\",\"time\":\"19:00\",\"label\":\"Illallinen\",\"availabilityCount\":100,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-29\",\"time\":\"19:00\",\"label\":\"Illallinen\",\"availabilityCount\":100,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-05\",\"time\":\"19:00\",\"label\":\"Illallinen\",\"availabilityCount\":100,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-12\",\"time\":\"19:00\",\"label\":\"Illallinen\",\"availabilityCount\":100,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-19\",\"time\":\"19:00\",\"label\":\"Illallinen\",\"availabilityCount\":100,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-26\",\"time\":\"19:00\",\"label\":\"Illallinen\",\"availabilityCount\":100,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"829674\":{\"slots\":10,\"openSlots\":10,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"ti 16.6.2026 klo 13:30\",\"ti 23.6.2026 klo 13:30\",\"ti 30.6.2026 klo 13:30\",\"ti 7.7.2026 klo 13:30\",\"ti 14.7.2026 klo 13:30\"],\"allDepartures\":[{\"date\":\"2026-06-16\",\"time\":\"13:30\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-23\",\"time\":\"13:30\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-30\",\"time\":\"13:30\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-07\",\"time\":\"13:30\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-14\",\"time\":\"13:30\",\"label\":\"\",\"availabilityCount\":27,\"bookedParticipants\":3,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-28\",\"time\":\"13:30\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-04\",\"time\":\"13:30\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-11\",\"time\":\"13:30\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-18\",\"time\":\"13:30\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-25\",\"time\":\"13:30\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"829681\":{\"slots\":10,\"openSlots\":10,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"ti 16.6.2026 klo 11:00\",\"ti 23.6.2026 klo 11:00\",\"ti 30.6.2026 klo 11:00\",\"ti 7.7.2026 klo 11:00\",\"ti 14.7.2026 klo 11:00\"],\"allDepartures\":[{\"date\":\"2026-06-16\",\"time\":\"11:00\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-23\",\"time\":\"11:00\",\"label\":\"\",\"availabilityCount\":18,\"bookedParticipants\":12,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-30\",\"time\":\"11:00\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-07\",\"time\":\"11:00\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-14\",\"time\":\"11:00\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-28\",\"time\":\"11:00\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-04\",\"time\":\"11:00\",\"label\":\"\",\"availabilityCount\":28,\"bookedParticipants\":2,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-11\",\"time\":\"11:00\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-18\",\"time\":\"11:00\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-25\",\"time\":\"11:00\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"838109\":{\"slots\":10,\"openSlots\":10,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"ti 16.6.2026 klo 11:00\",\"ti 23.6.2026 klo 11:00\",\"ti 30.6.2026 klo 11:00\",\"ti 7.7.2026 klo 11:00\",\"ti 14.7.2026 klo 11:00\"],\"allDepartures\":[{\"date\":\"2026-06-16\",\"time\":\"11:00\",\"label\":\"\",\"availabilityCount\":50,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-23\",\"time\":\"11:00\",\"label\":\"\",\"availabilityCount\":50,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-30\",\"time\":\"11:00\",\"label\":\"\",\"availabilityCount\":48,\"bookedParticipants\":2,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-07\",\"time\":\"11:00\",\"label\":\"\",\"availabilityCount\":50,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-14\",\"time\":\"11:00\",\"label\":\"\",\"availabilityCount\":50,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-28\",\"time\":\"11:00\",\"label\":\"\",\"availabilityCount\":50,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-04\",\"time\":\"11:00\",\"label\":\"\",\"availabilityCount\":50,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-11\",\"time\":\"11:00\",\"label\":\"\",\"availabilityCount\":50,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-18\",\"time\":\"11:00\",\"label\":\"\",\"availabilityCount\":50,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-25\",\"time\":\"11:00\",\"label\":\"\",\"availabilityCount\":50,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"838178\":{\"slots\":10,\"openSlots\":10,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"ti 16.6.2026 klo 15:30\",\"ti 23.6.2026 klo 15:30\",\"ti 30.6.2026 klo 15:30\",\"ti 7.7.2026 klo 15:30\",\"ti 14.7.2026 klo 15:30\"],\"allDepartures\":[{\"date\":\"2026-06-16\",\"time\":\"15:30\",\"label\":\"\",\"availabilityCount\":28,\"bookedParticipants\":2,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-23\",\"time\":\"15:30\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-30\",\"time\":\"15:30\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-07\",\"time\":\"15:30\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-14\",\"time\":\"15:30\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-28\",\"time\":\"15:30\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-04\",\"time\":\"15:30\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-11\",\"time\":\"15:30\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-18\",\"time\":\"15:30\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-25\",\"time\":\"15:30\",\"label\":\"\",\"availabilityCount\":30,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"838184\":{\"slots\":4,\"openSlots\":4,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"pe 19.6.2026 klo 15:00\",\"pe 19.6.2026 klo 17:30\",\"la 20.6.2026 klo 15:00\",\"la 20.6.2026 klo 17:30\"],\"allDepartures\":[{\"date\":\"2026-06-19\",\"time\":\"15:00\",\"label\":\"\",\"availabilityCount\":11,\"bookedParticipants\":4,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-19\",\"time\":\"17:30\",\"label\":\"\",\"availabilityCount\":15,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-20\",\"time\":\"15:00\",\"label\":\"\",\"availabilityCount\":15,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-20\",\"time\":\"17:30\",\"label\":\"\",\"availabilityCount\":15,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"1028489\":{\"slots\":258,\"openSlots\":258,\"soldOut\":false,\"lowStock\":true,\"nextDepartures\":[\"su 7.6.2026 klo 10:00\",\"su 7.6.2026 klo 14:00\",\"su 7.6.2026 klo 18:00\",\"ma 8.6.2026 klo 10:00\",\"ma 8.6.2026 klo 14:00\"],\"allDepartures\":[{\"date\":\"2026-06-07\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-07\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-07\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-08\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-08\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-08\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-09\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-09\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-09\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-10\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-10\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-10\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-11\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-11\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-11\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-12\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-12\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-12\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-13\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-13\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-13\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-14\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-14\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-14\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-15\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-15\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-15\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-16\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-16\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-16\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-17\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-17\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-17\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-18\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-18\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-18\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-19\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-19\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-19\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-20\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-20\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-20\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-21\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-21\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-21\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-22\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-22\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-22\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-23\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-23\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-23\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-24\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-24\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-24\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-25\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-25\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-25\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-26\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-26\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-26\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-27\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-27\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-27\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-28\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-28\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-28\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-29\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-29\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-29\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-30\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-30\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-30\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-01\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-01\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-01\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-02\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-02\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-02\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-03\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-03\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-03\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-04\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-04\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-04\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-05\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-05\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-05\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-06\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-06\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-06\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-07\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-07\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-07\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-08\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-08\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-08\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-09\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-09\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-09\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-10\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-10\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-10\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-11\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-11\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-11\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-12\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-12\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-12\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-13\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-13\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-13\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-14\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-14\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-14\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-15\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-15\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-15\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-16\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-16\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-16\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-17\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-17\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-17\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-18\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-18\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-18\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-19\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-19\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-19\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-20\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-20\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-20\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-21\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-21\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-21\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-22\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-22\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-22\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-23\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-23\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-23\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-24\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-24\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-24\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-25\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-25\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-25\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-26\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-26\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-26\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-27\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-27\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-27\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-28\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-28\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-28\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-29\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-29\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-29\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-30\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-30\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-30\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-31\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-31\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-31\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-01\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-01\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-01\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-02\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-02\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-02\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-03\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-03\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-03\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-04\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-04\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-04\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-05\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-05\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-05\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-06\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-06\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-06\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-07\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-07\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-07\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-08\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-08\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-08\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-09\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-09\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-09\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-10\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-10\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-10\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-11\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-11\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-11\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-12\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-12\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-12\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-13\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-13\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-13\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-14\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-14\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-14\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-15\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-15\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-15\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-16\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-16\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-16\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-17\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-17\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-17\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-18\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-18\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-18\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-19\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-19\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-19\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-20\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-20\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-20\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-21\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-21\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-21\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-22\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-22\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-22\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-23\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-23\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-23\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-24\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-24\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-24\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-25\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-25\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-25\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-26\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-26\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-26\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-27\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-27\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-27\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-28\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-28\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-28\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-29\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-29\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-29\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-30\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-30\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-30\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-31\",\"time\":\"10:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-31\",\"time\":\"14:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-31\",\"time\":\"18:00\",\"label\":\"\",\"availabilityCount\":4,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"1037129\":{\"slots\":20,\"openSlots\":20,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"pe 12.6.2026 klo 17:00 \u00b7 Sunset & Dine \u2014 illallisristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"ke 17.6.2026 klo 17:00 \u00b7 Sunset & Dine \u2014 illallisristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"pe 19.6.2026 klo 17:00 \u00b7 Sunset & Dine \u2014 illallisristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"la 20.6.2026 klo 10:00 \u00b7 Lounasristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"ke 24.6.2026 klo 17:00 \u00b7 Sunset & Dine \u2014 illallisristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\"],\"allDepartures\":[{\"date\":\"2026-06-12\",\"time\":\"17:00\",\"label\":\"Sunset & Dine \u2014 illallisristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-17\",\"time\":\"17:00\",\"label\":\"Sunset & Dine \u2014 illallisristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-19\",\"time\":\"17:00\",\"label\":\"Sunset & Dine \u2014 illallisristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-20\",\"time\":\"10:00\",\"label\":\"Lounasristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-24\",\"time\":\"17:00\",\"label\":\"Sunset & Dine \u2014 illallisristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":56,\"bookedParticipants\":4,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-26\",\"time\":\"17:00\",\"label\":\"Sunset & Dine \u2014 illallisristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-01\",\"time\":\"17:00\",\"label\":\"Sunset & Dine \u2014 illallisristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-03\",\"time\":\"17:00\",\"label\":\"Sunset & Dine \u2014 illallisristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-04\",\"time\":\"10:00\",\"label\":\"Lounasristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-08\",\"time\":\"17:00\",\"label\":\"Sunset & Dine \u2014 illallisristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-17\",\"time\":\"17:00\",\"label\":\"Sunset & Dine \u2014 illallisristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-18\",\"time\":\"10:00\",\"label\":\"Lounasristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-22\",\"time\":\"17:00\",\"label\":\"Sunset & Dine \u2014 illallisristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-24\",\"time\":\"17:00\",\"label\":\"Sunset & Dine \u2014 illallisristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":56,\"bookedParticipants\":4,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-29\",\"time\":\"17:00\",\"label\":\"Sunset & Dine \u2014 illallisristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-31\",\"time\":\"17:00\",\"label\":\"Sunset & Dine \u2014 illallisristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-05\",\"time\":\"17:00\",\"label\":\"Sunset & Dine \u2014 illallisristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-12\",\"time\":\"17:00\",\"label\":\"Sunset & Dine \u2014 illallisristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-15\",\"time\":\"10:00\",\"label\":\"Lounasristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-21\",\"time\":\"17:00\",\"label\":\"Sunset & Dine \u2014 illallisristeily, l\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"1052254\":{\"slots\":20,\"openSlots\":20,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"pe 12.6.2026 klo 19:30\",\"ke 17.6.2026 klo 19:30\",\"pe 19.6.2026 klo 19:30\",\"la 20.6.2026 klo 12:30\",\"ke 24.6.2026 klo 19:30\"],\"allDepartures\":[{\"date\":\"2026-06-12\",\"time\":\"19:30\",\"label\":\"\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-17\",\"time\":\"19:30\",\"label\":\"\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-19\",\"time\":\"19:30\",\"label\":\"\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-20\",\"time\":\"12:30\",\"label\":\"\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-24\",\"time\":\"19:30\",\"label\":\"\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-26\",\"time\":\"19:30\",\"label\":\"\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-01\",\"time\":\"19:30\",\"label\":\"\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-03\",\"time\":\"19:30\",\"label\":\"\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-04\",\"time\":\"12:30\",\"label\":\"\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-08\",\"time\":\"19:30\",\"label\":\"\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-17\",\"time\":\"19:30\",\"label\":\"\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-18\",\"time\":\"12:30\",\"label\":\"\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-22\",\"time\":\"19:30\",\"label\":\"\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-24\",\"time\":\"19:30\",\"label\":\"\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-29\",\"time\":\"19:30\",\"label\":\"\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-31\",\"time\":\"19:30\",\"label\":\"\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-05\",\"time\":\"19:30\",\"label\":\"\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-12\",\"time\":\"19:30\",\"label\":\"\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-15\",\"time\":\"12:30\",\"label\":\"\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-21\",\"time\":\"19:30\",\"label\":\"\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"1224819\":{\"slots\":1,\"openSlots\":1,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"la 13.6.2026 klo 18:00 \u00b7 L\u00e4ht\u00f6 Joensuun matkustajasatamasta\"],\"allDepartures\":[{\"date\":\"2026-06-13\",\"time\":\"18:00\",\"label\":\"L\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":68,\"bookedParticipants\":2,\"soldOut\":false,\"unavailable\":false}]},\"1224841\":{\"slots\":3,\"openSlots\":3,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"la 13.6.2026 klo 17:15 \u00b7 Reitti 3: Tohmaj\u00e4rvelt\u00e4\",\"la 13.6.2026 klo 17:30 \u00b7 Reitti 2: Tuusniemelt\u00e4\",\"la 13.6.2026 klo 18:00 \u00b7 Reitti 1: Joensuusta\"],\"allDepartures\":[{\"date\":\"2026-06-13\",\"time\":\"17:15\",\"label\":\"Reitti 3: Tohmaj\u00e4rvelt\u00e4\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-13\",\"time\":\"17:30\",\"label\":\"Reitti 2: Tuusniemelt\u00e4\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-13\",\"time\":\"18:00\",\"label\":\"Reitti 1: Joensuusta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"1224843\":{\"slots\":1,\"openSlots\":1,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"la 20.6.2026 klo 18:00 \u00b7 L\u00e4ht\u00f6 Joensuun matkustajasatamasta\"],\"allDepartures\":[{\"date\":\"2026-06-20\",\"time\":\"18:00\",\"label\":\"L\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":70,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"1224845\":{\"slots\":1,\"openSlots\":1,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"pe 19.6.2026 klo 18:00 \u00b7 L\u00e4ht\u00f6 Joensuun matkustajasatamasta\"],\"allDepartures\":[{\"date\":\"2026-06-19\",\"time\":\"18:00\",\"label\":\"L\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":70,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"1224846\":{\"slots\":3,\"openSlots\":3,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"pe 19.6.2026 klo 17:15 \u00b7 Reitti 3: Tohmaj\u00e4rvelt\u00e4\",\"pe 19.6.2026 klo 17:30 \u00b7 Reitti 2: Tuusniemelt\u00e4\",\"pe 19.6.2026 klo 18:00 \u00b7 Reitti 1: Joensuusta\"],\"allDepartures\":[{\"date\":\"2026-06-19\",\"time\":\"17:15\",\"label\":\"Reitti 3: Tohmaj\u00e4rvelt\u00e4\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-19\",\"time\":\"17:30\",\"label\":\"Reitti 2: Tuusniemelt\u00e4\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-19\",\"time\":\"18:00\",\"label\":\"Reitti 1: Joensuusta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"1224847\":{\"slots\":3,\"openSlots\":3,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"la 20.6.2026 klo 17:15 \u00b7 Reitti 3: Tohmaj\u00e4rvelt\u00e4\",\"la 20.6.2026 klo 17:30 \u00b7 Reitti 2: Tuusniemelt\u00e4\",\"la 20.6.2026 klo 18:00 \u00b7 Reitti 1: Joensuusta\"],\"allDepartures\":[{\"date\":\"2026-06-20\",\"time\":\"17:15\",\"label\":\"Reitti 3: Tohmaj\u00e4rvelt\u00e4\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-20\",\"time\":\"17:30\",\"label\":\"Reitti 2: Tuusniemelt\u00e4\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-06-20\",\"time\":\"18:00\",\"label\":\"Reitti 1: Joensuusta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"1224848\":{\"slots\":1,\"openSlots\":1,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"la 11.7.2026 klo 18:00 \u00b7 L\u00e4ht\u00f6 Joensuun matkustajasatamasta\"],\"allDepartures\":[{\"date\":\"2026-07-11\",\"time\":\"18:00\",\"label\":\"L\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":67,\"bookedParticipants\":3,\"soldOut\":false,\"unavailable\":false}]},\"1224849\":{\"slots\":3,\"openSlots\":3,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"la 11.7.2026 klo 17:15 \u00b7 Reitti 3: Tohmaj\u00e4rvelt\u00e4\",\"la 11.7.2026 klo 17:30 \u00b7 Reitti 2: Tuusniemelt\u00e4\",\"la 11.7.2026 klo 18:00 \u00b7 Reitti 1: Joensuusta\"],\"allDepartures\":[{\"date\":\"2026-07-11\",\"time\":\"17:15\",\"label\":\"Reitti 3: Tohmaj\u00e4rvelt\u00e4\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-11\",\"time\":\"17:30\",\"label\":\"Reitti 2: Tuusniemelt\u00e4\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-11\",\"time\":\"18:00\",\"label\":\"Reitti 1: Joensuusta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"1224850\":{\"slots\":1,\"openSlots\":1,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"la 25.7.2026 klo 18:00 \u00b7 L\u00e4ht\u00f6 Joensuun matkustajasatamasta\"],\"allDepartures\":[{\"date\":\"2026-07-25\",\"time\":\"18:00\",\"label\":\"L\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":68,\"bookedParticipants\":2,\"soldOut\":false,\"unavailable\":false}]},\"1224851\":{\"slots\":3,\"openSlots\":3,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"la 25.7.2026 klo 17:15 \u00b7 Reitti 3: Tohmaj\u00e4rvelt\u00e4\",\"la 25.7.2026 klo 17:30 \u00b7 Reitti 2: Tuusniemelt\u00e4\",\"la 25.7.2026 klo 18:00 \u00b7 Reitti 1: Joensuusta\"],\"allDepartures\":[{\"date\":\"2026-07-25\",\"time\":\"17:15\",\"label\":\"Reitti 3: Tohmaj\u00e4rvelt\u00e4\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-25\",\"time\":\"17:30\",\"label\":\"Reitti 2: Tuusniemelt\u00e4\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-07-25\",\"time\":\"18:00\",\"label\":\"Reitti 1: Joensuusta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"1224852\":{\"slots\":1,\"openSlots\":1,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"la 8.8.2026 klo 18:00 \u00b7 L\u00e4ht\u00f6 Joensuun matkustajasatamasta\"],\"allDepartures\":[{\"date\":\"2026-08-08\",\"time\":\"18:00\",\"label\":\"L\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":70,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"1224853\":{\"slots\":3,\"openSlots\":3,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"la 8.8.2026 klo 17:15 \u00b7 Reitti 3: Tohmaj\u00e4rvelt\u00e4\",\"la 8.8.2026 klo 17:30 \u00b7 Reitti 2: Tuusniemelt\u00e4\",\"la 8.8.2026 klo 18:00 \u00b7 Reitti 1: Joensuusta\"],\"allDepartures\":[{\"date\":\"2026-08-08\",\"time\":\"17:15\",\"label\":\"Reitti 3: Tohmaj\u00e4rvelt\u00e4\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-08\",\"time\":\"17:30\",\"label\":\"Reitti 2: Tuusniemelt\u00e4\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-08\",\"time\":\"18:00\",\"label\":\"Reitti 1: Joensuusta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"1224854\":{\"slots\":1,\"openSlots\":1,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"pe 28.8.2026 klo 18:00 \u00b7 L\u00e4ht\u00f6 Joensuun matkustajasatamasta\"],\"allDepartures\":[{\"date\":\"2026-08-28\",\"time\":\"18:00\",\"label\":\"L\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":70,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"1224855\":{\"slots\":3,\"openSlots\":3,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"pe 28.8.2026 klo 17:15 \u00b7 Reitti 3: Tohmaj\u00e4rvelt\u00e4\",\"pe 28.8.2026 klo 17:30 \u00b7 Reitti 2: Tuusniemelt\u00e4\",\"pe 28.8.2026 klo 18:00 \u00b7 Reitti 1: Joensuusta\"],\"allDepartures\":[{\"date\":\"2026-08-28\",\"time\":\"17:15\",\"label\":\"Reitti 3: Tohmaj\u00e4rvelt\u00e4\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-28\",\"time\":\"17:30\",\"label\":\"Reitti 2: Tuusniemelt\u00e4\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-28\",\"time\":\"18:00\",\"label\":\"Reitti 1: Joensuusta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"1224856\":{\"slots\":1,\"openSlots\":1,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"la 29.8.2026 klo 18:00 \u00b7 L\u00e4ht\u00f6 Joensuun matkustajasatamasta\"],\"allDepartures\":[{\"date\":\"2026-08-29\",\"time\":\"18:00\",\"label\":\"L\u00e4ht\u00f6 Joensuun matkustajasatamasta\",\"availabilityCount\":70,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]},\"1224857\":{\"slots\":3,\"openSlots\":3,\"soldOut\":false,\"lowStock\":false,\"nextDepartures\":[\"la 29.8.2026 klo 17:15 \u00b7 Reitti 3: Tohmaj\u00e4rvelt\u00e4\",\"la 29.8.2026 klo 17:30 \u00b7 Reitti 2: Tuusniemelt\u00e4\",\"la 29.8.2026 klo 18:00 \u00b7 Reitti 1: Joensuusta\"],\"allDepartures\":[{\"date\":\"2026-08-29\",\"time\":\"17:15\",\"label\":\"Reitti 3: Tohmaj\u00e4rvelt\u00e4\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-29\",\"time\":\"17:30\",\"label\":\"Reitti 2: Tuusniemelt\u00e4\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false},{\"date\":\"2026-08-29\",\"time\":\"18:00\",\"label\":\"Reitti 1: Joensuusta\",\"availabilityCount\":60,\"bookedParticipants\":0,\"soldOut\":false,\"unavailable\":false}]}}};\r\n  const upcomingRoot = document.getElementById('ep26-upcoming-list');\r\n  const upcomingBusRoot = document.getElementById('ep26-upcoming-bus-list');\r\n  const CAT_ORDER = ['risteily','puoti_live','keikkabussi','muu','kumppani'];\r\n  const esc = s => String(s==null?'':s).replace(\/[&<>\"']\/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c]));\r\n  const bokunUrl = id => 'https:\/\/widgets.bokun.io\/online-sales\/'+data.channelUUID+'\/experience\/'+id+'?partialView=1';\r\n  const productById = new Map(data.products.map(p => [String(p.id), p]));\r\n  function statusOf(p){\r\n    if(!availability) return {tone:'available',label:'Saatavilla'};\r\n    const a = availability.products && availability.products[p.id];\r\n    if(!a) return {tone:'available',label:'Saatavilla'};\r\n    if(a.soldOut) return {tone:'out',label:'Loppuunmyyty'};\r\n    if(a.lowStock) return {tone:'low',label:'Vain muutamia j\u00e4ljell\u00e4'};\r\n    return {tone:'available',label:'Saatavilla'};\r\n  }\r\n  function metaIcons(p){\r\n    const bits=[];\r\n    if(p.duration) bits.push('<span class=\"ep26-meta-item\">\u23f1 '+esc(p.duration)+'<\/span>');\r\n    if(p.locations && p.locations.length){\r\n      const map={joensuu:'Joensuu',liperi:'Liperi',tohmajarvi:'Tohmaj\u00e4rvi',tuusniemi:'Tuusniemi',punkaharju:'Punkaharju',savonlinna:'Savonlinna',kuopio:'Kuopio'};\r\n      bits.push('<span class=\"ep26-meta-item\">\ud83d\udccd '+esc(p.locations.map(l=>map[l]||l).slice(0,2).join(' \u00b7 '))+'<\/span>');\r\n    }\r\n    if(p.eventDate){\r\n      const d=new Date(p.eventDate);\r\n      const wd=['su','ma','ti','ke','to','pe','la'][d.getDay()];\r\n      bits.push('<span class=\"ep26-meta-item\">\ud83d\udcc5 '+wd+' '+d.getDate()+'.'+(d.getMonth()+1)+'.'+d.getFullYear()+'<\/span>');\r\n    }\r\n    return bits.join('');\r\n  }\r\n  function priceOf(p){\r\n    if(availability && availability.products && availability.products[p.id]){\r\n      const a=availability.products[p.id]; if(a.fromPriceText) return a.fromPriceText;\r\n    }\r\n    return null;\r\n  }\r\n  function nextDeparturesHtml(p){\r\n    if(!availability) return '';\r\n    const a=availability.products && availability.products[p.id];\r\n    if(!a || !a.nextDepartures || !a.nextDepartures.length) return '';\r\n    const lines=a.nextDepartures.slice(0,3).map(d=>'<li>'+esc(d)+'<\/li>').join('');\r\n    return '<div class=\"ep26-card-departures has-data\"><div class=\"ep26-departures-label\">Seuraavat l\u00e4hd\u00f6t<\/div><ul class=\"ep26-departures-list\">'+lines+'<\/ul><\/div>';\r\n  }\r\n  function dateParts(iso){\r\n    const d = new Date(iso + 'T12:00:00');\r\n    return {\r\n      weekday: ['su','ma','ti','ke','to','pe','la'][d.getDay()],\r\n      date: d.getDate()+'.'+(d.getMonth()+1)+'.',\r\n      full: d.getDate()+'.'+(d.getMonth()+1)+'.'+d.getFullYear()\r\n    };\r\n  }\r\n  function renderUpcomingInto(targetRoot, allowedCategories, opts){\r\n    if(!targetRoot) return;\r\n    const limit = (opts && opts.limit) || 14;\r\n    const emptyMsg = (opts && opts.emptyMsg) || 'Seuraavalle 14 p\u00e4iv\u00e4lle ei l\u00f6ytynyt avoimia l\u00e4ht\u00f6j\u00e4.';\r\n    const dedupePerProduct = !!(opts && opts.dedupePerProduct);\r\n    const ctaText = (opts && opts.ctaText) || 'Varaa';\r\n    const hideSlotLabel = !!(opts && opts.hideSlotLabel);\r\n    if(!availability || !availability.products){\r\n      targetRoot.innerHTML = '<div class=\"ep26-upcoming-empty\">L\u00e4ht\u00f6data ei ole viel\u00e4 saatavilla.<\/div>';\r\n      return;\r\n    }\r\n    const start = new Date((availability.rangeStart || new Date().toISOString().slice(0,10)) + 'T00:00:00');\r\n    const end = new Date(start);\r\n    end.setDate(end.getDate() + 14);\r\n    const allowed = new Set(allowedCategories);\r\n    const rows = [];\r\n    Object.entries(availability.products).forEach(([id, a]) => {\r\n      const p = productById.get(String(id));\r\n      if(!p) return;\r\n      if(!allowed.has(p.category)) return;\r\n      (a.allDepartures || []).forEach(dep => {\r\n        if(dep.unavailable || dep.soldOut) return;\r\n        const dt = new Date(dep.date + 'T00:00:00');\r\n        if(dt < start || dt > end) return;\r\n        rows.push({product:p, dep});\r\n      });\r\n    });\r\n    rows.sort((a,b) => (a.dep.date+' '+a.dep.time+' '+a.product.title).localeCompare(b.dep.date+' '+b.dep.time+' '+b.product.title));\r\n    let working = rows;\r\n    if(dedupePerProduct){\r\n      const seen = new Set();\r\n      working = rows.filter(r => {\r\n        if(seen.has(r.product.id)) return false;\r\n        seen.add(r.product.id);\r\n        return true;\r\n      });\r\n    }\r\n    const limited = working.slice(0, limit);\r\n    if(!limited.length){\r\n      targetRoot.innerHTML = '<div class=\"ep26-upcoming-empty\">'+esc(emptyMsg)+'<\/div>';\r\n      return;\r\n    }\r\n    targetRoot.innerHTML = limited.map(({product:p, dep}) => {\r\n      const d = dateParts(dep.date);\r\n      const low = dep.availabilityCount && dep.availabilityCount <= 5;\r\n      const stock = low ? 'Vain muutama paikka j\u00e4ljell\u00e4' : 'Saatavilla';\r\n      const timeLine = dedupePerProduct ? d.full : ('klo '+esc(dep.time || '')+' \u00b7 '+esc(d.full));\r\n      return '<article class=\"ep26-departure\">' +\r\n        '<div class=\"ep26-departure-date\"><strong>'+esc(d.weekday)+'<\/strong><span>'+esc(d.date)+'<\/span><\/div>' +\r\n        '<div class=\"ep26-departure-main\">' +\r\n          '<p class=\"ep26-departure-time\">'+timeLine+'<\/p>' +\r\n          '<h3 class=\"ep26-departure-title\">'+esc(p.displayName || p.title)+'<\/h3>' +\r\n          (!hideSlotLabel && dep.label ? '<p class=\"ep26-departure-label\">'+esc(dep.label)+'<\/p>' : '') +\r\n        '<\/div>' +\r\n        '<div class=\"ep26-departure-side\">' +\r\n          '<span class=\"ep26-departure-stock'+(low?' is-low':'')+'\">'+esc(stock)+'<\/span>' +\r\n          '<button class=\"ep26-mini-btn bokunButton\" id=\"bokun_dep_'+esc(p.id)+'_'+esc(dep.date.replaceAll('-',''))+'_'+esc((dep.time||'').replace(':',''))+'\" data-src=\"'+bokunUrl(p.id)+'\" data-testid=\"widget-book-button\">'+esc(ctaText)+'<\/button>' +\r\n        '<\/div>' +\r\n      '<\/article>';\r\n    }).join('');\r\n  }\r\n  function renderUpcoming(){\r\n    renderUpcomingInto(upcomingRoot, ['risteily','puoti_live'], { emptyMsg: 'Seuraavalle 14 p\u00e4iv\u00e4lle ei l\u00f6ytynyt avoimia risteilyl\u00e4ht\u00f6j\u00e4.' });\r\n    renderUpcomingInto(upcomingBusRoot, ['keikkabussi'], {\r\n      emptyMsg: 'Seuraavalle 14 p\u00e4iv\u00e4lle ei l\u00f6ytynyt avoimia keikkabussil\u00e4ht\u00f6j\u00e4.',\r\n      dedupePerProduct: true,\r\n      hideSlotLabel: true,\r\n      ctaText: 'N\u00e4yt\u00e4 l\u00e4hd\u00f6t \u2192',\r\n    });\r\n  }\r\n  function renderCard(p){\r\n    const st=statusOf(p); const tags=[];\r\n    if(p.category==='puoti_live') tags.push('<span class=\"ep26-tag is-live\">Puoti LIVE!<\/span>');\r\n    else if(p.category==='kumppani') tags.push('<span class=\"ep26-tag is-partner\">'+esc(p.vendorTitle||'Kumppani')+'<\/span>');\r\n    else tags.push('<span class=\"ep26-tag\">'+esc((data.categories[p.category]||{}).label||p.category)+'<\/span>');\r\n    const ctaLabel = p.category==='keikkabussi'?'\ud83d\ude8c Varaa bussipaikka':(p.category==='puoti_live'?'\ud83d\udea2 Varaa risteily + lippu':'\ud83c\udf9f Varaa');\r\n    const price = priceOf(p);\r\n    const priceHtml = price ? '<div class=\"ep26-card-price\"><em>Alkaen<\/em>'+esc(price)+'<\/div>' : '';\r\n    return '<article class=\"ep26-card\" data-ep26-card data-category=\"'+esc(p.category)+'\" data-locations=\"'+esc((p.locations||[]).join(' '))+'\" data-status=\"'+st.tone+'\">'+\r\n      '<div class=\"ep26-card-img\">'+\r\n        (p.hero?'<img decoding=\"async\" loading=\"lazy\" src=\"'+esc(p.hero)+'\" alt=\"\">':'')+\r\n        '<div class=\"ep26-tags\">'+tags.join('')+'<\/div>'+\r\n        '<div class=\"ep26-status is-'+st.tone+'\">'+st.label+'<\/div>'+\r\n      '<\/div>'+\r\n      '<div class=\"ep26-card-body\">'+\r\n        '<h3 class=\"ep26-card-title\">'+esc(p.displayName || p.title)+'<\/h3>'+\r\n        '<div class=\"ep26-card-meta\">'+metaIcons(p)+'<\/div>'+\r\n        (p.excerpt?'<p class=\"ep26-card-excerpt\">'+esc(p.excerpt)+'<\/p>':'')+\r\n        nextDeparturesHtml(p)+\r\n        priceHtml+\r\n        '<div class=\"ep26-card-cta\"><button class=\"ep26-btn bokunButton\" id=\"bokun_exp_'+p.id+'\" data-src=\"'+bokunUrl(p.id)+'\" data-testid=\"widget-book-button\"'+(st.tone==='out'?' disabled':'')+'><span>'+esc(ctaLabel)+'<\/span><b>\u2192<\/b><\/button><\/div>'+\r\n      '<\/div>'+\r\n    '<\/article>';\r\n  }\r\n  const html = CAT_ORDER.map(cat=>{\r\n    const products = data.products.filter(p=>p.category===cat);\r\n    if(!products.length) return '';\r\n    const meta = data.categories[cat]||{label:cat,icon:'',description:''};\r\n    return '<section class=\"ep26-section\" data-ep26-section=\"'+cat+'\">'+\r\n      '<div class=\"ep26-section-head\"><h2 class=\"ep26-section-title\"><span class=\"ep26-section-icon\">'+meta.icon+'<\/span>'+esc(meta.label)+'<\/h2><p class=\"ep26-section-desc\">'+esc(meta.description)+'<\/p><\/div>'+\r\n      '<div class=\"ep26-grid\">'+products.map(renderCard).join('')+'<\/div>'+\r\n    '<\/section>';\r\n  }).filter(Boolean).join('');\r\n  root.innerHTML = html || '<div class=\"ep26-empty\">Ei tuotteita.<\/div>';\r\n  renderUpcoming();\r\n  const state = {category:'all',location:'all',status:'all'};\r\n  function applyFilters(){\r\n    const cards = root.querySelectorAll('[data-ep26-card]');\r\n    let visible=0;\r\n    cards.forEach(card=>{\r\n      const c=card.dataset.category;\r\n      const locs=(card.dataset.locations||'').split(\/\\s+\/).filter(Boolean);\r\n      const s=card.dataset.status;\r\n      let ok=true;\r\n      if(state.category!=='all' && c!==state.category) ok=false;\r\n      if(state.location!=='all' && !locs.includes(state.location)) ok=false;\r\n      if(state.status==='available' && s==='out') ok=false;\r\n      if(state.status==='low' && s!=='low') ok=false;\r\n      card.hidden=!ok; if(ok) visible++;\r\n    });\r\n    root.querySelectorAll('.ep26-section').forEach(sec=>{\r\n      const any=sec.querySelectorAll('[data-ep26-card]:not([hidden])').length;\r\n      sec.classList.toggle('is-empty',any===0);\r\n    });\r\n    countEl.textContent = (visible===cards.length) ? ('Kaikki el\u00e4mykset ('+visible+')') : (visible+' \/ '+cards.length+' el\u00e4myst\u00e4');\r\n  }\r\n  function wireFilterGroup(attr,key){\r\n    const cap=attr.charAt(0).toUpperCase()+attr.slice(1);\r\n    document.querySelectorAll('[data-ep26-'+attr+']').forEach(btn=>{\r\n      btn.addEventListener('click',()=>{\r\n        const val=btn.dataset['ep26'+cap];\r\n        state[key]=val;\r\n        document.querySelectorAll('[data-ep26-'+attr+']').forEach(b=>{\r\n          b.setAttribute('aria-pressed', b.dataset['ep26'+cap]===val?'true':'false');\r\n        });\r\n        applyFilters();\r\n      });\r\n    });\r\n  }\r\n  wireFilterGroup('category','category');\r\n  wireFilterGroup('location','location');\r\n  wireFilterGroup('status','status');\r\n  resetBtn.addEventListener('click',()=>{\r\n    state.category='all'; state.location='all'; state.status='all';\r\n    document.querySelectorAll('.ep26-filter').forEach(b=>{\r\n      const isAll = b.dataset.ep26Category==='all' || b.dataset.ep26Location==='all' || b.dataset.ep26Status==='all';\r\n      b.setAttribute('aria-pressed', isAll?'true':'false');\r\n    });\r\n    applyFilters();\r\n  });\r\n  applyFilters();\r\n  if(window.BokunWidgetEmbedder){ try{ window.BokunWidgetEmbedder.scan(); }catch(e){} }\r\n})();\r\n<\/script>\r\n\r\n<!-- \/El\u00e4myspuoti block -->\r\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3e28ab3 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"3e28ab3\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t    <div class=\"bokunWidget\" data-src=\"https:\/\/widgets.bokun.io\/online-sales\/16636f67-7269-4387-bf31-3af308292416\/product-list\/88646\"><\/div>\r\n    <noscript>Please enable javascript in your browser to book<\/noscript>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e91fcff elementor-widget elementor-widget-heading\" data-id=\"e91fcff\" data-element_type=\"widget\" id=\"lahjakortit\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.6.4 - 13-04-2022 *\/\n.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}<\/style><h1 class=\"elementor-heading-title elementor-size-default\">GIFT VOUCHERS FROM THE EXPERIENCE SHOP<\/h1>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6dbfb22 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"6dbfb22\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"bokunWidget\" data-src=\"https:\/\/widgets.bokun.io\/online-sales\/16636f67-7269-4387-bf31-3af308292416\/gift-card\/3177\"><\/div>\r\n    <noscript>Please enable javascript in your browser to book<\/noscript>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d8036a2 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"d8036a2\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"bokunWidget\" data-src=\"https:\/\/widgets.bokun.io\/online-sales\/16636f67-7269-4387-bf31-3af308292416\/gift-card\/3175\"><\/div>\r\n    <noscript>Please enable javascript in your browser to book<\/noscript>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/div>\t\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Saariston Puoti \u00b7 Liperi \u00b7 Kes\u00e4 2026 El\u00e4myspuoti Risteilyt, Puoti LIVE! -keikat, keikkabussit ja kumppaniel\u00e4mykset Pohjois-Karjalan kauneimmilla j\u00e4rvimaisemilla. Varaa heti \u2014 paikat t\u00e4yttyv\u00e4t vauhdilla. Seuraavat 14 p\u00e4iv\u00e4\u00e4 \u00b7 M\/S Suvi-Tuuli \ud83d\udea2 Tulevat risteilyl\u00e4hd\u00f6t Risteilyt ja Puoti LIVE! -risteilyt Joensuusta Saariston Puodilla, sek\u00e4 maisemaristeilyt Saariston Puodilta. Ladataan seuraavia l\u00e4ht\u00f6j\u00e4&#8230; Seuraavat 14 p\u00e4iv\u00e4\u00e4 \u00b7 Tohmaj\u00e4rvi \/ Tuusniemi [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-41290","page","type-page","status-publish","hentry"],"acf":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.saaristonpuoti.fi\/en\/wp-json\/wp\/v2\/pages\/41290","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.saaristonpuoti.fi\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.saaristonpuoti.fi\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.saaristonpuoti.fi\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.saaristonpuoti.fi\/en\/wp-json\/wp\/v2\/comments?post=41290"}],"version-history":[{"count":85,"href":"https:\/\/www.saaristonpuoti.fi\/en\/wp-json\/wp\/v2\/pages\/41290\/revisions"}],"predecessor-version":[{"id":42656,"href":"https:\/\/www.saaristonpuoti.fi\/en\/wp-json\/wp\/v2\/pages\/41290\/revisions\/42656"}],"wp:attachment":[{"href":"https:\/\/www.saaristonpuoti.fi\/en\/wp-json\/wp\/v2\/media?parent=41290"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}