{"title":"1-Bedroom Home Collection","description":"","products":[{"product_id":"taipei-rental-monthly-apartment-kdeluxe","title":"K Deluxe Suite","description":"\u003cp\u003eThis simple, clean suite comes with a 150x188cm bed, a 32 inch TV, a sofa, and other essential electrical appliances. We provide a microwave, coined operated washer and dryer at the shared space. Utilities are included.\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e6 ping \/ 20 ㎡ \/ 215 sqft\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e3-minute walk to\u003cspan style=\"color: #fa6a4d;\"\u003e MRT National Taiwan University Hospital Station\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003eElevator\u003c\/li\u003e\n\u003cli\u003eCable TV \u003c\/li\u003e\n\u003cli\u003eWifi\u003c\/li\u003e\n\u003cli\u003eAir Conditioner\u003c\/li\u003e\n\u003cli\u003eRefrigerator  \u003c\/li\u003e\n\u003cli\u003eWater boiler\u003c\/li\u003e\n\u003cli\u003eBed (150 x 188cm)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003e\u003cstrong\u003eShared Space\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMicrowave \u003c\/li\u003e\n\u003cli\u003eWater dispenser\u003c\/li\u003e\n\u003cli\u003eCoined operated washer\u003c\/li\u003e\n\u003cli\u003eCoined operated dryer\u003cbr\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003e\u003cstrong\u003eLooking for more options near NTU Hospital\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-ksingle\"\u003eK Single Room\u003c\/a\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard\"\u003eK Standard Suite\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard-desk\"\u003eK Standard \u003c\/a\u003e\u003cmeta charset=\"utf-8\"\u003e \u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard\"\u003eSuite\u003c\/a\u003e\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard-desk\"\u003e w\/ Desk\u003c\/a\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard-view\"\u003eK \u003c\/a\u003e\u003cmeta charset=\"utf-8\"\u003e \u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard-desk\"\u003eStandard\u003c\/a\u003e\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard-view\"\u003e Suite w\/ View\u003c\/a\u003e\u003cb\u003e\u003cbr\u003e\u003c\/b\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":40966516179130,"sku":"","price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/K_Kolette_Home_Bedroom_7.jpg?v=1777024777"},{"product_id":"taipei-rental-monthly-apartment-kstandard-view","title":"K Standard Suite with View","description":"\u003cp\u003eThis simple, clean suite comes with views of trees and the city, a 150x188cm bed, a 32 inch TV, and other essential electrical appliances. We provide a microwave, coined operated washer and dryer at the shared space. Utilities are included.\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e3.6 ping \/ 11.9 ㎡ \/ 128 sqft\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e3-minute walk to \u003cspan style=\"color: #fa6a4d;\"\u003eMRT National Taiwan University Hospital Station\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003eElevator\u003c\/li\u003e\n\u003cli\u003eCable TV \u003c\/li\u003e\n\u003cli\u003eWifi\u003c\/li\u003e\n\u003cli\u003eAir Conditioner\u003c\/li\u003e\n\u003cli\u003eRefrigerator  \u003c\/li\u003e\n\u003cli\u003eWater boiler\u003c\/li\u003e\n\u003cli\u003eBed (150 x 188cm)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003e\u003cstrong\u003eShared Space\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMicrowave \u003c\/li\u003e\n\u003cli\u003eWater dispenser\u003c\/li\u003e\n\u003cli\u003eCoined operated washer\u003c\/li\u003e\n\u003cli\u003eCoined operated dryer\u003cbr\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003e\u003cstrong\u003eLooking for more options near NTU Hospital\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-ksingle\"\u003eK Single Room\u003c\/a\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard\"\u003eK Standard Suite\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard-desk\"\u003eK Standard \u003c\/a\u003e\u003cmeta charset=\"utf-8\"\u003e \u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard\"\u003eSuite\u003c\/a\u003e\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard-desk\"\u003e w\/ Desk\u003c\/a\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kdeluxe\"\u003eK Deluxe Suite\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":40966558875834,"sku":"","price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/K_Kolette_Home_Bedroom_5.jpg?v=1777024335"},{"product_id":"taipei-rental-monthly-apartment-nj7","title":"Sunlight Studio with Kitchen (NJ7)","description":"\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eStylish, clean and independent suite with a double bed, this home is modern, new and cozy at the same time. It is only 5 minutes walk to MRT Zhongshan station, which is the transfer spot between MRT Red Line and Green Line, gives city dwellers great convenience.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e15 ping \/ 49.5 ㎡ \/ 534 sqft\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003e1 bedroom and 1 bathroom\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e5-minute walk from \u003cspan style=\"color: rgb(76, 161, 54);\"\u003eMRT Zhongshan Station\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTV\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWifi\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eAir Conditioner \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eBed (150cm*188cm) \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eCooking Stove\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMicrowave \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWasher\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cdiv id=\"kc-cal\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  var WORKER = \"https:\/\/ical-proxy.aidantpe.workers.dev\";\n  var ICAL_URL = \"https:\/\/www.airbnb.com.tw\/calendar\/ical\/43233588.ics?t=c38743023cf4488b8751d0d277b84abc\";\n\n  var bookedRanges=[];\n  var cy=new Date().getFullYear();\n  var cm=new Date().getMonth();\n  var MN=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];\n  var DN=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"];\n\n  var wrap=document.getElementById(\"kc-cal\");\n  wrap.innerHTML=`\n  \u003cstyle\u003e\n  .kc-wrap{font-family:sans-serif;margin:40px 0;border-top:2px solid #e5e7eb;padding-top:30px}\n  .kc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}\n  .kc-htitle{font-size:1.1rem;font-weight:700;color:#111}\n  .kc-nav button{background:#f3f4f6;border:none;border-radius:8px;padding:6px 14px;cursor:pointer;font-size:14px;margin-left:6px}\n  .kc-nav button:hover{background:#e5e7eb}\n  .kc-status{font-size:12px;color:#6b7280;margin-bottom:12px}\n  .kc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px}\n  .kc-dow{font-size:11px;color:#9ca3af;text-align:center;padding:4px 0;font-weight:600}\n  .kc-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;color:#111}\n  .kc-avail{background:#f9fafb;border:1px solid #e5e7eb}\n  .kc-booked{background:#e5e7eb;color:#6b7280;text-decoration:line-through}\n  .kc-past{color:#d1d5db}\n  .kc-today{border:2px solid #3b82f6!important;font-weight:700}\n  .kc-legend{display:flex;gap:14px;font-size:12px;color:#6b7280;margin-top:4px;margin-bottom:10px}\n  .kc-leg{display:flex;align-items:center;gap:5px}\n  .kc-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}\n  .kc-notice{font-size:12px;color:#6b7280;margin-top:10px}\n  \u003c\/style\u003e\n  \u003cdiv class=\"kc-wrap\"\u003e\n    \u003cdiv class=\"kc-head\"\u003e\n      \u003cdiv class=\"kc-htitle\" id=\"kc-monthlabel\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"kc-nav\"\u003e\n        \u003cbutton onclick=\"kcPrev()\"\u003e\u0026#8592;\u003c\/button\u003e\n        \u003cbutton onclick=\"kcNext()\"\u003e\u0026#8594;\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kc-status\" id=\"kc-status\"\u003eLoading...\u003c\/div\u003e\n    \u003cdiv class=\"kc-grid\" id=\"kc-grid\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"kc-legend\"\u003e\n    \u003cdiv class=\"kc-notice\"\u003eBookings for 30+ nights only\u003c\/div\u003e\n  \u003c\/div\u003e`;\n\n  function pd(s){return new Date(+s.slice(0,4),+s.slice(4,6)-1,+s.slice(6,8));}\n  function isBooked(d){for(var r of bookedRanges){if(d\u003e=r.start\u0026\u0026d\u003cr.end)return true;}return false;}\n\n  function renderCal(){\n    document.getElementById(\"kc-monthlabel\").textContent=MN[cm]+\" \"+cy;\n    var g=document.getElementById(\"kc-grid\");\n    g.innerHTML=\"\";\n    DN.forEach(function(d){var e=document.createElement(\"div\");e.className=\"kc-dow\";e.textContent=d;g.appendChild(e);});\n    var first=new Date(cy,cm,1).getDay();\n    var total=new Date(cy,cm+1,0).getDate();\n    var today=new Date();today.setHours(0,0,0,0);\n    for(var i=0;i\u003cfirst;i++){var e=document.createElement(\"div\");e.className=\"kc-day\";g.appendChild(e);}\n    for(var d=1;d\u003c=total;d++){\n      var date=new Date(cy,cm,d);\n      var e=document.createElement(\"div\");\n      e.textContent=d;\n      if(date\u003ctoday){e.className=\"kc-day kc-past\";}\n      else if(isBooked(date)){e.className=\"kc-day kc-booked\";}\n      else{e.className=\"kc-day kc-avail\";}\n      if(date.getTime()===today.getTime())e.classList.add(\"kc-today\");\n      g.appendChild(e);\n    }\n  }\n\n  window.kcPrev=function(){cm--;if(cm\u003c0){cm=11;cy--;}renderCal();};\n  window.kcNext=function(){cm++;if(cm\u003e11){cm=0;cy++;}renderCal();};\n\n  fetch(WORKER+\"\/?url=\"+encodeURIComponent(ICAL_URL))\n    .then(function(r){return r.text();})\n    .then(function(text){\n      var lines=text.replace(\/\\r\\n\/g,\"\\n\").replace(\/\\r\/g,\"\\n\").split(\"\\n\");\n      var inEv=false,ds=null,de=null;\n      lines.forEach(function(line){\n        if(line===\"BEGIN:VEVENT\"){inEv=true;ds=null;de=null;}\n        else if(line===\"END:VEVENT\"){if(inEv\u0026\u0026ds\u0026\u0026de)bookedRanges.push({start:ds,end:de});inEv=false;}\n        else if(inEv){\n          var m=line.match(\/^DTSTART[^:]*:(\\d{8})\/);\n          var m2=line.match(\/^DTEND[^:]*:(\\d{8})\/);\n          if(m)ds=pd(m[1]);\n          if(m2)de=pd(m2[1]);\n        }\n      });\n      document.getElementById(\"kc-status\").textContent=\"Contact us for details\";\n      renderCal();\n    })\n    .catch(function(e){\n      document.getElementById(\"kc-status\").textContent=\"\";\n      renderCal();\n    });\n\n  renderCal();\n})();\n\u003c\/script\u003e\n","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":41710963818682,"sku":"","price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/NJ7_Kolette_Home_Living_Room.jpg?v=1777018442"},{"product_id":"taipei-rental-monthly-apartment-ksingle","title":"K Single Room with Private Bathroom","description":"\u003cp\u003eThis simple, clean suite comes with a desk and a private bathroom, a 91x188cm bed, a 32 inch TV, and other essential electrical appliances. We provide a microwave, coined operated washer and dryer at the shared space. Utilities are included.\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e3 ping \/ 9.9 ㎡ \/ 107 sqft\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e3-minute walk to \u003cspan style=\"color: #fa6a4d;\"\u003eMRT National Taiwan University Hospital Station\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003eElevator\u003c\/li\u003e\n\u003cli\u003eCable TV \u003c\/li\u003e\n\u003cli\u003eWifi\u003c\/li\u003e\n\u003cli\u003eAir Conditioner\u003c\/li\u003e\n\u003cli\u003eRefrigerator  \u003c\/li\u003e\n\u003cli\u003eWater boiler\u003c\/li\u003e\n\u003cli\u003eBed (91 x 188cm)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003e\u003cstrong\u003eShared Space\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMicrowave \u003c\/li\u003e\n\u003cli\u003eWater dispenser\u003c\/li\u003e\n\u003cli\u003eCoined operated washer\u003c\/li\u003e\n\u003cli\u003eCoined operated dryer\u003cbr\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003e\u003cstrong\u003eLooking for more options near NTU Hospital\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard\"\u003eK Standard Suite\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard-desk\"\u003eK Standard \u003c\/a\u003e\u003cmeta charset=\"utf-8\"\u003e \u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard\"\u003eSuite\u003c\/a\u003e\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard-desk\"\u003e w\/ Desk\u003c\/a\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard-view\"\u003eK \u003c\/a\u003e\u003cmeta charset=\"utf-8\"\u003e \u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard-desk\"\u003eStandard\u003c\/a\u003e\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard-view\"\u003e Suite w\/ View\u003c\/a\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kdeluxe\"\u003eK Deluxe Suite\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":41794501279930,"sku":"","price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/products\/K_Kolette_Home_singel_Bedroom.jpg?v=1777017908"},{"product_id":"taipei-rental-monthly-apartment-kstandard-desk","title":"K Standard Suite with Working Desk","description":"\u003cp\u003eThis simple, clean suite comes with a 150x188cm bed, a working desk, a 32 inch TV, and other essential electrical appliances. We provide a microwave, coined operated washer and dryer at the shared space. Utilities are included.\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e3.3 ping \/ 10.9㎡ \/ 117 sqft\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e3-minute walk to \u003cspan style=\"color: #fa6a4d;\"\u003eMRT National Taiwan University Hospital Station\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003eElevator\u003c\/li\u003e\n\u003cli\u003eCable TV \u003c\/li\u003e\n\u003cli\u003eWifi\u003c\/li\u003e\n\u003cli\u003eAir Conditioner\u003c\/li\u003e\n\u003cli\u003eRefrigerator  \u003c\/li\u003e\n\u003cli\u003eWater boiler\u003c\/li\u003e\n\u003cli\u003eBed (150 x 188cm)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003e\u003cstrong\u003eShared Space\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMicrowave \u003c\/li\u003e\n\u003cli\u003eWater Dispenser\u003c\/li\u003e\n\u003cli\u003eCoined operated washer\u003c\/li\u003e\n\u003cli\u003eCoined operated dryer\u003cbr\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003e\u003cstrong\u003eLooking for more options near NTU Hospital\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-ksingle\"\u003eK Single Room\u003c\/a\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard\"\u003eK Standard Suite\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard-view\"\u003eK \u003c\/a\u003e\u003cmeta charset=\"utf-8\"\u003e \u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard-desk\"\u003eStandard\u003c\/a\u003e\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard-view\"\u003e Suite w\/ View\u003c\/a\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kdeluxe\"\u003eK Deluxe Suite\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":41794537685178,"sku":"","price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/K_Kolette_Home_non_window_Bedroom.jpg?v=1777018104"},{"product_id":"taipei-rental-monthly-apartment-kstandard","title":"K Standard Suite","description":"\u003cp\u003eThis simple, clean suite comes with a 150x188cm bed, a desk, a private bathroom,\u003cspan\u003ea 32 inch TV,\u003c\/span\u003e and other essential electrical appliances. We provide a microwave, coined operated washer and dryer at the shared space. Utilities are included.\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e3.6 ping \/ 12㎡ \/ 129 sqft\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e3-minute walk to\u003cspan style=\"color: #fa6a4d;\"\u003e MRT National Taiwan University Hospital Station\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003eElevator\u003c\/li\u003e\n\u003cli\u003eCable TV \u003c\/li\u003e\n\u003cli\u003eWifi\u003c\/li\u003e\n\u003cli\u003eAir Conditioner\u003c\/li\u003e\n\u003cli\u003eRefrigerator  \u003c\/li\u003e\n\u003cli\u003eWater boiler\u003c\/li\u003e\n\u003cli\u003eBed (150 x 188cm)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003e\u003cstrong\u003eShared Space\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMicrowave \u003c\/li\u003e\n\u003cli\u003eWater dispenser\u003c\/li\u003e\n\u003cli\u003eCoined operated washer\u003c\/li\u003e\n\u003cli\u003eCoined operated dryer\u003cbr\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003e\u003cstrong\u003eLooking for more options near NTU Hospital\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-ksingle\"\u003eK Single Room\u003c\/a\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard-desk\"\u003eK Standard \u003c\/a\u003e\u003cmeta charset=\"utf-8\"\u003e \u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard\"\u003eSuite\u003c\/a\u003e\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard-desk\"\u003e w\/ Desk\u003c\/a\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard-view\"\u003eK \u003c\/a\u003e\u003cmeta charset=\"utf-8\"\u003e \u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard-desk\"\u003eStandard\u003c\/a\u003e\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kstandard-view\"\u003e Suite w\/ View\u003c\/a\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/kolettehome.com\/products\/taipei-rental-monthly-apartment-kdeluxe\"\u003eK Deluxe Suite\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":41803632345274,"sku":"","price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/K_Kolette_Home_Bedroom.jpg?v=1777017650"},{"product_id":"taipei-rental-monthly-apartment-cc6-2","title":"Sunlight Suite with Elevator (CC6-2)","description":"\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eFeaturing great natural lights, new furniture and renovations. \u003cspan\u003eStylish, clean and independent suite with a double bed, this home is modern, new and cozy at the same time.\u003c\/span\u003e It's merely 6 minutes walks to MRT Nanjing Fuxing station, which is the transfer spot of green line and brown line, perfectly convenient.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e17 ping \/ 56㎡ \/ 605 sqft\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003e1 bedroom and 1 bathroom\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e6-minute walk from \u003cspan style=\"color: #06782c;\"\u003eMRT Nanjing Fuxing station\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTV\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWifi\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eAir Conditioner \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eBed (150 x 188cm)\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eCooking Stove\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eDining Table\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMicrowave \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWasher\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cdiv id=\"kc-cal\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  var WORKER = \"https:\/\/ical-proxy.aidantpe.workers.dev\";\n  var ICAL_URL = \"https:\/\/www.airbnb.com.tw\/calendar\/ical\/793093597088024881.ics?t=60afcfd76c2e4bffaedeb98910f5eb34\";\n\n  var bookedRanges=[];\n  var cy=new Date().getFullYear();\n  var cm=new Date().getMonth();\n  var MN=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];\n  var DN=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"];\n\n  var wrap=document.getElementById(\"kc-cal\");\n  wrap.innerHTML=`\n  \u003cstyle\u003e\n  .kc-wrap{font-family:sans-serif;margin:40px 0;border-top:2px solid #e5e7eb;padding-top:30px}\n  .kc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}\n  .kc-htitle{font-size:1.1rem;font-weight:700;color:#111}\n  .kc-nav button{background:#f3f4f6;border:none;border-radius:8px;padding:6px 14px;cursor:pointer;font-size:14px;margin-left:6px}\n  .kc-nav button:hover{background:#e5e7eb}\n  .kc-status{font-size:12px;color:#6b7280;margin-bottom:12px}\n  .kc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px}\n  .kc-dow{font-size:11px;color:#9ca3af;text-align:center;padding:4px 0;font-weight:600}\n  .kc-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;color:#111}\n  .kc-avail{background:#f9fafb;border:1px solid #e5e7eb}\n  .kc-booked{background:#e5e7eb;color:#6b7280;text-decoration:line-through}\n  .kc-past{color:#d1d5db}\n  .kc-today{border:2px solid #3b82f6!important;font-weight:700}\n  .kc-legend{display:flex;gap:14px;font-size:12px;color:#6b7280;margin-top:4px;margin-bottom:10px}\n  .kc-leg{display:flex;align-items:center;gap:5px}\n  .kc-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}\n  .kc-notice{font-size:12px;color:#6b7280;margin-top:10px}\n  \u003c\/style\u003e\n  \u003cdiv class=\"kc-wrap\"\u003e\n    \u003cdiv class=\"kc-head\"\u003e\n      \u003cdiv class=\"kc-htitle\" id=\"kc-monthlabel\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"kc-nav\"\u003e\n        \u003cbutton onclick=\"kcPrev()\"\u003e\u0026#8592;\u003c\/button\u003e\n        \u003cbutton onclick=\"kcNext()\"\u003e\u0026#8594;\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kc-status\" id=\"kc-status\"\u003eLoading...\u003c\/div\u003e\n    \u003cdiv class=\"kc-grid\" id=\"kc-grid\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"kc-legend\"\u003e\n    \u003cdiv class=\"kc-notice\"\u003eBookings for 30+ nights only\u003c\/div\u003e\n  \u003c\/div\u003e`;\n\n  function pd(s){return new Date(+s.slice(0,4),+s.slice(4,6)-1,+s.slice(6,8));}\n  function isBooked(d){for(var r of bookedRanges){if(d\u003e=r.start\u0026\u0026d\u003cr.end)return true;}return false;}\n\n  function renderCal(){\n    document.getElementById(\"kc-monthlabel\").textContent=MN[cm]+\" \"+cy;\n    var g=document.getElementById(\"kc-grid\");\n    g.innerHTML=\"\";\n    DN.forEach(function(d){var e=document.createElement(\"div\");e.className=\"kc-dow\";e.textContent=d;g.appendChild(e);});\n    var first=new Date(cy,cm,1).getDay();\n    var total=new Date(cy,cm+1,0).getDate();\n    var today=new Date();today.setHours(0,0,0,0);\n    for(var i=0;i\u003cfirst;i++){var e=document.createElement(\"div\");e.className=\"kc-day\";g.appendChild(e);}\n    for(var d=1;d\u003c=total;d++){\n      var date=new Date(cy,cm,d);\n      var e=document.createElement(\"div\");\n      e.textContent=d;\n      if(date\u003ctoday){e.className=\"kc-day kc-past\";}\n      else if(isBooked(date)){e.className=\"kc-day kc-booked\";}\n      else{e.className=\"kc-day kc-avail\";}\n      if(date.getTime()===today.getTime())e.classList.add(\"kc-today\");\n      g.appendChild(e);\n    }\n  }\n\n  window.kcPrev=function(){cm--;if(cm\u003c0){cm=11;cy--;}renderCal();};\n  window.kcNext=function(){cm++;if(cm\u003e11){cm=0;cy++;}renderCal();};\n\n  fetch(WORKER+\"\/?url=\"+encodeURIComponent(ICAL_URL))\n    .then(function(r){return r.text();})\n    .then(function(text){\n      var lines=text.replace(\/\\r\\n\/g,\"\\n\").replace(\/\\r\/g,\"\\n\").split(\"\\n\");\n      var inEv=false,ds=null,de=null;\n      lines.forEach(function(line){\n        if(line===\"BEGIN:VEVENT\"){inEv=true;ds=null;de=null;}\n        else if(line===\"END:VEVENT\"){if(inEv\u0026\u0026ds\u0026\u0026de)bookedRanges.push({start:ds,end:de});inEv=false;}\n        else if(inEv){\n          var m=line.match(\/^DTSTART[^:]*:(\\d{8})\/);\n          var m2=line.match(\/^DTEND[^:]*:(\\d{8})\/);\n          if(m)ds=pd(m[1]);\n          if(m2)de=pd(m2[1]);\n        }\n      });\n      document.getElementById(\"kc-status\").textContent=\"Contact us for details\";\n      renderCal();\n    })\n    .catch(function(e){\n      document.getElementById(\"kc-status\").textContent=\"\";\n      renderCal();\n    });\n\n  renderCal();\n})();\n\u003c\/script\u003e\n","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":42486737469626,"sku":"","price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/CC6-2_Kolette_Home_Living_Room.jpg?v=1777013573"},{"product_id":"taipei-rental-monthly-apartment-rr9-1-9-2","title":"American style 1-Bedroom Home (RR9-1)","description":"\u003cp\u003eDiscover comfort in our chic, newly renovated Zhongshan district home. Just 6 mins from MRT, enjoy easy access to local delights. Our space boasts modern Panasonic appliances, a luxurious Kohler-equipped bathroom, and cozy balconies. Elevator access and central trash management add convenience. Fully equipped kitchen, washer, dryer, and AC ensure a hassle-free stay. Welcome to your urban retreat.\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e25 ping \/ 83㎡ \/ 890 sqft\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003e1 bedroom and 1 bathroom\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e6-minute walk from \u003cspan style=\"color: #FF0000;\"\u003eMRT Zhongshan Station\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTV\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWifi\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eAir Conditioner \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eBed (150cm*190cm) \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eCooking Stove\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMicrowave \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWasher\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cdiv id=\"kc-cal\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  var WORKER = \"https:\/\/ical-proxy.aidantpe.workers.dev\";\n  var ICAL_URL = \"https:\/\/www.airbnb.com.tw\/calendar\/ical\/1106935544196130275.ics?t=a3bad4d36a81427ea733dbe6d3c50bd9\";\n\n  var bookedRanges=[];\n  var cy=new Date().getFullYear();\n  var cm=new Date().getMonth();\n  var MN=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];\n  var DN=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"];\n\n  var wrap=document.getElementById(\"kc-cal\");\n  wrap.innerHTML=`\n  \u003cstyle\u003e\n  .kc-wrap{font-family:sans-serif;margin:40px 0;border-top:2px solid #e5e7eb;padding-top:30px}\n  .kc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}\n  .kc-htitle{font-size:1.1rem;font-weight:700;color:#111}\n  .kc-nav button{background:#f3f4f6;border:none;border-radius:8px;padding:6px 14px;cursor:pointer;font-size:14px;margin-left:6px}\n  .kc-nav button:hover{background:#e5e7eb}\n  .kc-status{font-size:12px;color:#6b7280;margin-bottom:12px}\n  .kc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px}\n  .kc-dow{font-size:11px;color:#9ca3af;text-align:center;padding:4px 0;font-weight:600}\n  .kc-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;color:#111}\n  .kc-avail{background:#f9fafb;border:1px solid #e5e7eb}\n  .kc-booked{background:#e5e7eb;color:#6b7280;text-decoration:line-through}\n  .kc-past{color:#d1d5db}\n  .kc-today{border:2px solid #3b82f6!important;font-weight:700}\n  .kc-legend{display:flex;gap:14px;font-size:12px;color:#6b7280;margin-top:4px;margin-bottom:10px}\n  .kc-leg{display:flex;align-items:center;gap:5px}\n  .kc-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}\n  .kc-notice{font-size:12px;color:#6b7280;margin-top:10px}\n  \u003c\/style\u003e\n  \u003cdiv class=\"kc-wrap\"\u003e\n    \u003cdiv class=\"kc-head\"\u003e\n      \u003cdiv class=\"kc-htitle\" id=\"kc-monthlabel\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"kc-nav\"\u003e\n        \u003cbutton onclick=\"kcPrev()\"\u003e\u0026#8592;\u003c\/button\u003e\n        \u003cbutton onclick=\"kcNext()\"\u003e\u0026#8594;\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kc-status\" id=\"kc-status\"\u003eLoading...\u003c\/div\u003e\n    \u003cdiv class=\"kc-grid\" id=\"kc-grid\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"kc-legend\"\u003e\n    \u003cdiv class=\"kc-notice\"\u003eBookings for 30+ nights only\u003c\/div\u003e\n  \u003c\/div\u003e`;\n\n  function pd(s){return new Date(+s.slice(0,4),+s.slice(4,6)-1,+s.slice(6,8));}\n  function isBooked(d){for(var r of bookedRanges){if(d\u003e=r.start\u0026\u0026d\u003cr.end)return true;}return false;}\n\n  function renderCal(){\n    document.getElementById(\"kc-monthlabel\").textContent=MN[cm]+\" \"+cy;\n    var g=document.getElementById(\"kc-grid\");\n    g.innerHTML=\"\";\n    DN.forEach(function(d){var e=document.createElement(\"div\");e.className=\"kc-dow\";e.textContent=d;g.appendChild(e);});\n    var first=new Date(cy,cm,1).getDay();\n    var total=new Date(cy,cm+1,0).getDate();\n    var today=new Date();today.setHours(0,0,0,0);\n    for(var i=0;i\u003cfirst;i++){var e=document.createElement(\"div\");e.className=\"kc-day\";g.appendChild(e);}\n    for(var d=1;d\u003c=total;d++){\n      var date=new Date(cy,cm,d);\n      var e=document.createElement(\"div\");\n      e.textContent=d;\n      if(date\u003ctoday){e.className=\"kc-day kc-past\";}\n      else if(isBooked(date)){e.className=\"kc-day kc-booked\";}\n      else{e.className=\"kc-day kc-avail\";}\n      if(date.getTime()===today.getTime())e.classList.add(\"kc-today\");\n      g.appendChild(e);\n    }\n  }\n\n  window.kcPrev=function(){cm--;if(cm\u003c0){cm=11;cy--;}renderCal();};\n  window.kcNext=function(){cm++;if(cm\u003e11){cm=0;cy++;}renderCal();};\n\n  fetch(WORKER+\"\/?url=\"+encodeURIComponent(ICAL_URL))\n    .then(function(r){return r.text();})\n    .then(function(text){\n      var lines=text.replace(\/\\r\\n\/g,\"\\n\").replace(\/\\r\/g,\"\\n\").split(\"\\n\");\n      var inEv=false,ds=null,de=null;\n      lines.forEach(function(line){\n        if(line===\"BEGIN:VEVENT\"){inEv=true;ds=null;de=null;}\n        else if(line===\"END:VEVENT\"){if(inEv\u0026\u0026ds\u0026\u0026de)bookedRanges.push({start:ds,end:de});inEv=false;}\n        else if(inEv){\n          var m=line.match(\/^DTSTART[^:]*:(\\d{8})\/);\n          var m2=line.match(\/^DTEND[^:]*:(\\d{8})\/);\n          if(m)ds=pd(m[1]);\n          if(m2)de=pd(m2[1]);\n        }\n      });\n      document.getElementById(\"kc-status\").textContent=\"Contact us for details\";\n      renderCal();\n    })\n    .catch(function(e){\n      document.getElementById(\"kc-status\").textContent=\"\";\n      renderCal();\n    });\n\n  renderCal();\n})();\n\u003c\/script\u003e\n","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":43301489574074,"sku":null,"price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/RR9-1_Kolette_Home_Living_Room_3.jpg?v=1776592860"},{"product_id":"taipei-rental-monthly-apartment-rr2-2","title":"Luxury minimalist style 1-Bedroom Home (RR2-2)","description":"\u003cp\u003e\u003cspan\u003eFreshly renovated, exuding a unique ambiance, characterized by a luxury minimalist style, every corner brims with meticulous attention to detail.It is only 6 minutes walk to MRT Zhongshan station, which is the transfer spot between MRT Red Line and Green Line, gives city dwellers great convenience.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e19 ping \/ 62㎡ \/ 676 sqft \u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003e1 bedroom and 1 bathroom\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e6-minute walk from \u003cspan style=\"color: #FF0000;\"\u003eMRT Zhongshan Station\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTV\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWifi\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eAir Conditioner \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eBed (150cm*190cm) \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eCooking Stove\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMicrowave \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWasher\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\n\n\u003cdiv id=\"kc-cal\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  var WORKER = \"https:\/\/ical-proxy.aidantpe.workers.dev\";\n  var ICAL_URL = \"https:\/\/www.airbnb.com.tw\/calendar\/ical\/1106914585362685044.ics?t=d7eb43aa68254131a2075e97842bffc3\";\n\n  var bookedRanges=[];\n  var cy=new Date().getFullYear();\n  var cm=new Date().getMonth();\n  var MN=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];\n  var DN=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"];\n\n  var wrap=document.getElementById(\"kc-cal\");\n  wrap.innerHTML=`\n  \u003cstyle\u003e\n  .kc-wrap{font-family:sans-serif;margin:40px 0;border-top:2px solid #e5e7eb;padding-top:30px}\n  .kc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}\n  .kc-htitle{font-size:1.1rem;font-weight:700;color:#111}\n  .kc-nav button{background:#f3f4f6;border:none;border-radius:8px;padding:6px 14px;cursor:pointer;font-size:14px;margin-left:6px}\n  .kc-nav button:hover{background:#e5e7eb}\n  .kc-status{font-size:12px;color:#6b7280;margin-bottom:12px}\n  .kc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px}\n  .kc-dow{font-size:11px;color:#9ca3af;text-align:center;padding:4px 0;font-weight:600}\n  .kc-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;color:#111}\n  .kc-avail{background:#f9fafb;border:1px solid #e5e7eb}\n  .kc-booked{background:#e5e7eb;color:#6b7280;text-decoration:line-through}\n  .kc-past{color:#d1d5db}\n  .kc-today{border:2px solid #3b82f6!important;font-weight:700}\n  .kc-legend{display:flex;gap:14px;font-size:12px;color:#6b7280;margin-top:4px;margin-bottom:10px}\n  .kc-leg{display:flex;align-items:center;gap:5px}\n  .kc-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}\n  .kc-notice{font-size:12px;color:#6b7280;margin-top:10px}\n  \u003c\/style\u003e\n  \u003cdiv class=\"kc-wrap\"\u003e\n    \u003cdiv class=\"kc-head\"\u003e\n      \u003cdiv class=\"kc-htitle\" id=\"kc-monthlabel\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"kc-nav\"\u003e\n        \u003cbutton onclick=\"kcPrev()\"\u003e\u0026#8592;\u003c\/button\u003e\n        \u003cbutton onclick=\"kcNext()\"\u003e\u0026#8594;\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kc-status\" id=\"kc-status\"\u003eLoading...\u003c\/div\u003e\n    \u003cdiv class=\"kc-grid\" id=\"kc-grid\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"kc-legend\"\u003e\n    \u003cdiv class=\"kc-notice\"\u003eBookings for 30+ nights only\u003c\/div\u003e\n  \u003c\/div\u003e`;\n\n  function pd(s){return new Date(+s.slice(0,4),+s.slice(4,6)-1,+s.slice(6,8));}\n  function isBooked(d){for(var r of bookedRanges){if(d\u003e=r.start\u0026\u0026d\u003cr.end)return true;}return false;}\n\n  function renderCal(){\n    document.getElementById(\"kc-monthlabel\").textContent=MN[cm]+\" \"+cy;\n    var g=document.getElementById(\"kc-grid\");\n    g.innerHTML=\"\";\n    DN.forEach(function(d){var e=document.createElement(\"div\");e.className=\"kc-dow\";e.textContent=d;g.appendChild(e);});\n    var first=new Date(cy,cm,1).getDay();\n    var total=new Date(cy,cm+1,0).getDate();\n    var today=new Date();today.setHours(0,0,0,0);\n    for(var i=0;i\u003cfirst;i++){var e=document.createElement(\"div\");e.className=\"kc-day\";g.appendChild(e);}\n    for(var d=1;d\u003c=total;d++){\n      var date=new Date(cy,cm,d);\n      var e=document.createElement(\"div\");\n      e.textContent=d;\n      if(date\u003ctoday){e.className=\"kc-day kc-past\";}\n      else if(isBooked(date)){e.className=\"kc-day kc-booked\";}\n      else{e.className=\"kc-day kc-avail\";}\n      if(date.getTime()===today.getTime())e.classList.add(\"kc-today\");\n      g.appendChild(e);\n    }\n  }\n\n  window.kcPrev=function(){cm--;if(cm\u003c0){cm=11;cy--;}renderCal();};\n  window.kcNext=function(){cm++;if(cm\u003e11){cm=0;cy++;}renderCal();};\n\n  fetch(WORKER+\"\/?url=\"+encodeURIComponent(ICAL_URL))\n    .then(function(r){return r.text();})\n    .then(function(text){\n      var lines=text.replace(\/\\r\\n\/g,\"\\n\").replace(\/\\r\/g,\"\\n\").split(\"\\n\");\n      var inEv=false,ds=null,de=null;\n      lines.forEach(function(line){\n        if(line===\"BEGIN:VEVENT\"){inEv=true;ds=null;de=null;}\n        else if(line===\"END:VEVENT\"){if(inEv\u0026\u0026ds\u0026\u0026de)bookedRanges.push({start:ds,end:de});inEv=false;}\n        else if(inEv){\n          var m=line.match(\/^DTSTART[^:]*:(\\d{8})\/);\n          var m2=line.match(\/^DTEND[^:]*:(\\d{8})\/);\n          if(m)ds=pd(m[1]);\n          if(m2)de=pd(m2[1]);\n        }\n      });\n      document.getElementById(\"kc-status\").textContent=\"Contact us for details\";\n      renderCal();\n    })\n    .catch(function(e){\n      document.getElementById(\"kc-status\").textContent=\"\";\n      renderCal();\n    });\n\n  renderCal();\n})();\n\u003c\/script\u003e\n","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":43301495046330,"sku":null,"price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/RR2-2_Kolette_Home_Living_Room.jpg?v=1776592027"},{"product_id":"taipei-rental-monthly-apartment-rr9-9-3","title":"Wabi-sabi style 1-Bedroom Home (RR9-3)","description":"\u003cp\u003e\u003cspan\u003eThe freshly renovated space exudes a unique ambiance, marrying Wabi-sabi style's understated luxury with natural serenity, fostering inner calm. Find perfection in imperfection, fulfilling home imaginings. Welcome to this comforting haven.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e24 ping \/ 80㎡ \/ 854 sqft\n\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003e1 bedroom and 1 bathroom\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e6-minute walk from \u003cspan style=\"color: #FF0000;\"\u003eMRT Zhongshan Station\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTV\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWifi\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eAir Conditioner \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eBed (150cm*190cm) \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eCooking Stove\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMicrowave \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWasher\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\n\u003cdiv id=\"kc-cal\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  var WORKER = \"https:\/\/ical-proxy.aidantpe.workers.dev\";\n  var ICAL_URL = \"https:\/\/www.airbnb.com.tw\/calendar\/ical\/1088061108112569639.ics?t=59dd0432bf8a4e20a1a0715222a5e3fa\";\n\n  var bookedRanges=[];\n  var cy=new Date().getFullYear();\n  var cm=new Date().getMonth();\n  var MN=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];\n  var DN=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"];\n\n  var wrap=document.getElementById(\"kc-cal\");\n  wrap.innerHTML=`\n  \u003cstyle\u003e\n  .kc-wrap{font-family:sans-serif;margin:40px 0;border-top:2px solid #e5e7eb;padding-top:30px}\n  .kc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}\n  .kc-htitle{font-size:1.1rem;font-weight:700;color:#111}\n  .kc-nav button{background:#f3f4f6;border:none;border-radius:8px;padding:6px 14px;cursor:pointer;font-size:14px;margin-left:6px}\n  .kc-nav button:hover{background:#e5e7eb}\n  .kc-status{font-size:12px;color:#6b7280;margin-bottom:12px}\n  .kc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px}\n  .kc-dow{font-size:11px;color:#9ca3af;text-align:center;padding:4px 0;font-weight:600}\n  .kc-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;color:#111}\n  .kc-avail{background:#f9fafb;border:1px solid #e5e7eb}\n  .kc-booked{background:#e5e7eb;color:#6b7280;text-decoration:line-through}\n  .kc-past{color:#d1d5db}\n  .kc-today{border:2px solid #3b82f6!important;font-weight:700}\n  .kc-legend{display:flex;gap:14px;font-size:12px;color:#6b7280;margin-top:4px;margin-bottom:10px}\n  .kc-leg{display:flex;align-items:center;gap:5px}\n  .kc-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}\n  .kc-notice{font-size:12px;color:#6b7280;margin-top:10px}\n  \u003c\/style\u003e\n  \u003cdiv class=\"kc-wrap\"\u003e\n    \u003cdiv class=\"kc-head\"\u003e\n      \u003cdiv class=\"kc-htitle\" id=\"kc-monthlabel\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"kc-nav\"\u003e\n        \u003cbutton onclick=\"kcPrev()\"\u003e\u0026#8592;\u003c\/button\u003e\n        \u003cbutton onclick=\"kcNext()\"\u003e\u0026#8594;\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kc-status\" id=\"kc-status\"\u003eLoading...\u003c\/div\u003e\n    \u003cdiv class=\"kc-grid\" id=\"kc-grid\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"kc-legend\"\u003e\n    \u003cdiv class=\"kc-notice\"\u003eBookings for 30+ nights only\u003c\/div\u003e\n  \u003c\/div\u003e`;\n\n  function pd(s){return new Date(+s.slice(0,4),+s.slice(4,6)-1,+s.slice(6,8));}\n  function isBooked(d){for(var r of bookedRanges){if(d\u003e=r.start\u0026\u0026d\u003cr.end)return true;}return false;}\n\n  function renderCal(){\n    document.getElementById(\"kc-monthlabel\").textContent=MN[cm]+\" \"+cy;\n    var g=document.getElementById(\"kc-grid\");\n    g.innerHTML=\"\";\n    DN.forEach(function(d){var e=document.createElement(\"div\");e.className=\"kc-dow\";e.textContent=d;g.appendChild(e);});\n    var first=new Date(cy,cm,1).getDay();\n    var total=new Date(cy,cm+1,0).getDate();\n    var today=new Date();today.setHours(0,0,0,0);\n    for(var i=0;i\u003cfirst;i++){var e=document.createElement(\"div\");e.className=\"kc-day\";g.appendChild(e);}\n    for(var d=1;d\u003c=total;d++){\n      var date=new Date(cy,cm,d);\n      var e=document.createElement(\"div\");\n      e.textContent=d;\n      if(date\u003ctoday){e.className=\"kc-day kc-past\";}\n      else if(isBooked(date)){e.className=\"kc-day kc-booked\";}\n      else{e.className=\"kc-day kc-avail\";}\n      if(date.getTime()===today.getTime())e.classList.add(\"kc-today\");\n      g.appendChild(e);\n    }\n  }\n\n  window.kcPrev=function(){cm--;if(cm\u003c0){cm=11;cy--;}renderCal();};\n  window.kcNext=function(){cm++;if(cm\u003e11){cm=0;cy++;}renderCal();};\n\n  fetch(WORKER+\"\/?url=\"+encodeURIComponent(ICAL_URL))\n    .then(function(r){return r.text();})\n    .then(function(text){\n      var lines=text.replace(\/\\r\\n\/g,\"\\n\").replace(\/\\r\/g,\"\\n\").split(\"\\n\");\n      var inEv=false,ds=null,de=null;\n      lines.forEach(function(line){\n        if(line===\"BEGIN:VEVENT\"){inEv=true;ds=null;de=null;}\n        else if(line===\"END:VEVENT\"){if(inEv\u0026\u0026ds\u0026\u0026de)bookedRanges.push({start:ds,end:de});inEv=false;}\n        else if(inEv){\n          var m=line.match(\/^DTSTART[^:]*:(\\d{8})\/);\n          var m2=line.match(\/^DTEND[^:]*:(\\d{8})\/);\n          if(m)ds=pd(m[1]);\n          if(m2)de=pd(m2[1]);\n        }\n      });\n      document.getElementById(\"kc-status\").textContent=\"Contact us for details\";\n      renderCal();\n    })\n    .catch(function(e){\n      document.getElementById(\"kc-status\").textContent=\"\";\n      renderCal();\n    });\n\n  renderCal();\n})();\n\u003c\/script\u003e\n","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":43301498093754,"sku":null,"price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/RR9_Kolette_Home_Living_Room.jpg?v=1776590888"},{"product_id":"taipei-rental-monthly-apartment-nj21","title":"Sunlight 1-Bedroom Home with Elevator (NJ21)","description":"\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eEnjoy natural light all day long! \u003cmeta charset=\"utf-8\"\u003eThis home is modern and cozy at the same time, also features a bathroom with a wet and dry separation, a small dressing room, and an outdoor balcony flooded with great natural lights. \u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003eJust a 5-minute walk to Taipei Arena MRT Station(G17)  which gives city dwellers great convenience. Surrounded by convenience stores, a variety of restaurants, cafes, bars, and fast-food outlets to meet your everyday needs. A working desk provided in the unit for the guests to work from home.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e10 ping \/ 33 m² \/ 356 sqft\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003e1 Double Bedroom\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWorking Desk\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e1 Bathroom\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e5-minute walk from \u003cspan style=\"color: #06782c;\"\u003eMRT Taipei Arena station\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTV\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWifi\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eAir Conditioner \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eDouble Bed (150 x 188cm)\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003eElectric Kettle\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eDining Table\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMicrowave \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWasher\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eDryer\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eElevator\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\n\u003cdiv id=\"kc-cal\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  var WORKER = \"https:\/\/ical-proxy.aidantpe.workers.dev\";\n  var ICAL_URL = \"https:\/\/www.airbnb.com.tw\/calendar\/ical\/1233804835893842384.ics?t=efa03235dbee4e7caa5378203eaa02cc\";\n\n  var bookedRanges=[];\n  var cy=new Date().getFullYear();\n  var cm=new Date().getMonth();\n  var MN=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];\n  var DN=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"];\n\n  var wrap=document.getElementById(\"kc-cal\");\n  wrap.innerHTML=`\n  \u003cstyle\u003e\n  .kc-wrap{font-family:sans-serif;margin:40px 0;border-top:2px solid #e5e7eb;padding-top:30px}\n  .kc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}\n  .kc-htitle{font-size:1.1rem;font-weight:700;color:#111}\n  .kc-nav button{background:#f3f4f6;border:none;border-radius:8px;padding:6px 14px;cursor:pointer;font-size:14px;margin-left:6px}\n  .kc-nav button:hover{background:#e5e7eb}\n  .kc-status{font-size:12px;color:#6b7280;margin-bottom:12px}\n  .kc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px}\n  .kc-dow{font-size:11px;color:#9ca3af;text-align:center;padding:4px 0;font-weight:600}\n  .kc-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;color:#111}\n  .kc-avail{background:#f9fafb;border:1px solid #e5e7eb}\n  .kc-booked{background:#e5e7eb;color:#6b7280;text-decoration:line-through}\n  .kc-past{color:#d1d5db}\n  .kc-today{border:2px solid #3b82f6!important;font-weight:700}\n  .kc-legend{display:flex;gap:14px;font-size:12px;color:#6b7280;margin-top:4px;margin-bottom:10px}\n  .kc-leg{display:flex;align-items:center;gap:5px}\n  .kc-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}\n  .kc-notice{font-size:12px;color:#6b7280;margin-top:10px}\n  \u003c\/style\u003e\n  \u003cdiv class=\"kc-wrap\"\u003e\n    \u003cdiv class=\"kc-head\"\u003e\n      \u003cdiv class=\"kc-htitle\" id=\"kc-monthlabel\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"kc-nav\"\u003e\n        \u003cbutton onclick=\"kcPrev()\"\u003e\u0026#8592;\u003c\/button\u003e\n        \u003cbutton onclick=\"kcNext()\"\u003e\u0026#8594;\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kc-status\" id=\"kc-status\"\u003eLoading...\u003c\/div\u003e\n    \u003cdiv class=\"kc-grid\" id=\"kc-grid\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"kc-legend\"\u003e\n    \u003cdiv class=\"kc-notice\"\u003eBookings for 30+ nights only\u003c\/div\u003e\n  \u003c\/div\u003e`;\n\n  function pd(s){return new Date(+s.slice(0,4),+s.slice(4,6)-1,+s.slice(6,8));}\n  function isBooked(d){for(var r of bookedRanges){if(d\u003e=r.start\u0026\u0026d\u003cr.end)return true;}return false;}\n\n  function renderCal(){\n    document.getElementById(\"kc-monthlabel\").textContent=MN[cm]+\" \"+cy;\n    var g=document.getElementById(\"kc-grid\");\n    g.innerHTML=\"\";\n    DN.forEach(function(d){var e=document.createElement(\"div\");e.className=\"kc-dow\";e.textContent=d;g.appendChild(e);});\n    var first=new Date(cy,cm,1).getDay();\n    var total=new Date(cy,cm+1,0).getDate();\n    var today=new Date();today.setHours(0,0,0,0);\n    for(var i=0;i\u003cfirst;i++){var e=document.createElement(\"div\");e.className=\"kc-day\";g.appendChild(e);}\n    for(var d=1;d\u003c=total;d++){\n      var date=new Date(cy,cm,d);\n      var e=document.createElement(\"div\");\n      e.textContent=d;\n      if(date\u003ctoday){e.className=\"kc-day kc-past\";}\n      else if(isBooked(date)){e.className=\"kc-day kc-booked\";}\n      else{e.className=\"kc-day kc-avail\";}\n      if(date.getTime()===today.getTime())e.classList.add(\"kc-today\");\n      g.appendChild(e);\n    }\n  }\n\n  window.kcPrev=function(){cm--;if(cm\u003c0){cm=11;cy--;}renderCal();};\n  window.kcNext=function(){cm++;if(cm\u003e11){cm=0;cy++;}renderCal();};\n\n  fetch(WORKER+\"\/?url=\"+encodeURIComponent(ICAL_URL))\n    .then(function(r){return r.text();})\n    .then(function(text){\n      var lines=text.replace(\/\\r\\n\/g,\"\\n\").replace(\/\\r\/g,\"\\n\").split(\"\\n\");\n      var inEv=false,ds=null,de=null;\n      lines.forEach(function(line){\n        if(line===\"BEGIN:VEVENT\"){inEv=true;ds=null;de=null;}\n        else if(line===\"END:VEVENT\"){if(inEv\u0026\u0026ds\u0026\u0026de)bookedRanges.push({start:ds,end:de});inEv=false;}\n        else if(inEv){\n          var m=line.match(\/^DTSTART[^:]*:(\\d{8})\/);\n          var m2=line.match(\/^DTEND[^:]*:(\\d{8})\/);\n          if(m)ds=pd(m[1]);\n          if(m2)de=pd(m2[1]);\n        }\n      });\n      document.getElementById(\"kc-status\").textContent=\"Contact us for details\";\n      renderCal();\n    })\n    .catch(function(e){\n      document.getElementById(\"kc-status\").textContent=\"\";\n      renderCal();\n    });\n\n  renderCal();\n})();\n\u003c\/script\u003e\n","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":44328157577402,"sku":null,"price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/NJ21_Kolette_Home_Living_Room.jpg?v=1776496445"},{"product_id":"taipei-rental-monthly-apartment-sj06","title":"Cozy Suite with private bathroom and cooking space (SJ06)","description":"\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eBrand new, stylish, furnished and independent suite with a double bed, this home is modern and cozy at the same time. It comes with a private bathroom and a working desk. Not to mention your own washer and a cooking space. \u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003eO\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003enly 3 minutes walk to MRT Xingtian Temple station, which \u003cspan\u003egives city dwellers great convenience.\u003c\/span\u003e\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e6.4 ping \/ 21 m² \/ 228 sqft\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003eOpen layout bedroom and 1 bathroom\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e3-minute walk from\u003cspan style=\"color: #f6d00f;\"\u003e MRT Xingtian Temple Station\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003eCooking space with IH stove and kitchenware provided\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTV\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWifi\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eAir Conditioner \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eBed (150cm*188cm) \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWorking Desk\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWasher\/Dryer\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e Elevator\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMicrowave provided in the public area\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\n\u003cdiv id=\"kc-cal\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  var WORKER = \"https:\/\/ical-proxy.aidantpe.workers.dev\";\n  var ICAL_URL = \"https:\/\/www.airbnb.com.tw\/calendar\/ical\/1215752036378127246.ics?t=cdd5191d4d6f407bbc8752ef4e35677f\";\n\n  var bookedRanges=[];\n  var cy=new Date().getFullYear();\n  var cm=new Date().getMonth();\n  var MN=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];\n  var DN=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"];\n\n  var wrap=document.getElementById(\"kc-cal\");\n  wrap.innerHTML=`\n  \u003cstyle\u003e\n  .kc-wrap{font-family:sans-serif;margin:40px 0;border-top:2px solid #e5e7eb;padding-top:30px}\n  .kc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}\n  .kc-htitle{font-size:1.1rem;font-weight:700;color:#111}\n  .kc-nav button{background:#f3f4f6;border:none;border-radius:8px;padding:6px 14px;cursor:pointer;font-size:14px;margin-left:6px}\n  .kc-nav button:hover{background:#e5e7eb}\n  .kc-status{font-size:12px;color:#6b7280;margin-bottom:12px}\n  .kc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px}\n  .kc-dow{font-size:11px;color:#9ca3af;text-align:center;padding:4px 0;font-weight:600}\n  .kc-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;color:#111}\n  .kc-avail{background:#f9fafb;border:1px solid #e5e7eb}\n  .kc-booked{background:#e5e7eb;color:#6b7280;text-decoration:line-through}\n  .kc-past{color:#d1d5db}\n  .kc-today{border:2px solid #3b82f6!important;font-weight:700}\n  .kc-legend{display:flex;gap:14px;font-size:12px;color:#6b7280;margin-top:4px;margin-bottom:10px}\n  .kc-leg{display:flex;align-items:center;gap:5px}\n  .kc-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}\n  .kc-notice{font-size:12px;color:#6b7280;margin-top:10px}\n  \u003c\/style\u003e\n  \u003cdiv class=\"kc-wrap\"\u003e\n    \u003cdiv class=\"kc-head\"\u003e\n      \u003cdiv class=\"kc-htitle\" id=\"kc-monthlabel\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"kc-nav\"\u003e\n        \u003cbutton onclick=\"kcPrev()\"\u003e\u0026#8592;\u003c\/button\u003e\n        \u003cbutton onclick=\"kcNext()\"\u003e\u0026#8594;\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kc-status\" id=\"kc-status\"\u003eLoading...\u003c\/div\u003e\n    \u003cdiv class=\"kc-grid\" id=\"kc-grid\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"kc-legend\"\u003e\n    \u003cdiv class=\"kc-notice\"\u003eBookings for 30+ nights only\u003c\/div\u003e\n  \u003c\/div\u003e`;\n\n  function pd(s){return new Date(+s.slice(0,4),+s.slice(4,6)-1,+s.slice(6,8));}\n  function isBooked(d){for(var r of bookedRanges){if(d\u003e=r.start\u0026\u0026d\u003cr.end)return true;}return false;}\n\n  function renderCal(){\n    document.getElementById(\"kc-monthlabel\").textContent=MN[cm]+\" \"+cy;\n    var g=document.getElementById(\"kc-grid\");\n    g.innerHTML=\"\";\n    DN.forEach(function(d){var e=document.createElement(\"div\");e.className=\"kc-dow\";e.textContent=d;g.appendChild(e);});\n    var first=new Date(cy,cm,1).getDay();\n    var total=new Date(cy,cm+1,0).getDate();\n    var today=new Date();today.setHours(0,0,0,0);\n    for(var i=0;i\u003cfirst;i++){var e=document.createElement(\"div\");e.className=\"kc-day\";g.appendChild(e);}\n    for(var d=1;d\u003c=total;d++){\n      var date=new Date(cy,cm,d);\n      var e=document.createElement(\"div\");\n      e.textContent=d;\n      if(date\u003ctoday){e.className=\"kc-day kc-past\";}\n      else if(isBooked(date)){e.className=\"kc-day kc-booked\";}\n      else{e.className=\"kc-day kc-avail\";}\n      if(date.getTime()===today.getTime())e.classList.add(\"kc-today\");\n      g.appendChild(e);\n    }\n  }\n\n  window.kcPrev=function(){cm--;if(cm\u003c0){cm=11;cy--;}renderCal();};\n  window.kcNext=function(){cm++;if(cm\u003e11){cm=0;cy++;}renderCal();};\n\n  fetch(WORKER+\"\/?url=\"+encodeURIComponent(ICAL_URL))\n    .then(function(r){return r.text();})\n    .then(function(text){\n      var lines=text.replace(\/\\r\\n\/g,\"\\n\").replace(\/\\r\/g,\"\\n\").split(\"\\n\");\n      var inEv=false,ds=null,de=null;\n      lines.forEach(function(line){\n        if(line===\"BEGIN:VEVENT\"){inEv=true;ds=null;de=null;}\n        else if(line===\"END:VEVENT\"){if(inEv\u0026\u0026ds\u0026\u0026de)bookedRanges.push({start:ds,end:de});inEv=false;}\n        else if(inEv){\n          var m=line.match(\/^DTSTART[^:]*:(\\d{8})\/);\n          var m2=line.match(\/^DTEND[^:]*:(\\d{8})\/);\n          if(m)ds=pd(m[1]);\n          if(m2)de=pd(m2[1]);\n        }\n      });\n      document.getElementById(\"kc-status\").textContent=\"Contact us for details\";\n      renderCal();\n    })\n    .catch(function(e){\n      document.getElementById(\"kc-status\").textContent=\"\";\n      renderCal();\n    });\n\n  renderCal();\n})();\n\u003c\/script\u003e\n","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":44427274715322,"sku":null,"price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/SJ06_Kolette_Home_Bedroom.jpg?v=1776495742"},{"product_id":"taipei-rental-monthly-apartment-sj05","title":"Tidy Suite with private bathroom and working desk (SJ05)","description":"\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eA brand new, furnished and cozy suite good for 2 people. It comes with a private bathroom and a working desk. Not to mention your own washer with the dry function. \u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003eO\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003enly 3 minutes walk to MRT Xingtian Temple station, which \u003cspan\u003egives city dwellers great convenience. \u003c\/span\u003e\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e5.2 ping \/ 17 ㎡ \/ 185 sqft\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cspan\u003eOne double b\u003c\/span\u003e\u003cspan\u003eed (150cm*188cm) \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eDry and wet separated bathroom\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003e3-minute walk from\u003cspan style=\"color: #f6d00f;\"\u003e MRT Xingtian Temple Station\u003c\/span\u003e\u003c\/span\u003e\u003cbr\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTV\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWifi\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eAir Conditioner \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWorking Desk\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eRefrigerator\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWasher\/Dryer\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eKettle\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTableware\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eElevator\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMicrowave provided in the public area\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cdiv id=\"kc-cal\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  var WORKER = \"https:\/\/ical-proxy.aidantpe.workers.dev\";\n  var ICAL_URL = \"https:\/\/www.airbnb.com.tw\/calendar\/ical\/1216328413107644652.ics?t=e9635ba5c2eb4ac48e04f96916f7aaac\";\n\n  var bookedRanges=[];\n  var cy=new Date().getFullYear();\n  var cm=new Date().getMonth();\n  var MN=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];\n  var DN=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"];\n\n  var wrap=document.getElementById(\"kc-cal\");\n  wrap.innerHTML=`\n  \u003cstyle\u003e\n  .kc-wrap{font-family:sans-serif;margin:40px 0;border-top:2px solid #e5e7eb;padding-top:30px}\n  .kc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}\n  .kc-htitle{font-size:1.1rem;font-weight:700;color:#111}\n  .kc-nav button{background:#f3f4f6;border:none;border-radius:8px;padding:6px 14px;cursor:pointer;font-size:14px;margin-left:6px}\n  .kc-nav button:hover{background:#e5e7eb}\n  .kc-status{font-size:12px;color:#6b7280;margin-bottom:12px}\n  .kc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px}\n  .kc-dow{font-size:11px;color:#9ca3af;text-align:center;padding:4px 0;font-weight:600}\n  .kc-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;color:#111}\n  .kc-avail{background:#f9fafb;border:1px solid #e5e7eb}\n  .kc-booked{background:#e5e7eb;color:#6b7280;text-decoration:line-through}\n  .kc-past{color:#d1d5db}\n  .kc-today{border:2px solid #3b82f6!important;font-weight:700}\n  .kc-legend{display:flex;gap:14px;font-size:12px;color:#6b7280;margin-top:4px;margin-bottom:10px}\n  .kc-leg{display:flex;align-items:center;gap:5px}\n  .kc-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}\n  .kc-notice{font-size:12px;color:#6b7280;margin-top:10px}\n  \u003c\/style\u003e\n  \u003cdiv class=\"kc-wrap\"\u003e\n    \u003cdiv class=\"kc-head\"\u003e\n      \u003cdiv class=\"kc-htitle\" id=\"kc-monthlabel\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"kc-nav\"\u003e\n        \u003cbutton onclick=\"kcPrev()\"\u003e\u0026#8592;\u003c\/button\u003e\n        \u003cbutton onclick=\"kcNext()\"\u003e\u0026#8594;\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kc-status\" id=\"kc-status\"\u003eLoading...\u003c\/div\u003e\n    \u003cdiv class=\"kc-grid\" id=\"kc-grid\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"kc-legend\"\u003e\n    \u003cdiv class=\"kc-notice\"\u003eBookings for 30+ nights only\u003c\/div\u003e\n  \u003c\/div\u003e`;\n\n  function pd(s){return new Date(+s.slice(0,4),+s.slice(4,6)-1,+s.slice(6,8));}\n  function isBooked(d){for(var r of bookedRanges){if(d\u003e=r.start\u0026\u0026d\u003cr.end)return true;}return false;}\n\n  function renderCal(){\n    document.getElementById(\"kc-monthlabel\").textContent=MN[cm]+\" \"+cy;\n    var g=document.getElementById(\"kc-grid\");\n    g.innerHTML=\"\";\n    DN.forEach(function(d){var e=document.createElement(\"div\");e.className=\"kc-dow\";e.textContent=d;g.appendChild(e);});\n    var first=new Date(cy,cm,1).getDay();\n    var total=new Date(cy,cm+1,0).getDate();\n    var today=new Date();today.setHours(0,0,0,0);\n    for(var i=0;i\u003cfirst;i++){var e=document.createElement(\"div\");e.className=\"kc-day\";g.appendChild(e);}\n    for(var d=1;d\u003c=total;d++){\n      var date=new Date(cy,cm,d);\n      var e=document.createElement(\"div\");\n      e.textContent=d;\n      if(date\u003ctoday){e.className=\"kc-day kc-past\";}\n      else if(isBooked(date)){e.className=\"kc-day kc-booked\";}\n      else{e.className=\"kc-day kc-avail\";}\n      if(date.getTime()===today.getTime())e.classList.add(\"kc-today\");\n      g.appendChild(e);\n    }\n  }\n\n  window.kcPrev=function(){cm--;if(cm\u003c0){cm=11;cy--;}renderCal();};\n  window.kcNext=function(){cm++;if(cm\u003e11){cm=0;cy++;}renderCal();};\n\n  fetch(WORKER+\"\/?url=\"+encodeURIComponent(ICAL_URL))\n    .then(function(r){return r.text();})\n    .then(function(text){\n      var lines=text.replace(\/\\r\\n\/g,\"\\n\").replace(\/\\r\/g,\"\\n\").split(\"\\n\");\n      var inEv=false,ds=null,de=null;\n      lines.forEach(function(line){\n        if(line===\"BEGIN:VEVENT\"){inEv=true;ds=null;de=null;}\n        else if(line===\"END:VEVENT\"){if(inEv\u0026\u0026ds\u0026\u0026de)bookedRanges.push({start:ds,end:de});inEv=false;}\n        else if(inEv){\n          var m=line.match(\/^DTSTART[^:]*:(\\d{8})\/);\n          var m2=line.match(\/^DTEND[^:]*:(\\d{8})\/);\n          if(m)ds=pd(m[1]);\n          if(m2)de=pd(m2[1]);\n        }\n      });\n      document.getElementById(\"kc-status\").textContent=\"Contact us for details\";\n      renderCal();\n    })\n    .catch(function(e){\n      document.getElementById(\"kc-status\").textContent=\"\";\n      renderCal();\n    });\n\n  renderCal();\n})();\n\u003c\/script\u003e\n","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":44434173624506,"sku":null,"price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/SJ05_Kolette_Home_Bedroom.jpg?v=1776495475"},{"product_id":"taipei-rental-monthly-apartment-sj04","title":"Sunlight Suite with private bathroom (SJ04)","description":"\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eA brand new, furnished suite flooded with natural lights. It comes with a private bathroom and a working desk, good for 2 people. Not to mention your own washer with the dry function. \u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003eO\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003enly 3 minutes walk to MRT Xingtian Temple station, which \u003cspan\u003egives city dwellers great convenience. \u003c\/span\u003e\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e4.2 ping \/ 13.9 m² \/ 149 sqft\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cspan\u003eOne double b\u003c\/span\u003e\u003cspan\u003eed (150cm*188cm) \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eDry and wet separated bathroom\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003e3-minute walk from\u003cspan style=\"color: rgb(0, 118, 255);\"\u003e \u003cspan style=\"color: rgb(246, 208, 15);\"\u003eMRT Xingtian Temple Station\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cbr\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTV\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWifi\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eAir Conditioner \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWorking Desk\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eRefrigerator\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWasher\/Dryer\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eKettle\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTableware\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eElevator\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMicrowave provided in the public area\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cdiv id=\"kc-cal\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  var WORKER = \"https:\/\/ical-proxy.aidantpe.workers.dev\";\n  var ICAL_URL = \"https:\/\/www.airbnb.com.tw\/calendar\/ical\/1216348862045459463.ics?t=65644208b290421f8a8d7cad681fe85d\";\n\n  var bookedRanges=[];\n  var cy=new Date().getFullYear();\n  var cm=new Date().getMonth();\n  var MN=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];\n  var DN=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"];\n\n  var wrap=document.getElementById(\"kc-cal\");\n  wrap.innerHTML=`\n  \u003cstyle\u003e\n  .kc-wrap{font-family:sans-serif;margin:40px 0;border-top:2px solid #e5e7eb;padding-top:30px}\n  .kc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}\n  .kc-htitle{font-size:1.1rem;font-weight:700;color:#111}\n  .kc-nav button{background:#f3f4f6;border:none;border-radius:8px;padding:6px 14px;cursor:pointer;font-size:14px;margin-left:6px}\n  .kc-nav button:hover{background:#e5e7eb}\n  .kc-status{font-size:12px;color:#6b7280;margin-bottom:12px}\n  .kc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px}\n  .kc-dow{font-size:11px;color:#9ca3af;text-align:center;padding:4px 0;font-weight:600}\n  .kc-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;color:#111}\n  .kc-avail{background:#f9fafb;border:1px solid #e5e7eb}\n  .kc-booked{background:#e5e7eb;color:#6b7280;text-decoration:line-through}\n  .kc-past{color:#d1d5db}\n  .kc-today{border:2px solid #3b82f6!important;font-weight:700}\n  .kc-legend{display:flex;gap:14px;font-size:12px;color:#6b7280;margin-top:4px;margin-bottom:10px}\n  .kc-leg{display:flex;align-items:center;gap:5px}\n  .kc-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}\n  .kc-notice{font-size:12px;color:#6b7280;margin-top:10px}\n  \u003c\/style\u003e\n  \u003cdiv class=\"kc-wrap\"\u003e\n    \u003cdiv class=\"kc-head\"\u003e\n      \u003cdiv class=\"kc-htitle\" id=\"kc-monthlabel\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"kc-nav\"\u003e\n        \u003cbutton onclick=\"kcPrev()\"\u003e\u0026#8592;\u003c\/button\u003e\n        \u003cbutton onclick=\"kcNext()\"\u003e\u0026#8594;\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kc-status\" id=\"kc-status\"\u003eLoading...\u003c\/div\u003e\n    \u003cdiv class=\"kc-grid\" id=\"kc-grid\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"kc-legend\"\u003e\n    \u003cdiv class=\"kc-notice\"\u003eBookings for 30+ nights only\u003c\/div\u003e\n  \u003c\/div\u003e`;\n\n  function pd(s){return new Date(+s.slice(0,4),+s.slice(4,6)-1,+s.slice(6,8));}\n  function isBooked(d){for(var r of bookedRanges){if(d\u003e=r.start\u0026\u0026d\u003cr.end)return true;}return false;}\n\n  function renderCal(){\n    document.getElementById(\"kc-monthlabel\").textContent=MN[cm]+\" \"+cy;\n    var g=document.getElementById(\"kc-grid\");\n    g.innerHTML=\"\";\n    DN.forEach(function(d){var e=document.createElement(\"div\");e.className=\"kc-dow\";e.textContent=d;g.appendChild(e);});\n    var first=new Date(cy,cm,1).getDay();\n    var total=new Date(cy,cm+1,0).getDate();\n    var today=new Date();today.setHours(0,0,0,0);\n    for(var i=0;i\u003cfirst;i++){var e=document.createElement(\"div\");e.className=\"kc-day\";g.appendChild(e);}\n    for(var d=1;d\u003c=total;d++){\n      var date=new Date(cy,cm,d);\n      var e=document.createElement(\"div\");\n      e.textContent=d;\n      if(date\u003ctoday){e.className=\"kc-day kc-past\";}\n      else if(isBooked(date)){e.className=\"kc-day kc-booked\";}\n      else{e.className=\"kc-day kc-avail\";}\n      if(date.getTime()===today.getTime())e.classList.add(\"kc-today\");\n      g.appendChild(e);\n    }\n  }\n\n  window.kcPrev=function(){cm--;if(cm\u003c0){cm=11;cy--;}renderCal();};\n  window.kcNext=function(){cm++;if(cm\u003e11){cm=0;cy++;}renderCal();};\n\n  fetch(WORKER+\"\/?url=\"+encodeURIComponent(ICAL_URL))\n    .then(function(r){return r.text();})\n    .then(function(text){\n      var lines=text.replace(\/\\r\\n\/g,\"\\n\").replace(\/\\r\/g,\"\\n\").split(\"\\n\");\n      var inEv=false,ds=null,de=null;\n      lines.forEach(function(line){\n        if(line===\"BEGIN:VEVENT\"){inEv=true;ds=null;de=null;}\n        else if(line===\"END:VEVENT\"){if(inEv\u0026\u0026ds\u0026\u0026de)bookedRanges.push({start:ds,end:de});inEv=false;}\n        else if(inEv){\n          var m=line.match(\/^DTSTART[^:]*:(\\d{8})\/);\n          var m2=line.match(\/^DTEND[^:]*:(\\d{8})\/);\n          if(m)ds=pd(m[1]);\n          if(m2)de=pd(m2[1]);\n        }\n      });\n      document.getElementById(\"kc-status\").textContent=\"Contact us for details\";\n      renderCal();\n    })\n    .catch(function(e){\n      document.getElementById(\"kc-status\").textContent=\"\";\n      renderCal();\n    });\n\n  renderCal();\n})();\n\u003c\/script\u003e\n","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":44456486568122,"sku":null,"price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/SJ04_Kolette_Home_Bedroom.jpg?v=1776495245"},{"product_id":"taipei-rental-monthly-apartment-sj03","title":"Suite with great natural lights and desk (SJ03)","description":"\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eA new, furnished, cozy suite full of natural lights. It comes with a private bathroom and a working desk, good for 2 people. \u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003eNot to mention your own washer with the dry function. \u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003eO\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003enly 3 minutes walk to MRT Xingtian Temple station, which \u003cspan\u003egives city dwellers great convenience. \u003c\/span\u003e\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e4.9 ping \/ 16.2 m² \/ 174 sqft\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cspan\u003eOne double b\u003c\/span\u003e\u003cspan\u003eed (150cm*188cm) \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eDry and wet separated bathroom\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003e3-minute walk from\u003cspan style=\"color: rgb(246, 160, 15);\"\u003e \u003cspan style=\"color: rgb(246, 208, 15);\"\u003eMRT Xingtian Temple Station\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cbr\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTV\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWifi\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eAir Conditioner \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWorking Desk\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eRefrigerator\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWasher\/Dryer\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eKettle\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTableware\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eElevator\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMicrowave provided in the public area\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cdiv id=\"kc-cal\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  var WORKER = \"https:\/\/ical-proxy.aidantpe.workers.dev\";\n  var ICAL_URL = \"https:\/\/www.airbnb.com.tw\/calendar\/ical\/1216437851737134577.ics?t=e04bdf5d335f4eeb89d0b0ebccb299a1\";\n\n  var bookedRanges=[];\n  var cy=new Date().getFullYear();\n  var cm=new Date().getMonth();\n  var MN=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];\n  var DN=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"];\n\n  var wrap=document.getElementById(\"kc-cal\");\n  wrap.innerHTML=`\n  \u003cstyle\u003e\n  .kc-wrap{font-family:sans-serif;margin:40px 0;border-top:2px solid #e5e7eb;padding-top:30px}\n  .kc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}\n  .kc-htitle{font-size:1.1rem;font-weight:700;color:#111}\n  .kc-nav button{background:#f3f4f6;border:none;border-radius:8px;padding:6px 14px;cursor:pointer;font-size:14px;margin-left:6px}\n  .kc-nav button:hover{background:#e5e7eb}\n  .kc-status{font-size:12px;color:#6b7280;margin-bottom:12px}\n  .kc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px}\n  .kc-dow{font-size:11px;color:#9ca3af;text-align:center;padding:4px 0;font-weight:600}\n  .kc-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;color:#111}\n  .kc-avail{background:#f9fafb;border:1px solid #e5e7eb}\n  .kc-booked{background:#e5e7eb;color:#6b7280;text-decoration:line-through}\n  .kc-past{color:#d1d5db}\n  .kc-today{border:2px solid #3b82f6!important;font-weight:700}\n  .kc-legend{display:flex;gap:14px;font-size:12px;color:#6b7280;margin-top:4px;margin-bottom:10px}\n  .kc-leg{display:flex;align-items:center;gap:5px}\n  .kc-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}\n  .kc-notice{font-size:12px;color:#6b7280;margin-top:10px}\n  \u003c\/style\u003e\n  \u003cdiv class=\"kc-wrap\"\u003e\n    \u003cdiv class=\"kc-head\"\u003e\n      \u003cdiv class=\"kc-htitle\" id=\"kc-monthlabel\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"kc-nav\"\u003e\n        \u003cbutton onclick=\"kcPrev()\"\u003e\u0026#8592;\u003c\/button\u003e\n        \u003cbutton onclick=\"kcNext()\"\u003e\u0026#8594;\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kc-status\" id=\"kc-status\"\u003eLoading...\u003c\/div\u003e\n    \u003cdiv class=\"kc-grid\" id=\"kc-grid\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"kc-legend\"\u003e\n    \u003cdiv class=\"kc-notice\"\u003eBookings for 30+ nights only\u003c\/div\u003e\n  \u003c\/div\u003e`;\n\n  function pd(s){return new Date(+s.slice(0,4),+s.slice(4,6)-1,+s.slice(6,8));}\n  function isBooked(d){for(var r of bookedRanges){if(d\u003e=r.start\u0026\u0026d\u003cr.end)return true;}return false;}\n\n  function renderCal(){\n    document.getElementById(\"kc-monthlabel\").textContent=MN[cm]+\" \"+cy;\n    var g=document.getElementById(\"kc-grid\");\n    g.innerHTML=\"\";\n    DN.forEach(function(d){var e=document.createElement(\"div\");e.className=\"kc-dow\";e.textContent=d;g.appendChild(e);});\n    var first=new Date(cy,cm,1).getDay();\n    var total=new Date(cy,cm+1,0).getDate();\n    var today=new Date();today.setHours(0,0,0,0);\n    for(var i=0;i\u003cfirst;i++){var e=document.createElement(\"div\");e.className=\"kc-day\";g.appendChild(e);}\n    for(var d=1;d\u003c=total;d++){\n      var date=new Date(cy,cm,d);\n      var e=document.createElement(\"div\");\n      e.textContent=d;\n      if(date\u003ctoday){e.className=\"kc-day kc-past\";}\n      else if(isBooked(date)){e.className=\"kc-day kc-booked\";}\n      else{e.className=\"kc-day kc-avail\";}\n      if(date.getTime()===today.getTime())e.classList.add(\"kc-today\");\n      g.appendChild(e);\n    }\n  }\n\n  window.kcPrev=function(){cm--;if(cm\u003c0){cm=11;cy--;}renderCal();};\n  window.kcNext=function(){cm++;if(cm\u003e11){cm=0;cy++;}renderCal();};\n\n  fetch(WORKER+\"\/?url=\"+encodeURIComponent(ICAL_URL))\n    .then(function(r){return r.text();})\n    .then(function(text){\n      var lines=text.replace(\/\\r\\n\/g,\"\\n\").replace(\/\\r\/g,\"\\n\").split(\"\\n\");\n      var inEv=false,ds=null,de=null;\n      lines.forEach(function(line){\n        if(line===\"BEGIN:VEVENT\"){inEv=true;ds=null;de=null;}\n        else if(line===\"END:VEVENT\"){if(inEv\u0026\u0026ds\u0026\u0026de)bookedRanges.push({start:ds,end:de});inEv=false;}\n        else if(inEv){\n          var m=line.match(\/^DTSTART[^:]*:(\\d{8})\/);\n          var m2=line.match(\/^DTEND[^:]*:(\\d{8})\/);\n          if(m)ds=pd(m[1]);\n          if(m2)de=pd(m2[1]);\n        }\n      });\n      document.getElementById(\"kc-status\").textContent=\"Contact us for details\";\n      renderCal();\n    })\n    .catch(function(e){\n      document.getElementById(\"kc-status\").textContent=\"\";\n      renderCal();\n    });\n\n  renderCal();\n})();\n\u003c\/script\u003e\n\n\n","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":44461235044538,"sku":null,"price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/SJ03_Kolette_Home_Bedroom.jpg?v=1776495054"},{"product_id":"taipei-rental-monthly-apartment-sj02","title":"Open Suite with private bathroom and desk (SJ02)","description":"\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eA new, furnished, cozy suite with a private bathroom and a working desk. It's good for 2 people.\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003e The moving TV provides you with the best audio-visual experience. Not to mention your own washer with the dry function. \u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003eO\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003enly 3 minutes walk to MRT Xingtian Temple station, which \u003cspan\u003egives city dwellers great convenience. \u003c\/span\u003e\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e4.8 ping \/ 15.9 m² \/ 171 sqft\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cspan\u003eOne double b\u003c\/span\u003e\u003cspan\u003eed (150cm*188cm) \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eDry and wet separated bathroom\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003e3-minute walk from\u003cspan style=\"color: #f6d00f;\"\u003e MRT Xingtian Temple Station\u003c\/span\u003e\u003c\/span\u003e\u003cbr\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMoving Smart TV\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWifi\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eAir Conditioner \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWorking Desk\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eRefrigerator\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWasher\/Dryer\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eKettle\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTableware\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e Elevator\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMicrowave provided in the public area\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e \u003c\/p\u003e\n\n\u003cdiv id=\"kc-cal\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  var WORKER = \"https:\/\/ical-proxy.aidantpe.workers.dev\";\n  var ICAL_URL = \"https:\/\/www.airbnb.com.tw\/calendar\/ical\/1216449470865658768.ics?t=17058c643d7b4f749369aedf465fe644\";\n\n  var bookedRanges=[];\n  var cy=new Date().getFullYear();\n  var cm=new Date().getMonth();\n  var MN=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];\n  var DN=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"];\n\n  var wrap=document.getElementById(\"kc-cal\");\n  wrap.innerHTML=`\n  \u003cstyle\u003e\n  .kc-wrap{font-family:sans-serif;margin:40px 0;border-top:2px solid #e5e7eb;padding-top:30px}\n  .kc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}\n  .kc-htitle{font-size:1.1rem;font-weight:700;color:#111}\n  .kc-nav button{background:#f3f4f6;border:none;border-radius:8px;padding:6px 14px;cursor:pointer;font-size:14px;margin-left:6px}\n  .kc-nav button:hover{background:#e5e7eb}\n  .kc-status{font-size:12px;color:#6b7280;margin-bottom:12px}\n  .kc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px}\n  .kc-dow{font-size:11px;color:#9ca3af;text-align:center;padding:4px 0;font-weight:600}\n  .kc-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;color:#111}\n  .kc-avail{background:#f9fafb;border:1px solid #e5e7eb}\n  .kc-booked{background:#e5e7eb;color:#6b7280;text-decoration:line-through}\n  .kc-past{color:#d1d5db}\n  .kc-today{border:2px solid #3b82f6!important;font-weight:700}\n  .kc-legend{display:flex;gap:14px;font-size:12px;color:#6b7280;margin-top:4px;margin-bottom:10px}\n  .kc-leg{display:flex;align-items:center;gap:5px}\n  .kc-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}\n  .kc-notice{font-size:12px;color:#6b7280;margin-top:10px}\n  \u003c\/style\u003e\n  \u003cdiv class=\"kc-wrap\"\u003e\n    \u003cdiv class=\"kc-head\"\u003e\n      \u003cdiv class=\"kc-htitle\" id=\"kc-monthlabel\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"kc-nav\"\u003e\n        \u003cbutton onclick=\"kcPrev()\"\u003e\u0026#8592;\u003c\/button\u003e\n        \u003cbutton onclick=\"kcNext()\"\u003e\u0026#8594;\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kc-status\" id=\"kc-status\"\u003eLoading...\u003c\/div\u003e\n    \u003cdiv class=\"kc-grid\" id=\"kc-grid\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"kc-legend\"\u003e\n    \u003cdiv class=\"kc-notice\"\u003eBookings for 30+ nights only\u003c\/div\u003e\n  \u003c\/div\u003e`;\n\n  function pd(s){return new Date(+s.slice(0,4),+s.slice(4,6)-1,+s.slice(6,8));}\n  function isBooked(d){for(var r of bookedRanges){if(d\u003e=r.start\u0026\u0026d\u003cr.end)return true;}return false;}\n\n  function renderCal(){\n    document.getElementById(\"kc-monthlabel\").textContent=MN[cm]+\" \"+cy;\n    var g=document.getElementById(\"kc-grid\");\n    g.innerHTML=\"\";\n    DN.forEach(function(d){var e=document.createElement(\"div\");e.className=\"kc-dow\";e.textContent=d;g.appendChild(e);});\n    var first=new Date(cy,cm,1).getDay();\n    var total=new Date(cy,cm+1,0).getDate();\n    var today=new Date();today.setHours(0,0,0,0);\n    for(var i=0;i\u003cfirst;i++){var e=document.createElement(\"div\");e.className=\"kc-day\";g.appendChild(e);}\n    for(var d=1;d\u003c=total;d++){\n      var date=new Date(cy,cm,d);\n      var e=document.createElement(\"div\");\n      e.textContent=d;\n      if(date\u003ctoday){e.className=\"kc-day kc-past\";}\n      else if(isBooked(date)){e.className=\"kc-day kc-booked\";}\n      else{e.className=\"kc-day kc-avail\";}\n      if(date.getTime()===today.getTime())e.classList.add(\"kc-today\");\n      g.appendChild(e);\n    }\n  }\n\n  window.kcPrev=function(){cm--;if(cm\u003c0){cm=11;cy--;}renderCal();};\n  window.kcNext=function(){cm++;if(cm\u003e11){cm=0;cy++;}renderCal();};\n\n  fetch(WORKER+\"\/?url=\"+encodeURIComponent(ICAL_URL))\n    .then(function(r){return r.text();})\n    .then(function(text){\n      var lines=text.replace(\/\\r\\n\/g,\"\\n\").replace(\/\\r\/g,\"\\n\").split(\"\\n\");\n      var inEv=false,ds=null,de=null;\n      lines.forEach(function(line){\n        if(line===\"BEGIN:VEVENT\"){inEv=true;ds=null;de=null;}\n        else if(line===\"END:VEVENT\"){if(inEv\u0026\u0026ds\u0026\u0026de)bookedRanges.push({start:ds,end:de});inEv=false;}\n        else if(inEv){\n          var m=line.match(\/^DTSTART[^:]*:(\\d{8})\/);\n          var m2=line.match(\/^DTEND[^:]*:(\\d{8})\/);\n          if(m)ds=pd(m[1]);\n          if(m2)de=pd(m2[1]);\n        }\n      });\n      document.getElementById(\"kc-status\").textContent=\"Contact us for details\";\n      renderCal();\n    })\n    .catch(function(e){\n      document.getElementById(\"kc-status\").textContent=\"\";\n      renderCal();\n    });\n\n  renderCal();\n})();\n\u003c\/script\u003e\n\n\n","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":44461239271610,"sku":null,"price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/SJ02_Kolette_Home_Bedroom_2.jpg?v=1776494953"},{"product_id":"taipei-rental-monthly-apartment-sj01","title":"Open Suite with a walk-in closet (SJ01)","description":"\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eA new, furnished, cozy suite with a private bathroom and a working desk. It's good for 2 people. A walk-in closet adds more storage space\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003e. Not to mention your own washer with the dry function. \u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003eO\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003enly 3 minutes walk to MRT Xingtian Temple station, which \u003cspan\u003egives city dwellers great convenience. \u003c\/span\u003e\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e5.7 ping \/ 18.8 m² \/ 203 sqft\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cspan\u003eOne double b\u003c\/span\u003e\u003cspan\u003eed (150cm*188cm) \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eDry and wet separated bathroom\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003e3-minute walk from\u003cspan style=\"color: #f6d00f;\"\u003e MRT Xingtian Temple Station\u003c\/span\u003e\u003c\/span\u003e\u003cbr\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTV\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWifi\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWalk-in Closet\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eAir Conditioner \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWorking Desk\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eRefrigerator\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWasher\/Dryer\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eKettle\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTableware\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e Elevator\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMicrowave provided in the public area\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cdiv id=\"kc-cal\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  var WORKER = \"https:\/\/ical-proxy.aidantpe.workers.dev\";\n  var ICAL_URL = \"https:\/\/www.airbnb.com.tw\/calendar\/ical\/1216456131845047700.ics?t=a854ddae683d441fad4693cdb705e3fd\";\n\n  var bookedRanges=[];\n  var cy=new Date().getFullYear();\n  var cm=new Date().getMonth();\n  var MN=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];\n  var DN=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"];\n\n  var wrap=document.getElementById(\"kc-cal\");\n  wrap.innerHTML=`\n  \u003cstyle\u003e\n  .kc-wrap{font-family:sans-serif;margin:40px 0;border-top:2px solid #e5e7eb;padding-top:30px}\n  .kc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}\n  .kc-htitle{font-size:1.1rem;font-weight:700;color:#111}\n  .kc-nav button{background:#f3f4f6;border:none;border-radius:8px;padding:6px 14px;cursor:pointer;font-size:14px;margin-left:6px}\n  .kc-nav button:hover{background:#e5e7eb}\n  .kc-status{font-size:12px;color:#6b7280;margin-bottom:12px}\n  .kc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px}\n  .kc-dow{font-size:11px;color:#9ca3af;text-align:center;padding:4px 0;font-weight:600}\n  .kc-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;color:#111}\n  .kc-avail{background:#f9fafb;border:1px solid #e5e7eb}\n  .kc-booked{background:#e5e7eb;color:#6b7280;text-decoration:line-through}\n  .kc-past{color:#d1d5db}\n  .kc-today{border:2px solid #3b82f6!important;font-weight:700}\n  .kc-legend{display:flex;gap:14px;font-size:12px;color:#6b7280;margin-top:4px;margin-bottom:10px}\n  .kc-leg{display:flex;align-items:center;gap:5px}\n  .kc-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}\n  .kc-notice{font-size:12px;color:#6b7280;margin-top:10px}\n  \u003c\/style\u003e\n  \u003cdiv class=\"kc-wrap\"\u003e\n    \u003cdiv class=\"kc-head\"\u003e\n      \u003cdiv class=\"kc-htitle\" id=\"kc-monthlabel\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"kc-nav\"\u003e\n        \u003cbutton onclick=\"kcPrev()\"\u003e\u0026#8592;\u003c\/button\u003e\n        \u003cbutton onclick=\"kcNext()\"\u003e\u0026#8594;\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kc-status\" id=\"kc-status\"\u003eLoading...\u003c\/div\u003e\n    \u003cdiv class=\"kc-grid\" id=\"kc-grid\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"kc-legend\"\u003e\n    \u003cdiv class=\"kc-notice\"\u003eBookings for 30+ nights only\u003c\/div\u003e\n  \u003c\/div\u003e`;\n\n  function pd(s){return new Date(+s.slice(0,4),+s.slice(4,6)-1,+s.slice(6,8));}\n  function isBooked(d){for(var r of bookedRanges){if(d\u003e=r.start\u0026\u0026d\u003cr.end)return true;}return false;}\n\n  function renderCal(){\n    document.getElementById(\"kc-monthlabel\").textContent=MN[cm]+\" \"+cy;\n    var g=document.getElementById(\"kc-grid\");\n    g.innerHTML=\"\";\n    DN.forEach(function(d){var e=document.createElement(\"div\");e.className=\"kc-dow\";e.textContent=d;g.appendChild(e);});\n    var first=new Date(cy,cm,1).getDay();\n    var total=new Date(cy,cm+1,0).getDate();\n    var today=new Date();today.setHours(0,0,0,0);\n    for(var i=0;i\u003cfirst;i++){var e=document.createElement(\"div\");e.className=\"kc-day\";g.appendChild(e);}\n    for(var d=1;d\u003c=total;d++){\n      var date=new Date(cy,cm,d);\n      var e=document.createElement(\"div\");\n      e.textContent=d;\n      if(date\u003ctoday){e.className=\"kc-day kc-past\";}\n      else if(isBooked(date)){e.className=\"kc-day kc-booked\";}\n      else{e.className=\"kc-day kc-avail\";}\n      if(date.getTime()===today.getTime())e.classList.add(\"kc-today\");\n      g.appendChild(e);\n    }\n  }\n\n  window.kcPrev=function(){cm--;if(cm\u003c0){cm=11;cy--;}renderCal();};\n  window.kcNext=function(){cm++;if(cm\u003e11){cm=0;cy++;}renderCal();};\n\n  fetch(WORKER+\"\/?url=\"+encodeURIComponent(ICAL_URL))\n    .then(function(r){return r.text();})\n    .then(function(text){\n      var lines=text.replace(\/\\r\\n\/g,\"\\n\").replace(\/\\r\/g,\"\\n\").split(\"\\n\");\n      var inEv=false,ds=null,de=null;\n      lines.forEach(function(line){\n        if(line===\"BEGIN:VEVENT\"){inEv=true;ds=null;de=null;}\n        else if(line===\"END:VEVENT\"){if(inEv\u0026\u0026ds\u0026\u0026de)bookedRanges.push({start:ds,end:de});inEv=false;}\n        else if(inEv){\n          var m=line.match(\/^DTSTART[^:]*:(\\d{8})\/);\n          var m2=line.match(\/^DTEND[^:]*:(\\d{8})\/);\n          if(m)ds=pd(m[1]);\n          if(m2)de=pd(m2[1]);\n        }\n      });\n      document.getElementById(\"kc-status\").textContent=\"Contact us for details\";\n      renderCal();\n    })\n    .catch(function(e){\n      document.getElementById(\"kc-status\").textContent=\"\";\n      renderCal();\n    });\n\n  renderCal();\n})();\n\u003c\/script\u003e\n\n\n","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":44461247692986,"sku":null,"price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/SJ01_Kolette_Home_Workspace.jpg?v=1776494444"},{"product_id":"taipei-rental-monthly-apartment-cc8","title":"Sunlight Suite with well-equipped Kitchenette (CC8)","description":"\u003cp\u003eThis stylish studio, ideal for 1-2 guests, offers a compact living space with ample natural light. Located just a 6-minute walk from MRT Nanjing Fuxing Station, it combines convenience and comfort. Enjoy modern features like air conditioning, a TV, and a well-equipped kitchenette. Perfect for those seeking a cozy and bright relaxing home.\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e6.6 ping \/ 21.79m²\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003e \/ 235 sqft\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003e1 studio and 1 bathroom\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e6-minute walk from \u003cspan style=\"color: #06782c;\"\u003eMRT Nanjing Fuxing station\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTV\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWifi\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eAir Conditioner \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eBed (150 x 188cm)\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eElevator\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eCooking Stove\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eCookware\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTableware\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eKettle\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMicrowave\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eDish Dryer\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWash Machine and Dryer\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\n\u003cdiv id=\"kc-cal\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  var WORKER = \"https:\/\/ical-proxy.aidantpe.workers.dev\";\n  var ICAL_URL = \"https:\/\/www.airbnb.com.tw\/calendar\/ical\/1450499682342778937.ics?t=1d0099906aa24a148d0dbc83c9202aa8\";\n\n  var bookedRanges=[];\n  var cy=new Date().getFullYear();\n  var cm=new Date().getMonth();\n  var MN=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];\n  var DN=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"];\n\n  var wrap=document.getElementById(\"kc-cal\");\n  wrap.innerHTML=`\n  \u003cstyle\u003e\n  .kc-wrap{font-family:sans-serif;margin:40px 0;border-top:2px solid #e5e7eb;padding-top:30px}\n  .kc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}\n  .kc-htitle{font-size:1.1rem;font-weight:700;color:#111}\n  .kc-nav button{background:#f3f4f6;border:none;border-radius:8px;padding:6px 14px;cursor:pointer;font-size:14px;margin-left:6px}\n  .kc-nav button:hover{background:#e5e7eb}\n  .kc-status{font-size:12px;color:#6b7280;margin-bottom:12px}\n  .kc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px}\n  .kc-dow{font-size:11px;color:#9ca3af;text-align:center;padding:4px 0;font-weight:600}\n  .kc-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;color:#111}\n  .kc-avail{background:#f9fafb;border:1px solid #e5e7eb}\n  .kc-booked{background:#e5e7eb;color:#6b7280;text-decoration:line-through}\n  .kc-past{color:#d1d5db}\n  .kc-today{border:2px solid #3b82f6!important;font-weight:700}\n  .kc-legend{display:flex;gap:14px;font-size:12px;color:#6b7280;margin-top:4px;margin-bottom:10px}\n  .kc-leg{display:flex;align-items:center;gap:5px}\n  .kc-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}\n  .kc-notice{font-size:12px;color:#6b7280;margin-top:10px}\n  \u003c\/style\u003e\n  \u003cdiv class=\"kc-wrap\"\u003e\n    \u003cdiv class=\"kc-head\"\u003e\n      \u003cdiv class=\"kc-htitle\" id=\"kc-monthlabel\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"kc-nav\"\u003e\n        \u003cbutton onclick=\"kcPrev()\"\u003e\u0026#8592;\u003c\/button\u003e\n        \u003cbutton onclick=\"kcNext()\"\u003e\u0026#8594;\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kc-status\" id=\"kc-status\"\u003eLoading...\u003c\/div\u003e\n    \u003cdiv class=\"kc-grid\" id=\"kc-grid\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"kc-legend\"\u003e\n    \u003cdiv class=\"kc-notice\"\u003eBookings for 30+ nights only\u003c\/div\u003e\n  \u003c\/div\u003e`;\n\n  function pd(s){return new Date(+s.slice(0,4),+s.slice(4,6)-1,+s.slice(6,8));}\n  function isBooked(d){for(var r of bookedRanges){if(d\u003e=r.start\u0026\u0026d\u003cr.end)return true;}return false;}\n\n  function renderCal(){\n    document.getElementById(\"kc-monthlabel\").textContent=MN[cm]+\" \"+cy;\n    var g=document.getElementById(\"kc-grid\");\n    g.innerHTML=\"\";\n    DN.forEach(function(d){var e=document.createElement(\"div\");e.className=\"kc-dow\";e.textContent=d;g.appendChild(e);});\n    var first=new Date(cy,cm,1).getDay();\n    var total=new Date(cy,cm+1,0).getDate();\n    var today=new Date();today.setHours(0,0,0,0);\n    for(var i=0;i\u003cfirst;i++){var e=document.createElement(\"div\");e.className=\"kc-day\";g.appendChild(e);}\n    for(var d=1;d\u003c=total;d++){\n      var date=new Date(cy,cm,d);\n      var e=document.createElement(\"div\");\n      e.textContent=d;\n      if(date\u003ctoday){e.className=\"kc-day kc-past\";}\n      else if(isBooked(date)){e.className=\"kc-day kc-booked\";}\n      else{e.className=\"kc-day kc-avail\";}\n      if(date.getTime()===today.getTime())e.classList.add(\"kc-today\");\n      g.appendChild(e);\n    }\n  }\n\n  window.kcPrev=function(){cm--;if(cm\u003c0){cm=11;cy--;}renderCal();};\n  window.kcNext=function(){cm++;if(cm\u003e11){cm=0;cy++;}renderCal();};\n\n  fetch(WORKER+\"\/?url=\"+encodeURIComponent(ICAL_URL))\n    .then(function(r){return r.text();})\n    .then(function(text){\n      var lines=text.replace(\/\\r\\n\/g,\"\\n\").replace(\/\\r\/g,\"\\n\").split(\"\\n\");\n      var inEv=false,ds=null,de=null;\n      lines.forEach(function(line){\n        if(line===\"BEGIN:VEVENT\"){inEv=true;ds=null;de=null;}\n        else if(line===\"END:VEVENT\"){if(inEv\u0026\u0026ds\u0026\u0026de)bookedRanges.push({start:ds,end:de});inEv=false;}\n        else if(inEv){\n          var m=line.match(\/^DTSTART[^:]*:(\\d{8})\/);\n          var m2=line.match(\/^DTEND[^:]*:(\\d{8})\/);\n          if(m)ds=pd(m[1]);\n          if(m2)de=pd(m2[1]);\n        }\n      });\n      document.getElementById(\"kc-status\").textContent=\"Contact us for details\";\n      renderCal();\n    })\n    .catch(function(e){\n      document.getElementById(\"kc-status\").textContent=\"\";\n      renderCal();\n    });\n\n  renderCal();\n})();\n\u003c\/script\u003e\n\n\n\n","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":45006740062394,"sku":null,"price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/cc8_Kolette_Home_bedroom.jpg?v=1776489079"},{"product_id":"products-taipei-rental-monthly-apartment-cc4-3","title":"Relaxing Studio with Private Bathroom (CC4-3)","description":"\u003cp\u003eThis charming studio offers a compact yet comfortable living space, ideal for urban dwellers. Just a 6-minute walk from MRT Nanjing Fuxing Station, it combines convenience with a warm ambiance. Large windows bring in ample natural light. Perfect for singles or couples, the space is designed for easy living, allowing you to relax and unwind after a busy day in the city.\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e5.4 ping \/ 18 \u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003em\u003cspan\u003e²\u003c\/span\u003e\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\"\u003e \/ 192 sqft\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003e1 studio and 1 bathroom\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e6-minute walk from \u003cspan style=\"color: #06782c;\"\u003eMRT Nanjing Fuxing station\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eSmart TV\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWifi\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eAir Conditioner\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003ePortable Heater\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eBed (150 x 188cm)\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eElevator\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eKettle\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMicrowave\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003eRefrigerator\u003c\/li\u003e\n\u003cli\u003eHair Dryer\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eWash Machine and Dryer\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cdiv id=\"kc-cal\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  var WORKER = \"https:\/\/ical-proxy.aidantpe.workers.dev\";\n  var ICAL_URL = \"https:\/\/www.airbnb.com.tw\/calendar\/ical\/1127867614119748141.ics?t=1dea80727c394cd0a375d533253b0f3f\";\n\n  var bookedRanges=[];\n  var cy=new Date().getFullYear();\n  var cm=new Date().getMonth();\n  var MN=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];\n  var DN=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"];\n\n  var wrap=document.getElementById(\"kc-cal\");\n  wrap.innerHTML=`\n  \u003cstyle\u003e\n  .kc-wrap{font-family:sans-serif;margin:40px 0;border-top:2px solid #e5e7eb;padding-top:30px}\n  .kc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}\n  .kc-htitle{font-size:1.1rem;font-weight:700;color:#111}\n  .kc-nav button{background:#f3f4f6;border:none;border-radius:8px;padding:6px 14px;cursor:pointer;font-size:14px;margin-left:6px}\n  .kc-nav button:hover{background:#e5e7eb}\n  .kc-status{font-size:12px;color:#6b7280;margin-bottom:12px}\n  .kc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px}\n  .kc-dow{font-size:11px;color:#9ca3af;text-align:center;padding:4px 0;font-weight:600}\n  .kc-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;color:#111}\n  .kc-avail{background:#f9fafb;border:1px solid #e5e7eb}\n  .kc-booked{background:#e5e7eb;color:#6b7280;text-decoration:line-through}\n  .kc-past{color:#d1d5db}\n  .kc-today{border:2px solid #3b82f6!important;font-weight:700}\n  .kc-legend{display:flex;gap:14px;font-size:12px;color:#6b7280;margin-top:4px;margin-bottom:10px}\n  .kc-leg{display:flex;align-items:center;gap:5px}\n  .kc-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}\n  .kc-notice{font-size:12px;color:#6b7280;margin-top:10px}\n  \u003c\/style\u003e\n  \u003cdiv class=\"kc-wrap\"\u003e\n    \u003cdiv class=\"kc-head\"\u003e\n      \u003cdiv class=\"kc-htitle\" id=\"kc-monthlabel\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"kc-nav\"\u003e\n        \u003cbutton onclick=\"kcPrev()\"\u003e\u0026#8592;\u003c\/button\u003e\n        \u003cbutton onclick=\"kcNext()\"\u003e\u0026#8594;\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kc-status\" id=\"kc-status\"\u003eLoading...\u003c\/div\u003e\n    \u003cdiv class=\"kc-grid\" id=\"kc-grid\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"kc-legend\"\u003e\n    \u003cdiv class=\"kc-notice\"\u003eBookings for 30+ nights only\u003c\/div\u003e\n  \u003c\/div\u003e`;\n\n  function pd(s){return new Date(+s.slice(0,4),+s.slice(4,6)-1,+s.slice(6,8));}\n  function isBooked(d){for(var r of bookedRanges){if(d\u003e=r.start\u0026\u0026d\u003cr.end)return true;}return false;}\n\n  function renderCal(){\n    document.getElementById(\"kc-monthlabel\").textContent=MN[cm]+\" \"+cy;\n    var g=document.getElementById(\"kc-grid\");\n    g.innerHTML=\"\";\n    DN.forEach(function(d){var e=document.createElement(\"div\");e.className=\"kc-dow\";e.textContent=d;g.appendChild(e);});\n    var first=new Date(cy,cm,1).getDay();\n    var total=new Date(cy,cm+1,0).getDate();\n    var today=new Date();today.setHours(0,0,0,0);\n    for(var i=0;i\u003cfirst;i++){var e=document.createElement(\"div\");e.className=\"kc-day\";g.appendChild(e);}\n    for(var d=1;d\u003c=total;d++){\n      var date=new Date(cy,cm,d);\n      var e=document.createElement(\"div\");\n      e.textContent=d;\n      if(date\u003ctoday){e.className=\"kc-day kc-past\";}\n      else if(isBooked(date)){e.className=\"kc-day kc-booked\";}\n      else{e.className=\"kc-day kc-avail\";}\n      if(date.getTime()===today.getTime())e.classList.add(\"kc-today\");\n      g.appendChild(e);\n    }\n  }\n\n  window.kcPrev=function(){cm--;if(cm\u003c0){cm=11;cy--;}renderCal();};\n  window.kcNext=function(){cm++;if(cm\u003e11){cm=0;cy++;}renderCal();};\n\n  fetch(WORKER+\"\/?url=\"+encodeURIComponent(ICAL_URL))\n    .then(function(r){return r.text();})\n    .then(function(text){\n      var lines=text.replace(\/\\r\\n\/g,\"\\n\").replace(\/\\r\/g,\"\\n\").split(\"\\n\");\n      var inEv=false,ds=null,de=null;\n      lines.forEach(function(line){\n        if(line===\"BEGIN:VEVENT\"){inEv=true;ds=null;de=null;}\n        else if(line===\"END:VEVENT\"){if(inEv\u0026\u0026ds\u0026\u0026de)bookedRanges.push({start:ds,end:de});inEv=false;}\n        else if(inEv){\n          var m=line.match(\/^DTSTART[^:]*:(\\d{8})\/);\n          var m2=line.match(\/^DTEND[^:]*:(\\d{8})\/);\n          if(m)ds=pd(m[1]);\n          if(m2)de=pd(m2[1]);\n        }\n      });\n      document.getElementById(\"kc-status\").textContent=\"Contact us for details\";\n      renderCal();\n    })\n    .catch(function(e){\n      document.getElementById(\"kc-status\").textContent=\"\";\n      renderCal();\n    });\n\n  renderCal();\n})();\n\u003c\/script\u003e\n\n\n\n","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":45006764081338,"sku":null,"price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/cc4-3b_Kolette_Home_bedroom.jpg?v=1776488161"},{"product_id":"taipei-rental-monthly-apartment-zs33","title":"Cozy bright 1-bedroom in the Heart of Taipei - Your Personal Urban Retreat (ZS33)","description":"\u003cp\u003eIn this elegant apartment, you step into a bright living room where natural light pours through large windows, brightening the beginning of the day. The soft sofa and coffee table form your favorite reading corner, perfect for unwinding with a nice book and a cup of coffee. The fully equipped kitchen, with its stove and microwave, makes preparing meals effortless. Then, take a warm and relaxing shower, ensuring every day ends in tranquility. Walk into the serene bedroom where a comfortable double bed awaits, ready to embrace you every single night. \u003cbr\u003eThis apartment is not just a home; it's a haven for creating beautiful memories.\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e13 ping \/ 40.56 \u003cmeta charset=\"utf-8\"\u003em\u003csup\u003e2\u003c\/sup\u003e \/ 463 sqft \u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003e1 bedroom and 1 bathroom\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e6-minute walk from \u003cspan style=\"color: rgb(76, 161, 54);\"\u003eMRT Zhongshan Station\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003eElevator\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTV\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eFast Speed Wifi (300mbp)\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eAir Conditioner \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eBed (150cm*188cm) \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eCooking Stove\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMicrowave \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWasher and Dryer\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cdiv id=\"kc-cal\"\u003e\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e\n\n\n\n\u003cdiv id=\"kc-cal\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  var WORKER = \"https:\/\/ical-proxy.aidantpe.workers.dev\";\n  var ICAL_URL = \"https:\/\/www.airbnb.com.tw\/calendar\/ical\/1561460678743161077.ics?t=69415977d5ff460f888223598cd73507\";\n\n  var bookedRanges=[];\n  var cy=new Date().getFullYear();\n  var cm=new Date().getMonth();\n  var MN=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];\n  var DN=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"];\n\n  var wrap=document.getElementById(\"kc-cal\");\n  wrap.innerHTML=`\n  \u003cstyle\u003e\n  .kc-wrap{font-family:sans-serif;margin:40px 0;border-top:2px solid #e5e7eb;padding-top:30px}\n  .kc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}\n  .kc-htitle{font-size:1.1rem;font-weight:700;color:#111}\n  .kc-nav button{background:#f3f4f6;border:none;border-radius:8px;padding:6px 14px;cursor:pointer;font-size:14px;margin-left:6px}\n  .kc-nav button:hover{background:#e5e7eb}\n  .kc-status{font-size:12px;color:#6b7280;margin-bottom:12px}\n  .kc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px}\n  .kc-dow{font-size:11px;color:#9ca3af;text-align:center;padding:4px 0;font-weight:600}\n  .kc-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;color:#111}\n  .kc-avail{background:#f9fafb;border:1px solid #e5e7eb}\n  .kc-booked{background:#e5e7eb;color:#6b7280;text-decoration:line-through}\n  .kc-past{color:#d1d5db}\n  .kc-today{border:2px solid #3b82f6!important;font-weight:700}\n  .kc-legend{display:flex;gap:14px;font-size:12px;color:#6b7280;margin-top:4px;margin-bottom:10px}\n  .kc-leg{display:flex;align-items:center;gap:5px}\n  .kc-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}\n  .kc-notice{font-size:12px;color:#6b7280;margin-top:10px}\n  \u003c\/style\u003e\n  \u003cdiv class=\"kc-wrap\"\u003e\n    \u003cdiv class=\"kc-head\"\u003e\n      \u003cdiv class=\"kc-htitle\" id=\"kc-monthlabel\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"kc-nav\"\u003e\n        \u003cbutton onclick=\"kcPrev()\"\u003e\u0026#8592;\u003c\/button\u003e\n        \u003cbutton onclick=\"kcNext()\"\u003e\u0026#8594;\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kc-status\" id=\"kc-status\"\u003eLoading...\u003c\/div\u003e\n    \u003cdiv class=\"kc-grid\" id=\"kc-grid\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"kc-legend\"\u003e\n    \u003cdiv class=\"kc-notice\"\u003eBookings for 30+ nights only\u003c\/div\u003e\n  \u003c\/div\u003e`;\n\n  function pd(s){return new Date(+s.slice(0,4),+s.slice(4,6)-1,+s.slice(6,8));}\n  function isBooked(d){for(var r of bookedRanges){if(d\u003e=r.start\u0026\u0026d\u003cr.end)return true;}return false;}\n\n  function renderCal(){\n    document.getElementById(\"kc-monthlabel\").textContent=MN[cm]+\" \"+cy;\n    var g=document.getElementById(\"kc-grid\");\n    g.innerHTML=\"\";\n    DN.forEach(function(d){var e=document.createElement(\"div\");e.className=\"kc-dow\";e.textContent=d;g.appendChild(e);});\n    var first=new Date(cy,cm,1).getDay();\n    var total=new Date(cy,cm+1,0).getDate();\n    var today=new Date();today.setHours(0,0,0,0);\n    for(var i=0;i\u003cfirst;i++){var e=document.createElement(\"div\");e.className=\"kc-day\";g.appendChild(e);}\n    for(var d=1;d\u003c=total;d++){\n      var date=new Date(cy,cm,d);\n      var e=document.createElement(\"div\");\n      e.textContent=d;\n      if(date\u003ctoday){e.className=\"kc-day kc-past\";}\n      else if(isBooked(date)){e.className=\"kc-day kc-booked\";}\n      else{e.className=\"kc-day kc-avail\";}\n      if(date.getTime()===today.getTime())e.classList.add(\"kc-today\");\n      g.appendChild(e);\n    }\n  }\n\n  window.kcPrev=function(){cm--;if(cm\u003c0){cm=11;cy--;}renderCal();};\n  window.kcNext=function(){cm++;if(cm\u003e11){cm=0;cy++;}renderCal();};\n\n  fetch(WORKER+\"\/?url=\"+encodeURIComponent(ICAL_URL))\n    .then(function(r){return r.text();})\n    .then(function(text){\n      var lines=text.replace(\/\\r\\n\/g,\"\\n\").replace(\/\\r\/g,\"\\n\").split(\"\\n\");\n      var inEv=false,ds=null,de=null;\n      lines.forEach(function(line){\n        if(line===\"BEGIN:VEVENT\"){inEv=true;ds=null;de=null;}\n        else if(line===\"END:VEVENT\"){if(inEv\u0026\u0026ds\u0026\u0026de)bookedRanges.push({start:ds,end:de});inEv=false;}\n        else if(inEv){\n          var m=line.match(\/^DTSTART[^:]*:(\\d{8})\/);\n          var m2=line.match(\/^DTEND[^:]*:(\\d{8})\/);\n          if(m)ds=pd(m[1]);\n          if(m2)de=pd(m2[1]);\n        }\n      });\n      document.getElementById(\"kc-status\").textContent=\"Contact us for details\";\n      renderCal();\n    })\n    .catch(function(e){\n      document.getElementById(\"kc-status\").textContent=\"\";\n      renderCal();\n    });\n\n  renderCal();\n})();\n\u003c\/script\u003e\n","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":45542903021754,"sku":null,"price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/Kolette_Home_Serviced_Apartment_-_Modern_minimalist_kitchen_and_living_area_with_warm_lighting_in_Taipei..jpg?v=1776485466"},{"product_id":"taipei-rental-monthly-apartment-cc7-8","title":"Modern Designer Studio for Rent in Taipei | 6 Mins to MRT (CC7-8)","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003eIdeally crafted for digital nomads, business professionals, and couples, The studio offers a seamless blend of modern aesthetics and home-like comfort. This isn't just a place to stay; it’s your designer sanctuary in Taipei.\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e 10.6 ping \/ 35.04\u003cmeta charset=\"utf-8\"\u003e \u003cspan\u003em²\u003c\/span\u003e \/ 377 sqft\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003e1 studio and 1 bathroom\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e6-minute walk from \u003cspan style=\"color: #06782c;\"\u003eMRT Nanjing Fuxing station\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTV\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWifi\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eAir Conditioner \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eBed (150 x 188cm)\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eElevator\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eCooking Stove\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eCookware \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTableware\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eKettle\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMicrowave\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWash Machine and Dryer\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cdiv id=\"kc-cal\"\u003e\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e\n\n\n\n\n\u003cdiv id=\"kc-cal\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  var WORKER = \"https:\/\/ical-proxy.aidantpe.workers.dev\";\n  var ICAL_URL = \"https:\/\/www.airbnb.com.tw\/calendar\/ical\/1625297515678063709.ics?t=cda9003dfcc6454da5eec2a7ddfd5173\";\n\n  var bookedRanges=[];\n  var cy=new Date().getFullYear();\n  var cm=new Date().getMonth();\n  var MN=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];\n  var DN=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"];\n\n  var wrap=document.getElementById(\"kc-cal\");\n  wrap.innerHTML=`\n  \u003cstyle\u003e\n  .kc-wrap{font-family:sans-serif;margin:40px 0;border-top:2px solid #e5e7eb;padding-top:30px}\n  .kc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}\n  .kc-htitle{font-size:1.1rem;font-weight:700;color:#111}\n  .kc-nav button{background:#f3f4f6;border:none;border-radius:8px;padding:6px 14px;cursor:pointer;font-size:14px;margin-left:6px}\n  .kc-nav button:hover{background:#e5e7eb}\n  .kc-status{font-size:12px;color:#6b7280;margin-bottom:12px}\n  .kc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px}\n  .kc-dow{font-size:11px;color:#9ca3af;text-align:center;padding:4px 0;font-weight:600}\n  .kc-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;color:#111}\n  .kc-avail{background:#f9fafb;border:1px solid #e5e7eb}\n  .kc-booked{background:#e5e7eb;color:#6b7280;text-decoration:line-through}\n  .kc-past{color:#d1d5db}\n  .kc-today{border:2px solid #3b82f6!important;font-weight:700}\n  .kc-legend{display:flex;gap:14px;font-size:12px;color:#6b7280;margin-top:4px;margin-bottom:10px}\n  .kc-leg{display:flex;align-items:center;gap:5px}\n  .kc-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}\n  .kc-notice{font-size:12px;color:#6b7280;margin-top:10px}\n  \u003c\/style\u003e\n  \u003cdiv class=\"kc-wrap\"\u003e\n    \u003cdiv class=\"kc-head\"\u003e\n      \u003cdiv class=\"kc-htitle\" id=\"kc-monthlabel\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"kc-nav\"\u003e\n        \u003cbutton onclick=\"kcPrev()\"\u003e\u0026#8592;\u003c\/button\u003e\n        \u003cbutton onclick=\"kcNext()\"\u003e\u0026#8594;\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kc-status\" id=\"kc-status\"\u003eLoading...\u003c\/div\u003e\n    \u003cdiv class=\"kc-grid\" id=\"kc-grid\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"kc-legend\"\u003e\n    \u003cdiv class=\"kc-notice\"\u003eBookings for 30+ nights only\u003c\/div\u003e\n  \u003c\/div\u003e`;\n\n  function pd(s){return new Date(+s.slice(0,4),+s.slice(4,6)-1,+s.slice(6,8));}\n  function isBooked(d){for(var r of bookedRanges){if(d\u003e=r.start\u0026\u0026d\u003cr.end)return true;}return false;}\n\n  function renderCal(){\n    document.getElementById(\"kc-monthlabel\").textContent=MN[cm]+\" \"+cy;\n    var g=document.getElementById(\"kc-grid\");\n    g.innerHTML=\"\";\n    DN.forEach(function(d){var e=document.createElement(\"div\");e.className=\"kc-dow\";e.textContent=d;g.appendChild(e);});\n    var first=new Date(cy,cm,1).getDay();\n    var total=new Date(cy,cm+1,0).getDate();\n    var today=new Date();today.setHours(0,0,0,0);\n    for(var i=0;i\u003cfirst;i++){var e=document.createElement(\"div\");e.className=\"kc-day\";g.appendChild(e);}\n    for(var d=1;d\u003c=total;d++){\n      var date=new Date(cy,cm,d);\n      var e=document.createElement(\"div\");\n      e.textContent=d;\n      if(date\u003ctoday){e.className=\"kc-day kc-past\";}\n      else if(isBooked(date)){e.className=\"kc-day kc-booked\";}\n      else{e.className=\"kc-day kc-avail\";}\n      if(date.getTime()===today.getTime())e.classList.add(\"kc-today\");\n      g.appendChild(e);\n    }\n  }\n\n  window.kcPrev=function(){cm--;if(cm\u003c0){cm=11;cy--;}renderCal();};\n  window.kcNext=function(){cm++;if(cm\u003e11){cm=0;cy++;}renderCal();};\n\n  fetch(WORKER+\"\/?url=\"+encodeURIComponent(ICAL_URL))\n    .then(function(r){return r.text();})\n    .then(function(text){\n      var lines=text.replace(\/\\r\\n\/g,\"\\n\").replace(\/\\r\/g,\"\\n\").split(\"\\n\");\n      var inEv=false,ds=null,de=null;\n      lines.forEach(function(line){\n        if(line===\"BEGIN:VEVENT\"){inEv=true;ds=null;de=null;}\n        else if(line===\"END:VEVENT\"){if(inEv\u0026\u0026ds\u0026\u0026de)bookedRanges.push({start:ds,end:de});inEv=false;}\n        else if(inEv){\n          var m=line.match(\/^DTSTART[^:]*:(\\d{8})\/);\n          var m2=line.match(\/^DTEND[^:]*:(\\d{8})\/);\n          if(m)ds=pd(m[1]);\n          if(m2)de=pd(m2[1]);\n        }\n      });\n      document.getElementById(\"kc-status\").textContent=\"Contact us for details\";\n      renderCal();\n    })\n    .catch(function(e){\n      document.getElementById(\"kc-status\").textContent=\"\";\n      renderCal();\n    });\n\n  renderCal();\n})();\n\u003c\/script\u003e\n   ","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":45751094902970,"sku":null,"price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/Kolette_Home_living_room.png?v=1776486082"},{"product_id":"taipei-rental-monthly-apartment-rr9","title":"Wabi-sabi style 1-Bedroom Home (RR9)","description":"\u003cp\u003e\u003cspan\u003eThe freshly renovated space exudes a unique ambiance, marrying Wabi-sabi style's understated luxury with natural serenity, fostering inner calm. Find perfection in imperfection, fulfilling home imaginings. Welcome to this comforting haven.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e24 ping \/ 80㎡ \/ 854 sqft \u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003e1 bedroom and 1 bathroom\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e6-minute walk from \u003cspan style=\"color: #fa6a4d;\"\u003eMRT Zhongshan Station\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTV\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWifi\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eAir Conditioner \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eBed (150cm*190cm) \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eCooking Stove\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMicrowave \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWasher\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cdiv id=\"kc-cal\"\u003e\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":45789427433658,"sku":null,"price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/RR9_Kolette_Home_Living_Room.jpg?v=1776590888"},{"product_id":"taipei-rental-monthly-apartment-rr9-2","title":"American style 1-Bedroom Home (RR9-2)","description":"\u003cp\u003eDiscover comfort in our chic, newly renovated Zhongshan district home. Just 6 mins from MRT, enjoy easy access to local delights. Our space boasts modern Panasonic appliances, a luxurious Kohler-equipped bathroom, and cozy balconies. Elevator access and central trash management add convenience. Fully equipped kitchen, washer, dryer, and AC ensure a hassle-free stay. Welcome to your urban retreat.\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e25 ping \/ 83㎡ \/ 890 sqft\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003e1 bedroom and 1 bathroom\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e6-minute walk from \u003cspan style=\"color: #fa6a4d;\"\u003eMRT Zhongshan Station\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTV\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWifi\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eAir Conditioner \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eBed (150cm*190cm) \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eCooking Stove\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMicrowave \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWasher\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"p3\"\u003e\u003cb\u003eInterested in Renting?\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"p3\"\u003e\u003cmeta charset=\"utf-8\"\u003eContact us for more information via our official LINE account, by email, or through the contact form:\u003c\/p\u003e\n\u003cul class=\"ul1\"\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eLINE:\u003c\/b\u003e \u003ca href=\"https:\/\/lin.ee\/Q7g9PtG\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e@kolette\u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan class=\"s1\"\u003e\u003c\/span\u003e\u003cb\u003eEmail:\u003c\/b\u003e \u003ca href=\"mailto:contact@kolettehome.com\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003econtact@kolettehome.com\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"li3\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003ca href=\"https:\/\/kolettehome.com\/pages\/contact\" style=\"color: rgb(0, 0, 0);\" rel=\"noopener\" target=\"_blank\"\u003e\u003cspan class=\"s1\"\u003e\u003cspan class=\"s2\"\u003e\u003cb\u003eContact form\u003c\/b\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cdiv id=\"kc-cal\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  var WORKER = \"https:\/\/ical-proxy.aidantpe.workers.dev\";\n  var ICAL_URL = \"https:\/\/www.airbnb.com.tw\/calendar\/ical\/1088069074367344151.ics?t=a47b67455f384a01860fd83ec7db1861\";\n\n  var bookedRanges=[];\n  var cy=new Date().getFullYear();\n  var cm=new Date().getMonth();\n  var MN=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];\n  var DN=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"];\n\n  var wrap=document.getElementById(\"kc-cal\");\n  wrap.innerHTML=`\n  \u003cstyle\u003e\n  .kc-wrap{font-family:sans-serif;margin:40px 0;border-top:2px solid #e5e7eb;padding-top:30px}\n  .kc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}\n  .kc-htitle{font-size:1.1rem;font-weight:700;color:#111}\n  .kc-nav button{background:#f3f4f6;border:none;border-radius:8px;padding:6px 14px;cursor:pointer;font-size:14px;margin-left:6px}\n  .kc-nav button:hover{background:#e5e7eb}\n  .kc-status{font-size:12px;color:#6b7280;margin-bottom:12px}\n  .kc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px}\n  .kc-dow{font-size:11px;color:#9ca3af;text-align:center;padding:4px 0;font-weight:600}\n  .kc-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;color:#111}\n  .kc-avail{background:#f9fafb;border:1px solid #e5e7eb}\n  .kc-booked{background:#e5e7eb;color:#6b7280;text-decoration:line-through}\n  .kc-past{color:#d1d5db}\n  .kc-today{border:2px solid #3b82f6!important;font-weight:700}\n  .kc-legend{display:flex;gap:14px;font-size:12px;color:#6b7280;margin-top:4px;margin-bottom:10px}\n  .kc-leg{display:flex;align-items:center;gap:5px}\n  .kc-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}\n  .kc-notice{font-size:12px;color:#6b7280;margin-top:10px}\n  \u003c\/style\u003e\n  \u003cdiv class=\"kc-wrap\"\u003e\n    \u003cdiv class=\"kc-head\"\u003e\n      \u003cdiv class=\"kc-htitle\" id=\"kc-monthlabel\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"kc-nav\"\u003e\n        \u003cbutton onclick=\"kcPrev()\"\u003e\u0026#8592;\u003c\/button\u003e\n        \u003cbutton onclick=\"kcNext()\"\u003e\u0026#8594;\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kc-status\" id=\"kc-status\"\u003eLoading...\u003c\/div\u003e\n    \u003cdiv class=\"kc-grid\" id=\"kc-grid\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"kc-legend\"\u003e\n    \u003cdiv class=\"kc-notice\"\u003eBookings for 30+ nights only\u003c\/div\u003e\n  \u003c\/div\u003e`;\n\n  function pd(s){return new Date(+s.slice(0,4),+s.slice(4,6)-1,+s.slice(6,8));}\n  function isBooked(d){for(var r of bookedRanges){if(d\u003e=r.start\u0026\u0026d\u003cr.end)return true;}return false;}\n\n  function renderCal(){\n    document.getElementById(\"kc-monthlabel\").textContent=MN[cm]+\" \"+cy;\n    var g=document.getElementById(\"kc-grid\");\n    g.innerHTML=\"\";\n    DN.forEach(function(d){var e=document.createElement(\"div\");e.className=\"kc-dow\";e.textContent=d;g.appendChild(e);});\n    var first=new Date(cy,cm,1).getDay();\n    var total=new Date(cy,cm+1,0).getDate();\n    var today=new Date();today.setHours(0,0,0,0);\n    for(var i=0;i\u003cfirst;i++){var e=document.createElement(\"div\");e.className=\"kc-day\";g.appendChild(e);}\n    for(var d=1;d\u003c=total;d++){\n      var date=new Date(cy,cm,d);\n      var e=document.createElement(\"div\");\n      e.textContent=d;\n      if(date\u003ctoday){e.className=\"kc-day kc-past\";}\n      else if(isBooked(date)){e.className=\"kc-day kc-booked\";}\n      else{e.className=\"kc-day kc-avail\";}\n      if(date.getTime()===today.getTime())e.classList.add(\"kc-today\");\n      g.appendChild(e);\n    }\n  }\n\n  window.kcPrev=function(){cm--;if(cm\u003c0){cm=11;cy--;}renderCal();};\n  window.kcNext=function(){cm++;if(cm\u003e11){cm=0;cy++;}renderCal();};\n\n  fetch(WORKER+\"\/?url=\"+encodeURIComponent(ICAL_URL))\n    .then(function(r){return r.text();})\n    .then(function(text){\n      var lines=text.replace(\/\\r\\n\/g,\"\\n\").replace(\/\\r\/g,\"\\n\").split(\"\\n\");\n      var inEv=false,ds=null,de=null;\n      lines.forEach(function(line){\n        if(line===\"BEGIN:VEVENT\"){inEv=true;ds=null;de=null;}\n        else if(line===\"END:VEVENT\"){if(inEv\u0026\u0026ds\u0026\u0026de)bookedRanges.push({start:ds,end:de});inEv=false;}\n        else if(inEv){\n          var m=line.match(\/^DTSTART[^:]*:(\\d{8})\/);\n          var m2=line.match(\/^DTEND[^:]*:(\\d{8})\/);\n          if(m)ds=pd(m[1]);\n          if(m2)de=pd(m2[1]);\n        }\n      });\n      document.getElementById(\"kc-status\").textContent=\"Contact us for details\";\n      renderCal();\n    })\n    .catch(function(e){\n      document.getElementById(\"kc-status\").textContent=\"\";\n      renderCal();\n    });\n\n  renderCal();\n})();\n\u003c\/script\u003e\n","brand":"Kolette Home","offers":[{"title":"Default Title","offer_id":45789433168058,"sku":null,"price":0.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0605\/9504\/4538\/files\/RR9-1_Kolette_Home_Dining_Room.jpg?v=1776592807"}],"url":"https:\/\/kolettehome.com\/collections\/taipei-1-bedroom-monthly-rentals.oembed?page=2","provider":"Kolette Home","version":"1.0","type":"link"}