{"id":131,"date":"2021-11-21T12:39:17","date_gmt":"2021-11-21T11:39:17","guid":{"rendered":"https:\/\/rank.intensifiedperceptions.com\/apartments\/"},"modified":"2026-09-06T15:57:34","modified_gmt":"2026-09-06T13:57:34","slug":"apartments","status":"publish","type":"page","link":"https:\/\/www.rank.at\/en\/apartments\/","title":{"rendered":"Apartments"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1248px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-1\"><h1 style=\"text-align: center;\">Our Apartments &#8211; Book Directly Online<\/h1>\n<\/div><div class=\"fusion-text fusion-text-2\" style=\"--awb-text-transform:none;\">    <div id=\"fcg-booking\" class=\"fcg-booking\">\n\n        <div class=\"fcg-filter-bar\">\n            <div class=\"fcg-filter-row\">\n                <div class=\"fcg-filter-group\">\n                    <label for=\"fcg-checkin\">Check-in<\/label>\n                    <input type=\"text\" id=\"fcg-checkin\" readonly>\n                <\/div>\n                <div class=\"fcg-filter-group\">\n                    <label for=\"fcg-checkout\">Check-out<\/label>\n                    <input type=\"text\" id=\"fcg-checkout\" readonly>\n                <\/div>\n                <div class=\"fcg-filter-group fcg-filter-small\">\n                    <label for=\"fcg-adults\">Adults<\/label>\n                    <select id=\"fcg-adults\">\n                                                    <option value=\"1\" >1<\/option>\n                                                    <option value=\"2\" selected>2<\/option>\n                                                    <option value=\"3\" >3<\/option>\n                                                    <option value=\"4\" >4<\/option>\n                                                    <option value=\"5\" >5<\/option>\n                                                    <option value=\"6\" >6<\/option>\n                                                    <option value=\"7\" >7<\/option>\n                                                    <option value=\"8\" >8<\/option>\n                                            <\/select>\n                <\/div>\n                                <div class=\"fcg-filter-group fcg-filter-small\">\n                    <label for=\"fcg-children415\">Children 4-15<\/label>\n                    <select id=\"fcg-children415\">\n                                                    <option value=\"0\">0<\/option>\n                                                    <option value=\"1\">1<\/option>\n                                                    <option value=\"2\">2<\/option>\n                                                    <option value=\"3\">3<\/option>\n                                                    <option value=\"4\">4<\/option>\n                                                    <option value=\"5\">5<\/option>\n                                                    <option value=\"6\">6<\/option>\n                                            <\/select>\n                <\/div>\n                <div class=\"fcg-filter-group fcg-filter-small\">\n                    <label for=\"fcg-children03\">Toddler 0-3<\/label>\n                    <select id=\"fcg-children03\">\n                                                    <option value=\"0\">0<\/option>\n                                                    <option value=\"1\">1<\/option>\n                                                    <option value=\"2\">2<\/option>\n                                                    <option value=\"3\">3<\/option>\n                                                    <option value=\"4\">4<\/option>\n                                            <\/select>\n                <\/div>\n                                <div class=\"fcg-filter-group fcg-filter-btn\">\n                    <button type=\"button\" id=\"fcg-search-btn\" class=\"fcg-btn fcg-btn-primary\">\n                        Check availability                    <\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <div id=\"fcg-status\" class=\"fcg-status fcg-hidden\"><\/div>\n        <div id=\"fcg-apartments\" class=\"fcg-apartments\"><\/div>\n\n    <\/div>\n\n    <script>\n    (function(){\n        const API_URL = 'https:\/\/www.rank.at\/sabee-api.php';\n        const BOOK_URL = '\/en\/book\/';\n        const APARTMENTS = [{\"post_id\":5518,\"room_id\":79,\"title\":\"Apartment 1\",\"permalink\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/apartment-1\\\/\",\"thumbnail\":\"https:\\\/\\\/www.rank.at\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/ferchergasse_1_georgeye_web-2-768x513.jpg\",\"size\":\"50\",\"max_guests\":4,\"max_kleinkinder\":2,\"amenities\":[\"Roof terrace\",\"Air conditioning\",\"Smart-TV\",\"Free WiFi\"],\"description\":\"Bright top-floor apartment with a separate bedroom and a private roof terrace overlooking the green inner courtyard. Ideal for up to 4 guests who would like to stay comfortably in Vienna and enjoy some extra outdoor space. \"},{\"post_id\":5519,\"room_id\":83,\"title\":\"Apartment 2\",\"permalink\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/apartment-2\\\/\",\"thumbnail\":\"https:\\\/\\\/www.rank.at\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/ferchergasse_2_web_georgeye-5-von-67-768x513.jpg\",\"size\":\"40\",\"max_guests\":2,\"max_kleinkinder\":2,\"amenities\":[\"Roof terrace\",\"Air conditioning\",\"Smart-TV\",\"Free WiFi\"],\"description\":\"Welcoming top-floor apartment with a separate bedroom and a lovely roof terrace facing the quiet inner courtyard. Ideal for up to 3 guests who would like to stay in Vienna in a relaxed setting and appreciate an outdoor area. \"},{\"post_id\":5520,\"room_id\":85,\"title\":\"Apartment 3\",\"permalink\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/apartment-3\\\/\",\"thumbnail\":\"https:\\\/\\\/www.rank.at\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/ferchergasse_3_georgeye_web-1-768x513.jpg\",\"size\":\"40\",\"max_guests\":3,\"max_kleinkinder\":2,\"amenities\":[\"Air conditioning\",\"Smart-TV\",\"Free WiFi\"],\"description\":\"Fully equipped top-floor apartment with a separate bedroom and a bright, practical layout. Ideal for up to 3 guests who want to stay comfortably in Vienna without complications. \"},{\"post_id\":5521,\"room_id\":87,\"title\":\"Apartment 4\",\"permalink\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/apartment-4\\\/\",\"thumbnail\":\"https:\\\/\\\/www.rank.at\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/rank2022_DG-Top4_georgeye-2_1920-768x512.jpg\",\"size\":\"30\",\"max_guests\":2,\"max_kleinkinder\":2,\"amenities\":[\"Air conditioning\",\"Smart-TV\",\"Free WiFi\"],\"description\":\"Small, bright studio on the top floor with a fully equipped kitchen and a pleasant living atmosphere. Ideal for up to 2 guests seeking a compact, cozy stay in Vienna. \"},{\"post_id\":5522,\"room_id\":89,\"title\":\"Apartment 5\",\"permalink\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/apartment-5\\\/\",\"thumbnail\":\"https:\\\/\\\/www.rank.at\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/ferchergasse_5_print_georgeye-3-768x513.jpg\",\"size\":\"30\",\"max_guests\":2,\"max_kleinkinder\":2,\"amenities\":[\"Smart-TV\",\"Free WiFi\"],\"description\":\"Colorful apartment with a separate bedroom as well as a separate kitchen and bathroom, laid out efficiently across 30 m\u00b2. Ideal for 1 to 2 guests who would like to stay in Vienna in a practical and pleasant way. \"},{\"post_id\":5523,\"room_id\":91,\"title\":\"Apartment 6\",\"permalink\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/apartment-6\\\/\",\"thumbnail\":\"https:\\\/\\\/www.rank.at\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/ferchergasse_6_print_georgeye-7-768x513.jpg\",\"size\":\"40\",\"max_guests\":2,\"max_kleinkinder\":2,\"amenities\":[\"Smart-TV\",\"Free WiFi\"],\"description\":\"Bright apartment on the second floor with a clear layout and separate bedroom. Ideal for up to 2 people who want to live quietly and comfortably in Vienna. \"},{\"post_id\":5524,\"room_id\":93,\"title\":\"Apartment 7\",\"permalink\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/apartment-7\\\/\",\"thumbnail\":\"https:\\\/\\\/www.rank.at\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/ferchergasse_7_print_georgeye-14-768x513.jpg\",\"size\":\"50\",\"max_guests\":4,\"max_kleinkinder\":2,\"amenities\":[\"2 Bedrooms\",\"Smart-TV\",\"Free WiFi\"],\"description\":\"Practical vacation apartment with two separate bedrooms and space for up to 4 people. Ideal for families or friends who want to travel together and still enjoy sufficient privacy. \"},{\"post_id\":5525,\"room_id\":95,\"title\":\"Apartment 8\",\"permalink\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/apartment-8\\\/\",\"thumbnail\":\"https:\\\/\\\/www.rank.at\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/rank2022_Top8_georgeye-2_1920-768x512.jpg\",\"size\":\"50\",\"max_guests\":4,\"max_kleinkinder\":2,\"amenities\":[\"Smart-TV\",\"Free WiFi\"],\"description\":\"Stylish apartment with a separate bedroom, a fully equipped kitchen, and a view of the green inner courtyard. Ideal for up to 4 people seeking to combine living comfort with a pleasant atmosphere in Vienna. \"},{\"post_id\":5526,\"room_id\":1592,\"title\":\"Apartment 9\",\"permalink\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/apartement-9\\\/\",\"thumbnail\":\"https:\\\/\\\/www.rank.at\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/ferchergasse_ap9_georgeye-3-768x513.jpg\",\"size\":\"110\",\"max_guests\":8,\"max_kleinkinder\":4,\"amenities\":[\"Garden terrace\",\"2 Bedrooms\",\"2 Bathrooms\",\"Smart-TV\",\"Free WiFi\"],\"description\":\"Spacious apartment with 110 m\u00b2, garden, and plenty of space for up to 8 people. Ideal for larger families or groups who want to live comfortably together in Vienna. \"},{\"post_id\":5531,\"room_id\":21043,\"title\":\"Apartment F21\\\/17\",\"permalink\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/apartment-f21-17\\\/\",\"thumbnail\":\"https:\\\/\\\/www.rank.at\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/rank2019_nr1_georgeye-1-768x512.jpg\",\"size\":\"60\",\"max_guests\":3,\"max_kleinkinder\":2,\"amenities\":[\"Long-Stay\",\"Free WiFi\"],\"description\":\"Cozy apartment with one bedroom, a separate living room, and a fully equipped kitchen. Ideal for up to 3 guests seeking a little more space and comfort in Vienna. \"},{\"post_id\":5532,\"room_id\":71,\"title\":\"Apartment F21\\\/18\",\"permalink\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/apartment-f21-18\\\/\",\"thumbnail\":\"https:\\\/\\\/www.rank.at\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/Rank-Ferchergasse-Refresh_Apartment-4_Top18-26-768x512.jpg\",\"size\":\"78\",\"max_guests\":5,\"max_kleinkinder\":2,\"amenities\":[\"2 Bedrooms\",\"Long-Stay\",\"Free WiFi\"],\"description\":\"Large apartment with two bedrooms, a separate living room, and plenty of space for up to 5 guests. Ideal for families or groups who would like to stay together in Vienna in comfort. \"},{\"post_id\":5530,\"room_id\":73,\"title\":\"Apartment F21\\\/7\",\"permalink\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/apartment-f21-7\\\/\",\"thumbnail\":\"https:\\\/\\\/www.rank.at\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/rank2020refresh_f21_7_georgeye-5-768x512.jpg\",\"size\":\"78\",\"max_guests\":5,\"max_kleinkinder\":2,\"amenities\":[\"Balcony\",\"2 Bedrooms\",\"Long-Stay\",\"Free WiFi\"],\"description\":\"Spacious apartment with two bedrooms, a separate living room, and a balcony for up to 5 guests. Ideal for families or larger groups seeking ample space and comfort in Vienna. \"},{\"post_id\":5529,\"room_id\":75,\"title\":\"Apartment H03\",\"permalink\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/apartment-h03\\\/\",\"thumbnail\":\"https:\\\/\\\/www.rank.at\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/Rank-Ferchergasse-Refresh_Apartment-3-1-768x512.jpg\",\"size\":\"40\",\"max_guests\":2,\"max_kleinkinder\":2,\"amenities\":[\"Garden terrace\",\"Free WiFi\"],\"description\":\"Cozy studio in a quiet location with its own small garden and terrace. Ideal for 1 to 2 people who want to live in the heart of Vienna while still enjoying a green retreat. \"},{\"post_id\":5527,\"room_id\":77,\"title\":\"Apartment R02\",\"permalink\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/apartment-r02\\\/\",\"thumbnail\":\"https:\\\/\\\/www.rank.at\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/Rank-Ferchergasse-Refresh_Apartment-1-3-768x512.jpg\",\"size\":\"40\",\"max_guests\":2,\"max_kleinkinder\":2,\"amenities\":[\"Garden terrace\",\"Free WiFi\"],\"description\":\"Quiet studio with a private garden and terrace for relaxing days in Vienna. Ideal for 1 to 2 guests who do not want to miss having their own outdoor space while staying in the city. \"},{\"post_id\":5528,\"room_id\":81,\"title\":\"Apartment R26\",\"permalink\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/apartment-r26\\\/\",\"thumbnail\":\"https:\\\/\\\/www.rank.at\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/Rank-Ferchergasse-Refresh_Apartment-2-3-768x512.jpg\",\"size\":\"40\",\"max_guests\":2,\"max_kleinkinder\":2,\"amenities\":[\"Balcony\",\"Free WiFi\"],\"description\":\"Bright studio with a balcony and views of the green inner courtyard. Ideal for 1 to 2 guests who would like to stay in Vienna in a quiet yet well-connected location. \"}];\n        const LOCALE = 'en-GB';\n        const T = {\"checkin\":\"Check-in\",\"checkout\":\"Check-out\",\"guests\":\"Guests\",\"adults\":\"Adults\",\"adult_singular\":\"Adult\",\"adults_plural\":\"Adults\",\"persons\":\"People\",\"person_singular\":\"Person\",\"children_4_15\":\"Children 4-15\",\"children_0_3\":\"Toddler 0-3\",\"child_singular\":\"Child\",\"children_plural\":\"Children\",\"guest_singular\":\"Guest\",\"guests_plural\":\"Guests\",\"search_btn\":\"Check availability\",\"searching\":\"Searching...\",\"checking\":\"Checking availability...\",\"querying_apts\":\"We are checking %d apartments\",\"select_dates\":\"Please select check-in and check-out dates.\",\"of\":\"of\",\"apartments_available\":\"apartments available\",\"night_singular\":\"night\",\"night_plural\":\"Nights\",\"connection_error\":\"Connection error\",\"query_failed\":\"Query failed.\",\"sqm\":\"sqm\",\"max_prefix\":\"max.\",\"bedrooms_label\":\"bedroom(s)\",\"available\":\"Available\",\"unavailable\":\"Unavailable\",\"unavail_text\":\"Not available for selected dates\",\"minstay_text\":\"Minimum stay not met\",\"minstay_hint\":\"Available for longer stays\",\"minstay_exact\":\"Minimum stay: %d nights\",\"per_night\":\"\\\/ night\",\"inkl\":\"incl.\",\"longstay_badge\":\"Long-term discount\",\"endreinigung\":\"Final cleaning\",\"ortstaxe\":\"City tax\",\"book_btn\":\"Book now\",\"details_btn\":\"View apartment details\",\"complete_booking\":\"Complete booking\",\"firstname\":\"First name\",\"lastname\":\"Last name\",\"email\":\"Email\",\"phone\":\"Phone\",\"address\":\"Address\",\"city\":\"City\",\"zip\":\"Postal code\",\"country\":\"Country\",\"remarks\":\"Remarks\",\"remarks_placeholder\":\"Special requests, estimated arrival time, etc.\",\"submit_booking\":\"Book with Obligation to Pay\",\"submitting\":\"Submitting booking...\",\"required_fields\":\"Please enter at least your first name, last name and email address.\",\"booking_failed\":\"Booking failed.\",\"apartment\":\"Apartment\",\"arrival\":\"Check-in\",\"departure\":\"Check-out\",\"nights_label\":\"Nights\",\"total_price\":\"Total price\",\"booking_confirmed\":\"Booking confirmed!\",\"confirm_text\":\"Thank you very much for your booking. You will receive a confirmation email shortly.\",\"booking_code\":\"Booking code\",\"period\":\"Period\",\"guest_label\":\"Guest\",\"new_search\":\"New search\",\"test_mode_msg\":\"TEST MODE \u2014 Booking was NOT submitted.\",\"default_country\":\"Austria\"};\n        const SETTINGS = {\n            endreinigung_pp: 25,\n            endreinigung_mode: \"pp\",\n            endreinigung_flat: 80,\n            child_4_15_day:  15,\n            ortstaxe:        [{\"pct\":2.5891000000000001790567694115452468395233154296875,\"pct_display\":3.20000000000000017763568394002504646778106689453125,\"valid_from\":\"2020-01-01\"},{\"pct\":4.34780000000000033111291486420668661594390869140625,\"pct_display\":5,\"valid_from\":\"2026-07-01\"},{\"pct\":6.7797000000000000596855898038484156131744384765625,\"pct_display\":8,\"valid_from\":\"2027-07-01\"}],\n            \/\/ Ortstaxe-Befreiung ab X N\u00e4chten (>=), 0 = deaktiviert. GESAMTER\n            \/\/ Aufenthalt befreit. SYNC: Buchungsseite + Detail-Widget + rank-rechnungen.\n            ortstaxe_exempt_nights: 91,\n            \/\/ Langzeitrabatt-Map: room_id => Staffel (aufsteigend nach min_nights).\n            \/\/ Auswahl-Logik: getLongstayDiscount() unten; PHP-Source-of-Truth:\n            \/\/ fcg_get_longstay_discount() in ferchergasse-booking-settings.php.\n            longstay:        []        };\n\n        let currentSearch = {}, availabilityData = {};\n\n        \/\/ Init dates\n        const today = new Date();\n        const ci = new Date(today); ci.setDate(ci.getDate()+1);\n        const co = new Date(today); co.setDate(co.getDate()+4);\n        document.getElementById('fcg-checkin').value = fmtDate(ci);\n        document.getElementById('fcg-checkout').value = fmtDate(co);\n\n        \/\/ Date logic handled by flatpickr (ferchergasse-booking-flatpickr.php)\n\n        document.getElementById('fcg-search-btn').addEventListener('click', searchAvailability);\n\n        \/\/ \u2500\u2500 Deep-Link von der Startseiten-Searchbar ([ferchergasse_searchbar]) \u2500\u2500\n        \/\/ Liest ?checkin=&checkout=&adults=&children415=&children03= aus der URL,\n        \/\/ bef\u00fcllt die Felder und startet die Suche automatisch. Ohne Parameter\n        \/\/ bleibt das Verhalten unver\u00e4ndert (Default-Daten, leere Liste).\n        (function applyDeepLinkParams(){\n            try {\n                const p = new URLSearchParams(window.location.search);\n                const dateRe = \/^\\d{4}-\\d{2}-\\d{2}$\/;\n                const inEl  = document.getElementById('fcg-checkin');\n                const outEl = document.getElementById('fcg-checkout');\n                const ciP = p.get('checkin'), coP = p.get('checkout');\n                let hasDates = false;\n                if (ciP && coP && dateRe.test(ciP) && dateRe.test(coP)\n                    && new Date(coP+'T00:00:00') > new Date(ciP+'T00:00:00')) {\n                    inEl.value = ciP; outEl.value = coP;\n                    \/\/ flatpickr-Instanzen mitziehen (wegen altInput sichtbares Feld).\n                    \/\/ ferchergasse-booking-flatpickr.php exponiert window.fcgFlatpickr,\n                    \/\/ gesetzt erst bei DOMContentLoaded \u2014 daher ggf. kurz nachpollen.\n                    (function syncPickers(tries){\n                        if (window.fcgFlatpickr && window.fcgFlatpickr.checkin) {\n                            window.fcgFlatpickr.checkin.setDate(ciP, false);\n                            window.fcgFlatpickr.checkout.setDate(coP, false);\n                        } else if (tries < 25) {\n                            setTimeout(function(){ syncPickers(tries+1); }, 150);\n                        }\n                    })(0);\n                    hasDates = true;\n                }\n                const setSel = (id, val, min, max, fallback) => {\n                    const n = parseInt(val); const el = document.getElementById(id);\n                    if (el && !isNaN(n) && n >= min && n <= max) el.value = String(n);\n                    else if (el && fallback !== undefined) el.value = String(fallback);\n                };\n                let hasGuests = false;\n                if (p.has('adults'))      { setSel('fcg-adults', p.get('adults'), 1, 8); hasGuests = true; }\n                if (p.has('children415')) { setSel('fcg-children415', p.get('children415'), 0, 6); hasGuests = true; }\n                if (p.has('children03'))  { setSel('fcg-children03', p.get('children03'), 0, 4); hasGuests = true; }\n\n                if (hasDates || hasGuests) {\n                    \/\/ URL aufr\u00e4umen (Parameter raus), damit ein Reload nicht erneut\n                    \/\/ zwingend sucht und die Adresse sauber bleibt.\n                    if (window.history && window.history.replaceState) {\n                        window.history.replaceState({}, '', window.location.pathname);\n                    }\n                    if (hasDates) { searchAvailability(); return; }\n                }\n            } catch(e){ \/* Deep-Link ist optional \u2014 Fehler ignorieren *\/ }\n            renderApartments(null);\n        })();\n\n        \/\/ \u2500\u2500\u2500 All-in price helpers (analog Detail-Widget) \u2500\u2500\n        function getOrtstaxeForDate(dateStr){\n            const entries = SETTINGS.ortstaxe || [];\n            if (!entries.length) return { pct: 0, pct_display: 0 };\n            let pct = 0, pctDisplay = 0;\n            for (const e of entries) {\n                if (e.valid_from <= dateStr) {\n                    pct = parseFloat(e.pct) || 0;\n                    const disp = parseFloat(e.pct_display) || 0;\n                    pctDisplay = disp > 0 ? disp : pct;\n                } else break;\n            }\n            return { pct: pct, pct_display: pctDisplay };\n        }\n\n        \/\/ JS-Spiegel von fcg_get_longstay_discount() (PHP): Staffel ist aufsteigend\n        \/\/ nach min_nights sortiert, letzte erf\u00fcllte Stufe gewinnt, Vergleich >=\n        \/\/ (exakt 30 N\u00e4chte bekommen den \u201eab 30\"-Rabatt).\n        \/\/ SYNC-PUNKT: \u00c4nderungen auch in PHP + Buchungsseite + Detail-Widget\n        \/\/ nachziehen (Suchanker: longstay).\n        function getLongstayDiscount(roomId, nights){\n            const tiers = (SETTINGS.longstay && SETTINGS.longstay[roomId]) || [];\n            let best = { min_nights: 0, pct: 0 };\n            for (const t of tiers) {\n                if (nights >= t.min_nights) best = t;\n            }\n            return best;\n        }\n\n        function fmtPct(p){ return new Intl.NumberFormat(LOCALE, { maximumFractionDigits: 2 }).format(p); }\n\n        function calcExtras(checkin, nights, adults, ch415, roomPrice, roomId){\n            \/\/ Endreinigung: Erwachsene + Kinder 4-15 (Kleinkinder z\u00e4hlen NICHT)\n            const endreinigungPersons = adults + ch415;\n            \/\/ Endreinigungs-Modus (v1.3.0): 'flat' = Pauschale pro Aufenthalt | 'pp' = pro Person\n            const endreinigung = (SETTINGS.endreinigung_mode === 'flat')\n                ? SETTINGS.endreinigung_flat\n                : endreinigungPersons * SETTINGS.endreinigung_pp;\n            \/\/ Kinderpreis: Grundpreis deckt 1-2 Personen, Aufschlag nur \u00fcber Basis\n            const BASE_PERSONS = 2;\n            const freeSlots = Math.max(0, BASE_PERSONS - adults);\n            const billableChildren = Math.max(0, ch415 - freeSlots);\n            const childrenCost = billableChildren * SETTINGS.child_4_15_day * nights;\n            \/\/ Langzeitrabatt auf den Apartmentpreis (Raumpreis + Kinderaufschlag) \u2014\n            \/\/ NICHT auf Endreinigung\/Ortstaxe; die Ortstaxe rechnet auf dem\n            \/\/ rabattierten Preis (Bemessungsgrundlage sinkt mit).\n            const ls = getLongstayDiscount(roomId, nights);\n            const aptBase = roomPrice + childrenCost;\n            const lsAmount = (ls.pct > 0 && aptBase > 0) ? aptBase * ls.pct \/ 100 : 0;\n            \/\/ Ortstaxe auf Apartmentpreis (nach Langzeitrabatt) + Endreinigung\n            \/\/ \u2014 NICHT auf Garage\/Hund\/Babybett (kommen erst auf der Buchungsseite dazu)\n            \/\/ Berechnung mit pct (effektiver Satz); display-Wert (pct_display) wird in der Suche\n            \/\/ nicht angezeigt \u2014 nur Gesamtbetrag.\n            const ortstaxeBase = aptBase - lsAmount + endreinigung;\n            let ortstaxeTotal = 0;\n            let pctSum = 0; \/\/ Summe der Nacht-S\u00e4tze \u2014 f\u00fcr den Originalpreis (ohne Rabatt) unten\n            \/\/ Ortstaxe-Befreiung bei Langzeitaufenthalt (>= X N\u00e4chte, Setting):\n            \/\/ GESAMTER Aufenthalt befreit \u2014 Loop \u00fcberspringen (pctSum bleibt 0,\n            \/\/ dadurch ist auch der durchgestrichene Originalpreis ortstaxefrei).\n            const otExempt = SETTINGS.ortstaxe_exempt_nights > 0 && nights >= SETTINGS.ortstaxe_exempt_nights;\n            const ciDate = new Date(checkin + 'T00:00:00');\n            for (let i = 0; !otExempt && i < nights; i++) {\n                const d = new Date(ciDate);\n                d.setDate(d.getDate() + i);\n                const ds = d.getFullYear() + '-' + String(d.getMonth()+1).padStart(2,'0') + '-' + String(d.getDate()).padStart(2,'0');\n                const rates = getOrtstaxeForDate(ds);\n                pctSum += rates.pct;\n                ortstaxeTotal += (ortstaxeBase \/ nights) * rates.pct \/ 100;\n            }\n            const total = ortstaxeBase + ortstaxeTotal;\n            \/\/ Originalpreis (ohne Langzeitrabatt) f\u00fcr die durchgestrichene Anzeige \u2014\n            \/\/ Ortstaxe ist linear in der Basis, daher gen\u00fcgt dieselbe pctSum.\n            let originalTotal = total;\n            if (lsAmount > 0) {\n                const ob = aptBase + endreinigung;\n                originalTotal = ob + (ob \/ nights) * pctSum \/ 100;\n            }\n            return { total: total, originalTotal: originalTotal, lsPct: ls.pct };\n        }\n\n        \/\/ v1.3.4: Null-sicherer Zahlenwert eines Selects \u2014 fehlt das Element\n        \/\/ (Kinderauswahl ausgeblendet), ist die Antwort 0.\n        function fcgNum(id){ const el = document.getElementById(id); return el ? (parseInt(el.value)||0) : 0; }\n\n        async function searchAvailability(){\n            const btn = document.getElementById('fcg-search-btn');\n            const checkin = document.getElementById('fcg-checkin').value;\n            const checkout = document.getElementById('fcg-checkout').value;\n            const adults = parseInt(document.getElementById('fcg-adults').value)||1;\n            const ch415 = fcgNum('fcg-children415');\n            const ch03 = fcgNum('fcg-children03');\n            const guestCount = adults + ch415; \/\/ Kleinkinder z\u00e4hlen NICHT zu max_guests\n            if (!checkin||!checkout){ showStatus(T.select_dates,'error'); return; }\n            currentSearch = {checkin,checkout,adults,ch415,ch03,guestCount};\n            btn.disabled=true; btn.textContent=T.searching;\n            showStatus(T.checking,'loading');\n            renderSkeletons(3);\n            try {\n                const resp = await fetch(API_URL+'?action=availability',{\n                    method:'POST', headers:{'Content-Type':'application\/json'},\n                    body:JSON.stringify({checkin,checkout,adults}),\n                });\n                const data = await resp.json();\n                if (!data.success){ showStatus(data.error||T.query_failed,'error'); renderApartments(null); return; }\n                availabilityData = {};\n                (data.rooms||[]).forEach(r=>{ availabilityData[r.room_id]=r; });\n\n                \/\/ \u2500\u2500 min_stay detection: restriction + verification \u2500\u2500\n                \/\/ Step 1: Get min_stay restrictions for all rooms (1 API call)\n                const fitting = APARTMENTS.filter(a=>!a.max_guests||currentSearch.guestCount<=a.max_guests);\n                const unavailIds = fitting.filter(a=>{const r=availabilityData[a.room_id];return r&&!r.available;}).map(a=>a.room_id);\n                const searchedNights = Math.round((new Date(checkout+'T00:00:00') - new Date(checkin+'T00:00:00')) \/ 86400000);\n                let restrictionMap = {};\n\n                if (unavailIds.length > 0) {\n                    try {\n                        const resp2 = await fetch(API_URL+'?action=restriction',{\n                            method:'POST', headers:{'Content-Type':'application\/json'},\n                            body:JSON.stringify({checkin, checkout}),\n                        });\n                        const data2 = await resp2.json();\n                        if (data2.success && data2.rooms) {\n                            data2.rooms.forEach(r=>{ restrictionMap[r.room_id] = r.min_stay || 0; });\n                        }\n                    } catch(e2){}\n\n                    \/\/ Step 2: Find rooms where min_stay > searched nights (candidates for yellow)\n                    \/\/ Group by min_stay value for efficient batch verification\n                    const minStayGroups = {};\n                    unavailIds.forEach(rid=>{\n                        const ms = restrictionMap[rid] || 0;\n                        if (ms > searchedNights) {\n                            if (!minStayGroups[ms]) minStayGroups[ms] = [];\n                            minStayGroups[ms].push(rid);\n                        }\n                        \/\/ If ms <= searchedNights: min_stay is met but room still unavailable = genuinely booked (red)\n                    });\n\n                    \/\/ Step 3: Verify each group \u2014 are they bookable at their min_stay duration?\n                    \/\/ One availability call per unique min_stay value (typically 1-3 calls)\n                    for (const [ms, rids] of Object.entries(minStayGroups)) {\n                        try {\n                            const verifyCoDate = new Date(new Date(checkin+'T00:00:00'));\n                            verifyCoDate.setDate(verifyCoDate.getDate() + parseInt(ms));\n                            const verifyCo = fmtDate(verifyCoDate);\n                            const resp3 = await fetch(API_URL+'?action=availability',{\n                                method:'POST', headers:{'Content-Type':'application\/json'},\n                                body:JSON.stringify({checkin, checkout:verifyCo, adults}),\n                            });\n                            const data3 = await resp3.json();\n                            if (data3.success) {\n                                (data3.rooms||[]).forEach(r=>{\n                                    const rid = parseInt(r.room_id);\n                                    if (rids.includes(rid) && r.available) {\n                                        \/\/ Room IS bookable at min_stay duration \u2192 yellow (min_stay restriction)\n                                        availabilityData[rid].min_stay_restricted = true;\n                                        availabilityData[rid].exact_min_stay = parseInt(ms);\n                                    }\n                                    \/\/ If still unavailable at min_stay \u2192 stays red (genuinely booked)\n                                });\n                            }\n                        } catch(e3){}\n                    }\n                }\n\n                const ac = fitting.filter(a=>{const r=availabilityData[a.room_id];return r&&r.available;}).length;\n                const n = data.nights||1;\n                let guestParts = [];\n                guestParts.push(adults + ' ' + (adults===1?T.adult_singular:T.adults_plural));\n                if (ch415>0) guestParts.push(ch415 + ' ' + T.children_4_15);\n                if (ch03>0) guestParts.push(ch03 + ' ' + T.children_0_3);\n                let statusMsg = `<strong>${ac}<\/strong> ${T.of} ${fitting.length} ${T.apartments_available} \u00b7 ${n} ${n===1?T.night_singular:T.night_plural} \u00b7 ${guestParts.join(', ')}`;\n                showStatus(statusMsg,'info');\n                renderApartments(availabilityData);\n            } catch(e){ showStatus(T.connection_error+': '+e.message,'error'); }\n            finally { btn.disabled=false; btn.textContent=T.search_btn; }\n        }\n\n        function renderApartments(avail){\n            const container = document.getElementById('fcg-apartments');\n            const adults = parseInt(document.getElementById('fcg-adults').value)||1;\n            const ch415 = fcgNum('fcg-children415');\n            const ch03 = fcgNum('fcg-children03');\n            const guests = adults + ch415; \/\/ Kleinkinder z\u00e4hlen NICHT\n            let sorted = [...APARTMENTS];\n            if (avail) sorted.sort((a,b)=>{\n                const aR=avail[a.room_id], bR=avail[b.room_id];\n                const aA=aR&&aR.available, bA=bR&&bR.available;\n                const aM=aR&&aR.min_stay_restricted, bM=bR&&bR.min_stay_restricted;\n                \/\/ Priority: available > min_stay > unavailable\n                const aScore=aA?0:(aM?1:2), bScore=bA?0:(bM?1:2);\n                if(aScore!==bScore) return aScore-bScore;\n                if(aA&&bA) return (aR.total_price||0)-(bR.total_price||0);\n                return a.title.localeCompare(b.title);\n            });\n            let html='';\n            sorted.forEach(apt=>{\n                const ra=avail?avail[apt.room_id]:null;\n                const isA=ra?ra.available:null, hs=avail!==null;\n                const ts=apt.max_guests>0&&guests>apt.max_guests;\n                \/\/ Hide apartments that can't accommodate the guest count\n                if(hs&&ts) return;\n                let cc='fcg-apt-card';\n                if(hs&&isA===false&&!ra?.min_stay_restricted) cc+=' fcg-apt-unavailable';\n                if(hs&&isA===false&&ra?.min_stay_restricted) cc+=' fcg-apt-minstay';\n                if(hs&&isA===true) cc+=' fcg-apt-available';\n                if(hs&&ts&&isA) cc+=' fcg-apt-toosmall';\n                html+=`<div class=\"${cc}\" data-room-id=\"${apt.room_id}\">`;\n                html+=`<div class=\"fcg-apt-image\">${apt.thumbnail?`<img decoding=\"async\" src=\"${esc(apt.thumbnail)}\" alt=\"${esc(apt.title)}\" loading=\"lazy\">`:`<div class=\"fcg-apt-noimage\">\ud83c\udfe0<\/div>`}<\/div>`;\n                html+=`<div class=\"fcg-apt-info\">`;\n                html+=`<a href=\"${esc(apt.permalink)}\" class=\"fcg-apt-name\">${esc(apt.title)}<\/a>`;\n                html+=`<div class=\"fcg-apt-details\">`;\n                if(apt.size) html+=`<span class=\"fcg-apt-detail\">\ud83d\udcd0 ${esc(String(apt.size))} ${T.sqm}<\/span>`;\n                if(apt.max_guests) html+=`<span class=\"fcg-apt-detail\">\ud83d\udc64 ${T.max_prefix} ${apt.max_guests} ${T.guests_plural}<\/span>`;\n                html+=`<\/div>`;\n                if(apt.amenities){\n                    const list = Array.isArray(apt.amenities)?apt.amenities:(typeof apt.amenities==='string'&&apt.amenities?apt.amenities.split(','):[]);\n                    if(list.length){\n                        html+=`<div class=\"fcg-apt-amenities\">`;\n                        list.forEach(a=>{const l=typeof a==='object'?(a.label||a.value||a):a; html+=`<span class=\"fcg-amenity\">${esc(String(l).trim())}<\/span>`;});\n                        html+=`<\/div>`;\n                    }\n                }\n                html+=`<\/div>`;\n                if(apt.description) html+=`<div class=\"fcg-apt-desc\"><p>${esc(apt.description)}<\/p><\/div>`;\n                html+=`<div class=\"fcg-apt-action\">`;\n                if(hs&&isA){\n                    html+=ts?`<div class=\"fcg-apt-badge fcg-badge-warn\">${T.max_prefix} ${apt.max_guests} ${T.guests_plural}<\/div>`:`<div class=\"fcg-apt-badge fcg-badge-available\">${T.available}<\/div>`;\n                    if(ra.total_price!==null){\n                        const n=ra.nights||1;\n                        const extras = calcExtras(currentSearch.checkin, n, currentSearch.adults, currentSearch.ch415, ra.total_price, apt.room_id);\n                        const allInTotal = extras.total;\n                        \/\/ Per-Nacht-Preis = All-in geteilt durch N\u00e4chte (inkl. Endreinigung + Ortstaxe + Kinderaufschlag)\n                        const perNight = allInTotal \/ n;\n                        html+=`<div class=\"fcg-apt-nights\">${n} ${n===1?T.night_singular:T.night_plural}<\/div>`;\n                        \/\/ Langzeitrabatt: Badge + durchgestrichener Originalpreis \u00fcber dem\n                        \/\/ rabattierten All-in-Preis (der Preis unten ist bereits reduziert).\n                        if(extras.lsPct>0){\n                            html+=`<div class=\"fcg-apt-longstay\">\u2212${fmtPct(extras.lsPct)}% ${T.longstay_badge}<\/div>`;\n                            html+=`<div class=\"fcg-apt-oldprice\">\u20ac ${fmt(extras.originalTotal)}<\/div>`;\n                        }\n                        html+=`<div class=\"fcg-apt-price\">\u20ac ${fmt(allInTotal)}<\/div>`;\n                        html+=`<div class=\"fcg-apt-pernight\">${T.inkl} ${T.endreinigung} &amp; ${T.ortstaxe}<\/div>`;\n                        html+=`<div class=\"fcg-apt-roomrate\">\u20ac ${fmt(perNight)} ${T.per_night}<\/div>`;\n                    }\n                    if(!ts) html+=`<a href=\"${BOOK_URL}?apt=${apt.room_id}&checkin=${currentSearch.checkin}&checkout=${currentSearch.checkout}&guests=${currentSearch.adults}&ch415=${currentSearch.ch415||0}&ch03=${currentSearch.ch03||0}\" class=\"fcg-btn fcg-btn-select\">${T.book_btn}<\/a>`;\n                    html+=`<a href=\"${esc(apt.permalink)}\" class=\"fcg-apt-detaillink\" target=\"_blank\">${T.details_btn}<\/a>`;\n                } else if(hs&&!isA&&ra?.min_stay_restricted){\n                    const ms = ra.exact_min_stay;\n                    const searchedNights = currentSearch.checkin && currentSearch.checkout ?\n                        Math.round((new Date(currentSearch.checkout+'T00:00:00') - new Date(currentSearch.checkin+'T00:00:00')) \/ 86400000) : 0;\n                    html+=`<div class=\"fcg-apt-badge fcg-badge-minstay\">${T.minstay_text}<\/div>`;\n                    \/\/ Only show exact number if it's actually higher than searched nights\n                    html+=`<div class=\"fcg-apt-minstay-text\">${(ms && ms > searchedNights) ? T.minstay_exact.replace('%d', ms) : T.minstay_hint}<\/div>`;\n                    html+=`<a href=\"${esc(apt.permalink)}\" class=\"fcg-apt-detaillink\" target=\"_blank\">${T.details_btn}<\/a>`;\n                } else if(hs&&!isA){\n                    html+=`<div class=\"fcg-apt-badge fcg-badge-unavailable\">${T.unavailable}<\/div>`;\n                    html+=`<div class=\"fcg-apt-unavail-text\">${T.unavail_text}<\/div>`;\n                    html+=`<a href=\"${esc(apt.permalink)}\" class=\"fcg-apt-detaillink\" target=\"_blank\">${T.details_btn}<\/a>`;\n                } else {\n                    html+=`<a href=\"${esc(apt.permalink)}\" class=\"fcg-btn fcg-btn-detail\" target=\"_blank\">${T.details_btn}<\/a>`;\n                }\n                html+=`<\/div><\/div>`;\n            });\n            container.innerHTML=html;\n        }\n\n        function fmtDate(d){const y=d.getFullYear(),m=String(d.getMonth()+1).padStart(2,'0'),day=String(d.getDate()).padStart(2,'0');return `${y}-${m}-${day}`;}\n        function fmtLocale(s){return new Date(s+'T00:00:00').toLocaleDateString(LOCALE,{day:'2-digit',month:'2-digit',year:'numeric'});}\n        function esc(s){const e=document.createElement('span');e.textContent=String(s);return e.innerHTML;}\n        function fmt(n){return new Intl.NumberFormat(LOCALE,{minimumFractionDigits:2,maximumFractionDigits:2}).format(n);}\n        function showStatus(msg,type){\n            const el=document.getElementById('fcg-status');\n            el.className='fcg-status fcg-status-'+type;\n            if (type === 'loading') {\n                const sub = T.querying_apts.replace('%d', APARTMENTS.length);\n                el.innerHTML = '<span class=\"fcg-spinner\"><\/span><span class=\"fcg-loading-txt\"><b>'+msg+'<\/b><small>'+sub+'<\/small><\/span>';\n            } else {\n                el.innerHTML = msg;\n            }\n            el.classList.remove('fcg-hidden');\n        }\n        function renderSkeletons(n){\n            const container = document.getElementById('fcg-apartments');\n            let html = '';\n            for (let i = 0; i < n; i++) {\n                const delay = (i * 0.15).toFixed(2);\n                html += '<div class=\"fcg-skel-card\" style=\"animation-delay:'+delay+'s\">'\n                      + '<div class=\"fcg-skel-img\"><\/div>'\n                      + '<div class=\"fcg-skel-body\"><div class=\"fcg-skel-line short\"><\/div><div class=\"fcg-skel-line long\"><\/div><div class=\"fcg-skel-line med\"><\/div><\/div>'\n                      + '<div class=\"fcg-skel-action\"><div class=\"fcg-skel-pill\"><\/div><div class=\"fcg-skel-price\"><\/div><div class=\"fcg-skel-btn\"><\/div><\/div>'\n                      + '<\/div>';\n            }\n            container.innerHTML = html;\n        }\n    })();\n    <\/script>\n    \n<\/div><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":1648,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-131","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.4 (Yoast SEO v28.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Overview of all apartments - Appartements Ferchergasse<\/title>\n<meta name=\"description\" content=\"All our apartments at a glance. You have a full choice of 15 different accommodations in Vienna Hernals.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.rank.at\/en\/apartments\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Apartments\" \/>\n<meta property=\"og:description\" content=\"Individuell gestaltete Apartments in Wien Hernals f\u00fcr Urlaub, Business und l\u00e4ngere Aufenthalte. Alle unsere Apartments sind voll ausgestattet und ideal f\u00fcr jeden Reiseanlass. Bei uns findest du deine passende Unterkunft in Wien \u2013 schon ab einem Tag.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.rank.at\/en\/apartments\/\" \/>\n<meta property=\"og:site_name\" content=\"Appartements Ferchergasse\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Appartements.Ferchergasse\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-06T13:57:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.rank.at\/wp-content\/uploads\/2022\/04\/ferchergasse_1_georgeye_web-2-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1708\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":[\"WebPage\",\"CollectionPage\"],\"@id\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/\",\"url\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/\",\"name\":\"Overview of all apartments - Appartements Ferchergasse\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.rank.at\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.rank.at\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/ferchergasse_1_georgeye_web-2-scaled.jpg\",\"datePublished\":\"2021-11-21T11:39:17+00:00\",\"dateModified\":\"2026-09-06T13:57:34+00:00\",\"description\":\"All our apartments at a glance. You have a full choice of 15 different accommodations in Vienna Hernals.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/#breadcrumb\"},\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.rank.at\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/ferchergasse_1_georgeye_web-2-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/www.rank.at\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/ferchergasse_1_georgeye_web-2-scaled.jpg\",\"width\":2560,\"height\":1708,\"caption\":\"Apartment 1 in Vienna Hernals with living room and terrace\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/www.rank.at\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Apartments\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.rank.at\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.rank.at\\\/en\\\/\",\"name\":\"Appartements Ferchergasse\",\"description\":\"Apartments in Wien\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.rank.at\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.rank.at\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Organization\",\"Place\"],\"@id\":\"https:\\\/\\\/www.rank.at\\\/en\\\/#organization\",\"name\":\"The Ranks GmbH\",\"url\":\"https:\\\/\\\/www.rank.at\\\/en\\\/\",\"logo\":{\"@id\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/#local-main-organization-logo\"},\"image\":{\"@id\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/#local-main-organization-logo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Appartements.Ferchergasse\",\"https:\\\/\\\/www.instagram.com\\\/appartements_ferchergasse\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/appartements-ferchergasse\"],\"description\":\"Individuell gestaltete Apartments in Wien Hernals f\u00fcr Urlaub, Business und l\u00e4ngere Aufenthalte. Alle unsere Apartments sind voll ausgestattet und ideal f\u00fcr jeden Reiseanlass. Bei uns findest du deine passende Unterkunft in Wien \u2013 schon ab einem Tag.\",\"address\":{\"@id\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/#local-main-place-address\"},\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":\"48.2235639\",\"longitude\":\"16.3151697\"},\"telephone\":[\"+4314844522\"],\"openingHoursSpecification\":[{\"@type\":\"OpeningHoursSpecification\",\"dayOfWeek\":[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",\"Sunday\"],\"opens\":\"08:00\",\"closes\":\"17:00\"}],\"email\":\"mail@rank.at\",\"vatID\":\"ATU60864602\"},{\"@type\":\"PostalAddress\",\"@id\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/#local-main-place-address\",\"streetAddress\":\"Ferchergasse 19\",\"addressLocality\":\"Wien\",\"postalCode\":\"1170\",\"addressRegion\":\"\u00d6sterreich\",\"addressCountry\":\"AT\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.rank.at\\\/en\\\/apartments\\\/#local-main-organization-logo\",\"url\":\"https:\\\/\\\/www.rank.at\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/Logo-The-Ranks-White-Background-_-Med-Res-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/www.rank.at\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/Logo-The-Ranks-White-Background-_-Med-Res-scaled.jpg\",\"width\":2560,\"height\":2560,\"caption\":\"The Ranks GmbH\"}]}<\/script>\n<meta name=\"geo.placename\" content=\"Wien\" \/>\n<meta name=\"geo.position\" content=\"48.2235639;16.3151697\" \/>\n<meta name=\"geo.region\" content=\"Austria\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Overview of all apartments - Appartements Ferchergasse","description":"All our apartments at a glance. You have a full choice of 15 different accommodations in Vienna Hernals.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.rank.at\/en\/apartments\/","og_locale":"en_US","og_type":"article","og_title":"Apartments","og_description":"Individuell gestaltete Apartments in Wien Hernals f\u00fcr Urlaub, Business und l\u00e4ngere Aufenthalte. Alle unsere Apartments sind voll ausgestattet und ideal f\u00fcr jeden Reiseanlass. Bei uns findest du deine passende Unterkunft in Wien \u2013 schon ab einem Tag.","og_url":"https:\/\/www.rank.at\/en\/apartments\/","og_site_name":"Appartements Ferchergasse","article_publisher":"https:\/\/www.facebook.com\/Appartements.Ferchergasse","article_modified_time":"2026-09-06T13:57:34+00:00","og_image":[{"width":2560,"height":1708,"url":"https:\/\/www.rank.at\/wp-content\/uploads\/2022\/04\/ferchergasse_1_georgeye_web-2-scaled.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["WebPage","CollectionPage"],"@id":"https:\/\/www.rank.at\/en\/apartments\/","url":"https:\/\/www.rank.at\/en\/apartments\/","name":"Overview of all apartments - Appartements Ferchergasse","isPartOf":{"@id":"https:\/\/www.rank.at\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.rank.at\/en\/apartments\/#primaryimage"},"image":{"@id":"https:\/\/www.rank.at\/en\/apartments\/#primaryimage"},"thumbnailUrl":"https:\/\/www.rank.at\/wp-content\/uploads\/2022\/04\/ferchergasse_1_georgeye_web-2-scaled.jpg","datePublished":"2021-11-21T11:39:17+00:00","dateModified":"2026-09-06T13:57:34+00:00","description":"All our apartments at a glance. You have a full choice of 15 different accommodations in Vienna Hernals.","breadcrumb":{"@id":"https:\/\/www.rank.at\/en\/apartments\/#breadcrumb"},"inLanguage":"en-US"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.rank.at\/en\/apartments\/#primaryimage","url":"https:\/\/www.rank.at\/wp-content\/uploads\/2022\/04\/ferchergasse_1_georgeye_web-2-scaled.jpg","contentUrl":"https:\/\/www.rank.at\/wp-content\/uploads\/2022\/04\/ferchergasse_1_georgeye_web-2-scaled.jpg","width":2560,"height":1708,"caption":"Apartment 1 in Vienna Hernals with living room and terrace"},{"@type":"BreadcrumbList","@id":"https:\/\/www.rank.at\/en\/apartments\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/www.rank.at\/en\/"},{"@type":"ListItem","position":2,"name":"Apartments"}]},{"@type":"WebSite","@id":"https:\/\/www.rank.at\/en\/#website","url":"https:\/\/www.rank.at\/en\/","name":"Appartements Ferchergasse","description":"Apartments in Wien","publisher":{"@id":"https:\/\/www.rank.at\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.rank.at\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Organization","Place"],"@id":"https:\/\/www.rank.at\/en\/#organization","name":"The Ranks GmbH","url":"https:\/\/www.rank.at\/en\/","logo":{"@id":"https:\/\/www.rank.at\/en\/apartments\/#local-main-organization-logo"},"image":{"@id":"https:\/\/www.rank.at\/en\/apartments\/#local-main-organization-logo"},"sameAs":["https:\/\/www.facebook.com\/Appartements.Ferchergasse","https:\/\/www.instagram.com\/appartements_ferchergasse\/","https:\/\/www.linkedin.com\/company\/appartements-ferchergasse"],"description":"Individuell gestaltete Apartments in Wien Hernals f\u00fcr Urlaub, Business und l\u00e4ngere Aufenthalte. Alle unsere Apartments sind voll ausgestattet und ideal f\u00fcr jeden Reiseanlass. Bei uns findest du deine passende Unterkunft in Wien \u2013 schon ab einem Tag.","address":{"@id":"https:\/\/www.rank.at\/en\/apartments\/#local-main-place-address"},"geo":{"@type":"GeoCoordinates","latitude":"48.2235639","longitude":"16.3151697"},"telephone":["+4314844522"],"openingHoursSpecification":[{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],"opens":"08:00","closes":"17:00"}],"email":"mail@rank.at","vatID":"ATU60864602"},{"@type":"PostalAddress","@id":"https:\/\/www.rank.at\/en\/apartments\/#local-main-place-address","streetAddress":"Ferchergasse 19","addressLocality":"Wien","postalCode":"1170","addressRegion":"\u00d6sterreich","addressCountry":"AT"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.rank.at\/en\/apartments\/#local-main-organization-logo","url":"https:\/\/www.rank.at\/wp-content\/uploads\/2026\/09\/Logo-The-Ranks-White-Background-_-Med-Res-scaled.jpg","contentUrl":"https:\/\/www.rank.at\/wp-content\/uploads\/2026\/09\/Logo-The-Ranks-White-Background-_-Med-Res-scaled.jpg","width":2560,"height":2560,"caption":"The Ranks GmbH"}]},"geo.placename":"Wien","geo.position":{"lat":"48.2235639","long":"16.3151697"},"geo.region":"Austria"},"_links":{"self":[{"href":"https:\/\/www.rank.at\/en\/wp-json\/wp\/v2\/pages\/131","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rank.at\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.rank.at\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.rank.at\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rank.at\/en\/wp-json\/wp\/v2\/comments?post=131"}],"version-history":[{"count":34,"href":"https:\/\/www.rank.at\/en\/wp-json\/wp\/v2\/pages\/131\/revisions"}],"predecessor-version":[{"id":6520,"href":"https:\/\/www.rank.at\/en\/wp-json\/wp\/v2\/pages\/131\/revisions\/6520"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rank.at\/en\/wp-json\/wp\/v2\/media\/1648"}],"wp:attachment":[{"href":"https:\/\/www.rank.at\/en\/wp-json\/wp\/v2\/media?parent=131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}