{"id":1551,"date":"2026-07-17T07:52:16","date_gmt":"2026-07-17T07:52:16","guid":{"rendered":"https:\/\/sylviabratzik.de\/?page_id=1551"},"modified":"2026-07-17T08:30:47","modified_gmt":"2026-07-17T08:30:47","slug":"zine-festival-kalender","status":"publish","type":"page","link":"https:\/\/sylviabratzik.de\/index.php\/zine-festival-kalender\/","title":{"rendered":"Zine-Festival-Kalender"},"content":{"rendered":"\n<meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <style>\n        :root {\n            --bg-color: #faf9f6;\n            --text-color: #1a1a1a;\n            --border-color: #000000;\n            --accent-color: #ff5a5f;\n            --card-bg: #ffffff;\n            --instagram-color: #e1306c;\n        }\n\n        body {\n            font-family: 'Courier New', Courier, monospace;\n            background-color: var(--bg-color);\n            color: var(--text-color);\n            line-height: 1.5;\n            margin: 0;\n            padding: 20px;\n        }\n\n        .container {\n            max-width: 900px;\n            margin: 0 auto;\n            border: 3px solid var(--border-color);\n            background-color: var(--card-bg);\n            padding: 30px;\n            box-shadow: 8px 8px 0px var(--border-color);\n        }\n\n        header {\n            border-bottom: 3px double var(--border-color);\n            padding-bottom: 20px;\n            margin-bottom: 30px;\n        }\n\n        h1 {\n            font-size: 2.5rem;\n            margin: 0 0 10px 0;\n            text-transform: uppercase;\n            letter-spacing: -1px;\n        }\n\n        .tagline {\n            font-size: 1.1rem;\n            font-style: italic;\n            margin: 0;\n        }\n\n        .filter-section {\n            background-color: #f0f0f0;\n            border: 2px solid var(--border-color);\n            padding: 15px;\n            margin-bottom: 30px;\n            display: grid;\n            grid-template-columns: 1fr 1fr;\n            gap: 15px;\n        }\n\n        @media (max-width: 600px) {\n            .filter-section {\n                grid-template-columns: 1fr;\n            }\n        }\n\n        .filter-group {\n            display: flex;\n            flex-direction: column;\n        }\n\n        label {\n            font-weight: bold;\n            text-transform: uppercase;\n            font-size: 0.85rem;\n            margin-bottom: 5px;\n        }\n\n        select, input {\n            font-family: inherit;\n            padding: 8px;\n            border: 2px solid var(--border-color);\n            background-color: var(--card-bg);\n            font-size: 1rem;\n            outline: none;\n        }\n\n        select:focus, input:focus {\n            background-color: #fffde6;\n        }\n\n        .table-wrapper {\n            overflow-x: auto;\n        }\n\n        table {\n            width: 100%;\n            border-collapse: collapse;\n            text-align: left;\n        }\n\n        th, td {\n            padding: 12px;\n            border-bottom: 2px solid var(--border-color);\n        }\n\n        th {\n            background-color: #f0f0f0;\n            border-top: 2px solid var(--border-color);\n            text-transform: uppercase;\n            font-size: 0.9rem;\n        }\n\n        tr:hover td {\n            background-color: #fffde6;\n        }\n\n        .badge {\n            display: inline-block;\n            padding: 2px 6px;\n            border: 1px solid var(--border-color);\n            font-size: 0.8rem;\n            font-weight: bold;\n            background-color: #e6e6e6;\n        }\n\n        .badge-country {\n            background-color: #e1f5fe;\n        }\n\n        .btn-link {\n            display: inline-block;\n            color: var(--text-color);\n            text-decoration: none;\n            border-bottom: 2px solid var(--accent-color);\n            font-weight: bold;\n        }\n\n        .btn-link:hover {\n            background-color: var(--accent-color);\n            color: white;\n            border-bottom-color: var(--border-color);\n        }\n\n        .btn-ig {\n            border-bottom: 2px solid var(--instagram-color);\n        }\n\n        .btn-ig:hover {\n            background-color: var(--instagram-color);\n            color: white;\n        }\n\n        .no-results {\n            display: none;\n            padding: 30px;\n            text-align: center;\n            font-style: italic;\n            border: 2px dashed var(--border-color);\n            margin-top: 20px;\n        }\n\n        footer {\n            margin-top: 40px;\n            font-size: 0.8rem;\n            text-align: center;\n            border-top: 1px solid #ccc;\n            padding-top: 20px;\n        }\n    <\/style>\n\n\n\n<div class=\"container\">\n    <header>\n        <p class=\"tagline\">Finde deine n\u00e4chsten europ\u00e4ischen Zine-Festivals und verpasse keine Anmelde-Deadline.<\/p>\n    <\/header>\n\n    <main>\n        <section class=\"filter-section\">\n            <div class=\"filter-group\">\n                <label for=\"countryFilter\">Land filtern<\/label>\n                <select id=\"countryFilter\">\n                    <option value=\"all\">Alle L\u00e4nder<\/option>\n                    <option value=\"DE\">Deutschland<\/option>\n                    <option value=\"AT\">\u00d6sterreich<\/option>\n                    <option value=\"CH\">Schweiz<\/option>\n                    <option value=\"FR\">Frankreich<\/option>\n                    <option value=\"BE\">Belgien<\/option>\n                    <option value=\"IT\">Italien<\/option>\n                <\/select>\n            <\/div>\n            <div class=\"filter-group\">\n                <label for=\"zipFilter\">Postleitzahl (Startziffern)<\/label>\n                <input type=\"text\" id=\"zipFilter\" placeholder=\"z.B. 10 oder 90...\" maxlength=\"5\">\n            <\/div>\n        <\/section>\n\n        <div class=\"table-wrapper\">\n            <table id=\"festivalTable\">\n                <thead>\n                    <tr>\n                        <th>Festival \/ Instagram<\/th>\n                        <th>Ort<\/th>\n                        <th>Datum<\/th>\n                        <th>Anmeldung bis<\/th>\n                        <th>Aktion<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody>\n                    <!-- Sortierung erfolgt per JS \u00fcber das Attribut 'data-date' (Format: YYYY-MM-DD) -->\n                    <tr data-country=\"BE\" data-zip=\"9000\" data-date=\"2026-05-09\">\n                        <td><strong>Ghent Art Book Fair<\/strong><br><small style=\"color:#777\">@ghentartbookfair<\/small><\/td>\n                        <td>\n                            <span class=\"badge badge-country\">BE<\/span> \n                            9000 Gent\n                        <\/td>\n                        <td>09. &#8211; 10. Mai 2026<\/td>\n                        <td>Februar 2026<\/td>\n                        <td><a href=\"https:\/\/www.instagram.com\/ghentartbookfair\/\" target=\"_blank\" class=\"btn-link btn-ig\">Instagram \u2197<\/a><\/td>\n                    <\/tr>\n                    <tr data-country=\"AT\" data-zip=\"1060\" data-date=\"2026-05-22\">\n                        <td><strong>Fanzineist Vienna<\/strong><br><small style=\"color:#777\">@fanzineistvienna<\/small><\/td>\n                        <td>\n                            <span class=\"badge badge-country\">AT<\/span> \n                            1060 Wien\n                        <\/td>\n                        <td>22. &#8211; 24. Mai 2026<\/td>\n                        <td>M\u00e4rz 2026<\/td>\n                        <td><a href=\"https:\/\/www.instagram.com\/fanzineistvienna\/\" target=\"_blank\" class=\"btn-link btn-ig\">Instagram \u2197<\/a><\/td>\n                    <\/tr>\n                    <tr data-country=\"FR\" data-zip=\"75011\" data-date=\"2026-06-05\">\n                        <td><strong>Paris Ass Book Fair<\/strong><br><small style=\"color:#777\">@parisassbookfair<\/small><\/td>\n                        <td>\n                            <span class=\"badge badge-country\">FR<\/span> \n                            75012 Paris\n                        <\/td>\n                        <td>05. &#8211; 07. Juni 2026<\/td>\n                        <td>April 2026<\/td>\n                        <td><a href=\"https:\/\/www.instagram.com\/parisassbookfair\/\" target=\"_blank\" class=\"btn-link btn-ig\">Instagram \u2197<\/a><\/td>\n                    <\/tr>\n                    <tr data-country=\"CH\" data-zip=\"4000\" data-date=\"2026-06-15\">\n                        <td><strong>Basel Art Book Fair<\/strong><br><small style=\"color:#777\">@i_never_read_art_book_fair<\/small><\/td>\n                        <td>\n                            <span class=\"badge badge-country\">CH<\/span> \n                            4002 Basel\n                        <\/td>\n                        <td>Juni 2026<\/td>\n                        <td>M\u00e4rz 2026<\/td>\n                        <td><a href=\"https:\/\/www.instagram.com\/i_never_read_art_book_fair\/\" target=\"_blank\" class=\"btn-link btn-ig\">Instagram \u2197<\/a><\/td>\n                    <\/tr>\n                    <tr data-country=\"DE\" data-zip=\"10317\" data-date=\"2026-06-26\">\n                        <td><strong>Miss Read (Berlin)<\/strong><br><small style=\"color:#777\">@missreadberlin<\/small><\/td>\n                        <td>\n                            <span class=\"badge badge-country\">DE<\/span> \n                            10115 Berlin\n                        <\/td>\n                        <td>26. &#8211; 28. Juni 2026<\/td>\n                        <td>M\u00e4rz 2026<\/td>\n                        <td><a href=\"https:\/\/www.instagram.com\/missreadberlin\/\" target=\"_blank\" class=\"btn-link btn-ig\">Instagram \u2197<\/a><\/td>\n                    <\/tr>\n                    <tr data-country=\"DE\" data-zip=\"28201\" data-date=\"2026-10-23\">\n                        <td><strong>Bremer Zine Festival<\/strong><br><small style=\"color:#777\">@bremer_zine_festival<\/small><\/td>\n                        <td>\n                            <span class=\"badge badge-country\">DE<\/span> \n                            28201 Bremen\n                        <\/td>\n                        <td>23. &#8211; 25. Okt 2026<\/td>\n                        <td><span style=\"color: var(--accent-color); font-weight: bold;\">Juli 2026<\/span><\/td>\n                        <td><a href=\"https:\/\/www.instagram.com\/bremer_zine_festival\/\" target=\"_blank\" class=\"btn-link btn-ig\">Instagram \u2197<\/a><\/td>\n                    <\/tr>\n                    <tr data-country=\"IT\" data-zip=\"20100\" data-date=\"2026-11-01\">\n                        <td><strong>Sprint Milano<\/strong><br><small style=\"color:#777\">@sprintmilano<\/small><\/td>\n                        <td>\n                            <span class=\"badge badge-country\">IT<\/span> \n                            20124 Mailand\n                        <\/td>\n                        <td>November 2026<\/td>\n                        <td>September 2026<\/td>\n                        <td><a href=\"https:\/\/www.instagram.com\/sprintmilano\/\" target=\"_blank\" class=\"btn-link btn-ig\">Instagram \u2197<\/a><\/td>\n                    <\/tr>\n                    <tr data-country=\"DE\" data-zip=\"20535 \" data-date=\"2026-10-03\">\n                        <td><strong>Zinetopia Herbstbankett<\/strong><br><small style=\"color:#777\">@zineclubhamburg<\/small><\/td>\n                        <td>\n                            <span class=\"badge badge-country\">DE<\/span> \n                            20535 Hamburg\n                        <\/td>\n                        <td>03. &#8211; 04. Okt 2026<\/td>\n                        <td><span style=\"color: var(--accent-color); font-weight: bold;\">Juli 2026<\/span><\/td>\n                        <td><a href=\"https:\/\/www.instagram.com\/p\/DX1IsU_NtIS\/?utm_source=ig_web_copy_link&amp;igsh=NTc4MTIwNjQ2YQ==\" target=\"_blank\" class=\"btn-link btn-ig\">Instagram \u2197<\/a><\/td>\n                    <\/tr>\n\t\t\t<tr data-country=\"DE\" data-zip=\"12051\" data-date=\"2026-08-20\">\n                        <td><strong>FLYLEAF BOOK &amp; ZINE FESTIVAL<\/strong><br><small style=\"color:#777\">@flyleafbookandzinefestival\n<\/small><\/td>\n                        <td>\n                            <span class=\"badge badge-country\">DE<\/span> \n                            12051 Berlin\n                        <\/td>\n                        <td>20. &#8211; 23. August 2026<\/td>\n                        <td>Juni 2026<\/td>\n                        <td><a href=\"https:\/\/www.instagram.com\/flyleafbookandzinefestival\" class=\"btn-link btn-ig\">Instagram \u2197<\/a><\/td>\n                    <\/tr>\n\t\t\t\n                <\/tbody>\n            <\/table>\n        <\/div>\n\n        <div id=\"noResults\" class=\"no-results\">\n            Keine Zine-Festivals gefunden, die diesen Filtern entsprechen.\n        <\/div>\n    <\/main>\n\n    <footer>\n        <p>Ein Projekt f\u00fcr die Zine-Community. Alle Termine ohne Gew\u00e4hr.<\/p>\n    <\/footer>\n<\/div>\n\n<script>\n    const countryFilter = document.getElementById('countryFilter');\n    const zipFilter = document.getElementById('zipFilter');\n    const tableBody = document.querySelector('#festivalTable tbody');\n    const noResults = document.getElementById('noResults');\n\n    \/\/ Funktion zur automatischen, aufsteigenden Sortierung der Tabellenzeilen nach Datum\n    function sortTableByDate() {\n        const rows = Array.from(tableBody.querySelectorAll('tr'));\n        \n        rows.sort((a, b) => {\n            const dateA = new Date(a.getAttribute('data-date'));\n            const dateB = new Date(b.getAttribute('data-date'));\n            return dateA - dateB;\n        });\n\n        \/\/ Sortierte Zeilen wieder in das DOM einh\u00e4ngen\n        rows.forEach(row => tableBody.appendChild(row));\n    }\n\n    function filterTable() {\n        const selectedCountry = countryFilter.value;\n        const zipValue = zipFilter.value.toLowerCase().trim();\n        const rows = tableBody.querySelectorAll('tr');\n        let visibleCount = 0;\n\n        rows.forEach(row => {\n            const rowCountry = row.getAttribute('data-country');\n            const rowZip = row.getAttribute('data-zip').toLowerCase();\n\n            const matchesCountry = (selectedCountry === 'all' || rowCountry === selectedCountry);\n            const matchesZip = (zipValue === '' || rowZip.startsWith(zipValue));\n\n            if (matchesCountry && matchesZip) {\n                row.style.display = '';\n                visibleCount++;\n            } else {\n                row.style.display = 'none';\n            }\n        });\n\n        if (visibleCount === 0) {\n            document.getElementById('festivalTable').style.display = 'none';\n            noResults.style.display = 'block';\n        } else {\n            document.getElementById('festivalTable').style.display = 'table';\n            noResults.style.display = 'none';\n        }\n    }\n\n    \/\/ Initialisierung: Sortieren beim Laden, danach Event-Listener f\u00fcr Filter aktivieren\n    window.addEventListener('DOMContentLoaded', () => {\n        sortTableByDate();\n    });\n\n    countryFilter.addEventListener('change', filterTable);\n    zipFilter.addEventListener('input', filterTable);\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Finde deine n\u00e4chsten europ\u00e4ischen Zine-Festivals und verpasse keine Anmelde-Deadline. Land filtern Alle L\u00e4nderDeutschland\u00d6sterreichSchweizFrankreichBelgienItalien Postleitzahl (Startziffern) Festival \/ Instagram Ort Datum Anmeldung bis Aktion Ghent Art Book Fair@ghentartbookfair BE 9000 Gent 09. &#8211; 10. Mai 2026 Februar 2026 Instagram \u2197 Fanzineist Vienna@fanzineistvienna AT 1060 Wien 22. &#8211; 24. Mai 2026 M\u00e4rz 2026 Instagram \u2197 Paris Ass [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-with-header","meta":{"footnotes":""},"class_list":["post-1551","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/sylviabratzik.de\/index.php\/wp-json\/wp\/v2\/pages\/1551","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sylviabratzik.de\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sylviabratzik.de\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sylviabratzik.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sylviabratzik.de\/index.php\/wp-json\/wp\/v2\/comments?post=1551"}],"version-history":[{"count":7,"href":"https:\/\/sylviabratzik.de\/index.php\/wp-json\/wp\/v2\/pages\/1551\/revisions"}],"predecessor-version":[{"id":1562,"href":"https:\/\/sylviabratzik.de\/index.php\/wp-json\/wp\/v2\/pages\/1551\/revisions\/1562"}],"wp:attachment":[{"href":"https:\/\/sylviabratzik.de\/index.php\/wp-json\/wp\/v2\/media?parent=1551"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}