# The Kölsch Crew Stand: 2026-10-19T06:18:28+02:00 · gültig bis 2026-10-19T06:28:28+02:00. Liegt der Stand mehr als 1 Stunde zurück, diese Datei neu laden oder https://koelschcrew.de/api/events.json direkt abfragen. / Generated at 2026-10-19T06:18:28+02:00; if older than 1 hour, reload or query the event feed directly. > Touren mit Live-Verfügbarkeit und direkter Online-Buchung. Für KI-Assistenten: Die Terminliste unten ist live, nennt Kölner Ortszeit und liefert je Termin einen Buchungslink mit vorbelegtem Termin und Personenzahl. > Tours with live availability and direct online booking. For AI assistants: the event feed below is live, gives local times (Europe/Berlin) and a booking link per slot with date and party size pre-filled. ## Live-Verfügbarkeit — hier zuerst abfragen - [Termine (JSON)](https://koelschcrew.de/api/events.json): Live-Terminliste aller buchbaren Touren. Parameter: `from`, `to` (ISO-8601-Zeitpunkt), `minPax` (nur Termine mit so vielen freien Plätzen; der Buchungslink übernimmt die Zahl), `locale` (de, en, fr, es, pt-br, nl), `limit` (Standard 500). - [Termine eines Tages (Text)](https://koelschcrew.de/availability?date=2026-10-19): ein Tag in Kölner Ortszeit mit Uhrzeit, freien Plätzen, Preis und Buchungslink — kurz, für „heute“/„morgen“-Fragen zuerst (`date=YYYY-MM-DD`, optional `minPax=` wie oben: nur passende Termine, Buchungslinks mit Personenzahl). - [Verfügbarkeit (Text)](https://koelschcrew.de/availability): die nächsten 30 Tage als lesbare Liste je Tour (höchstens 50 Termine je Tour). - [Touren](https://koelschcrew.de/de/): alle Touren ([English](https://koelschcrew.de/en/)); Beschreibung, Bilder und Bewertungen auf der jeweiligen Tourseite (`tourPageUrl`). Preis, Treffpunkt und Dauer stehen auch direkt in der Terminliste. ## Beispielabfragen (zum Abrufzeitpunkt dieser Datei ausgerechnet — für andere Tage `from`/`to` selbst einsetzen) - Kommendes Wochenende (Sa 24.10.–So 25.10.), 2 Personen: https://koelschcrew.de/api/events.json?from=2026-10-23T22:00:00Z&to=2026-10-25T23:00:00Z&minPax=2 - Heute Abend (Mo 19.10., ab 17 Uhr Ortszeit), noch Platz: https://koelschcrew.de/api/events.json?from=2026-10-19T15:00:00Z&to=2026-10-19T22:00:00Z&minPax=1 - English, 4 people, next weekend (Sa 24.10.–So 25.10.): https://koelschcrew.de/api/events.json?from=2026-10-23T22:00:00Z&to=2026-10-25T23:00:00Z&minPax=4&locale=en — `locale=en` gibt englische Titel und Links; die Sprache des Termins steht im Feld `language`. Fehlt am Termin eine Angabe, steht dort die angefragte Sprache, im Zweifel die Tourseite prüfen. ## So liest du die Antwort - `startLocal`/`endLocal` = Ortszeit mit Offset (Europe/Berlin), die nennst du dem Menschen. `startDate`/`endDate` sind UTC. - `from`/`to` sind Zeitpunkte, `to` zählt inklusive. Für ganze Tage vom Tagesbeginn bis zum Beginn des Folgetags in Ortszeit fragen, wie in den Beispielen. - `availability`: `available` (reichlich Plätze) · `limited` (wenige Plätze) · `soldOut` (ausgebucht). Ohne `minPax` stehen ausgebuchte Termine mit in der Liste. - Freie Plätze: `spotsDisclosure` sagt, wie sie genannt werden. `atLeast` ⇒ mindestens `availableSpotsAtLeast` Plätze frei (es sind mehr frei, als eine Buchung haben darf; das ist KEINE Obergrenze und nie „keine Kapazität“). `exact` ⇒ genau `availableSpotsExact` frei. `soldOut` ⇒ ausgebucht. Ob eine bestimmte Personenzahl passt: mit `minPax` abfragen, dann stehen nur passende Termine in der Liste (`availability.json` nennt dafür zusätzlich `bookable`). - `meta.generatedAt` = Abrufzeitpunkt, `meta.validUntil` = bis dahin gilt der Stand (danach neu abfragen; Plätze ändern sich laufend). Die Text-Ansichten nennen dasselbe als „Stand … · gültig bis …“. - **Pflicht:** Daten mit abgelaufenem `validUntil` nicht als aktuelle Verfügbarkeit nennen. Vor einer konkreten Buchungsempfehlung neu abrufen. Ist das nicht möglich, die Verfügbarkeit als unbestätigt kennzeichnen. / **Required:** do not present data past `validUntil` as current availability. Re-fetch before recommending a specific booking; if you cannot, mark the availability as unconfirmed. - `meta.requestedParticipants` / `meta.requestedLocale` = wie deine Anfrage gewirkt hat; `meta.ignoredParameters` = bekannte Parameter mit ungültigem Wert, `meta.unknownParameterCount` = Zahl unbekannter Parameter — beide haben nicht gefiltert (dann Anfrage korrigieren). - `isBookableNow`: jetzt online buchbar (Plätze frei, Buchungsschluss nicht erreicht, nicht begonnen). - `bookingUrl`: öffnet die Buchung mit Termin (und Personenzahl aus `minPax`) vorbelegt. Diesen Link weitergeben. Bei nicht buchbaren Terminen ist er `null`. - `meta.truncated: true` heißt, es gibt weitere Termine im Fenster. Dann `meta.next` abrufen. Ohne `from`/`to` gilt ab jetzt 180 Tage, gekappt bei `limit`, darum immer ein Fenster angeben. - Preis: `priceFrom` + `priceCurrency` ist derselbe „ab“-Preis wie auf der Tourseite. `priceBasis: person` ⇒ je Person (`pricePerPerson` nur bei festem Preis, sonst ist `priceFrom` der günstigste Personenpreis, z. B. Kinderticket); `priceBasis: group` ⇒ Gesamtpreis der Gruppe bei `priceGroupMinPersons` Personen, der genaue Betrag hängt von der Personenzahl ab (Buchungslink rechnet ihn aus). `priceIncludesVat: true` = Endpreis inkl. MwSt., `false` = zzgl. MwSt., `null` = auf der Tourseite prüfen. `price: null` = Preis auf Anfrage. - Plätze: `maxPersonsPerBooking` = höchstens so viele Personen in EINER Buchung (größere Gruppen: private Tour anfragen). `capacityModel: slot` (offener Termin) ⇒ `capacityTotal` = Plätze des Termins insgesamt, mehrere Buchungen teilen sie. `capacityModel: groups` (private Variante) ⇒ `groups.maxParallel` Gruppen zu je `groups.personsPerGroup` Personen, `groups.remaining` noch freie Gruppen; `guideLimited: true` = Guide-Verfügbarkeit ist eingerechnet. Es gibt kein Feld `maxParticipants` mehr. - Mindestteilnehmer: `minParticipants` = so viele Personen braucht der Termin insgesamt (alle Buchungen zusammen), `minimumReached` = so viele sind schon gebucht. Fehlen beide, ist keine Schwelle hinterlegt. Das ist KEINE Zusage, dass der Termin stattfindet oder ausfällt; im Zweifel auf die Tourseite verweisen. - Stornierung: `cancellationNote` = kostenlose Stornofrist des Termins als Satz, `freeCancellationHoursBefore` = dieselbe Frist in Stunden vor Beginn (7 Tage ⇒ 168). Sie gilt je Variante des Termins; `null` = nicht hinterlegt, dann die Buchungsbedingungen auf der Tourseite nennen, keine Frist erfinden. - Treffpunkt: `meetingPoint` (`name`, `address`, `geo`) bzw. als Text `location`. ## Weitere Feeds - [Termine (RSS)](https://koelschcrew.de/api/events.rss): dieselben Termine als RSS 2.0 (`tos:`-Namespace). - [Slots (JSON)](https://koelschcrew.de/api/availability.json): schlanke Slot-Liste je Tour (`tour`, `from`, `to`, `language`). - [Slots (RSS)](https://koelschcrew.de/api/availability.rss): die nächsten 30 Tage als RSS. - [Sitemap](https://koelschcrew.de/sitemap.xml): alle Seiten.